Hallo,

ich habe ein Problem bei einem SBMJOB mit einem Dezimalfeld.

Wenn ich das Programm mit "I" und dem Call aufrufe läuft alles normal durch.

Wenn ich das Programm mit "B" aufrufe und das mit SBMJOB übergeben wird, bekomme ich im RPGLE das im "call_cl" aufgerufen wird, einen Programmabbruch. Der Wert im aufgerufenen RPG-Programm von (dec) &AA02 ist 000 obwohl im aufrufenden CL der Wert mit 030 noch korrekt ist.

Das Feld &AA02 ist durchgängig immer mit dec 3/0 definiert.

Wie muss ich vorgehen, damit der SBMJOB so läuft wie der Call?

Code:
PGM        PARM(&AA01 &AA02 &AA003 &IB)                  
                                                         
DCL        VAR(&AA01  ) TYPE(*CHAR) LEN(3)               
DCL        VAR(&AA02  ) TYPE(*DEC) LEN(3)                
DCL        VAR(&AA03  ) TYPE(*CHAR) LEN(1)               
DCL        VAR(&IB    ) TYPE(*CHAR) LEN(1)               
                                                         
IF         COND(&IB = 'B') THEN(DO)                      
SBMJOB     CMD(CALL PGM(call_cl) PARM(&AA01 &AA02 +      
             &AA03)) JOB(TEST)                           
ENDDO                                                    
IF         COND(&IB = 'I') THEN(CALL PGM(call_cl) +      
             PARM(&AA01 &AA02 &AA03))                    
ENDPGM