Loading...
Select Version
&pagelevel(3)&pagelevel
Informationen austauschen
In diesem Beispiel wird die Anwendung des Kommandos MODIFY-JV-CONDITIONALLY und der Makros CSWJV, LNKJV und TIMJV gezeigt. Eine Prozedur und ein ENTER-Auftrag tauschen Informationen aus.
Das Beispiel wird mit dem Kommando /CALL-PROCEDURE PROC.BSP9
gestartet. Das ablauffähige Modul TESTJV muss in der Bibliothek ASS.PLAMLIB abgelegt sein.
Prozedur PROC.BSP9
/ BEG-PROC LOGGING=*CMD / ASSIGN-SYSLST TO=LST.PROC / MODIFY-JOB-OPTION LOGGING=*PARAMETER(LISTING=*YES) / SET-JV-LINK JV-NAME=JV.E.1 / MODIFY-JV JV=JV.E.1,SET-VALUE=C'***' / SET-JV-LINK JV-NAME=JV.DO.1 / MODIFY-JV JV=JV.DO.1,SET-VALUE=C'***' / SET-JV-LINK JV-NAME=JV.MON / ENTER-JOB FROM-FILE=TEST.ENTER,MONJV=JV.MON,JOB-CLASS=JCBATCH /.SKIP1 SHOW-JV JV=JV.MON / WAIT-EVENT *JV(CONDITION=((JV.MON,1,2)=C'$R'), - / TIME-LIMIT=90,TIMEOUT-LABEL=SKIP1) /.PRUEF MODIFY-JV-CONDITIONALLY JV=(JV.DO.1),/ IF-VALUE=C'GESTARTET',SET-VALUE=C'VERSTANDEN',/ LABEL=WEIT1 / SKIP-COMMANDS TO-LABEL=PRUEF /.WEIT1 SHOW-JV JV=JV.DO.1 / SHOW-JV JV=JV.E.1 / SHOW-JV JV=JV.MON / SHOW-JOB-STAT *MONJV(JV.MON) / WAIT-EVENT *JV(CONDITION=((JV.DO.1)=C'WEITER GEHTS'), - / TIME-LIMIT=15,TIMEOUT-LABEL=WEIT1) /.WEIT2 MODIFY-JV JV=JV.E.1,SET-VALUE=C'PROGRAMM FORTSETZEN' /.SKIP3 SKIP-COMMANDS TO-LABEL=ENDE,/ IF=*JV(CONDITION=((JV.E.1,12,4)=C'ENDE')) / SHOW-USER-STATUS / SHOW-JV JV=JV.E.1 / SHOW-JV JV=JV.MON / WAIT-EVENT UNTIL=*JV(TIME-LIMIT=45,TIMEOUT-LABEL=SKIP3) /.ENDE REMARK **** TESTJOB BEENDET **** / SHOW-JV JV=JV.MON / ASSIGN-SYSLST TO=*PRIMARY / MODIFY-JOB-OPTION / END-PROCEDURE / BEG-PROC LOGGING=*CMD / ASSIGN-SYSLST TO=LST.PROC / MODIFY-JOB-OPTION LOGGING=*PARAMETER(LISTING=*YES)
Datei TEST.ENTER
/.TESTJV SET-LOGON-PARAMETERS / ASSIGN-SYSOUT TO=OUT.E.TESTJV / SET-JV-LINK JV-NAME=JV.DO.1 / SET-JV-LINK JV-NAME=JV.PROG / MODIFY-JV JV=JV.DO.1,SET-VALUE=C'GESTARTET' / START-EXE FROM-FILE=(LIB=ALF.ASS.PLAMLIB,ELEM=TESTJV),/ TEST-OPTIONS=*AID,MONJV=JV.PROG / SHOW-JV JV=JV.MON / SHOW-JV JV=JV.PROG / SKIP-COMMANDS TO-LABEL=ENDE / SET-JOB-STEP / MODIFY-JV JV=JV.E.1,SET-VALUE=C'ABNORMALES ENDE' /.ENDE WAIT-EVENT UNTIL=*JV(TIME-LIMIT=120,TIMEOUT-LABEL=TIME) /.TIME MODIFY-JV JV=(JV.E.1,12,4),SET-VALUE=C'ENDE' / EXIT-JOB SYSTEM-OUTPUT=*NONE
Quellprogramm SRC.TESTJV
TESTJV START TITLE 'TESTPROGRAMM FUER CSWJV' * * REGISTERZUWEISUNG BALR 3,0 USING *,3 PRINT NOGEN * * JOBVARIABLE JV.E.1 WIRD DER LINKNAME *ENTER ZUGEWIESEN * DER LINKNAME *ENTER WIRD IM FELD LNKBER ABGELEGT * MIT DEM MAKRO CMD WIRD DER INHALT VON LNKBER AUSGEGEBEN * DCLJV JV.E.1,LINK=*ENTER,VERSION=1 LNKJV LNKBER,LINK=*ENTER,VERSION=1 CMD '%DISPLAY','LNKBER' * * DER WERT VON JV.DO.1 WIRD MIT DEM INHALT VON VERGL VERGLICHEN * BEI GLEICHHEIT SOLL DER SETZWERT NEUWERT GESETZT WERDEN * CSWJV CSWJV JV.DO.1,VERGL,NEUWERT,VERSION=1 * * MELDUNG MELD1 *** CSWJV AUSGEFUEHRT *** WIRD AUSGEGEBEN * UND MELDUNG UND ZEITSTEMPEL IN MONJV GESETZT * WROUT MELD1,TERM TIMJV MF=S,MONJV=*SMONJVJ,TIMESTAMP=*SET,DESCRIPTOR='TESTJV', - INFO='*** CSWJV AUSGEFUEHRT ***' CMD 'SHOW-JV','JV=*LINK(SMONJVJ)'
* * DAS FELD JVDOW WIRD MIT DEM INHALT VON JV.DO.1 VERSORGT * VERGLEICH, OB JVDOW DEN WERT 'WEITER GEHTS' ENTHAELT * GETJV JV.DO.1,JVDOW,30,VERSION=1 CLC JVDOW+4(12),='WEITER GEHTS' BE FORTSETZ * * DA BEI UNGLEICHHEIT DER WERT VON JV.DO.1 IN DAS FELD VERGL * UEBERTRAGEN WIRD, WIRD VERGL WIEDER AUF 'VERSTANDEN' GESETZT * MVC VERGLF,='VERSTANDEN' VPASS 1 B CSWJV * * DER BEREICH JVEW WIRD MIT DEM WERT VON JV.E.1 VERSORGT * VERGLEICH, OB JVEW DEN WERT 'PROGRAMM FORTSETZEN' ENTHAELT * FORTSETZ EQU * GETJV JV.E.1,JVEW,30,VERSION=1 CLC JVEW+4(19),='PROGRAMM FORTSETZEN' BNE FORTSETZ * * AUSGABE DER MELDUNG *** PROGRAMM FORTGESETZT *** * UND MELDUNG UND ZEITSTEMPEL IN MONJV GESETZT * WROUT MELD2,TERM TIMJV MF=S,MONJV=*SMONJVJ,TIMESTAMP=*SET,DESCRIPTOR='TESTJV', - INFO=C'*** PROGRAMM FORTGESETZT ***' CMD 'SHOW-JV','JV=*LINK(SMONJVJ)' * * AUSGABE DER MELDUNG *** PROGRAMM ENDSPURT *** * UND MELDUNG UND ZEITSTEMPEL IN MONJV GESETZT * BEENDEN EQU * WROUT MELD3,TERM TIMJV MF=S,MONJV=*SMONJVJ,TIMESTAMP=*SET,DESCRIPTOR='TESTJV', - INFO=C'*** PROGRAMM ENDSPURT ***' CMD 'SHOW-JV','JV=*LINK(SMONJVJ)' * * DER JOBVARIABLEN JV.E.1 WIRD DER WERT 'NORMALES ENDE' ZUGEORDNET * UND ZEITSTEMPEL VOM PROGRAMMENDE IN MONJV GESETZT * SETJV JV.E.1,EWERT,VERSION=1 TIMJV MF=S,MONJV=*SMONJVJ,TIMESTAMP=*SET,DESCRIPTOR='TESTJV', - INFO=C'*** PROGRAMM BEENDET ***' TERM TERM
* * DEFINITIONEN * VERGL DC Y(END1-VERGL) DS CL2 VERGLF DC 'VERSTANDEN' END1 EQU * * NEUWERT DC Y(END2-NEUWERT) DS CL2 DC 'WEITER GEHTS' END2 EQU * * EWERT DC Y(END3-EWERT) DS CL2 DC 'NORMALES ENDE' END3 EQU * * MELD1 DC Y(END4-MELD1) DS CL2 DC X'01' MELD1TXT DC '*** CSWJV AUSGEFUEHRT ***' END4 EQU * * MELD2 DC Y(END5-MELD2) DS CL2 DC X'01' MELD2TXT DC '*** PROGRAMM FORTGESETZT ***' END5 EQU * * MELD3 DC Y(END6-MELD3) DS CL2 DC X'01' MELD3TXT DC '*** PROGRAMM ENDSPURT ***' END6 EQU * * JVDOW DS CL30 * JVEW DS CL30 * LNKBER DS CL63 END
Ablaufprotokoll LST.PROC der Prozedur PROC.BSP9
(IN) / MODIFY-JOB-OPTION LOGGING=*PARAMETER(LISTING=*YES) (IN) / SET-JV-LINK JV-NAME=JV.E.1 (IN) / MODIFY-JV JV=JV.E.1,SET-VALUE=C'***' (IN) / SET-JV-LINK JV-NAME=JV.DO.1 (IN) / MODIFY-JV JV=JV.DO.1,SET-VALUE=C'***' (IN) / SET-JV-LINK JV-NAME=JV.MON (IN) / ENTER-JOB FROM-FILE=TEST.ENTER,MONJV=JV.MON,JOB-CLASS= JCBATCH (OUT) % JMS0066 JOB 'TESTJV' ACCEPTED ON 10-08-08 AT 09:22, TSN = 0FFJ (IN) /.SKIP1 SHOW-JV JV=JV.MON (OUT) $S 00FFJ4V05 J0672010-08-08072201 ( ) (IN) / WAIT-EVENT *JV(CONDITION=((JV.MON,1,2)=C'$R'), TIME-LIMIT=90,TIMEOUT-LABEL=SKIP1) (OUT) % CJC0020 WAIT COMMAND: TASK ENTERED WAIT STATE AT 09:22:01 (OUT) % CJC0021 WAIT COMMAND: CONDITION = TRUE AT 09:22:01 (IN) /.PRUEF MODIFY-JV-CONDITIONALLY JV=(JV.DO.1), IF-VALUE=C'GESTARTET',SET-VALUE=C'VERSTANDEN',LABEL=WEIT1 (IN) / SKIP-COMMANDS TO-LABEL=PRUEF (IN) /.PRUEF MODIFY-JV-CONDITIONALLY JV=(JV.DO.1), IF-VALUE=C'GESTARTET',SET-VALUE=C'VERSTANDEN',LABEL=WEIT1 (IN) / SKIP-COMMANDS TO-LABEL=PRUEF (IN) /.PRUEF MODIFY-JV-CONDITIONALLY JV=(JV.DO.1), IF-VALUE=C'GESTARTET',SET-VALUE=C'VERSTANDEN',LABEL=WEIT1 (IN) /.WEIT1 SHOW-JV JV=JV.DO.1 (OUT) VERSTANDEN (IN) / SHOW-JV JV=JV.E.1 (OUT) *** (IN) / SHOW-JV JV=JV.MON (OUT) $R 00FFJ4V05 J0672010-08-08072201 ( ) (IN) / SHOW-JOB-STAT *MONJV(JV.MON) (OUT) TSN: 0FFJ TYPE: 2 BATCH NOW: 2010-08-08.092201 (NL) JOBNAME: TESTJV PRI: 9 255 SPOOLIN: 2010-08-08.0922 (NL) USERID: COGNITAS JCLASS: JCBATCH LOGON: 2010-08-08.0922 (NL) ACCNB: 89001 CPU-MAX: 200 CPU-USED:000000.0239 (NL) REPEAT: NO RERUN: NO FLUSH: NO (NL) MRSCAT: HOLD: NO START: SOON (NL) TID: 0001005F UNP/Q#: 00/001 (NL) CMD: EXECUTE (NL) ORIGFILE::4V05:$COGNITAS.TEST.ENTER (NL) MONJV: :4V05:$COGNITAS.JV.MON (IN) / WAIT-EVENT *JV(CONDITION=((JV.DO.1)=C'WEITER GEHTS'), ( ) TIME-LIMIT=15,TIMEOUT-LABEL=WEIT1) (OUT) % CJC0020 WAIT COMMAND: TASK ENTERED WAIT STATE AT 09:22:01 (OUT) % CJC0021 WAIT COMMAND: CONDITION = TRUE AT 09:22:01
(IN) /.WEIT2 MODIFY-JV JV=JV.E.1,SET-VALUE=C'PROGRAMM FORTSETZEN' (IN) /.SKIP3 SKIP-COMMANDS TO-LABEL=ENDE, ( ) IF=*JV(CONDITION=((JV.E.1,12,4)=C'ENDE')) (OUT) % CJC0011 SKIP COMMAND: CONDITION = FALSE (IN) / SHOW-USER-STATUS (OUT) NAME TSN TYPE PRI CPU-USED CPU-MAX ACCOUNT# (NL) 0FFF 3 DIALOG 0 240 0.1275 32767 89001 (NL) COG2 0FFG 3 DIALOG 0 240 0.2489 32767 89001 (NL) TESTJV 0FFJ 2 BATCH 9 255 0.0394 200 89001 (OUT) % SPS0171 NO LOCAL SPOOLOUT JOB PRESENT (OUT) % SPS0420 RSO WARNING : SOME RSO PRINT-JOBS CANNOT BE DISPLAYED (IN) / SHOW-JV JV=JV.E.1 (OUT) NORMALES ENDE (IN) / SHOW-JV JV=JV.MON (OUT) $R 00FFJ4V05 J0672010-08-080722012010-08-08072201TESTJV *** PROGRAMM BEENDET *** ( ) (IN) / WAIT-EVENT UNTIL=*JV(TIME-LIMIT=45,TIMEOUT-LABEL=SKIP3) (OUT) % CJC0020 WAIT COMMAND: TASK ENTERED WAIT STATE AT 09:22:01 (OUT) % CJC0022 WAIT COMMAND: TIMEOUT AT 09:22:46, SKIP TO TIMEOUT LABEL OR NEXT STEP (IN) /.SKIP3 SKIP-COMMANDS TO-LABEL=ENDE, IF=*JV(CONDITION=((JV.E.1,12,4)=C'ENDE')) (OUT) % CJC0010 SKIP COMMAND: CONDITION = TRUE (IN) /.ENDE REMARK **** TESTJOB BEENDET **** (IN) / SHOW-JV JV=JV.MON (OUT) $R 00FFJ4V05 J0672010-08-080722012010-08-08072201TESTJV *** PROGRAMM BEENDET *** ( ) (IN) / ASSIGN-SYSLST TO=*PRIMARY
Ablaufprotokoll OUT.E.TESTJV des Jobs TEST.ENTER
/ SET-JV-LINK JV-NAME=JV.DO.1 / SET-JV-LINK JV-NAME=JV.PROG / MODIFY-JV JV=JV.DO.1,SET-VALUE=C'GESTARTET' / START-EXE FROM-FILE=(LIB=ASS.PLAMLIB,ELEM=TESTJV), TEST-OPTIONS=*AID,MONJV=JV.PROG % BLS0517 MODULE 'TESTJV' LOADED *** TID: 0001005F *** TSN: 0FFJ ***************************************************************************** ********************** SRC_REF: 78 SOURCE: TESTJV PROC: TESTJV ***************************************************************************** ********* LNKBER = |.*ENTER :4V05:$COGNITAS.JV.E.1................................| *** CSWJV AUSGEFUEHRT *** $R 00FFJ4V05 J0672010-08-080722012010-08-08072201TESTJV *** CSWJV AUSGEFUEHRT *** *** PROGRAMM FORTGESETZT *** $R 00FFJ4V05 J0672010-08-080722012010-08-08072201TESTJV *** PROGRAMM FORTGESETZT *** *** PROGRAMM ENDSPURT *** $R 00FFJ4V05 J0672010-08-080722012010-08-08072201TESTJV *** PROGRAMM ENDSPURT *** / SHOW-JV JV=JV.MON $R 00FFJ4V05 J0672010-08-080722012010-08-08072201TESTJV *** PROGRAMM BEENDET *** / SHOW-JV JV=JV.PROG $T P / SKIP-COMMANDS TO-LABEL=ENDE /.ENDE WAIT-EVENT UNTIL=*JV(TIME-LIMIT=120,TIMEOUT-LABEL=TIME) % CJC0020 WAIT COMMAND: TASK ENTERED WAIT STATE AT 09:22:01 % CJC0022 WAIT COMMAND: TIMEOUT AT 09:24:01, SKIP TO TIMEOUT LABEL OR NEXT STEP /.TIME MODIFY-JV JV=(JV.E.1,12,4),SET-VALUE=C'ENDE' / EXIT-JOB SYSTEM-OUTPUT=*NONE % EXC0419 /LOGOFF AT 0924 ON 10-08-08 FOR TSN '0FFJ' % EXC0421 CPU TIME USED: 0.0540