Anwendungsgebiet: PROCEDURE
Kommandobeschreibung
Mit dem Kommando IMPORT-VARIABLE kann eine zuvor deklarierte Variablen in die gerufene Prozedur importiert werden. IMPORT-VARIABLE entspricht so in gewisser Weise dem Kommando DECLARE-VARIABLE, erspart aber die wiederholte Aufzählung aller zugewiesenen Attribute.
Format
IMPORT-VARIABLE |
VARIABLE-NAME = <structured-name 1..20 with-wild(40)> / list-poss(2000): <structured-name 1..20> , FROM = *SCOPE (...) *SCOPE (...) SCOPE = *TASK / *CALLING-PROCEDURES |
Operandenbeschreibung
VARIABLE-NAME =
Name einer Variablen außerhalb der Prozedur, die in die aktuelle Prozedur importiert werden soll.
VARIABLE-NAME = <structured-name 1..20 with-wild(40)>
Name einer Variablen außerhalb der Prozedur, die in die aktuelle Prozedur importiert werden soll.
Wenn der Name Musterzeichen enthält, werden alle Variablen importiert, deren Namen dem angegebenen Suchmuster entsprechen. Falls eine Musterzeichenfolge keinem Variablennamen entspricht, wird die Meldung SPD0519 ausgegeben.
VARIABLE-NAME = list-poss(2000): <structured-name 1..20>
Ein oder mehrere Namen von Variablen, die in die aktuelle Prozedur importiert werden sollen. Bei Listenangabe werden die Variablen in der angegebenen Reihenfolge importiert.
FROM = *SCOPE(...)
Bezeichnet den Geltungsbereich der zu importierenden Variablen..
SCOPE = *TASK
Die Variable wird im Geltungsbereich Task gesucht und importiert.
SCOPE = *CALLING-PROCEDURES
Die Variable wird in der gerufenen Prozedur gesucht. Sie muss dort mit IMPORT-ALLOWED=*YES deklariert sein. Der Suchvorgang verläuft in aufsteigender Richtung von der Aufruf-Prozedur bis zur ersten Prozedur (bei einer Hintergrund-Prozedur) oder bis zur Dialogebene (bei einer Vordergrund-Prozedur) gesucht.
(Wenn die zu importierende Variable schon in der Prozedur vorhanden (d.h. sichtbar) ist – egal ob mit IMPORT-ALLOWED = *YES oder *NO deklariert –, passiert nichts).
Kommando-Returncode
(SC2) | SC1 | Maincode | Bedeutung |
0 | CMD0001 | Ohne Fehler | |
1 | 0 | CMD0001 | Warnung; Element schon deklariert |
2 | 0 | SDP2000 | Warnung: Nicht alle Elemente der Eingabeliste konnten erfolgreichabgearbeitet werden. garantierte Meldung: SDP2000 |
1 | CMD0202 | Syntaxfehler | |
3 | CMD2203 | Falsche Syntaxdatei | |
32 | CMD0221 | Systemfehler (interner Fehler) | |
64 | SDP0091 | Semantikfehler garantierte Meldungen: SDP1008, SDP1018 | |
64 | SDP2001 | Keines der Elemente konnte importiert werden | |
130 | SDP0099 | Kein Adressraum mehr verfügbar |
Beispiele
/DECLARE-VARIABLE VERBOSE-MODE(TYPE=*BOOLEAN, INITIAL-VALUE= YES),- / SCOPE=*CURRENT(IMPORT-ALLOWED=*YES) /LEVEL=1 /CALL-PROCEDURE MY-PROCEDURE / ---> IMPORT-VARIABLE VERBOSE-MODE, - / FROM=*SCOPE(*CALLING-PROCEDURES) / / LEVEL=2 / IF (VERBOSE-MODE) / WRITE-TEXT 'LAUFENDE PROZEDUR BEI LEVEL &(LEVEL).' / END-IF / ---> EXIT-PROCEDURE /IF (VERBOSE-MODE) / WRITE-TEXT 'LAUFENDE PROZEDUR BEI LEVEL &(LEVEL).' /END-IF
Die aufgerufene Prozedur „MY-PROCEDURE“ hat Zugriff zur Variablen „VERBOSE-MODE“ durch die rufende Prozedur auf Grund der Benutzung von IMPORT-VARIABLE. Jede Prozedur hat dabei eine lokale Variable mit Namen „LEVEL“. Siehe Abschnitt„Geltungsbereich von Variablen“ (Geltungsbereich von Variablen ).
/DECLARE-VARIABLE TVAR-1 (TYPE= *STRING, INIT-VAL='TV1') /DECLARE-VARIABLE TVAR-2 (TYPE= *STRING, INIT-VAL='TV2') /DECLARE-VARIABLE TVAR-3 (TYPE= *STRING, INIT-VAL='TV3') /CALL-PROCEDURE IMPORT-TV-LIST ———————————————————————————————————————— (1) --> /SET-PROCEDURE-OPTIONS /IMPORT-VARIABLE (TVAR-1, TVAR-2) - / ,FROM=*SCOPE(SCOPE=*CALLING-PROCEDURE) /SHOW-VARIABLE /EXIT-PROCEDURE TVAR-1 = TV1 TVAR-2 = TV2 *END-OF-CMD /CALL-PROCEDURE IMPORT-TV-WILDCARD ———————————————————————————————————— (2) --> /SET-PROCEDURE-OPTIONS /IMPORT-VARIABLE TVAR-<1,3> - / ,FROM=*SCOPE(SCOPE=*CALLING-PROCEDURE) /SHOW-VARIABLE /EXIT-PROCEDURE TVAR-1 = TV1 TVAR-3 = TV3 *END-OF-CMD
(1) | Die Prozedur IMPORT-TV-LIST verwendet die Listenangabe um die Variablen TVAR-1 und TVAR-2 zu importieren. |
(2) | Die Prozedur IMPORT-TV-WILDCARD verwendet die Angabe von Musterzeichen um die Variablen TVAR-1 und TVAR-3 zu importieren. |