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(MGLBIR02PARM(&B1JAHR &B1ZTAG +     
                          &
B1ZMON &B1ZJAR &B1BTRG)) JOB(BIOARGE
                          
JOBD(QBATCH)                           
  
/*=======================*/
ENDEENDPGM 
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(MGLBIR02PARM(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