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
Bookmarks