Funktionen zur Symbolersetzung

Eine Symbol-Funktion wird verwendet, um Symbole innerhalb der JCL eines Jobs auf der Basis der in der Funktion definierten Bedingungen zu ersetzen. Ein und dieselbe JCL kann für die unterschiedlichsten Situationen verwendet werden, beispielsweise um das Standard-Layout und die Ausgabe von Symbolen, Job-Eingabebedingungen oder Job-Ende-Bedingungen zu ändern.

Eine Symbol-Funktion wird entweder durch ein Ausrufungszeichen (!) oder ein Fragezeichen (?), das als Startwert benutzt wird, gekennzeichnet. Sie können eines dieser Zeichen je nach der in Ihrer Natural-Umgebung verwendeten Codepage wählen. Ein Ausrufungszeichen (!) kann Konflikte bei der Codepage-Umsetzung verursachen.

Darüber hinaus können Sie sich eigene Symbol-Funktionen mit einer User Exit-Routine definieren. Weitere Informationen siehe User Exits für Symbol-Funktionen im Abschnitt User Exits.

Die in Entire Operations vordefinierten Symbol-Funktion werden in diesem Abschnitt erklärt.

Dieser Abschnitt behandelt folgende Themen:


Ergebnisse von Symbol-Funktionen

Ergebnisse von Symbol-Funktionen werden nach der ersten Auswertung in die Symboltabelle des aktiven Jobs zurückgeschrieben. Die folgenden Aufrufe derselben Systemfunktion mit denselben Parametern rufen nicht mehr die Symbolfunktion auf, sondern geben nur den Funktionswert zurück.

Symbol-Funktionen mit Aktivierungssteuerzeichen werden ohne Fluchtzeichen in die Tabelle der aktiven Symbole geschrieben.

Symbol-Funktionen mit Startfluchtzeichen werden mit dem Startfluchtzeichen in die Tabelle der aktiven Symbole geschrieben.

Anmerkungen:

  1. Dasselbe Symbol oder dieselbe Symbol-Funktion kann sowohl mit dem Aktivierungssteuerzeichen als auch mit dem Startfluchtzeichen benutzt werden. Beide Fälle werden getrennt behandelt und belegen verschiedene Einträge in der Tabelle der aktiven Symbole. Dies ist besonders wichtig, wenn Sie zeitabhängige Symbole oder Symbol-Funktionen verwenden.
  2. Ergebnisse von Symbol-Funktionen werden in aktiven Symboltabellen vorgehalten, um die Neuberechnung von Werten der Symbol-Funktionen beispielsweise nach Änderung eines Symbols mit mehreren Werten zu erzwingen.

Symbol-Funktion !D, ?D (Datum)

Mit der Symbol-Funktion D (Datum) können Sie Datumsangaben in generierter JCL variabel gestalten. Diese Funktion berechnet Datumswerte, ausgehend vom aktuellen Datum.

Dieser Abschnitt behandelt folgende Themen:

Syntax

§!D|?D<type|period|offset[|offset-unit][,edit-mask][,calendar]>

(für alle Typen außer T)

oder

§!D|?D<T[,edit-mask]>

oder

§!D|?D<yyyymmdd,edit-mask>

Beispiele

§!D<AC-1>

Das Datum vor dem aktuellen Datum (gestern) holen. Das Datum wird im Standard-Format YYYYMMDD zurückgegeben.

§?D<CW+1,DDMMYY>

Den ersten Tag (Montag) der aktuellen Woche im Format DDMMYY holen.

§!D<T,YYMMDD>

Das aktuelle Datum im Format YYMMDD holen.

§!D<20081117,05>

Das Datum 2008-11-17 im Format 05 (DD.MM.YY) holen. Siehe Ausgabedatums-Formate.

§!D<A1+1,MM>

Den vorigen Monat im Format MM (nur Monat) holen.

§!D<A1+1,YYYYMMDD>

Den ersten Tag des vorigen Monats holen.

§!D<A1-1,YYYYMMDD>

Den letzten Tag des vorigen Monats holen.

Rückgabeformat

Siehe Ausgabe-Datumsformate.

Parameter

Die Parameter werden ohne Trennzeichen direkt aneinandergefügt.

Syntax-Element Parameter Erklärung
type Typ
T Aktuelles Tagesdatum (heute).

Anmerkung:
Für diesen Typ sind die Parameter period, offset und offset-unit nicht erforderlich und werden nicht ausgewertet.

A Alle Tage (365 bzw. 366 Tage im Jahr).
C Kalender-Tage (Tage, die im Kalender als Werktage definiert sind).
S Zeitplan-Tage.
period Zeitraum (nicht ausgewertet bei Typ T).
C Ab aktuellem Tag.
W Woche.
M Monat.
1...9  Ein Monat zurück ... 9 Monate zurück.
Q Quartal.
Y Jahr.
offset Versatz (positive oder negative Zahl mit Vorzeichen).
offset-unit Einheit für den Versatz - optional, wird nur für Typ A (alle Tage) ausgewertet.
D Tage (Standardwert).
W Wochen.
M Monate.
Q Quartale.
Y Jahre.
edit-mask Siehe Editiermaske für Datums-Funktionen.
calendar Kalender. Siehe Bezugsobjekte, Kalender.
yyyymmdd Datum. Format YYYYMMDD.

Editiermaske für Datums-Funktionen

Die Editiermaske kann entweder mit Format-Kennzeichen oder direkt angegeben werden. Das Format-Kennzeichen kann zur Verkürzung der Länge des Funktionsaufrufes eingesetzt werden.

Format, Kennzeichen Format Beispiele
F1, 1 DD 17
F2, 2 DDMM 1711
F3, 3 DDMMYY 171108
F4, 4 DDMMYYYY 17112008
F5, 5 DD.MM.YY 17.11.08
F6, 6 DD.MM.YYYY 17.11.2008
F7, 7 DD/MM/YY 17/11/08
F8, 8 DD/MM/YYYY 17/11/2008
F9, 9 DD-MM-YY 17-11-08
F10, 10 DD-MM-YYYY 17-11-2008
F11, 11 MM 11
F12, 12 MMDD 1117
F13, 13 MMYY 1108
F14, 14 MM.YY 11.08
F15, 15 MMYYYY 112008
F16, 16 MM.YYYY 11.2008
F17, 17 NN Wochentag (sprachabhängig)
F18, 18 O Nummer des Wochentages
F19, 19 WW Nummer der Woche
F20, 20 YY 01
F21, 21 YYJJJ 00330
F22, 22 YYMM 0811
F23, 23 YYMMDD 081117
F24, 24 YYYY 2008
F25, 25 YYYYJJJ 2008330
F26, 26 YYYYMM 200811
F27, 27 YYYYMMDD 20081117
F28, 28 YYYY.MM.DD 2008.11.17
F29, 29 YYYY/MM/DD 2008/11/17
F30, 30 YYYY-MM-DD 2008-11-17
F31, 31 YY.MM.DD 08.11.17
F32, 32 YY/MM/DD 08/11/17
F33, 33 YY-MM-DD 08-11-17
F34, 34 QQ Wochentag (sprachabhängig) in Großbuchstaben

Bezugsobjekte

Syntax-Element Bedeutung
Eigentümer Der Eigentümer des Netzwerks, aus dem die Funktion aufgerufen wurde.
Kalender Falls ein Kalender explizit angegeben wurde, so wird dieser für Kalenderberechnungen herangezogen. Dieser Kalender muss unter dem aktuellen Eigentümer existieren. Falls er dort nicht gefunden wird, so wird er unter dem Eigentümer SYSDBA gesucht. Andernfalls wird der dem aktuellen Zeitplan zugeordnete Kalender verwendet. Wenn kein Kalender definiert wurde, so gelten alle Tage als Werktage.
Unternetzwerk-Überlegungen:
  • Wenn Sie die Symbol-Funktion aus einem Unternetzwerk aufrufen, wird der Zeitplan und Kalender der obersten Hierarchie (aufgerufenes Hauptnetzwerk) für die Zeitplan- und Kalenderberechnung genutzt.

  • Zeitpläne oder Kalender, die in einem Unternetzwerk genutzt werden, werden bei diesen Berechnungen nicht beachtet.

  • Es ist nicht notwendig, Zeitpläne oder Kalender zu definieren, die nur für Unternetzwerken genutzt werden, da diese nicht relevant sind.

Wenn dieser Parameter fehlt, oder wenn ein unbekanntes Format verwendet worden ist, wird das Datum im Format YYYYMMDD (Beispiel: 19991117) zurückgegeben.

Ausgabedatums-Formate

Die hier beschriebenen Ausgabedatums-Formate können für die Symbolfunktionen D und W.** verwendet werden.

Das standardmäßige Datumsausgabe-Format ist YYYYMMDD (z.B. 20081117).

Format Numerisches Äquivalent Beispiel
DD  01  17 
DDMM  02  1711 
DDMMYY  03  171108 
DDMMYYYY  04  17112008 
DD.MM.YY

DD#MM#YY

 
05  17.11.08 
DD.MM.YYYY

DD#MM#YYYY

 
06  17.11.2008 
DD/MM/YY  07  17/11/08 
DD/MM/YYYY  08  17/11/2008 
DD-MM-YY  09  17-11-08
DD-MM-YYYY  10  17-11-2008 
JJJ  38  330 
JJJYY  39  33008 
JJJYYYY  40  3302008 
MM  11  11 
MMDD  12  1117 
MMDDYY  35  111708 
MMYY  13  1108
MM.YY

MM#YY 

14  11.08 
MMYYYY  15  112008 
MM.YYYY

MM#YYYY

 
16  11.2008 
MM/DD/YY  36  11/17/08 
MM-DD-YY  37  11-17-08 
NN  17  Sa (Erste 2 Zeichen des Wochentagnamens.

Dieser Wert ist von der aktuellen Sprach-Einstellung der Natural-Sitzung abhängig.)

18  6 (Wochentagszahl).

Dieser Wert ist vom Natural-Profilparameter DTFORM der Natural-Sitzung abhängig. Einzelheiten siehe Natural-Dokumentation.)

QQ  34  SA (wie das Format NN, aber in Großbuchstaben.)
WW  19  47 (Wochenzahl)
WWYY  41  4708 (Woche und Jahr)
WWYYYY  42  472008 (Woche und Jahr)
YY  20  08 
YYJJJ  21  08330 
YYMM  22  0811 
YYMMDD  23  081117 
YYWW  43  0847 (Jahr und Woche)
YYYY  24  2008 
YYYYJJJ  25  2008330 
YYYYMM  26  200811 (Jahr und Monat)
YYYYMMDD  27  20081117 
YYYYWW  44  200847 (Jahr und Woche)
YYYY.MM.DD

YYYY#MM#DD

 
28  2008.11.17 
YYYY/MM/DD  29  2008/11/17 
YYYY-MM-DD  30  2008-11-17 
YY.MM

YY#MM

 
45  08.11 
YY.MM.DD

YY#MM#DD

 
31  08.11.17 
YY/MM/DD  32  08/11/17 
YY-MM-DD  33  08-11-17 

Symbol-Funktion !E, ?E (Datum, Tagesdifferenz)

Mit dieser Funktion wird auf ein gegebenes Datum im Format YYYYMMDD eine Anzahl von Tagen addiert, oder es wird eine Anzahl von Tagen subtrahiert.

Dieser Abschnitt behandelt folgende Themen:

Syntax

§!E|?E<date,offset[,edit-mask]>

Beispiele

§!E<19991001,+28>
§!E<19991001,-7,F10>

Rückgabeformat

Datum im Format YYYYMMDD

Parameter

Die Parameter werden durch ein Komma getrennt.

Syntax-Element Bedeutung
date Datum. Format YYYYMMDD.
offset Versatz. Positive oder negative Zahl mit Vorzeichen. Einheit: Tage.
edit-mask Siehe Editiermaske für Datumsfunktionen.

Symbol-Funktionen !MV, ?MV, !MM, ?MM - Zugriff auf einzelne Ausprägungen eines mehrfachen Symbols

Diese Symbolfunktion ermöglicht es Ihnen, Werte eines mehrfachen Symbols zu verwenden.

Dieser Abschnitt behandelt folgende Themen:

Symbol-Funktion !MV oder ?MV

Diese Symbolfunktion ermöglicht es Ihnen, einen einzelnen Wert eines mehrfachen Symbols zu verwenden.

Syntax

§!MV|?MV<symbol,index>

Beispiele

§!MV<ARRAY,1>
§?MV<ARRAY,§INDEX>

Rückgabeformat

Symbolwert

Parameter

Die Parameter werden durch Komma getrennt.

Syntax-Element Bedeutung
symbol  Name des mehrfachen Symbols
index  Index des Symbolwerts

Fehler

In folgenden Fällen wird "Symbol nicht gefunden" angezeigt:

  • Mehrfaches Symbol nicht gefunden.

  • Index fehlt.

  • Index nicht numerisch.

  • Index zu hoch.

Bezugsobjekte

Syntax-Element Bedeutung
Symboltabelle  Es wird immer die Symboltabelle des aktiven Jobs verwendet.

Symbol-Funktion MM oder ?MM

Diese Symbolfunktion ermöglicht es Ihnen, den höchsten Index eines mehrfachen Symbols zu erhalten.

Syntax

§!MM|?MM<symbol>

Beispiel

§!MM<ARRAY>

Rückgabeformat

Ganzzahlwert.

Parameter

Die Funktion hat nur einen Parameter.

Syntax-Element Bedeutung
symbol  Name des mehrfachen Symbols.

Fehler

In folgenden Fällen wird Symbol nicht gefunden angezeigt:

  • mehrfaches Symbol nicht gefunden

Bezugsobjekte

Syntax-Element Bedeutung
Symboltabelle  Es wird immer die Symboltabelle des aktiven Jobs verwendet.

Symbol-Funktion !TIMN, ?TIMN - Konstante Zeitwerte

Die Symbolfunktion TIMN ermöglicht die Verwendung konstanter Zeitwerte in mehrfachen Zeitstempel-Ersetzungen.

Dieser Abschnitt behandelt folgende Themen:

Syntax

§!TIMN|?TIMN<parm>

Beispiele

§!TIMN<A>

und

§?TIMN<B>

Rückgabeformat

Ein Zeitstempel im Format der Natural-Systemvariablen *TIMN:

Das Format ist A7, und der Inhalt ist HHIISST.

(T: Zehntelsekunden).

Parameter

Parameter Bedeutung
parm1 Der Parameter ist ein Dummy.

Anmerkung:
Beachten Sie aber, dass alle Aufrufe mit demselben Parameter denselben Zeitwert erzeugen (wenn dieselbe aktive Symboltabelle verwendet wird).

Bezugsobjekte

Keine.

Symbol-Funktion !W oder ?W - Datumsberechnungen mit Referenzkalender

Diese Symbolfunktion ermöglicht es Ihnen, Datumsberechnungen bezogen auf einen Kalender zu verwenden.

Dieser Abschnitt behandelt folgende Themen:

Anmerkung:
Wenn die Formel ein Ergebnis liefert (auch wenn es nur ein Zwischenergebnis ist), das auf den 29. Februar eines Nicht-Schaltjahres deutet, wird die Auflösung der Symbolfunktion W mit einer Fehlermeldung beendet.

Haupt-Syntax

§!W|?W< formula>
    [,<edit-mask>]
    [,<owner>]
    [,<calendar>]

Symbol, das als Wert vier Argumente enthält. Dieses Symbol kann selbst wieder aus Symbolen zusammengesetzt sein. Das Fluchtzeichen für die Aktivierung oder zum Start ist für den aufrufenden aktiven Job gültig.

Syntax von formula

<date><period>
<point><just-in-period><offset>
<unit><point>
<just-in-unit>

Syntax von edit-mask

<date-format>
<number-unit><period><supression><just>
<name-unit><language><character><length>

Parameter

Syntax-Element Mögliche Werte
formula
date

YYYYMMDD
YYMMDD
DDMMYYYY
DDMMYY

Bezugsdatum im gültigen Natural-Datumsformat.

MM, DD, [YY]YY können durch Schrägstrich (/), Minuszeichen (-) oder Punkt (.) voneinander getrennt sein.

Anmerkung:
Um mehrdeutige Datumsformat-Interpretationen zu vermeiden, empfiehlt es sich sehr, ein Jahresformat mit 4 Stellen zu verwenden. Wenn ein sechsstelliges Datum nicht eindeutig interpretiert werden kann, gibt die Symbolfunktion z.B. folgende Fehlermeldung aus: 040107A / MM is ambiguous (mehrdeutig).

period A Tage
C Wochentage
W Woche
M Monat
Q Quartal
S Semester
Y Jahr
Die Grenzen der Periode des Datums werden nur dann verlassen, wenn <offset>*<unit> länger als die (oder gleich der) Periode ist. Wenn <offset>*<unit> kürzer als die Periode ist, aber die Periode unter- oder überschreiten würde, dann wird der erste oder der letzte (Arbeits-) Tag der Periode zurückgegeben.
point F Erster Tag in period oder unit.
L Letzter Tag in period oder unit.
S Errechnetes Datum in period oder unit.
just-in-period B Wenn Feiertag, dann davor.
A Wenn Feiertag, dann danach.
offset Ganzzahlige Zahl mit Vorzeichen.
unit Wie period.
just-in-unit  
edit-mask
date-format Datumsformat D.

Siehe Ausgabedatums-Formate bei den den Symbol-Funktionen !D und ?D.

number-unit Nummer im Format N.

Nummer der unit in period. Daraus folgt, dass die angegebene period größer sein muss als die unit.

Werte wie bei period.

period Werte wie bei period.
suppression Z zwecks Unterdrückung führender Nullen.
just R rechts ausgerichtet
L links ausgerichtet
name-format  Name im Format C.
name-unit D Tag
M Monat
language 1 Englisch
2 Deutsch
nn Gültiger Natural-Sprachcode.
character U Name nur in Großbuchstaben
L Nur erster Buchstabe groß.
length Länge der Darstellung.
owner Eigentümer des Bezugskalenders.
calendar Bezugskalender für die Datumsberechnung.

Wenn formula einen Kalenderbezug wie C für Arbeitstag, B für Arbeitstag vor Feiertag oder Arbeitstag nach Feiertag enthält, dann ist die Angabe eines Bezugskalenders zwingend.

Rückgabeformat

Siehe unter Ausgabedatums-Formate im Abschnitt Symbol-Funktion !D oder ?D.