Symbol-Funktionen zur Symbolersetzung verwenden

Eine Symbol-Funktion wird verwendet, um einen Symbolwert in Abhängigkeit von den Parametern der Funktion zu setzen.

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.

Folgende Themen werden behandelt:

Verwandtes Thema:


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)

Diese Funktion berechnet Datumswerte und formattiert sie.

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<C20220722+1>

Den nächsten Arbeitstag für das Datum 2022-07-22 holen. Das Datum wird im Standard-Format YYYYMMDD zurückgegeben.

Das Ergebnis ist 20220725, wenn man davon ausgeht, dass Samstag und Sonntag im zugehörigen Kalender keine Arbeitstage sind.

§?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<20201117,05>

Das Datum 2020-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 Wert 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.
YYYYMMDD Ab einem beliebigen, im Format YYYYMMDD angegeben Tag.

Beispiel:

20220722

W Woche.
M Monat.
1... 1 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 bei 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.

Weitere Informationen siehe Datums- und Zeitformate.

Editiermaske für Datums-Funktionen

Die Editiermaske kann entweder direkt oder mit Format-Kennzeichen 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 171120
F4, 4 DDMMYYYY 17112020
F5, 5 DD.MM.YY 17.11.20
F6, 6 DD.MM.YYYY 17.11.2020
F7, 7 DD/MM/YY 17/11/20
F8, 8 DD/MM/YYYY 17/11/2020
F9, 9 DD-MM-YY 17-11-20
F10, 10 DD-MM-YYYY 17-11-2020
F11, 11 MM 11
F12, 12 MMDD 1117
F13, 13 MMYY 1120
F14, 14 MM.YY 11.20
F15, 15 MMYYYY 112020
F16, 16 MM.YYYY 11.2020
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 20330 (julianisch)
F22, 22 YYMM 2011
F23, 23 YYMMDD 201117
F24, 24 YYYY 2020
F25, 25 YYYYJJJ 2020330 (julianisch)
F26, 26 YYYYMM 202011
F27, 27 YYYYMMDD 20201117
F28, 28 YYYY.MM.DD 2020.11.17
F29, 29 YYYY/MM/DD 2020/11/17
F30, 30 YYYY-MM-DD 2020-11-17
F31, 31 YY.MM.DD 20.11.17
F32, 32 YY/MM/DD 20/11/17
F33, 33 YY-MM-DD 20-11-17
F34, 34 QQ Wochentag (sprachabhängig) in Großbuchstaben
F35, 35 MMDDYY 041922
F36, 36 MM/DD/YY 04/19/22
F37, 37 MM-DD-YY 04-19-22
F38, 38 JJJ 109
F39, 39 JJJYY 10922
F40, 40 JJJYYYY 1092022
F41, 41 WWYY 1622
F42, 42 WWYYYY 162022
F43, 43 YYWW 2216
F44, 44 YYYYWW 202216
F45, 45 YY.MM

oder

YY#MM
22.04
F46, 46 YY/JJJ 22/109
F47, 47 YYYY/JJJ 2022/109

Weitere Informationen siehe Datums- und Zeitformate.

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.

Wenn ein explizit angegebener Kalender für das aktuelle Jahr nicht vorhanden ist, wird die JCL-Generierung oder der Jobstart mit einem Fehler beendet und eine Meldung ins Protokoll geschrieben.

Hinweise zu Unternetzwerken:
  • 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 Unternetzwerke genutzt werden, da diese nicht relevant sind.

Ausgabedatumsformate

Die hier beschriebenen Ausgabedatumsformate können bei den Symbolfunktionen !D oder ?D und !W oder ?W verwendet werden.

Das Standardformat für das Ausgabedatum ist YYYYMMDD (siehe auch Datums- und Zeitformate). Es wird verwendet, wenn kein Ausgabedatumsformat angegeben wird.

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

DD#MM#YY

 
05  17.11.20 
DD.MM.YYYY

DD#MM#YYYY

 
06  17.11.2020 
DD/MM/YY  07  17/11/20 
DD/MM/YYYY  08  17/11/2020 
DD-MM-YY  09  17-11-20
DD-MM-YYYY  10  17-11-2020 
JJJ  38  330 
JJJYY  39  33020 
JJJYYYY  40  3302020 
MM  11  11 
MMDD  12  1117 
MMDDYY  35  111720 
MMYY  13  1120
MM.YY

MM#YY 

14  11.20 
MMYYYY  15  112020 
MM.YYYY

MM#YYYY

 
16  11.2020 
MM/DD/YY  36  11/17/20 
MM-DD-YY  37  11-17-20 
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  4720 (Woche und Jahr)
WWYYYY  42  472020 (Woche und Jahr)
YY  20  20 
YYJJJ  21  20330  (julianisch)
YYMM  22  2011 
YYMMDD  23  201117 
YYWW  43  2047 (Jahr und Woche)
YYYY  24  2020 
YYYYJJJ  25  2020330  (julianisch)
YYYYMM  26  202011 (Jahr und Monat)
YYYYMMDD  27  20201117 
YYYYWW  44  202047 (Jahr und Woche)
YYYY.MM.DD

YYYY#MM#DD

 
28  2020.11.17 
YYYY/MM/DD  29  2020/11/17 
YYYY-MM-DD  30  2020-11-17 
YY.MM

YY#MM

 
45  20.11 
YY.MM.DD

YY#MM#DD

 
31  20.11.17 
YY/MM/DD  32  20/11/17 
YY-MM-DD  33  20-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. Siehe auch Datums- und Zeitformate.

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.