Symbol-Funktionen zur Symbolersetzung verwenden

#### Search Results

Search

# 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:

- Ergebnisse von Symbol-Funktionen

- Symbol-Funktion !D, ?D (Datum)

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

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

- Symbol-Funktion !TIMN, ?TIMN - Konstante Zeitwerte

#### Verwandtes Thema:

- User-Exits für Symbol-Funktionen im Kapitel User-Exits

## 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

- Beispiele

- Rückgabeformat

- Parameter

- Editiermaske für Datums-Funktionen

- Bezugsobjekte

- Ausgabedatumsformate

### 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`...`9` | 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.)
O | 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

- Beispiele

- Rückgabeformat

- Parameter

### 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

- Symbol-Funktion MM oder ?MM

### Symbol-Funktion !MV oder ?MV

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

- Syntax
- Beispiele
- Rückgabeformat
- Parameter
- Fehler
- Bezugsobjekte

#### 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
- Beispiel
- Rückgabeformat
- Parameter
- Fehler
- Bezugsobjekte

#### 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

- Beispiele

- Rückgabeformat

- Parameter

- Bezugsobjekte

### 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.

### On this page

- Ergebnisse von Symbol-Funktionen
- Symbol-Funktion !E, ?E (Datum, Tagesdifferenz)
- Symbol-Funktion !E, ?E (Datum, Tagesdifferenz)
- Symbol-Funktionen !MV, ?MV, !MM, ?MM - Zugriff auf einzelne Ausprägungen eines mehrfachen Symbols
- Symbol-Funktion !TIMN, ?TIMN - Konstante Zeitwerte