Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

DECLARE-VARIABLE

&pagelevel(3)&pagelevel

Variable deklarieren

Komponente:

SDF-P-BASYS

Funktionsbereich:

Prozeduren                                                                                              

Anwendungsbereich:

PROCEDURE

Privilegierung:

STD-PROCESSING
OPERATING
HARDWARE-MAINTENANCE
SECURITY-ADMINISTRATION
SAT-FILE-MANAGEMENT
SAT-FILE-EVALUATION

Funktionsbeschreibung

Mit DECLARE-VARIABLE werden Variablen erzeugt und die Attribute (evtl. auch ein Anfangswert) festgelegt.

Die Einbindung von Jobvariablen in SDF-P ist über den Operanden CONTAINER möglich.

Einschränkungen

Ist das kostenpflichtige Subsystem SDF-P nicht verfügbar, bestehen die folgenden Einschränkungen:

  • Es können nur einfache S-Variablen deklariert werden (TYPE=*ANY und MULTIPLE-ELEMENTS=*NO).

  • Deklarationen können nur aus einem Variablen-Container übernommen werden (CONTAINER=<composed-name>). Anderenfalls ist nur CONTAINER=*STD möglich.

  • Als Geltungsbereich kann nur SCOPE=*CURRENT(...) vereinbart werden. Innerhalb der Struktur *CURRENT(...) ist nur der Default-Wert IMPORT-ALLOWED=*NO erlaubt. 

Format

DECLARE-VARIABLE                                                                

Kurzname: DCV

 VARIABLE-NAME = list-poss(2000): <structured-name 1..20>(...)


<structured-name 1..20>(...)



|

INITIAL-VALUE = *NONE / <text 0..1800 with-low expr>



|

,TYPE = *ANY / *STRING / *INTEGER / *BOOLEAN / *STRUCTURE(...)



|


*STRUCTURE(...)



|



|

DEFINITION = *DYNAMIC / *BY-SYSCMD / <structured-name 1..20>

,MULTIPLE-ELEMENTS = *NO / *ARRAY(...) / *LIST(...)


*ARRAY(...)



|

LOWER-BOUND = 0 / *NONE / <integer -2147483648..2147483647>



|

,UPPER-BOUND = *NONE / <integer -2147483648..2147483647>


*LIST(...)



|

LIMIT = *NONE / <integer 1..2147483647>

,SCOPE = *CURRENT(...) / *PROCEDURE(...) / *TASK(...)


*CURRENT(...)



|

IMPORT-ALLOWED = *NO / *YES


*PROCEDURE(...)



|

IMPORT-ALLOWED = *NO / *YES


*TASK(...)



|

STATE = *ANY / *NEW / *OLD

,CONTAINER = *STD / <composed-name 1..64> / *VARIABLE(...) / *JV(...)


*VARIABLE(...)



|

VARIABLE-NAME = <structured-name 1..20>



|

,SCOPE = *VISIBLE / *TASK


*JV(...)



|

JV-NAME = <filename 1..54>



|

,STATE = *ANY / *NEW/ *OLD

Operandenbeschreibung

VARIABLE-NAME = list-poss (2000): <structured-name 1..20>(...)
Deklariert den Variablennamen, das heißt den Namen einer einfachen Variablen, die nicht Element einer zusammengesetzten Variablen ist, oder den Namen einer zusammengesetzten Variablen.

INITIAL-VALUE = *NONE
Die Variable wird nicht initialisiert.
Das bedeutet für eine neue Variable: sie erhält keinen Anfangswert; ein Lesezugriff würde einen Fehler verursachen.
Ist die Variable bereits vorhanden, bleibt ihr Inhalt unverändert, ihr wird kein neuer Anfangswert zugewiesen.

INITIAL-VALUE = <text 0..1800 with-low expr>
Weist einer neuen Variablen einen Anfangswert zu; der Wert muss zum Datentyp der Variablen passen, er kann auch als Ausdruck angegeben werden.
Bei bereits bestehenden Variablen wird die Angabe ignoriert; ihnen wird kein neuer Anfangswert zugewiesen.
Zusammengesetzte Variablen können nicht als Ganzes initialisiert werden, das heißt, es darf ihnen mit INITIAL-VALUE kein Anfangswert zugewiesen werden.

TYPE = *ANY / *STRING / *INTEGER / *BOOLEAN / *STRUCTURE(...)
Weist der Variablen den Datentyp zu.

TYPE = *ANY
Der Variablen können beliebig wechselnde Werte der Datentypen STRING, INTEGER und BOOLEAN zugewiesen werden.

Die Operandenwerte *STRING, *INTEGER, *BOOLEAN und *STRUCTURE(...) können nur angegeben werden, wenn das kostenpflichtige Subsystem SDF-P geladen ist. Die Operandenwerte sind im Handbuch „SDF-P“ [34] beschrieben.

MULTIPLE-ELEMENTS = *NO / *ARRAY(...) / *LIST(...)
Gibt an, ob mehrere Elemente einer Variable in einem Array oder einer Liste möglich sind.

MULTIPLE-ELEMENTS = *NO
Bestimmt, dass die Variable kein Array und keine Liste ist.

Die Operandenwerte *ARRAY(...) und *LIST(...)können nur angegeben werden, wenn das kostenpflichtige Subsystem SDF-P geladen ist. Die Operandenwerte sind im Handbuch „SDF-P“ [34] beschrieben.

SCOPE = *CURRENT(...) / *PROCEDURE(...) / *TASK(...)
Definiert den Geltungsbereich der Variablen.

SCOPE = *CURRENT(...)
Die Variable ist eine prozedurlokale Variable.
Entspricht in Call-Prozeduren der Angabe PROCEDURE.
In Include-Prozeduren bedeutet *CURRENT, dass die Variable in der aktuellen Include-Prozedur angelegt wird. Sie ist dann in dieser Include-Prozedur und in allen tiefergeschachtelten Include-Prozeduren sichtbar (= Geltungsbereich Include). Der untergeordnete Operand IMPORT-ALLOWED ist mit *NO voreingestellt (Default-Wert), d.h. die deklarierte Variable kann nicht mit IMPORT-VARIABLE importiert werden. Ohne Einsatz des kostenpflichtigen Subsystems SDF-P ist nur dieser Default-Wert zugelassen.

Die Operandenwerte *PROCEDURE(...) und *TASK(...) können nur angegeben werden, wenn das kostenpflichtige Subsystem SDF-P geladen ist. Die Operandenwerte sind im Handbuch „SDF-P“ [34] beschrieben.

CONTAINER = *STD / <composed-name 1..64> / *VARIABLE(...) / *JV(...)
Legt die Zuordnung der Variablen zu einem Variablenbehälter fest.

CONTAINER = *STD
Der Variablen wird kein Variablenbehälter zugeordnet. Der Wert der Variablen wird im Klasse-5-Speicher abgelegt.

CONTAINER = <composed-name 1..64>
Verbindet die aktuell deklarierte Variable mit dem hier angegebenen Variablenbehälter. Dieser Variablenbehälter muss geöffnet sein. Die Angabe von „STD“ ist hier nicht erlaubt, da „STD“ nicht als permanent-bestehender Variablenbehälter interpretiert wird.

Die Operandenwerte *VARIABLE(...) und *JV(...)können nur angegeben werden, wenn das kostenpflichtige Subsystem SDF-P geladen ist. Die Operandenwerte sind im Handbuch „SDF-P“ [34] beschrieben.

Kommando-Returncode

(SC2)

SC1

Maincode

Bedeutung / garantierte Meldungen


0

CMD0001

Ohne Fehler

1

0

CMD0001

Warnung: Element bereits deklariert


1

CMD0202

Syntaxfehler


3

CMD2203

Falsche Syntaxdatei


32

CMD0221

Systemfehler (interner Fehler)


64

CMD0216

Erforderliches Privileg fehlt


64

SDP0091

Semantikfehler
garantierte Meldungen: SDP1018, SDP1030


130

SDP0099

Kein Adressraum mehr verfügbar

Beispiele

Beispiel 1

Die prozedurlokale Variable DATA mit Typ *ANY wird mit dem String 'ANTON' initialisiert und anschließend wird der Variablenwert mit dem Kommando SHOW-VARIABLE ausgegeben:

/declare-variable data(c'Anton',*any)
/show-variable data

DATA = Anton
Beispiel 2

Der Variablenbehälter MY-CONT wird geöffnet. Anschließend wird die S-Variable MY-VAR-1 als Behältervariable deklariert. Nach dem Zuweisen eines Wertes wird der Variablenbehälter (und damit auch die S-Variable) gesichert. Nach dem Schließen des Variablenbehälters ist die die S-Variable MY-VAR-1 nicht mehr zugreifbar:

/declare-variable my-var-1, container=my-cont
/open-variable-container my-cont,from=*lib-elem(lib=my-lib)
/my-var-1=’saved value’
/show-variable my-var-1

MY-VAR-1 = saved value
*END-OF-CMD

/save-variable-container my-cont
/... 
/close-variable-container my-cont
/show-variable

%  SDP1030 CONTAINER / VARIABLE-CONTAINER 'MY-CONT' DOES NOT EXIST 
%  SDP0234 OPERAND 'NAME' INVALID