Zunächst mal erstellt Du eine Datenwarteschlange über CRTDTAQ DTAQ(MYDTAQ). Dann fügst Du der Ausgabewarteschlange die Datenwarteschlange mit CHGOUTQ OUTQ(MYOUTQ) DTAQ(MYDTAQ) hinzu.

Das folgende Programm verarbeitet dann die Datenwarteschlangeneinträge, die von OS/400 dort eingestellt werden, insofern eine neue Spoolfile in die Ausgabewarteschlange gestellt wird. Dieses Programm sollte im Batch laufen.

PHP-Code:
 *                                                                                             
 * 
FORMAT EINES EINTRAGES DER DATENWARTESCHLANGE                                               
 
*                                                                                             
DARCSPLF          DS           128                                                             
$$FUNCTION                    10A                                        FUNCTION            
$$RCDTYPE                      2A                                        RECORD TYPE         
$$QUALJOB                     26A                                        QUALIFIED JOBNAME   
D  
$$JOBNAM                     10A   OVERLAY($$QUALJOB 1)               JOB-NAME            
D  
$$JOBUSR                     10A   OVERLAY($$QUALJOB 11)              JOB-USER            
D  
$$JOBNBR                      6A   OVERLAY($$QUALJOB 21)              JOB-NUMBER          
$$SPLFNAM                     10A                                        SPOOLFILE NAME      
$$SPLFNBR                      8B 0                                      SPOOLFILE NUMBER    
$$OUTQ                        10A                                        OUTPUT QUEUE        
$$LIBOUTQ                     10A                                        LIBRARY OUTPUT QUEUE
 
*                                                                                             
 * 
API FEHLERMELDUNGEN                                                                         
 
*                                                                                             
$$ERRCOD        DS                                                                           
D  
$$BYTPRO               1      4B 0 INZ(128)                                                 
D  $$BYTAVA               5      8B 0 INZ(*ZERO)                                               
D  $$EXCID                9     15A   INZ(*BLANKS)                                             
D  $$RSRVD               16     16A   INZ(*BLANKS)                                             
D  $$EXCDTA              17    144A   INZ(*BLANKS)                                             
 *                                                                                                 
 *-------------------------------------------------------------------------------------------*     
 *                                                                                                 
 * 
ÜBERGABEPARAMETER FÜR API 'QRCVDTAQ'                                                            
 
*                                                                                                 
C     QRCVDTAQ      PLIST                                                                          
C                   PARM      
'ARCSPLF'     P1_DTAQ          10            --> DATA QUEUE          
C                   PARM      
'*LIBL'       P1_LIBDTAQ       10            --> LIBRARY             
C                   PARM                    P1_LNGDTA         5 0          
<-- LENGTH OF DATA      
C                   PARM                    P1_DTA          128            
<-- DATA                
C                   PARM      
-1            P1_WAIT           5 0          --> WAIT TIME           
 
*                                                                                                 
 *-------------------------------------------------------------------------------------------*     
 *                                                                                                 
C                   DOU       $$FUNCTION '*END'                                                  
 
EINTRAG AUS DER DATENWARTESCHLANGE 'ARCHIVIERUNG DRUCKDATEIEN' EMPFANGEN                        
C                   CALL      
'QRCVDTAQ'    QRCVDTAQ                                               
 
DATEN IN DIE FORMAT-DATENSTRUKTUR ÜBERTRAGEN                                                    
C                   MOVE      P1_DTA        ARCSPLF                                                
 
NUR EINTRÄGE FÜR DRUCKDATEIEN VERARBEITEN                                                       
C                   
IF        $$FUNCTION '*SPOOL'                                                

... Meine Aktionen ...

C                   ENDIF                                                                          
C                   ENDDO                                                                          
 
PROGRAMMENDE                                                                                    
C                   SETON                                        LR 
Mit dem folgenden Programm wird dann das obige Batchprogramm beendet.

PHP-Code:
*                                                                                               
ÜBERGABEPARAMETER FÜR API 'QSNDDTAQ'                                                          
*                                                                                               
     
QSNDDTAQ      PLIST                                                                        
                   PARM      
'ARCSPLF'     P1_DTAQ          10            --> DATA QUEUE        
                   PARM      
'*LIBL'       P1_LIBDTAQ       10            --> LIBRARY           
                   PARM      128           P1_LNGDTA         5 0          
<-- LENGTH OF DATA    
                   PARM      
'*END'        P1_DTA          128            <-- DATA              
*                                                                                               
*-------------------------------------------------------------------------------------------*   
*                                                                                               
ARCHIVIERUNG DRUCKDATEIEN BEENDEN                                                             
                   CALL      
'QSNDDTAQ'    QSNDDTAQ                                             
PROGRAMMENDE                                                                                  
                   SETON                                        LR 
PS

Das Programm habe ich vor einer Ewigkeit geschrieben.