Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

@SETVAR - Deklarieren einer S-Variablen und Wertzuweisung

&pagelevel(3)&pagelevel

Die Anweisung @SETVAR deklariert eine S-Variable und/oder weist einer S-Variablen einen Wert zu.

Operation

Operanden

F-Modus, L-Modus

@SETVAR

{string[={string1 | ivar} ] | SYSEDT [,KEEP] }
[,MODE={ ANY | NEW | UPDATE} [,CODE=name]

string

Zeichenfolge, die einen gültigen S-Variablen-Namen angibt. Der Name
muss den syntaktischen Regeln für einen S-Variablen-Namen genügen,
diese werden aber vom EDT nicht vollständig überprüft.

string1

Zeichenfolge, die der S-Variablen zugewiesen werden soll.

Hat die S-Variable nicht den Typ STRING oder ANY bzw. ist sie ein Array
oder eine Liste, wird die Anweisung mit der Meldung EDT5342
abgebrochen.

Ist der zuzuweisende Wert länger als 4096 Bytes, werden nur die ersten
4096 Bytes als Wert zugewiesen und die Meldung EDT2403 wird
ausgegeben.

ivar

Ganzzahlvariable (#I0..#I20), deren Inhalt der über string angegebenen
S-Variablen als Wert zugewiesen wird.

Hat die S-Variable nicht den Typ INTEGER oder ANY bzw. ist sie ein Array
oder eine Liste, wird die Anweisung mit der Meldung EDT5342
abgebrochen.

SYSEDT

Den S-Variablen SYSEDT-S00..SYSEDT-S20 werden die Inhalte der
Zeichenfolgevariablen #S00 bis #S20 zugewiesen. Treten dabei Fehler auf,
werden entsprechende Meldungen ggf. auch mehrfach ausgegeben. Die
Anweisung wird dabei nicht beendet.

Für S-Variable denen keine Zeichenfolge als Wert zugewiesen werden
kann (anderer Typ) wird kein Fehler gemeldet, sondern die Zuweisung
unterbleibt. Die Behandlung von nicht existierenden S-Variablen hängt von
MODE ab.

KEEP

Ist KEEP angegeben, wird der EDT so eingestellt, dass er die S-Variablen
SYSEDT-S00..SYSEDT-S20 bei Beendigung nicht überschreibt. Ist KEEP
nicht angegeben, wird die Einstellung zurückgenommen d.h. der EDT weist
bei seiner Beendigung die Inhalte der Zeichenfolgevariablen #S00 bis
#S20 zu und zwar im Zeichensatz EDF041.

MODE=

ANY

NEW

legt fest, ob die S-Variable schon existieren soll.

Einer existierenden oder einer neuen S-Variable wird ein Wert zugewiesen.

Die S-Variable darf noch nicht existieren. Existiert sie schon, wird die
Anweisung nicht ausgeführt und die Meldung EDT5272 ausgegeben. Ist
SYSEDT angegeben wird die Angabe NEW wie ANY behandelt.

UPDATE

Die S-Variable muss schon existieren. Existiert sie noch nicht, wird die
Anweisung nicht ausgeführt und die Meldung EDT5274 ausgegeben. Ist
SYSEDT angegeben, wird die Meldung nicht ausgegeben und es wird nur
denjenigen S-Variablen ein Wert zugewiesen, die schon existieren und vom
Typ STRING oder ANY sind.

name

Zeichensatz, in den die zuzuweisende Zeichenfolge konvertiert werden soll
bevor sie zugewiesen wird. Ist name nicht angegeben, wird EDF041 verwendet.
Ist string aber nicht string1 angegeben, wird der Operand ignoriert.
Ansonsten muss der Zeichensatzname in XHCS bekannt sein, andernfalls
wird die Anweisung mit der Meldung EDT4980 abgewiesen.

Ist string aber weder string1 noch ivar angegeben, so wird der S-Variablen die leere Zeichenfolge als Wert zugewiesen. Existiert sie noch nicht, wird sie mit Default-Attributen (TYPE=ANY,MULTIPLE-ELEMENTS=*NO,SCOPE=PROCEDURE)angelegt. Existiert die Variable bereits mit dazu unverträglichen Attributen, wird die Anweisung mit der Meldung EDT5342 abgewiesen.

Enthält die zuzuweisende Zeichenfolge Zeichen, die im angegebenen Zeichensatz ungültig sind, werden diese durch ein Ersatzzeichen ersetzt, sofern ein solches spezifiziert ist (siehe @PAR SUBSTITUTION-CHARACTER), andernfalls unterbleibt die Zuweisung und die Fehlermeldung EDT5453 wird ausgegeben.

Details zu S-Variablen können dem Handbuch SDF [6] entnommen werden.