Title: z/OS Job Control Language
1z/OS Job Control Language
2Notizen
3Ziele des Seminars
- Sprache JCL kennen lernen
- Syntax der JCL beherrschen
- fit in Datei-Formen werden
- Praxisbeispiele kennen lernen
- üben üben üben
- Besonderheiten
4Notizen
5Inhalt
- Einführung
- Job-Beschreibung, Step-Beschreibung
- Datei-Beschreibung (1)
- Datei-Beschreibung (2)
- Standard- und Dienstprogramme - Überblick
- Job-Steuerung, Step-Steuerung
- Datei-Beschreibung (3)
- Include-Gruppe, JCL-Prozedur
- Diskussion und Austausch
6Einführung
DD-Name
Warte- Schlange
Beding- ungen
Jobkarte
Para- meter
Initiator
Syntax
Literatur
Spool
Job
Include- Gruppe
Kom- mentar
Adress- raum
Step
Prozedur
7Notizen
8Notizen
9Einführung
- Bookmanager
- local im Intranet oder im Internet bei IBM
- Internetseiten
- siehe Suchmaschinen
- (z.B. http//www.isc.ucsb.edu/tsg/jcl.html)
- G.D.Brown
- JCL Jobcontrol Language im Betriebssystem z/OS
- 4. Auflage
- ISBN 978-3486273977 64,80
10Einführung
- Jakarta Commons Logging
- JEDI Code Library
- Johann Christian Lotter
- Jazzclub Lippstadt
- Jar Class Loader
- Johannes C. Laxander
- Job Control Language
11Einführung
- //A12345XX JOB CLASSA,MSGCLASST
- //STEP01 EXEC PGMKOPIEREN
- //EINGABE DD DISPSHR,DSNX.Y.Z
- //AUSGABE DD DISPOLD,DSNA.B.C
- //STEP02 EXEC PGMSORTIERE
- //SYSIN DD DISPSHR,DSNA.B.C
- //SYSOUT DD DISPOLD,DSND.E.F
- //STEP03 EXEC PGMDRUCKEN
- //INPUT DD DISPSHR,DSND.E.F
- //DRUCK DD SYSOUTF
- //SYSPRINT DD SYSOUT
Step
Job
Step
Step
Jobanweisung
Stepanweisung
DD-Anweisung
12Einführung
Input
JES2
JES3
Input
Conversion Interpretation
Conversion Interpretation
Main Device Scheduling
Generalized Main Scheduling
Job Scheduling for Execution
Job Scheduling for Execution
Output
Output
Purge
Purge
13Einführung
- Eingabe-, Ausgabe-Warteschlangen (1)
Warteschlangen
Adressräume
14Einführung
- Eingabe-, Ausgabe-Warteschlangen (2)
Adressräume
Ausgabe-Warteschlangen
15Einführung
- JCL-Anweisungen Überblick
16Notizen
17Einführung
//name op-code param1,param2... kommentar
1 3 12 17
71 72
18Einführung
//name op-code param1,param2...
num
72
//name op-code param1,param2-1...
num
// param2-2,param3...
num
4 16
72
19Einführung
- JCL-Anweisungen - Parameterarten
- Positionsparameter
- //XV10733A JOB RUV,SEIDLER
- //XV10733A JOB ,SEIDLER
- Schlüsselwortparameter
- //XV10733A JOB ...,CLASSA,MSGCLASSY
- Subparameter
- //ddname DD DSNdatei.a.b,
DISP(NEW,CATLG,DELETE) - Positions- und Schlüsselwortparameter
- //XV10733A JOB ,SEIDLER,CLASSA,MSGCLASSY
20Notizen
21Einführung
- Kapitel 1.1 Auswahl und Test User-ID
- Kapitel 1.2 Bibliothek erstellen
22Notizen
23Notizen
24Notizen
25Inhalt
- Einführung
- Job-Beschreibung, Step-Beschreibung
- Datei-Beschreibung (1)
- Datei-Beschreibung (2)
- Standard- und Dienstprogramme - Überblick
- Job-Steuerung, Step-Steuerung
- Datei-Beschreibung (3)
- Include-Gruppe, JCL-Prozedur
- Diskussion und Austausch
26Job-Beschreibung, Step-Beschreibung
MSG LEVEL
REGION
TYPRUN
Jobkarte
MSG CLASS
Initiator
PARM
COND
NOTIFY
EXEC
Job
Accounting
Syntax
Name
Step
Programm
Prozedur
27Notizen
28Notizen
29Job-Beschreibung, Step-Beschreibung
- ist erste Anweisung
- definiert Beginn eines Jobs
- es gibt
- Namensfeld
- Operationsfeld
- Parameterfeld
- Standards beachten
30Job-Beschreibung, Step-Beschreibung
- JOB-Anweisung Abrechnungsinformation
- Syntax
- (accounting-number,accounting-information...)
- abhängig von Verrechnungskriterien wie
- Speicherplatz
- I/O-Einheiten
- CPU
- Hauptspeicherleistung
- Beispiel
- //JOBX JOB (3SLX510,000,00T NR0003)
- //JOB1 JOB (CPS4IT,TRAINING)
- //JOB2 JOB CPS4IT,TRAINING
31Job-Beschreibung, Step-Beschreibung
- JOB-Anweisung Programmierername
- Syntax
- ,programmierer-nameoptional
- Beispiel
- //JOB1 JOB (CPS4IT,TRAINING),R.SEIDLER
- //JOB2 JOB ,SEIDLER
- //JOB3 JOB (CPS4IT,TRAINING),MAYERHUBER
32Job-Beschreibung, Step-Beschreibung
- Kapitel 2.1 minimale Jobkarte erstellen
- Jobkarte erstellen
- Submit
- Ausgabe analysieren
33Job-Beschreibung, Step-Beschreibung
- Syntax
- TYPRUNHOLDSCANoptional
- Beispiel
- //JOB1 JOB (CPS4IT,TRAINING),
- // R.SEIDLER,TYPRUNSCAN
34Job-Beschreibung, Step-Beschreibung
- Syntax
- CLASSjobclassoptional
- Beispiel
- //JOB1 JOB (CPS4IT,TRAINING),CLASSA
- //JOB2 JOB (CPS4IT,TRAINING),CLASSC
Job Queue CLASSA CLASSC CLASSF
JOB1 JOB2 JOB4 JOB3
JOB6
JOB7
Spool
Initiator (CLASSA,C)
Initiator (CLASSF)
35Job-Beschreibung, Step-Beschreibung
- Syntax
- MSGCLASSclassoptional
- Beispiel
- //JOBX JOB (CPS4IT,TRAINING),SEIDLER,
- // CLASSC,MSGCLASSR
Input
MSGCLASSR JOB1 JOB2 . . . JOBn
Conversion
Execution
MSGCLASSA lokaler Drucker
Output
Purge
MSGCLASSX DUMMY Klasse
36Job-Beschreibung, Step-Beschreibung
- Syntax
- MSGLEVEL(statements,messages)
- statements 0,1,2
- messages 0,1(Die unterschiedlichen
Auswirkungen sehen wir uns während der Übungen
an.) - Beispiel
- //JOBX JOB ,SEIDLER,CLASSA,MSGLEVEL(1,1)
37Job-Beschreibung, Step-Beschreibung
- Kapitel 2.2 Jobkarte erweitern
- CLASS
- MSGCLASS
- verschiedene Angaben für die Parameter testen
38Notizen
39Job-Beschreibung, Step-Beschreibung
- Syntax
- TIME(minutes,seconds)
- Beispiel
- //JOB1 JOB ,SEIDLER,CLASSA,TIME(1,30)
- //JOB2 JOB ,SEIDLER,CLASSA,TIME(,30)
- //JOB3 JOB ,SEIDLER,CLASSC,TIME1
- //JOB4 JOB ,SEIDLER,CLASSK,TIMENOLIMIT
- //JOB5 JOB ,SEIDLER,CLASSX,TIME1440
40Job-Beschreibung, Step-Beschreibung
- Syntax
- REGION
- Beispiel
- //JOB1 JOB ,SEIDLER,CLASSA,REGION4096K
- //JOB2 JOB ,SEIDLER,CLASSC,REGION4M
- //JOB3 JOB ,SEIDLER,CLASSC,REGION0M
nnnnnnK mmmmM
41Job-Beschreibung, Step-Beschreibung
- Syntax
- COND(returncode,operator)
- Beispiel
- //JOBX JOB ,SEIDLER,CLASSC,COND(0,NE)
- //JOBY JOB ,SEIDLER,CLASSC,COND(8,LT)
42Job-Beschreibung, Step-Beschreibung
- Syntax
- NOTIFYuserid
- Beispiel
- //JOB1 JOB ,SEIDLER,CLASSA,COND(0,NE),
- // NOTIFYXV10733
- //JOB2 JOB ,SEIDLER,CLASSC,COND(8,LT),
- // NOTIFYSYSUID
Input
Conversion
Execution
Message
Output
3270-Terminal
Purge
43Job-Beschreibung, Step-Beschreibung
- JOB-Anweisung BYTES, LINES, PAGES
- Syntax
- BYTESzahl1
- LINESzahl2
- PAGESzahl3
- Beispiel
- //JOB1 JOB ,SEIDLER,CLASSA,COND(0,NE),
- // BYTES1000
- //JOB2 JOB ,SEIDLER,CLASSC,COND(8,LT),
- // LINES100,PAGES1000
44Job-Beschreibung, Step-Beschreibung
- Kapitel 2.3 Jobkarte erweitern
- NOTIFY
- REGION
- TIME
45Job-Beschreibung, Step-Beschreibung
- EXEC-Anweisung Überblick 1
- definiert Beginn eines Steps
- ruft Programm oder Prozedur auf
- beendet vorherigen Step
- es gibt
- Namensfeld
- Operationsfeld
- Parameterfeld
46Job-Beschreibung, Step-Beschreibung
- EXEC-Anweisung Überblick 2
- Syntax
- //stepname EXEC pos-par,schl-par
- Beispiel
- //JOB1 JOB ,SEIDLER,CLASSX,MSGCLASSX
- //STEP1 EXEC PGMIEBGENER
- . . .
- //STEP2 EXEC PGMIEHLIST
- . . .
- //STEP3 EXEC PROCSORT
- . . .
47Job-Beschreibung, Step-Beschreibung
- Syntax
- PGMprogramm-name
- Beispiel
- //JOB1 JOB ,SEIDLER,CLASSX,MSGCLASSX
- //STEP1 EXEC PGMIEBGENER
- . . .
- //STEP2 EXEC PGMMYSORT
- //STEPLIB DD DSNuserlib,DISPSHR
SYS1.LINKLIB
48Job-Beschreibung, Step-Beschreibung
- Syntax
- PROCprozedur-name
- Beispiel
- //JOB1 JOB ,SEIDLER,CLASSX,MSGCLASSX
- //STEP1 EXEC PROCDRUCKEN
- . . .
- //STEP2 EXEC KOPIEREN
SYS1.PROCLIB
49Job-Beschreibung, Step-Beschreibung
- Kapitel 2.4 Jobstep erstellen
- Kapitel 2.5 einen 2. Step hinzufügen
50Notizen
51Job-Beschreibung, Step-Beschreibung
- Syntax
- PARMinformation
- Beispiel
- //JOBX JOB ,SEIDLER,CLASSX,MSGCLASSX
- //STEP1 EXEC PGMMYPROC,PARMTEST
52Job-Beschreibung, Step-Beschreibung
- Syntax
- TIME(minutes,seconds)
- Beispiel
- //STEP1 EXEC PGMPGM01,TIME(1,30)
- //STEP2 EXEC PGMPGM02,TIME(,15)
- //STEP3 EXEC PGMPGM03,TIMENOLIMIT
53Job-Beschreibung, Step-Beschreibung
- Syntax
- REGION
- Beispiel
- //JOBX JOB ,SEIDLER,CLASSX,MSGCLASSX
- //STEP1 EXEC PGMMYPROG,REGION1024K
nnnnnnK mmmmM
54Job-Beschreibung, Step-Beschreibung
- Syntax
- COND
- Detaillierung später
(code,op,stepname) EVEN ONLY ((code,op,stepname
),(code,op,stepname)...,EVEN) ((code,op,ste
pname),(code,op,stepname)...,ONLY)
55Job-Beschreibung, Step-Beschreibung
- Kapitel 2.6 den 2. Step abhängig von COND laufen
lassen bzw. nicht laufen lassen
56Notizen
57Inhalt
- Einführung
- Job-Beschreibung, Step-Beschreibung
- Datei-Beschreibung (1)
- Datei-Beschreibung (2)
- Standard- und Dienstprogramme - Überblick
- Job-Steuerung, Step-Steuerung
- Datei-Beschreibung (3)
- Include-Gruppe, JCL-Prozedur
- Diskussion und Austausch
58Datei-Beschreibung (1)
Work File
DD-Name
INPUT File
OUTPUT File
DATA
IEBGENER
DLM
Update File
SYSOUT
SORT
DUMMY
HOLD
59Notizen
60Notizen
61Datei-Beschreibung (1)
- DD-Anweisung (1) Überblick
- Verwendung bei Step / Programm
- Art der Verwendung
- Input / Output / Update / Work
- Art des Datenträgers
- Drucker / Band / Platte / optische Platten
- Lebensdauer
- permanent / temporär / Systemeingabe /
Systemausgabe
62Datei-Beschreibung (1)
- DD-Anweisung (1) Bezug zum Programm
- COBOL
- SELECT EINGABE ASSIGN TO LESE1
- SELECT AUSGABE ASSIGN TO DRUCK1
- Beispiel
- //JOBX JOB (3SLX510,000,00T NR0003), . . .
- //STEP1 EXEC PGMMYPROG,REGION1024K
- //LESE1 DD DSNXV10733.TEST.DATEI,DISPSHR
- //DRUCK1 DD SYSOUT
63Datei-Beschreibung (1)
- DD-Anweisung (1) Überblick
Permanente / temporäre Dateien
Instream- Dateien
Permanente / temporäre Dateien
Programm
Eingaben
Ausgaben
Permanente / temporäre Dateien
System- ausgaben
Permanente / temporäre Dateien
64Notizen
65Datei-Beschreibung (1)
- Syntax
- //ddname DD pos-parschl-par... kommentar
- Beispiel
- //JOBX JOB (3SLX510,000,00T NR0003), . . .
- //STEP01 EXEC PGMZINS
- //EINGABE DD
- 000119811982198319841985
- 000219861987198819891990
- 000319911992199319941995
- //AUSGABE DD SYSOUT
66Datei-Beschreibung (1)
- Syntax
-
- //ddname DD par...
kommentar - DATA
- Beispiel
- //JOBX JOB (3SLX510,000,00T NR0003), . . .
- //STEP01 EXEC PGMZINS
- //EINGABE DD
- 000119811982198319841985
- 000219861987198819891990
- 000319911992199319941995
- //AUSGABE DD SYSOUTA
67Notizen
68Notizen
69Datei-Beschreibung (1)
- Syntax
- DLMdelimiter
- Beispiel
- //JOBX JOB (3SLX510,000,00T NR0003), . . .
- //STEP01 EXEC PGMZINS
- //EINGABE DD ,DLM??
- 000119811982198319841985
- 000219861987198819891990
- 000319911992199319941995
- //AUSGABE DD SYSOUTA
- ??
- //SYSPRINT DD DSNXV10733.ispf.datei,DISPSHR
70Datei-Beschreibung (1)
- Beispiel 2
- //JOBX JOB (3SLX510,000,00T NR0003), . . .
- //STEP01 EXEC PGMZINS
- //EINGABE DD DATA,DLM
- 000319911992199319941995
- //AUSGABE DD SYSOUTA
-
- //SYSPRINT DD DSNXV10733.ispf.datei,DISPSHR
71Datei-Beschreibung (1)
72Notizen
73Datei-Beschreibung (1)
- DD-Anweisung SYSOUT, HOLD
- Syntax
- class
- SYSOUT (class,INTRDR,form-name)
-
- Beispiel
- //JOBX JOB (3SLX510,000,00T NR0003), . . .
- //STEP01 EXEC PGMZINS
- //EINGABE DD ...
- //SYSPRINT DD SYSOUT
- //OUTSTAT DD SYSOUT(V,,R01)
- //SYSOUT DD SYSOUT(,INTRDR)
- //OUTSYS DD SYSOUTF,HOLDYES
74Datei-Beschreibung (1)
- DD-Anweisung SYSOUT, HOLD
- Syntax
- nnn
- COPIES
- (nnn,(grp-wert,grp-wert...))
- Beispiel
- //SYSPRINT DD SYSOUTV,COPIES3
75Datei-Beschreibung (1)
- DD-Anweisung SYSOUT, HOLD
- Syntax
- //ddname DD DUMMYparameter
- //EINGABE DD DUMMY
- //AUSGABE DD DUMMY
- Beispiel
- //JOBX JOB (3SLX510,000,00T NR0003), . . .
- //STEP01 EXEC PGMZINS
- //EINGABE DD ...
- //SYSPRINT DD DUMMY
Eingabe
Ausgabe
76Notizen
77Datei-Beschreibung (1)
- Einfache Anwendungen IEBGENER
- Syntax (symbolisch)
- //stepname EXEC PGMIEBGENER
- //SYSUT1 - Eingabe
- //SYSUT2 - Ausgabe
- //SYSPRINT - Protokoll
- //SYSIN - Steueranweisung
78Notizen
79Datei-Beschreibung (1)
- Kapitel 3.1 Lesen einer Instream-Datei
- Kapitel 3.2 Lesen einer Dummy-Datei
- Kapitel 3.3 Schreiben in das Nirwana
80Notizen
81Inhalt
- Einführung
- Job-Beschreibung, Step-Beschreibung
- Datei-Beschreibung (1)
- Datei-Beschreibung (2)
- Standard- und Dienstprogramme - Überblick
- Job-Steuerung, Step-Steuerung
- Datei-Beschreibung (3)
- Include-Gruppe, JCL-Prozedur
- Diskussion und Austausch
82Datei-Beschreibung (2)
DSN
CATLG
VIO
DISP
UNIT
SPACE
DCB
TRK
SHR
PASS
VOL
KEEP
MOD
BLK
83Notizen
84Notizen
85Datei-Beschreibung (2)
- DD-Anweisung (2) Überblick
- bisher
- Systemausgabe
- Systemeingabe
- Dummy
- neu
- permanente Dateien auf Platte oder Band
- temporäre Dateien auf Platte oder Band
- verschiedene Organisationsformen (VSAM, seq.)
86Datei-Beschreibung (2)
- Syntax
- DSNAMEdateiname
- Beispiel
- //SYSIN DD DISPSHR,DSNXV10733.PERS.DATEN
- //SYSPRINT DD DISP(,CATLG,DELETE),UNITSYSDA,
- // SPACE(TRK,1),DCB(LRECL80,RECFMFB
), - // DSNXV10733.PERS.AUSGABE
- //WORKFILE DD DSNTEMP,DISP(NEW,PASS),UNITSYSD
A, - // SPACE(TRK,1)
- //NOCHWAS DD DUMMY
permanente Dateien temporäre Dateien Dummy Dateien
87Datei-Beschreibung (2)
- Syntax
- DISPstatus
- DISP(status,normal-end,abnormal-end)
- Anmerkungen zur FolgeseiteFall 1 Der
Datenbestand existiert bereits bei Jobbeginn oder
wird während des Jobs mit KEEP oder CATLG
behandelt.Fall 2 Der Datenbestand existiert
nicht bei Jobbeginn und wird während des Jobs
nicht mit KEEP oder CATLG behandelt.
88Notizen
89Datei-Beschreibung (2)
- Datenbestände DISP Tabelle
90Notizen
91Datei-Beschreibung (2)
- Syntax
- UNITdevice-typegroup-name
- VOLUMESERvol-nummer
REEL
TAPE
etc.
SYSDA
92Notizen
93Datei-Beschreibung (2)
- Datenbestände SPACE (ohne SMS)
- Syntax
- blklen,
- SPACE( TRK, (prim,sec,dir),RLSE)
- CYL,
- Beispiel
- //SYSIN DD DISPSHR,DSNXV10733.PERS.DATEN
- //SYSPRINT DD DISP(,CATLG,DELETE),UNITSYSDA,
- // SPACE(TRK,1),DCB(LRECL80,RECFMFB
), - // DSNXV10733.PERS.AUSGABE
- //WORKFILE DD DSNTEMP,DISP(NEW,PASS),UNITSYSD
A, - // SPACE(TRK,(15,30))
94Notizen
95Datei-Beschreibung (2)
- Datenbestände Eigenschaften
- Syntax
- DCB(subparm,subparm . . .)
- Data Control Block
- Beispiel
- //AUSGABE DD DISP(,CATLG,DELETE),UNITSYSDA,
- // SPACE(TRK,1),DSNXV10733.PERS.AUSGA
BE, - // DCB(LRECL80,RECFMFB) oder
- // LRECL80,RECFMFB
96Notizen
97Datei-Beschreibung (2)
- Reihenfolge ist zu beachten
- aus Programm
- aus DD-Anweisung
- aus Definition der Datei auf Platte/Band
- Anmerkung
- Es gibt keine Faustregel, was wo angegeben werden
soll eine genaue Kenntnis der Anwendung ist
erforderlich.
98Notizen
99Datei-Beschreibung (2)
- Syntax
- LABELseq-nummer,labeltyp
- labeltypeSLNSLNLBLP
100Datei-Beschreibung (2)
- Datenbestände EXPDT, RETPD
- Syntax
- EXPDTyyddd oder
- EXPDTyyyy/ddd
- RETPDnnnn
101Datei-Beschreibung (2)
- Datenbestände Katalogeintrag
102Notizen
103Datei-Beschreibung (2)
- Kapitel 4.1 Anlegen PS-Datei mit IEFBR14
- Kapitel 4.2 Anlegen PO-Datei
- Kapitel 4.3 Kopieren Datei in PO-Member
- Kapitel 4.4 Kopieren PO-Member
- jeweils
- Job wegschicken
- Output analysieren
104Notizen
105Inhalt
- Einführung
- Job-Beschreibung, Step-Beschreibung
- Datei-Beschreibung (1)
- Datei-Beschreibung (2)
- Standard- und Dienstprogramme - Überblick
- Job-Steuerung, Step-Steuerung
- Datei-Beschreibung (3)
- Include-Gruppe, JCL-Prozedur
- Diskussion und Austausch
106Standard- und Dienstprogramme
ICEMAN
IEBCOPY
IEFBR14
DFSORT
IEBCOMPR
IEHLIST
IEBGENER
IDCAMS
107Notizen
108Notizen
109Datei-Beschreibung (2)
- Kapitel 5.1 Anlegen DSN mit IEFBR14
- Kapitel 5.2 Editieren Datei im EDIT
- Kapitel 5.3 Kopieren Datei mit IEBGENER
- Kapitel 5.4 Löschen DSN mit IEFBR14
110Notizen
111Notizen
112Notizen
113Inhalt
- Einführung
- Job-Beschreibung, Step-Beschreibung
- Datei-Beschreibung (1)
- Datei-Beschreibung (2)
- Standard- und Dienstprogramme - Überblick
- Job-Steuerung, Step-Steuerung
- Datei-Beschreibung (3)
- Include-Gruppe, JCL-Prozedur
114Job-Steuerung, Step-Steuerung
COND
Beding- ungen
RC
THEN
IF
RUN
Rück- bezug
ABEND
ABENDCC
ENDIF
ELSE
115Notizen
116Notizen
117Job-Steuerung, Step-Steuerung
- Ziel
- Jobablauf kontrollieren
- Stepablauf kontrollieren
- keine manuelle Eingriffe erforderlich
- Methoden
- Bedingungen für vorzeitiges Ende eines Jobs
- Bedingungen für Unterdrücken eines Steps
- Bedingungen für Unterdrücken oder Ausführens von
Steps oder Stepfolgen
118Job-Steuerung, Step-Steuerung
- Allgemeines Regeln für Stepsteuerung
- Grundregeln
- maximal 255 Steps pro Job
- Reihenfolge ist top-down
- bei Abend wird alles Folgende unterdrückt
- Formelles Ende eines Steps
- normales Ende, Programm liefert Return-Code
- abnormales Ende, ABEND-Code SxxxUnnnn
- Step wird unterdrückt (NOT EXECUTED oder FLUSH)
119Job-Steuerung, Step-Steuerung
- Syntax
- COND(zahl,operator)
- COND((zahl,operator), (zahl,operator),...)
- Beispiel
- //JOBX JOB ,SEIDLER,CLASSA,COND(0,NE)
- //JOBY JOB ,SEIDLER,CLASSA,COND(4,LE)
- //JOBX JOB ,SEIDLER,CLASSA,COND((8,EQ),(12,
EQ))
120Job-Steuerung, Step-Steuerung
- Syntax
- COND(zahl,operator,step)
- CONDEVENONLY
- COND((zahl,operator,step),..., EVENONLY)
- Beispiel
- //STEP01 EXEC PGMPROG01
- //STEP02 EXEC PGMPROG02,COND(0,NE)
- //STEP03 EXEC PGMPROG03,
- // COND((4,LT,STEP01),(8,LT,STEP02),EVEN)
121Job-Steuerung, Step-Steuerung
122Notizen
123Job-Steuerung, Step-Steuerung
124Notizen
125Job-Steuerung, Step-Steuerung
- IF/THEN, ELSE, ENDIF Überblick
- dient zur Steuerung der Steps oder Stepfolgen
eines Jobs - Logik wie in Programmiersprachen
- 15 Stufen erlaubt
126Job-Steuerung, Step-Steuerung
- IF/THEN, ELSE, ENDIF Syntax
- Syntax
- //name IF bedingung THEN
- ja-Zweig
- //name ELSE
- nein-Zweig
- //name ENDIF
127Job-Steuerung, Step-Steuerung
- IF/THEN, ELSE, ENDIF Syntax Bedingungen
- Bedingungen
- step.RC operator zahl
- step.ABENDCC operator zahl
- step.ABEND operator T/F
- step.RUN operator T/F
EQ NE GE gt LE lt
GT gt LT lt NG gt NL lt
NOT AND OR
128Job-Steuerung, Step-Steuerung
- Test auf höchsten bisherigen Returncode
- Test auf Returncode eines Steps
- Syntax RC op code oder step.RC op code
- Beispiel
- //STEP01 EXEC PGMPROG01
- . . .
- //IFTEST IF (RC lt 8) THEN
- //STEP02 EXEC PGMPROG02 etc.
- //IFTEST ELSE
- //STEP03 EXEC PGMPROG03 etc.
- //IFTEST ENDIF
- //STEP04 EXEC PGMPROG04
0 lt code lt 4096
GT gt LT lt NG gt NL lt
EQ NE GE gt LE lt
129Job-Steuerung, Step-Steuerung
- IF/THEN, ELSE, ENDIF ABENDCC
- Test auf zuletzt aufgetretenen ABEND-Code
- Test auf ABEND-Code eines Steps
- Syntax
- ABENDCC op code oder step.ABENDCC op code
- code ist
- System-ABEND-Code
- Sxxx mit xxx x001, ... , xFFF
- User-ABEND-Code
- Unnnn mit nnnn 0001, ... ,4095
EQ NE
130Job-Steuerung, Step-Steuerung
- IF/THEN, ELSE, ENDIF ABEND
- Test auf irgendeinen aufgetretenen ABEND
- Test auf ABEND eines Steps
- Syntax
- ABENDTRUE oder step.ABENDTRUE
- ABENDFALSE oder step.ABENDFALSE
- NOT ABEND oder NOT step.ABEND
- ABEND oder step.ABEND
131Job-Steuerung, Step-Steuerung
- Test, ob bestimmter Step ausgeführt wurde
- Syntax
- step.RUNTRUE oder step.RUN
- step.RUNFALSE oder NOT step.RUN oder step.RUN
132Notizen
133Job-Steuerung, Step-Steuerung
- IF/THEN, ELSE, ENDIF sonstiges
- Unterdrückte Step werden bei Tests nicht
berücksichtigt (außer bei RUN) - COND bei EXEC wird innerhalb IF geprüft
- manche Systemabends führen zu generellem Abbruch
des Jobs - IF vor 1. Step Auswertung nach 1. Step!
- Prioritätenfolge
- Klammer, NOT, AND, OR
- von links nach rechts
134Notizen
135Job-Steuerung, Step-Steuerung
- Bezug / Rückbezug Überblick
- Verwendung
- dsname
- Datei ist katalogisiert
- .ddname
- ddname im gleichen Step
- .step.ddname
- ddname eines anderen Steps
- .step.procstep.ddname
- ddname eines Steps in einer Prozedur
136Job-Steuerung, Step-Steuerung
- Bezug / Rückbezug Bezugnamen
- bei DD-Anweisungen
- VOLUME
- VOLREFdsname
- DCB-Parameter
- DCBdsname
- zusätzliche Parameter überschreiben
- LIKE-Parameter (nur SMS)
- LIKEdsname (später)
137Job-Steuerung, Step-Steuerung
- Bezug / Rückbezug Rückbezugnamen 1
- bei DD-Anweisungen
- DSN-Parameter
- VOLUME
- VOLREFdsname
- DCB-Parameter
- DCBdsname
- zusätzliche Parameter überschreiben
- REFDD-Parameter (nur SMS)
- OUTPUT-Parameter (später)
138Job-Steuerung, Step-Steuerung
- Bezug / Rückbezug Rückbezugnamen 2
- Syntax
- DSNAME.step.ddname
- Beispiel
- //COB2 EXEC PGMIGYCRCTL,PARMOBJECT
- //SYSLIN DD DSNOBJLIB(MEM1),DISP(,PASS),
- // UNITSYSDA,SPACE(TRK,(5,2))
- . . .
- //LKED EXEC PGMHEWL, PARMXREF,MAP
- //SYSLIN DD DSN.COB2.SYSLIN,DISP(OLD,DELETE)
- oder
- //SYSLIN DD DSNOBJLIB(MEM1),DISP(OLD,DELETE)
139Job-Steuerung, Step-Steuerung
- Kapitel 6.1a Anlegen PS-Datei-1
- Kapitel 6.1b Anlegen PS-Datei-2 mit Rückbezug
- Kapitel 6.2 Kopieren Datei mit eventueller
Neuanlage
140Notizen
141Inhalt
- Einführung
- Job-Beschreibung, Step-Beschreibung
- Datei-Beschreibung (1)
- Datei-Beschreibung (2)
- Standard- und Dienstprogramme - Überblick
- Job-Steuerung, Step-Steuerung
- Datei-Beschreibung (3)
- Include-Gruppe, JCL-Prozedur
- Diskussion und Austausch
142Datei-Beschreibung (3)
STEPLIB
Gene- rationen
reserv. Namen
Ver- kettung
JOBLIB
CLASS
Syntax
DEFAULT
GDS
GDG
DEST
SMS
COPIES
FORMS
143Notizen
144Notizen
145Datei-Beschreibung (3)
- reservierte DD-Namen Überblick
- SYSMDUMP - Dump
- SYSABEND, SYSUDUMP - formatierter Dump
- SYSCHK, SYSCHKEOV - Checkpointing
- JOBCAT, STEPCAT - Katalogangabe
- JOBLIB, STEPLIB - Ladebibliotheken
146Datei-Beschreibung (3)
- reservierte DD-Namen JOBLIB, STEPLIB
- Syntax
- //JOBLIB DD DISPSHR,DSNbibliothek1
- //STEPLIB DD DISPSHR,DSNbibliothek2
147Datei-Beschreibung (3)
- reservierte DD-Namen JOBLIB, STEPLIB (PAP)
J O B l ä u f t l o s
STEPLIB definiert?
User-Bibliothek durchsuchen
JOBLIB definiert?
System-Bibliothek durchsuchen
Abbruch
148Notizen
149Datei-Beschreibung (3)
- Syntax
- //ddname DD etc.
- // DD etc.
- // DD etc.
- Regeln
- DSORG gleich (PS oder PDS evtl. PSPDS-Mem)
- RECFM gleich
- LRECL gleich bei FB / Achtung bei VB
- BLKSIZE der ersten Datei max.
150Datei-Beschreibung (3)
- PS-Datei
- für Anwendungsprogramm ist es logisch eine
einzige Datei - EOF nach der letzten Datei
- PDS-Datei
- für Anwendungsprogramm eine Bibliothek mit
mehreren Ebenen - Anzahl Extents max. 123
151Datei-Beschreibung (3)
- Generationsdateien Überblick
- Verwaltung von Dateien, die regelmäßig erstellt
bzw. bearbeitet werden - Generationsnummern
- (0) aktuelle Generation
- (-1) vorherige Generation bis (-n)
- (1) neu zu erstellende Generation diese muss
katalogisiert werden - absolute Bezeichnungen möglich
- DSNdatei.G3459V00
152Datei-Beschreibung (3)
- zu GDS muss eine GDG existieren
- Beispiel
- //XV10733 JOB etc.
- //------------- Anlegene GDG
- //DEFGDG EXEC PGMIDCAMS
- //SYSPRINT DD SYSOUT
- //SYSIN DD
- DEFINE GDG (NAME(XV10733.LAGER.BESTAND) -
- LIMIT(12) SCRATCH)
153Datei-Beschreibung (3)
- Modellsatz
- heute nicht mehr notwendig wegen SMS
- Beispiel
- //STEP1 EXEC PGMP88N991
- //DDSE01 DD DISPSHR,DSNXV10733.LAGER.BESTAND(0)
- //DDSE02 DD DISPSHR,DSN-XV10733.AEND
- //DDSA01 DD DSNXV10733.LAGER.BESTAND(1),
- // DISP(,CATLG,CATLG),UNITSYSDA,SPACE(CY
L,1), - // DCBXV10733.LAGER.MODELL oder
- // DCBRECFM etc.
154Notizen
155Datei-Beschreibung (3)
- Generationsdateien weitere Möglichkeiten
- Nutzen aktuelle bzw. vorige Generation
- mit DSNltnamegt(0),DISP... bzw.
- mit DSNltnamegt(-1),DISP...
- Nutzen alle Generationen
- mit DSNltnamegt,DISP...
- Ändern GDG-Definitionen
- mit IDCAMS und ALTER-Befehl
- Löschen GDG
- mit IDCAMS und DELETE-Befehl
156Notizen
157Datei-Beschreibung (3)
- Kapitel 7.1 Anlegen PO-Datei als Ladebibliothek
- Kapitel 7.2 Job erstellen mit STEPLIB
- Kapitel 7.3 Job erstellen mit JOBLIB
- Kapitel 7.4 Job erstellen mit falschem Pgmname
- jeweils
- Job wegschicken
- Output analysieren
158Datei-Beschreibung (3)
- Kapitel 7.5 Anlegen GDG-Base-Entry
- Kapitel 7.6 Kopieren Instream-Daten -gt GDS (3)
- Kapitel 7.7 Ausdrucken GDS(aktuell)
- Kapitel 7.8 Ausdrucken alle GDSe
- Kapitel 7.9 Löschen GDG mit allen DSN
- jeweils
- Job wegschicken
- Output analysieren
159Notizen
160Notizen
161Datei-Beschreibung (3)
- OUTPUT-Anweisung Überblick
- Syntax
- //name OUTPUT parameter,parameter
- Parameter
- DEFAULT(YESNO)
- CLASS(class)
- FORMS(formname)
- COPIES(nnn)
- DESTziel
162Datei-Beschreibung (3)
- OUTPUT-Anweisung Überblick Beispiel
- Beispiel
- //OUT1 OUTPUT COPIES2
- //OUT2 OUTPUT DESTEH2SEIR
- //OUT3 OUTPUT DEFAULTYES,CLASS,COPIES2
- //OUT4 OUTPUT CLASS,DESTEH2SECX
- //STEP1 EXEC PGMPROGX
- //SYSPRINT DD SYSOUT(,),OUTPUT.OUT2
- //SYSUT2 DD SYSOUTT
- //SYSUT3 DD SYSOUT(,),OUTPUT.OUT4
163Datei-Beschreibung (3)
- OUTPUT-Anweisung CLASS, FORMS, COPIES, DEST
- CLASS
- (Druck)Ausgabeklasse
- FORMS
- Formularname
- COPIES
- Anzahl der Kopien
- DEST
- Druckername
164Notizen
165Datei-Beschreibung (3)
- OUTPUT-Anweisung weitere Parameter
- TITLE
- NAME
- ADDRESS
- DEPT
- BUILDING
- ROOM
- etc.
166Notizen
167Datei-Beschreibung (3)
- OUTPUT-Anweisung only to confuse the russians .
. .
- //XV10733A JOB CLASSltclassgt,MSGCLASSltmsgclassgt
. . . - //outname1 OUTPUT DEFAULTY,CLASS,COPIESltz1gt
- //outname2 OUTPUT CLASSltclsout2gt,COPIESltz2gt
- //outname3 OUTPUT CLASSltclsout3gt,COPIESltz3gt
- //stepnam1 EXEC PGMltpgm1gt
- //outnam11 OUTPUT DEFAULTY,CLASSltclsout11gt
- //outnam12 OUTPUT CLASSltclsout12gt,COPIESltz12gt
- //outnam13 OUTPUT CLASSltclsout13gt,COPIESltz13gt
- //ddname11 DD SYSOUTltcls11gt
- //ddname12 DD SYSOUTltcls12gt,OUTPUT.ltoutnam
12gt - //ddname13 DD SYSOUT(,),OUTPUT.ltoutnam13gt
- //stepnam2 EXEC PGMltpgm2gt
- //outnam23 OUTPUT CLASSltclsout23gt,COPIESltz23gt
- //ddname21 DD SYSOUTltcls21gt
- //ddname22 DD SYSOUTltcls22gt,OUTPUT.ltstepna
m1gt.ltoutnam12gt - //ddname23 DD SYSOUT(,),OUTPUT(.ltoutname2gt
,.ltoutname3gt)
168Notizen
169Datei-Beschreibung (3)
- SMS-Speicherverwaltung Überblick
TSO ALLOCATE
JCL //DD1 DD
AMS (IDCAMS)
MANAGEMENT CLASSES
STORAGE CLASSES
SMS AUTOMATIC CLASS SELECTIONS ROUTINES
DATA CLASSES
Zuordnungsroutinen
Datenbestand
170Datei-Beschreibung (3)
- SMS-Speicherverwaltung DATACLAS
171Datei-Beschreibung (3)
- SMS-Speicherverwaltung RECFM, RECORG, LRECL etc.
- RECFM nicht VSAM
- RECORG VSAM
- LRECL
- exakte Länge bei RECFMFFB
- maximale Länge bei RECFMVVB
- KEYLEN, KEYOFF nur VSAM
172Notizen
173Datei-Beschreibung (3)
- SMS-Speicherverwaltung SPACE, AVGREC
- Verwendung
- Festlegen des Platzbedarf
- Syntax
- SPACE(arlen,(prim,sec),RLSE,AVGRECUKM
- SPACE(arlen,(prim,sec,dir),RLSE,AVGRECUK
M - Definition
- arlen durchschnittliche Satzlänge
- prim anfängliche Anzahl Sätze
- sec optionale Erweiterungsmenge
- U,K,M Faktor1,1K,1M
174Datei-Beschreibung (3)
- SMS-Speicherverwaltung DSNTYPE
175Datei-Beschreibung (3)
- SMS-Speicherverwaltung LIKE, REFDD
- SYNTAX
- LIKEdatasetname
- Beispiel
- //AUSG DD DSNXV10733.KUND.BEST,DISP(,CATLG,DE
LETE), - // LIKEXV10733.KUND.BASIS
Datenbestand 1
RECFM LRECL SPACE KEYLEN . . .
Datenbestand 2
176Notizen
177Datei-Beschreibung (3)
- SMS-Speicherverwaltung STORCLAS
- Beispiel
- //AUSG DD DSNXV10733.KUND.BEST,DISP(,CATLG,DE
LETE), - // DATACLASDATAFS,STORCLASSTANDARD
178Datei-Beschreibung (3)
- SMS-Speicherverwaltung MGMTCLAS
- Beispiel
- //AUSG DD DSNXV10733.KUND.BEST,DISP(,CATLG,DE
LETE), - // DATACLASDATAFS,STORCLASSTANDARD,
- // MGMTCLASSTANDARD
179Datei-Beschreibung (3)
- Kapitel 7.10 welche STORCLAS in Firma
- Kapitel 7.11 welche MGMTCLAS in Firma
180Notizen
181Inhalt
- Einführung
- Job-Beschreibung, Step-Beschreibung
- Datei-Beschreibung (1)
- Datei-Beschreibung (2)
- Standard- und Dienstprogramme - Überblick
- Job-Steuerung, Step-Steuerung
- Datei-Beschreibung (3)
- Include-Gruppe, JCL-Prozedur
- Diskussion und Austausch
182Include-Gruppe, JCL-Prozedur
INCLUDE
Variable
JCLLIB
MEMBER
ORDER
SET
Syntax
Bibliothek
Instream
Include- Gruppe
Job- Protokoll
Rück- bezug
ver- schachteln
Prozedur
183Notizen
184Notizen
185Include-Gruppe, JCL-Prozedur
- Definition
- Sequenz von JCL-Anweisungen
- wieder verwendbar
- zentrale Speicherung möglich
- Parameter und/oder DD-Anweisungen
- ergänzen
- überschreiben
- aufheben
186Include-Gruppe, JCL-Prozedur
- JCLLIB-Anweisung Überblick
- Verwendung
- stehen allen Jobs zur Verfügung
- im Normalfall kein Schreibrecht
- eigene Bibliotheken möglich
- nach JOB-Anweisung
- vor 1. EXEC-Anweisung
187Include-Gruppe, JCL-Prozedur
- Syntax
- //name JCLLIB ORDERbibliothekoder
- //name JCLLIB ORDER(bibl1,bibl2,bibl3..
.) - Beispiel
- //JOBX JOB ,SEIDLER,. . .
- //PROZLIB JCLLIB ORDERXV10733.PROZ.JCL
- //STEP1 EXEC PROCPROZ1
188Include-Gruppe, JCL-Prozedur
- INCLUDE-Anweisung Überblick
- Verwendung
- fast alle JCL-Anweisungen möglich außer
- JOB
- PROC / PEND
- JCLLIB
- DD bzw. DD DATA
- bis 15 INCLUDE-Anweisungen verschachteln
189Include-Gruppe, JCL-Prozedur
- INCLUDE-Anweisung Member 1
- Beispiel
- JCLGRP1 in XV10733.PROZ.JCL
- //STEP1 EXEC PGMIEBGENER
- //SYSUT1 DD DISPSHR,DSNXV10733.TEST1.DATA
- //SYSUT2 DD DISPSHR,DSNXV10733.TEST2.DATA
- //SYSPRINT DD SYSOUT
- //SYSIN DD DUMMY
- Übernahme der INCLUDE-Gruppe
- //JOBX JOB ,SEIDLER,. . .
- //BIBL1 JCLLIB ORDERXV10733.PROZ.JCL
- // INCLUDE MEMBERJCLGRP1
190Include-Gruppe, JCL-Prozedur
- INCLUDE-Anweisung Member 2
- Beispiel Ergebnis
- JCLGRP1 in XV10733.PROZ.JCL
- //JOBX JOB ,SEIDLER,. . .
- //BIBL1 JCLLIB ORDERXV10733.PROZ.JCL
- // INCLUDE MEMBERJCLGRP1
- XXSTEP1 EXEC PGMIEBGENER
- XXSYSUT1 DD DISPSHR,DSNXV10733.TEST1.DATA
- XXSYSUT2 DD DISPSHR,DSNXV10733.TEST2.DATA
- XXSYSPRINT DD SYSOUT
- XXSYSIN DD DUMMY
191Include-Gruppe, JCL-Prozedur
- Parametrisierung der Prozedur
- maximal 8 Stellen
- vorangesetzt bei Benutzung
- kein vorangesetzt bei Belegung
- Festlegung des Wertes
- mit SET-Anweisung vor erster Verwendung
- als Defaultwert für Prozeduren
- als Parameter bei Aufruf der Prozedur
192Include-Gruppe, JCL-Prozedur
- Variable, SET Verwendung von Variablen
- Variablen sind Zeichenketten, max 255 Byte
- nur in Parameterfeld von JCL-Anweisungen
- können einzeln stehen
- können kombiniert werden (Achtung .)
- Systemvariablen sind immer verfügbar
193Include-Gruppe, JCL-Prozedur
- Variable, SET SET-Anweisung 1
- Beispiel
- JCLGRP2 in XV10733.PROZ.JCL
- //STEP1 EXEC PGMIEBGENER
- //SYSUT1 DD DISPSTATUS,DSNNAME
- //SYSUT2 DD DISPSHR,DSNXV10733.TEST2.DATA
- //SYSPRINT DD SYSOUT
- //SYSIN DD DUMMY
- Übernahme der INCLUDE-Gruppe
- //JOBX JOB ,SEIDLER,. . .
- //BIBL1 JCLLIB ORDERXV10733.PROZ.JCL
- // SET NAMEXV10733.TEST1.DATA,STATUSO
LD - // INCLUDE MEMBERJCLGRP2
194Include-Gruppe, JCL-Prozedur
- Variable, SET SET-Anweisung 2
- Beispiel Ergebnis
- //JOBX JOB ,SEIDLER,. . .
- //BIBL1 JCLLIB ORDERXV10733.PROZ.JCL
- // INCLUDE MEMBERJCLGRP2
- XXSTEP1 EXEC PGMIEBGENER
- XXSYSUT1 DD DISPOLD,DSNXV10733.TEST1.DATA
- XXSYSUT2 DD DISPSHR,DSNXV10733.TEST2.DATA
- XXSYSPRINT DD SYSOUT
- XXSYSIN DD DUMMY
- SET wird immer wirksam, selbst innerhalb eines
IF/THEN, das nicht durchlaufen wird.
195Include-Gruppe, JCL-Prozedur
- Verwendung
- ein oder mehrere vollständige Steps
- fast alle JCL-Anweisungen möglich außer
- JOB
- JCLLIB, JOBCAT, JOBLIB
- DD bzw. DD DATA
- steht in
- Standardbibl (z.B. SYS1.PROCLIB)
- Userbibl (mit JCLLIB definiert)
- Job (Instream-Prozedur)
196Include-Gruppe, JCL-Prozedur
- JCL-Prozedur Definition von Bibliotheksprozedure
n
- Syntax
- //procname PROC default-werte
- //procstepnm EXEC PGMpgmname
- // ltjcl-anweisungengt
- //name PEND
- Name der Prozedur Membername in Bibl. !!
197Include-Gruppe, JCL-Prozedur
- JCL-Prozedur Definition der Instream-Prozedur
- Syntax
- //jobname JOB ,name, . . .
- //procname PROC default-werte
- //procstepnm EXEC PGMpgmname
- // ltjcl-anweisungengt
- //name PEND
- . . .
- //STEP1 EXEC procname,var-zuweisungen
- Beschreibung der Proc vor dem Aufruf.
198Notizen
199Include-Gruppe, JCL-Prozedur
- JCL-Prozedur Benutzung der Prozedur
- beliebig oft aufrufbar in einem Job
- bis zu 15 Aufrufe verschachteln
- Syntax
- //stepname EXEC PROCprocname
- //procstep.ddname1 DD ltmodifiz.
DD-Anweisunggt - //procstep.ddname2 DD ltzusätzl.
DD-Anweisunggt - //procstep.STEPLIB DD
- // DD
- // DD ltmodifiz.
DD-Anweisunggt - // DD
200Include-Gruppe, JCL-Prozedur
- JCL-Prozedur Aufruf-Parameter 1
- BeispielProzedur PROC01 in T98MVS.JCLLIB
- //PROCXX PROC KLASSEZ,EINDATNULLFILE,
- // CPYDATNULLFILE,ANZ
- //COPY EXEC PGMIEBGENER
- //SYSIN DD DUMMY
- //SYSPRINT DD SYSOUTKLASSE,COPIESANZ
- //SYSUT1 DD DISPSHR,DSNEINDAT
- //SYSUT2 DD DISPOLD,DSNCPYDAT
- //SORT EXEC PGMICEMAN,TIME(1,0),COND(0,NE,C
OPY) - //SYSIN DD DISPSHR,DSNK.L.M(SORT01)
- //SYSOUT DD SYSOUTKLASSE,COPIESANZ
- //SORTIN DD DISPSHR,DSNCPYDAT
- //SORTOUT DD DISPOLD,DSNAUSDAT
- // PEND
201Include-Gruppe, JCL-Prozedur
- JCL-Prozedur Aufruf-Parameter 2
- Aufruf der ProzedurPROC01 in T98MVS.JCLLIB
- //JOBDEMO1 JOB CLASSA,MSGCLASS
- // JCLLIB ORDER(T98MVS.JCLLIB)
- // SET ANZ3
- //STEP01 EXEC PROCPROC01,KLASSE,
- // EINDATT98MVS.UMSATZ.FDKOELN,
- // CPYDATT98MVS.UMSATZ.KOPIE,
- // AUSDATT98MVS.UMSATZ.FDKOELN.SORT
, - // TIME.COPY(3,0),TIME.SORT,
- // COND.SORT(4,LT,COPY)
- Regeln für Parameter beachten
202Notizen
203Include-Gruppe, JCL-Prozedur
- JCL-Prozedur Aufruf-Parameter 3
- Arten und Wirkung
- Wertzuweisung an symbolische Variablen
- Wertzuweisung an Schlüsselwortparm in EXEC-Anw
- für jeden Prozedurstep oder
- für einen bestimmten Prozedurstep
- Wertzuweisungen bewirken
- Ergänzung von bisher unbestimmten Variablen
- Ersetzung von schon besetzten Variablen
- Aufhebung von besetzten Variablen
204Include-Gruppe, JCL-Prozedur
- JCL-Prozedur Aufruf-Parameter 4
- Regeln für Variablen
- Zeichenketten mit Sonderzeichen brauchen
- Wertzuweisungen gt Defaultwert gt SET (gt Fehler)
- Regeln für Schlüsselwortparameter
- Wertzuweisung in der Reihenfolge
- Werte, die für jeden Step in Prozedur gelten
- Werte, die für eine Prozedur gelten, in der
Reihenfolge der Steps in der Prozedur
205Include-Gruppe, JCL-Prozedur
- JCL-Prozedur Aufruf-Parameter 5
- Sonderregeln
- PGM nicht veränderbar
- TIME ohne Prozedurstep gilt für alle Steps
- PARM ohne Prozedurstep gilt für 1. Step
206Notizen
207Include-Gruppe, JCL-Prozedur
- JCL-Prozedur Aufruf mit OUTPUT und DD
- Wirkung
- Ergänzen, Ersetzen, Aufheben, Widerspruch (nur
DD-Anweisungen) - Regeln
- procstepname.ddname bzw.
- procstepname.outname
- zuerst Modifikationen
- Reihenfolge in Prozedur einhalten
- danach Hinzufügungen
- Reihenfolge in Prozedur
Vermeide Anweisungen ohne Prozedurstep !!
208Include-Gruppe, JCL-Prozedur
- JCL-Prozedur spezielle Möglichkeiten bei DD
- DD bzw. DD DATA
- weglassen in Prozedur / bei Aufruf hinzufügen
- formulieren mit DD DUMMY / bei Aufruf
modifizieren (mit Widerspruch) - DD-Namen als Datei definieren und aufrufen
- Verkettung
- komplette Verkettung in Prozedur bei Aufruf
- aber unveränderte Parameter leer lassen
- zusätzliche Angaben hinzufügen
- !! DD DUMMY beendet Verkettung
209Include-Gruppe, JCL-Prozedur
- COND
- // COND(0,NE,STEP01)
- // COND(0,NE,STEP01.COPY)
- DD-Anweisungen
- // DSN.STEP01.SYSUT1
- // DSN.STEP01.COPY.SYSUT1
- // VOLREF.STEP01.SYSUT1
- // VOLREF.STEP01.COPY.SYSUT1
- // REFDD.STEP01.SYSUT1
- // OUTPUT.STEP01.COPY.SYSUT1
210Notizen
211Include-Gruppe, JCL-Prozedur
- JCL-Prozedur verschachteln
- bis zu 15 Aufrufe von Prozeduren schachteln
- Variablenbesetzung
- Proc-Aufruf gt Default in Proc gt SET-Anweisung gt
Wert der Variablen auf Aufruf-JCL gt Fehler - Modifikationen nur für nächste Ebene möglich
- kein Verschachteln von Proc-Definitionen
212Include-Gruppe, JCL-Prozedur
- JCL-Prozedur Jobablauf-Protokoll
- Abhängigkeit von MSGLEVEL
- MSGLEVEL(1,x) heißt Ausgabe der JCLs
- Spalte 1-3
- // JCL-Anweisung im rufenden Job
- XX unverändert aus kat. Proc übernommen
- X/ modifiziert aus kat. Prozedur
- XX Kommentar in kat. Prozedur
- unveränderte Anweisung aus Instr.-Proc
- / modifiziert aus Instr.-Proc
- Kommentar in Instr.-Proc
- Kommentar / Steueranweisung für JES
213Include-Gruppe, JCL-Prozedur
- JCL-Prozedur Standard-Prozeduren
214Notizen
215Include-Gruppe, JCL-Prozedur
- Kapitel 8.1 Instream-Prozedur
- Kapitel 8.2 Instream-Prozedur - parametrisiert
- Kapitel 8.3 externe Prozedur
- Kapitel 8.4 externe Prozedur - parametrisiert
- Kapitel 8.5 Ü 8.1 bis 8.4 mit
- unterschiedlichen MSGLEVEL
- verschiedenen Modifikationen
- verschiedenen Ergänzungen
216Inhalt
- Einführung
- Job-Beschreibung, Step-Beschreibung
- Datei-Beschreibung (1)
- Datei-Beschreibung (2)
- Standard- und Dienstprogramme - Überblick
- Job-Steuerung, Step-Steuerung
- Datei-Beschreibung (3)
- Include-Gruppe, JCL-Prozedur
- Diskussion und Austausch