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
D $$FUNCTION 10A FUNCTION
D $$RCDTYPE 2A RECORD TYPE
D $$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
D $$SPLFNAM 10A SPOOLFILE NAME
D $$SPLFNBR 8B 0 SPOOLFILE NUMBER
D $$OUTQ 10A OUTPUT QUEUE
D $$LIBOUTQ 10A LIBRARY OUTPUT QUEUE
*
* API FEHLERMELDUNGEN
*
D $$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.
Bookmarks