Hallo!
Ich habe folgendes Problem: Wenn ich in einem CL-Programm ein RPG-Programm mit einem CALL aufrufe, funktioniert das RPG-Programm. Wenn ich das RPG-Programm aber mit einem SBMJOB aufrufe, dann bricht das RPG-Programm mit einem Dezimaldatenfehler ab. An das RPG-Programm werden mehrere Parameter übergeben. Das RPG Programm hat dann ein Problem mit den Parametervariablen (=Dezimaldatenfehler).
CL-Programm (MGLBIC02)
PHP-Code:
PGM
DCLF FILE(MGLBIB02)
RTVJOBA JOB(&B1WSID)
/*=======================*/
START: SNDRCVF RCDFMT(MGLBIB00)
IF COND(&IN03 = '1') THEN(RETURN)
/*=======================*/
SBMJOB CMD(CALL PGM(MGLBIR02) PARM(&B1JAHR &B1ZTAG +
&B1ZMON &B1ZJAR &B1BTRG)) JOB(BIOARGE)
JOBD(QBATCH)
/*=======================*/
ENDE: ENDPGM
RPG-Code (MGLBIR02)
PHP-Code:
D P_Jahr S 4 0
D P_ZahlTag S 2 0
D P_ZahlMonat S 2 0
D P_ZahlJahr S 4 0
D P_Betrag S 6 2
:
:
C *ENTRY PLIST
C PARM P_Jahr
C PARM P_ZahlTag
C PARM P_ZahlMonat
C PARM P_ZahlJahr
C PARM P_Betrag
Was mir noch aufgefallen ist: Wenn ich das Jobprotokoll des Batchjobs ansehe, dann steht da folgendes (man beachte die Parameter):
PHP-Code:
CALL PGM(MGLBIR02) PARM(2065 31 12 2005 1,21)
Hat jemand eine Erklärung dafür, dass das RPG-Programm mit dem direkt CALL-Befehl funktioniert und mit SBMJOB fehlschlägt?`
Vielen Dank im Voraus für etwaige Antworten!
Michi
Bookmarks