Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

OPEN-VARIABLE-CONTAINER Variablenbehälter öffnen

&pagelevel(4)&pagelevel

Anwendungsgebiet: PROCEDURE

Kommandobeschreibung

Mit dem Kommando OPEN-VARIABLE-CONTAINER werden Variablenbehälter, die als PLAM-Bibliothekselemente abgespeichert sind, geöffnet. Existiert ein solcher Variablenbehälter bzw. ein solches Element beim Aufruf dieses Kommandos noch nicht, wird er bzw. es automatisch erzeugt.

Damit ist es möglich, permanent vorhandene S-Variablen zu erzeugen, d.h. S-Variablen, die in ihrer Existenz nicht von der jeweiligen Task abhängig sind.

Format

OPEN-VARIABLE-CONTAINER

CONTAINER-NAME = <composed-name 1..64>

,FROM-FILE = *LIBRARY-ELEMENT (...)

*LIBRARY-ELEMENT(...)

LIBRARY = <filename 1..54 without-vers>

,ELEMENT = *CONTAINER-NAME / <composed-name 1..64>(...)

<composed-name 1..64>(...)

VERSION = *HIGHEST-EXISTING / <composed-name 1..24>

,LOCK-ELEMENT = *NO / *YES

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

*TASK(...)

SAVE-AT-TERMINATION = *NO / *YES

,AUTOMATIC-DECLARE = *ALL / *NONE / <structured-name 1..20 with-wild(40)> /

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

Operandenbeschreibung

CONTAINER-NAME = <composed-name 1..64>
Name des Variablenbehälters.

FROM-FILE = *LIBRARY-ELEMENT(...)
Bibliothekselement, das den Variablenbehälter enthält.
Der Datentyp des Elements ist SYSVCONT.

LIBRARY = <filename 1..54 without-vers>
Name der Plam-Bibliothek.
Die Angabe einer Bibliotheksliste (S-Variable SYSPLAMALT-<name>) ist erlaubt

ELEMENT =
Name des Elements.

ELEMENT = *CONTAINER-NAME
Der Name des Elements ist identisch mit dem des Variablenbehälters.

ELEMENT = <composed-name 1..64>(...)
Der Name des Elements kann sich von dem des Variablenbehälters unterscheiden.

VERSION =
Bezeichnet die Versionsnummer des Elements.

VERSION = *HIGHEST-EXISTING
Wählt die höchste existierende Versionsnummer.

VERSION = <composed-name 1..24>
Wählt die angegebene Versionsnummer.

LOCK-ELEMENT =
Gibt an, ob das Element geschlossen ist oder nicht.

LOCK-ELEMENT = *NO
Das Element ist im Input-Modus geöffnet. Die Behälter-Variablen werden von diesem Element in den Variablenbehälter kopiert. Anschließend wird das Element geschlossen.

LOCK-ELEMENT = *YES
Das Element ist im Input- wie im Output-Modus geöffnet. Die Behälter-Variablen werden von diesem Element in den Variablenbehälter kopiert. Anschließend bleibt das Element geöffnet, bis das Kommando CLOSE-VARIABLE-CONTAINER angegeben wird. Nachfolgende Angaben von OPEN-VARIABLE-CONTAINER in derselben oder in anderen Tasks werden abgewiesen.

SCOPE =
Definiert den Geltungsbereich des Variablenbehälters. Er kontrolliert den Zugriff zu den im Variablenbehälter enthaltenen Variablen. Der Geltungsbereich der Behälter-Variablen darf nicht größer sein als der des Variablenbehälters.

SCOPE = *CURRENT
Der Geltungsbereich des Variablenbehälters ist prozedurlokal (siehe dazu Abschnitt„Geltungsbereich von Variablen“ (Geltungsbereich von Variablen )).
Der Variablenbehälter kann nur in der lokalen Prozedur und in allen tieferliegenden Include-Prozeduren benutzt werden, nicht aber in der aufrufenden Prozedur. Er wird implizit beim Ende der aktuellen Prozedur geschlossen.

SCOPE = *PROCEDURE
Der Geltungsbereich des Variablenbehälters ist prozedurlokal (siehe dazu Abschnitt„Geltungsbereich von Variablen“ (Geltungsbereich von Variablen )).
Der Variablenbehälter kann in der lokalen Prozedur und in allen tieferliegenden Include-Prozeduren benutzt werden. Er kann auch in den aufrufenden Prozeduren benutzt werden, wenn der Aufruf mit INCLUDE-PROCEDURE erfolgte. Er wird implizit beim Ende der zuerst aufgerufenen Prozedur geschlossen. D.h. er ist über alle Include-Prozeduren hinweg bis zum Ende der hierarchiehöchsten Aufruf-Prozedur geöffnet.

SCOPE = *TASK(...)
Der Geltungsbereich des Variablenbehälters ist taskglobal (siehe dazu Abschnitt„Geltungsbereich von Variablen“ (Geltungsbereich von Variablen )).
Der Variablenbehälter kann benutzt werden, solange er nicht geschlossen oder die Task beendet wird. Im Unterschied zum Geltungsbereich von Variablen muss der Name des Behälters nicht früher, als er benützt wird, importiert werden.

SAVE-AT-TERMINATION =
Gibt an, ob der Variablenbehälter bei EXIT-JOB bzw. LOGOFF gesichert werden muss.

SAVE-AT-TERMINATION = *NO
Der Variablenbehälter wird bei EXIT-JOB nicht gesichert.

SAVE-AT-TERMINATION = *YES
Der Variablenbehälter wird bei EXIT-JOB gesichert. Allerdings wird er nicht bei abnormaler Task-Beendigung gesichert, wie z.B. bei der Einstellung EXIT-JOB MODE = ABNORMAL.

AUTOMATIC-DECLARE =
Gibt an, ob die Behälter-Variablen automatisch deklariert werden sollen.

AUTOMATIC-DECLARE = *ALL
Die Behälter-Variablen werden automatisch mit dem Geltungsbereich des Variablenbehälters deklariert.

AUTOMATIC-DECLARE = *NONE
Behälter-Variablen werden nicht automatisch deklariert.

AUTOMATIC-DECLARE = list-poss(2000): <structured-name 1..20>
Die angegebenen Behälter-Variablen werden automatisch mit dem Geltungsbereich des Variablenbehälters deklariert.

AUTOMATIC-DECLARE = <structured-name 1..20 with-wild(40)>
Die Behälter-Variablen, die das angegebene Suchmuster erfüllen, werden automatisch mit dem Geltungsbereich des Variablenbehälters deklariert.

Hinweise

  • Variablen in einem Variablenbehälter können mit dem Kommando DECLARE-VARIABLE und dem darin enthaltenen Operanden CONTAINER erzeugt werden.

  • Variablen, die als statische Strukturlayouts deklariert wurden, werden mit dem Namen dieses Strukturlayouts gesichert.

  • Eine Bezugnahme auf einen Variablenbehälter ist erst erlaubt, wenn er mit OPEN-VARIABLE-CONTAINER erzeugt wurde.

  • Wenn Variablen mit OPEN-VARIABLE-CONTAINER automatisch erzeugt werden und die Variable mit anderen Attributen schon existiert, wird die Deklaration abgewiesen und die Fehlermeldung SDP1018 zur Warnung zurückgegeben. Der Prozess des Öffnens wird allerdings fortgesetzt.
    Der Benutzer kann die zurückgewiesene Variable mit dem S-Variablenstrom SYSMSG abfragen.

  • Wenn Behälter-Variablen mit AUTOMATIC-DECLARE erzeugt werden und sich auf statische Strukturen beziehen, werden sie in Strukturen vom Typ „*BY-SYSCMD“ konvertiert.

Kommando-Returncode

(SC2)SC1MaincodeBedeutung

0CMD0001Ohne Fehler
20SDP00xxWarnung, weil folgendes passiert ist:garantierte Meldungen: SDP1008, SDP1018

1CMD0202Syntaxfehler

3CMD2203Falsche Syntaxdatei

32CMD0221Systemfehler (interner Fehler)

64CMD0216Erforderliches Privileg fehlt

64SDP0091Semantikfehler

130SDP0099Kein Adressraum mehr verfügbar

Beispiel

Siehe Kommando SHOW-VARIABLE-CONTAINER-ATTR, "SHOW-VARIABLE-CONTAINER-ATTR Offene Variablenbehälter anzeigen ".