Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

IMPORT-VARIABLE Variable importieren

&pagelevel(4)&pagelevel

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)SC1MaincodeBedeutung

0CMD0001Ohne Fehler
10CMD0001Warnung; Element schon deklariert
20SDP2000Warnung: Nicht alle Elemente der Eingabeliste konnten erfolgreichabgearbeitet werden.
garantierte Meldung: SDP2000

1CMD0202Syntaxfehler

3CMD2203Falsche Syntaxdatei

32CMD0221Systemfehler (interner Fehler)

64SDP0091Semantikfehler
garantierte Meldungen: SDP1008, SDP1018

64SDP2001Keines der Elemente konnte importiert werden

130SDP0099Kein 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.