Dieser Abschnitt behandelt folgende Themen:
Bevor eine JCL editiert wird, wird von Entire Operations überprüft, ob der Benutzer auf die JCL-Datei zugreifen darf. Wenn es sich um eine Betriebssystem-Datei handelt, so wird ein automatisches Logon mit der definierten JCL-User-ID (BS2000 und UNIX/Windows) des Jobs ausgeführt, falls dies erforderlich ist. Falls dieses automatische Logon nicht funktioniert (wenn zum Beispiel eine Passwort-Eingabe erforderlich ist), so wird dies dem Benutzer angezeigt. In diesem Fall muss er zunächst ein Logon bei dem betreffenden Betriebssystem-Server machen.
Beim Editieren der Master-JCL wird ein implizites Anmeldungen ausgelöst, um eine Verbindung zu dem angeforderten Knoten herzustellen. Sie werden nicht zur Anmeldung aufgeführt, wenn Sie sich während dieser Sitzung bereits angemeldet haben.
Weitere Informationen siehe Anmeldung im Abschnitt Entire Operations GUI Client benutzen.
Sie können ein einziges Member nur mit
DISP=L
editieren. Nachdem das
SAVE
-Kommando abgesetzt ist, wird das editierte
Member in die RDR-Warteschlange gestellt. Das alte Member wird gelöscht. Wenn
Sie ein neues Member erstellen, wird ein Standard-JOB
-Statement
erzeugt.
Dateinamen in Windows können in einer alternativen Notation geschrieben werden, falls der umgekehrte Schrägstrich ( \ ) nicht zur Verfügung steht, wie in Großrechner-Umgebungen. Siehe dazu Dateinamen unter Windows-Dateisysteme.
Ist eine als JCL zu editierende oder zu ladende Datei keine Textdatei,
wird die Fehlermeldung 'EOR0325 - No Text File' (Keine Textdatei)
zurückgegeben. Beim Laden von JCL wird dies als permanenter Fehler
behandelt.
Wenn eine Master-JCL oder aktive JCL editiert wird, wird vor dem Editieren jedes TAB-Zeichen in ein einzelnes Leerzeichen übersetzt. Dadurch kommt es nicht zu ungewöhnlichen Ergebnissen beim Editieren. Die JCL wird in jedem Fall ohne TAB-Zeichen zurückgeschrieben.
Erweitertes Logging, JCL-Logging: zum Erweiteretn JCL-Logging werden TAB-Zeichen auch in Leerzeichen übersetzt.
Wenn Entire Operations auf einem Großrechner läuft, konvertieren die Middleware-Übersetzungstabellen TAB-Zeichen sowieso in Leerzeichen. Dies bedeutet, dass jede UNIX- und Windows-JCL ohne TAB-Zeichen abgeschickt wird.
Wenn Entire Operations auf UNIX oder Windows läuft, bleiben TAB-Zeichen in der Master-JCL und aktiven JCL, solange die Master-JCL oder aktive JCL nicht innerhalb von Entire Operations editiert wird.
Entire Operations gestattet es, Textobjekte in die JCL mit aufzunehmen. Die Textobjekte können eigene, lokale Parameter haben. Textobjekte können andere Textobjekte aufrufen, d.h., eine Verschachtelung ist möglich.
Die Aufnahme von Textobjekten ist nicht nur bei Jobs vom Typ MAC (Macro), sondern auch bei anderen JCL-Speicherarten möglich.
Weitere Einzelheiten siehe Jobtypen und Textmodule in die JCL einfügen im Abschnitt Dynamische JCL-Generierung (JCL-Speicherart MAC).
Der Editor und die verfügbaren Kommandos sind in der Software AG Editor-Dokumentation beschrieben.
Um die JCL eines Betriebssystem-Standard-Jobs oder eines Natural-Programms für einen Job vom Typ NAT zu editieren:
Geben Sie im Bildschirm Job-Verwaltung das
Zeilenkommando E
im Feld vor dem betreffenden Job
ein.
Drücken Sie Enter.
Es erscheint der Bildschirm des Entire Operations-Editors mit der ersten Seite der JCL oder dem Natural-Programm (Beispiel):
;JCLDIR./prq-chk.bsh------------------------------------------ Columns 001 072 ====> BLAETTERN===> CSR ***** ****************************** top of data ***************************** 00001 #! /bin/sh 00002 # set -x 00003 00004 # NPR / UNIX testbed: prerequisite check 00005 00006 # Modifications: 00007 # 1999-08-30 created SN 00008 # 2000-07-05 'test rc ...' --> 'test $rc ...'; dir creation SN 00009 # 2001-02-21 SunOS: special 'id' SN 21 00010 # ---------------------------------------------------------------------- 00011 00012 uname='uname' 00013 ID=id 00014 if test "$uname" = "SunOS" 00015 then 00016 ID="/usr/xpg4/bin/id" # special SunOS 'id' 00017 fi 00018 Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--- Help End Quit Rfind Rchan Up Down Symbo Left Right Curso |
Als Alternative dazu können Sie die Editor-Funktion durch Drücken von PF4 (Edit) im Fenster Job-Definition (Master) aufrufen, wenn Sie eine Job-Definition anlegen oder ändern.
Sie können die JCL oder das Natural-Programm mit Editor-Kommandos und PF-Tasten editieren oder darin blättern, auch wenn die ursprüngliche Definition außerhalb von Entire Operations mit einem anderen Editor geschrieben wurde.
Wenn der ausgewählte Job keine JCL oder kein definiertes Natural-Programm enthält, erscheint ein leerer Editor-Bildschirm, und Sie können die Editor-Kommandos und PF-Tasten benutzen, um JCL oder ein Natural-Programm zu erstellen. Sie können das Objekt auch mit anderen auf Ihrer DV-Anlage zur Verfügung stehenden Editoren erstellen oder editieren.
Sie können die Editor-Funktion auch zur Anzeige und zum Blättern innerhalb der JCL oder des Natural-Programms benutzen. Um das Objekt unverändert zu lassen und den Editor zu verlassen, drücken Sie PF4 (Quit).
PF9 (Symbols) ruft das Fenster Verwendbare Symboltabellen auf, in dem Sie eine Symboltabelle zum Anzeigen und Ändern auswählen können.
Eine vollständige Beschreibung des Editors und aller dort verfügbaren speziellen Kommandos entnehmen Sie der Software AG Editor-Dokumentation.
Wenn Sie JCL des Typs PDS oder NAT editiert haben, können Sie die JCL in ein anderes Member derselben Datei bzw. Bibliothek speichern, unter Benutzung der folgenden Syntax:
SAVE member
Beispiel:
SAVE MEMBER2
PF-Taste | Name | Funktion | Weitere Informationen siehe: |
---|---|---|---|
PF4 | Quit | Lässt die Source unverändert und beendet die Editier-Funktion. | - |
PF5 | Rfind | Stellt den Cursor auf die nächste Ausprägung der
Suchzeichenkette, die mit dem Editor-Kommando FIND
angegeben wurde, z.B. FIND
search-string .
|
- |
PF6 | Rchan | Ersetzt die nächste Ausprägung der
Suchzeichenkette, die mit dem Editor-Kommando CHANGE
angegeben wurde, z.B. CHANGE search-string
new string .
|
- |
PF7 | Up | Nach oben blättern. | - |
PF8 | Down | Nach unten blättern. | - |
PF9 | Symbo | Ruft ein Fenster auf, in dem Sie eine Symboltabelle zum Anzeigen und Ändern auswählen können. | Verwendbare Symboltabellen auflisten und Symbol-Definition anzeigen im Abschnitt Symbole |
PF10 | Left | Nach links blättern. | - |
PF11 | Right | Nach rechts blättern. | - |
PF12 | Curso | Stellt die an der Editor-Eingabeaufforderung eingegebene Zeile an den Anfang des Quellcodes. Führende Leerzeichen können weggelassen werden. | - |
MACRO |
Kompiliert die Macro-JCL in ein ausführbares Natural-Objekt.
Dieses Objekt wird von Entire Operations beim Laden der JCL ausgeführt, und es
generiert die ausführbare aktive JCL. (Dieses Kommando wirkt ähnlich wie das
Natural-Systemkommando STOW für
Natural-Standardprogramme.)
Anmerkung: |
TEST |
Generiert das Objekt zu Testzwecken. Die generierte JCL
erscheint in einem neuen Fenster.
Anmerkungen:
|
- Laufnummer für das TEST-Kommando
Die beim
TEST
-Kommando reservierte Laufnummer ist -3. Beim Test wird eine vorübergehend aktive Symboltabelle mit dieser Laufnummer verwendet. Dadurch wird eine Beeinträchtigung der definierten Master-Symboltabelle verhindert. In der Log-Anzeige wird diese reservierte Laufnummer nicht angezeigt.
Informationen zu speziellen Editor-Kommandos siehe Dynamische JCL-Generierung (JCL-Speicherart MAC) im Abschnitt Systemübersicht.
Das Fluchtzeichen für die Aktivierung zu Anfang einer Zeile unterscheidet die Zeile als ein Natural-Statement von der üblichen Jobkontrollsprache. Durch die Verwendung von Natural-Statements steht die volle Natural-Funktionalität - einschließlich des Zugriffs auf Adabas und Entire System Server - in der dynamischen JCL zur Verfügung. Sie brauchen daher keine speziellen Steueranweisungen zu lernen. Alle Natural-Statements, die in der dynamischen JCL benutzt werden, müssen im Natural Structured Mode codiert werden.
Variablen sind benutzerdefiniert. Sie können in jedem beliebigen Teil der JCL verwendet werden. Dies gilt auch für den Dateinamen und die Job Control-Karte. Zur Unterscheidung müssen Variablen in der JCL durch ein vorangestelltes Fluchtzeichen gekennzeichnet werden: Das Fluchtzeichen für Aktivierung kennzeichnet Variable, die bei Aktivierung zu ersetzen sind. Das Fluchtzeichen für Job-Start kennzeichnet Variablen, die beim Job-Start zu ersetzen sind.
Anmerkung:
Diese Fluchtzeichen können vom Systemadministrator geändert werden.
Eine solche Änderung sollte jedoch nur dann vorgenommen werden, wenn sie
absolut notwendig ist, z.B. bei Ländern mit einem speziellen Zeichensatz. Siehe
Abschnitt Fluchtzeichen
zur Symbolersetzung. Zweckmäßigerweise verwendet man keine
Fluchtzeichen, die in einem bestimmten Betriebssystem bereits eine bestimmte
Bedeutung haben, oder die bereits als Fluchtzeichen belegt sind, z. B. das
Dollarzeichen ($) in BS2000 oder UNIX.
Jede JCL für einen Job vom Typ MAC muss mit der Deklarierung der Parameterliste des allgemeinen User Exit anfangen: NOPXPL_A.
Der Parameter P-CALL-PLACE enthält MAC
:
§ DEFINE DATA PARAMETER USING NOPXPL-A
Das erste Zeichen (hier: §
) ist das Aktivierungsfluchtzeichen
des Jobs.
Sie können vier Arten von Variablen benutzen:
eine Variable aus der Symboltabelle, die für den Job angegeben ist,
eine Variable aus dem Parameterliste (P-...),
eine in diesem Natural-Programm definierte, lokale Variable, die in Ihrem Programm errechnet werden kann (L-...),
eine Natural-Systemvariable (TIME
,
DATE
usw.), die durch einen vorangestellten Stern
(*) als solche gekennzeichnet ist, z.B. *TIME
.
Anmerkung:
Alle Variablen, die nicht mit einem der Präfixe P-..., L-... oder
*... beginnen, werden in der Symboltabelle gesucht. Symbolersetzung allein, d.
h. ohne Einbettung von Natural-Statements, ist auch für Standard-JCLs verfügbar
(Jobs vom Typ JOB
). Siehe
Symbolersetzung im
Kapitel Symboltabellen und Symbole.
Dieser Abschnitt behandelt folgende Themen:
Die folgende Beispiel-JCL stellt die Verwendung von Variablen in der dynamisch generierten JCL eines Jobs mit JCL-Speicherart MAC (Macro) in Entire Operations vor:
§ DEFINE DATA PARAMETER USING NOPXPL-A § LOCAL /* ... ALL LOCALS SHOULD START WITH 'L-' § 1 L-01 (A30) § 1 CLASS (A01) /* FROM SYMBOL TABLE, FOR #GET-SYMBOL § END-DEFINE § * ------------------------------------ #GET-SYMBOL CLASS § COMPRESS P-NETWORK P-JOB INTO L-01 //SNNOPEX JOB ,§P-OWNER,MSGCLASS=§MSGCLASS,CLASS=§CLASS //STEP01 EXEC PGM=NOPCONTI,PARM='C=0004' //STEPLIB DD DISP=SHR,DSN=§STEPLIB //* DEVICE: §*DEVICE, INIT-USER: §*INIT-USER, TIME: §*TIME //* L-01 : §L-01 § IF CLASS = 'K' /* SYMBOL USED IN STATEMENT -> #GET-SYMBOL //* THE CLASS IS §CLASS § ELSE //* ANOTHER MSGCLASS FOUND § END-IF //*
Es wird angenommen, dass die in der JCL benutzten Variablen die folgenden aktuellen Werte haben:
Variable | Wert |
---|---|
STEPLIB |
NOP.SYSF.DEV.LOAD |
CLASS |
K |
MSGCLASS |
X |
Variable | Wert |
---|---|
*DEVICE |
BATCH |
*INIT-USER
|
EORMON |
Variable | Wert |
---|---|
P-NETWORK |
EX131A |
P-JOB
|
EX-1-24 |
P-OWNER
|
SN |
Bei Aktivierung des Jobs ersetzt Entire Operations die Variablen durch ihre aktuellen Werte. Die folgende JCL wird als Ergebnis generiert:
//SNNOPEX JOB ,SN,MSGCLASS=X,CLASS=K //STEP01 EXEC PGM=NOPCONTI,PARM='C0004' //STEPLIB DD DISP=SHR,DSN=NOP.SYSF.DEV.LOAD //* DEVICE: BATCH, INIT-USER: EORMON //* L-01 : EX131-A EX-1-24 //* THE CLASS IS K //*
Siehe auch Abschnitt Job-Verwaltung.
#GET-SYMBOL
kann innerhalb einer MACRO JCL verwendet
werden, um einen aktiven Symbolwert in eine lokale Variable zu übertragen.
Das Symbol wird von der Stelle im Symbol-Suchpfad genommen, an der es zuerst gefunden wurde.
Die Syntax lautet:
#GET-SYMBOL variable [value]
value ist optional. Wird kein Wert angegeben, dann wird die Variable mit dem Inhalt eines Symbols desselben Namens gefüllt.
variable muss Format A (alphanumerisch)
haben. Für die Formatwandlung von variable in ein
numerisches Feld können Sie die Natural-Systemfunktion VAL
benutzen.
#GET-SYMBOL variable(index)
Mit dieser Syntax erhalten Sie eine Instanz eines Symbols mit mehreren Werten. Die Variable muss als ein lokales Array mit einer ausreichenden Array-Größe definiert werden.
Beispiel:
#GET-SYMBOL L-SYMBOL(L-IND)
#SET-SYMBOL
kann innerhalb einer MACRO JCL verwendet
werden, um ein aktives Symbol und dessen Wert aus einer lokalen
Variablen oder Zeichenkette zu setzen.
Das Symbol wird in der aktiven Symboltabelle gesetzt, die zu dem aktiven Job gehört.
Ein Job für #SET-SYMBOL
muss eine lokal definierte
Symboltabelle besitzen.
Die Syntax lautet:
#SET-SYMBOL symbol [value]
value ist optional. Wenn der Wert nicht angegeben wird, wird das Symbol mit dem Inhalt einer lokalen Variable desselben Namens gefüllt.
#SET-SYMBOL-M
kann innerhalb einer MACRO JCL verwendet
werden, um ein Master-Symbol und dessen Wert aus einer lokalen Variablen oder
Zeichenkette zu setzen.
Das Symbol wird in der Master-Symboltabelle gesetzt, die zu dem aktiven Job gehört.
Ein Job für #SET-SYMBOL-M
muss eine lokal definierte
Symboltabelle besitzen.
Die Syntax lautet:
#SET-SYMBOL-M symbol [value]
value ist optional. Wenn der Wert nicht angegeben wird, wird das Symbol mit dem Inhalt einer lokalen Variable desselben Namens gefüllt.
Der Wert kann seinerseits Symbole enthalten, siehe Beispiele weiter unten.
Textzeichenketten dürfen keine Leerzeichen enthalten.
Leerzeichen werden als Trennzeichen für die Parameter von
#GET-SYMBOL
und #SET-SYMBOL
verwendet.
Das Aktivierungsfluchtzeichen ist §
.
Statement | Bedeutung |
---|---|
#GET-SYMBOL J |
Inhalt des Symbols J in die lokale Variable
J verschieben.
|
#GET-SYMBOL #J §BB |
Inhalt des Symbols BB in die lokale Variable
#J verschieben.
|
#GET-SYMBOL #J '§BB' |
Inhalt des Symbols BB in die lokale Variable
#J verschieben.
|
#GET-SYMBOL L-MULT '§?MV<M1,§I>' |
Das Ergebnis eines Symbolfunktionsaufrufs in die lokale
Variable L-MULT verschieben.
|
#SET-SYMBOL J |
Das aktive Symbol J auf den Inhalt der lokalen
Variablen J setzen.
|
#SET-SYMBOL I #A
|
Das aktive Symbol I auf den Inhalt der lokalen
Variablen #A setzen.
|
#SET-SYMBOL AA 'text' |
Das aktive Symbol AA auf den Wert
text setzen.
|
#SET-SYMBOL BB §I |
Das aktive Symbol BB auf den Inhalt des Symbols
I setzen.
|
#SET-SYMBOL BB '§I' |
Das aktive Symbol BB auf den Inhalt des Symbols
I setzen.
|
#SET-SYMBOL CC '§D.§E' |
Die Symbolwerte von D und E
miteinander verketten, und das Ergebnis auf das aktive Symbol CC
setzen.
|
#SET-SYMBOL-M DD
'value' |
Das Master-Symbol DD auf den Wert
value setzen.
|
#SET-SYMBOL-M TAGYYMMDD
'&!D<T,YYMMDD>' |
Das Ergebnis der Symbol-Funktion
&!D<T,YYMMDD> (z.B.
150211 ) in das Master-Symbol TAGYYMMDD .
|
Natural-Textobjekte können Sie an beliebiger Stelle in Ihre JCL einfügen.
Diese Funktion ist nicht beschränkt auf Jobs des Typs
MAC
(Macro), sondern kann
auch innerhalb von Standard-JCL verwendet werden.
Die hier beschriebenen Meta-Kommandos werden aus der aktiven JCL und der gestarteten JCL abgegriffen.
Die Syntax lautet:
#EOR-INCL LOC=NAT LIB=library MEM=text-object
Parameter | Bedeutung |
---|---|
LOC
|
Speicherart ("Location").
Dies ist die einzige Speicherart, die zur Zeit für Textmodule erlaubt ist. |
LIB
|
Bibliothek des Textobjekts. |
MEM
|
Name des Textobjekts. |
Falls das Textobjekt nicht lesbar ist, wird die JCL-Generierung mit einer Fehlermeldung abgebrochen.
Innerhalb des #EOR-INCL
-Statements ist Symbolersetzung
möglich.
Sie können eingefügte Textobjekte mit spezifischen Parametern aufrufen.
Für jeden Parameter, den Sie an den Text übergeben möchten, welcher
durch ein #EOR-INCL
-Statement eingefügt wird, müssen Sie vor dem
#EOR-INCL
-Statement eine #EOR-PARM
-Zeile kodieren.
Diese Parameter sind dann nur für den eingefügten Text (und alle
verschachtelten Einfügungen) im Folgenden #EOR-INCL
-Statement
gültig.
Die Syntax lautet wie folgt:
#EOR-PARM parameter = value [parameter = value] ...
Mehrere Parameter können in einer #EOR-PARM
-Zeile
übergeben werden. Dies ist durch die Zeilengröße beschränkt.
Implizit haben Parameterwerte das Format A (alphanumerisch).
Parameterwerte können Leerzeichen enthalten. In diesem Fall müssen sie von Apostrophen (' ') oder Anführungszeichen (") eingeschlossen sein.
Sie können verschachtelte #EOR-INCL
-Statements innerhalb
von Textobjekten verwenden, die bereits eingefügt sind. Diese geschachtelten
Einfügungen können über ihre eigenen Parameterlisten verfügen.
Anmerkung:
Achten Sie darauf, dass die Gesamtzahl der Einfügungen für eine JCL
durch die Puffergröße des Natural-Editors für die ausführende Natural-Task
beschränkt ist.
Parameter für Textobjekte können innerhalb des eingefügten Textobjekts wie alle anderen Symbole verwendet werden. Sie haben den Vorrang vor den Symbolen der aktuellen Symboltabelle des Jobs (und der anderen Symboltabellen in der Suchhierarchie).
Deshalb können Parameter für eingefügte Textobjekte zeitweise Symbole desselben Namens außer Kraft setzen. Die Reichweite eines Parameters beschränkt sich nur auf das eingefügte Textobjekt und auf die Textobjekte, die innerhalb dieses Textobjekts durch geschachtelte Aufrufe aufgerufen werden.
Die "Lebensdauer" von mittels #EOR-PARM
definierten Parametern bezieht sich nur auf die JCL-Ladezeit. Normale
Symbolersetzungen können innerhalb eingefügter Textobjekte und ebenso an
anderer Stelle in der JCL verwendet werden.
... #EOR-INCL LOC=NAT LIB=JCLLIB MEM=§MEMBER ...
Natural-Member aus der Bibliothek JCLLIB einfügen, dessen Name im
Symbol MEMBER
steht.
... #EOR-PARM DBID = 9 #EOR-PARM TEXT-1 = "a string with blanks" #EOR-INCL LOC=NAT LIB=USERLIB MEMBER=BLOCK1 //* JCL statement #EOR-PARM DBID = 10 #EOR-PARM TEXT-1 = "another string" #EOR-INCL LOC=NAT LIB=USERLIB MEMBER=BLOCK1 ...
Das Natural-Textobjekt BLOCK1
aus der Bibliothek
USERLIB
einfügen. Die Parameter DBID
und
TEXT-1
werden mit verschiedenen Werten für die zwei
Aufrufe an das Textobjekt übergeben.
Wenn beim Start von Natural der Profilparameter
SLOCK
auf PRE
gesetzt ist, verhindert eine
Sperre, dass mehrere Benutzer gleichzeitig ein Natural-Source-Objekt aus Entire
Operations, einem Entire Operations GUI Client oder in einer nativen
Natural-Umgebung bearbeiten.
Ist SLOCK
auf POST
oder
OFF
gesetzt, dann erfolgt keine Sperre, sondern der Entire
Operations-Editor stellt fest, dass mehrere Benutzer ein Source-Objekt
gleichzeitig bearbeiten.
Sie können mit dem Natural-Systemkommando
UNLOCK
gesperrte Natural-Source-Objekte prüfen und
entsperren.
Ausführliche Informationen zu SLOCK
und
UNLOCK
sind in der
Natural-Dokumentation enthalten.
In einer UNIX- oder Windows-Umgebung muss der Natural Development Server in der aktuellen Natural-FNAT-Systemdatei installiert sein.
Wenn Sie in einer lokalen Entire Operations GUI Client-Umgebung eine
gleichzeitige Bearbeitung durch mehrere Benutzer vermeiden möchten, müssen Sie
zusätzlich zu Natural auch den Natural-RPC-Server mit SLOCK=PRE
starten.
Tipp:
Verwandtes Thema: Siehe Zeilenkommando
F
(zum Aufheben einer Sperre) im Abschnitt
Zeilenkommandos:
Aktive Jobs unter Aktive Jobs.