NOPUSY7N - Auf Entire Operations Symbole zugreifen

Sie können Symbole in Symboltabellen mit der folgenden Anweisung bearbeiten.

CALLNAT 'NOPUSY7N'
    FUNCTION RC DBENV OWNER NETWORK NETWORK-VERSION RUN JOB SYMTAB SYMTAB-VERSION SYMBOL FORMAT
    VALUE USER TIME
   1X 1X          
   VALUE-INDEX

Dabei ist:

1X 1X sind Platzhalter für optionale Parameter, die für interne Zwecke erforderlich sind. Siehe OPTIONAL(*).

Dieser Abschnitt behandelt folgende Themen:

Verwandtes Thema:


Beschreibung der Parameter

Parameter Format/Länge Verwendung
FUNCTION A1 ein Funktions-Code:
D Einen mehrfachen Wert löschen.

Einen einzelnen Wert in einem Symbol mit mehrfachen Werten zurücksetzen. Wenn dies der letzte Symbolwert ist, wird das ganze Symbol aus der Tabelle entfernt.

M Einen mehrfachen Wert hinzufügen.

Einen einzelnen Wert in einem Symbol mit mehrfachen Werten setzen.

Auch wenn die Menge der multiplen Werte 1 ist, bleibt der einzelne Wert ein mehrfacher Wert. Er wird nicht in einen Standardwert konvertiert.

N Nächstes Symbol testen.

Versucht, das nächste Symbol (in alphabetischer Reihenfolge) vom angegebenen Symbol an zu finden. Der angegebene Name wird durch den gefundenen Namen überschrieben. Die anderen Felder werden wie bei Funktion T zurückgegeben.

Um das erste Symbol einer Symboltabelle zu finden, kann der Symbolname weggelassen werden. Wenn das Ende der Symboltabelle erreicht wird, wird Code 1 zurückgegeben.

Siehe auch Sequenzielles Lesen in einer Symboltabelle.

P Nächstes abzufragendes Symbol testen.

Das Symbol, das in alphabetischer Reihenfolge für den aktuellen Lauf des Netzwerks/Jobs zur Abfrage aussteht, wird ermittelt. Im Weiteren gilt hier das unter Funktions-Code N Gesagte.

R Ein Symbol zurücksetzen (Reset).

Das Symbol wird aus der Symboltabelle entfernt.

S Ein Symbol setzen (Set).

Wenn das Symbol nicht in der Symboltabelle existiert, wird es eingefügt. Wenn es bereits existiert, wird es überschrieben.

T Ein Symbol testen (Test).

Wenn das Symbol nicht gefunden wird, wird Code 1 zurückgegeben.

Wenn das Symbol existiert, werden sein Format und Wert zurückgegeben. Die Felder USER und TIME enthalten den Benutzernamen und den Zeitstempel der letzten Änderung.

1 Ein Symbol testen.

Wenn das Symbol nicht gefunden wird, wird Code 1 zurückgegeben.

Wenn das Symbol existiert, werden sein Format und Wert zurückgegeben. Wenn der Symbolwert Symbole enthält, werden diese rekursiv aufgelöst. Die Felder USER und TIME enthalten den Benutzernamen und den Zeitstempel der letzten Änderung.

4 Gilt nur bei aktiven Symboltabellen.

Nächstes Symbol testen und Wert abfragen mit rekursiver Auflösung.

Diese Funktion benötigt folgende Angaben:

  • Netzwerk und Laufnummer (zusätzlich zu Eigentümer).

  • Parameter VALUE-INDEX (I4), der den Index für mehrfache Symbole.definiert.

Siehe auch Sequenzielles Lesen in einer Symboltabelle.

RC N3 aus Rückgabe-Code:
0 Funktion ok, Symbol gefunden.
1 Symbol nicht gefunden.
2 Ungültiger numerischer Wert.
3 Ungültiges Format.
4 Formatänderung versucht.
5 Tabelle für mehrfache Werte voll.
6 Wert fehlt.
7 Versuchter Schreibzugriff auf (schreibgeschütztes) Symbol.

Siehe Vordefinierte Symbole.

10 Ungültiger Wert durch User-Exit.
11 User-Exit nicht gefunden.
12 Zugriff auf User-Exit nicht erlaubt (Natural Security).
20 Ok, ist ein mehrfacher Wert.
30 Ok, das Master-Symbol wurde ebenfalls geändert.
101 Ungültiger Funktions-Code.
102 Parameter fehlt.
111 Symboltabellen-Name fängt mit dem reservierten Präfix "=EOR=" an.
121 Eigentümer existiert nicht.
131 Ungültiger Symboltabellenname.
132 Ungültiger Symboltabellen-Versionsname.
777 Interner Parameterfehler. Weitere Informationen können Sie dem Entire Operations-Protokoll entnehmen.
DBENV A10 ein Datenbankumgebung, reserviert für zukünftige Nutzung.

Optionaler Parameter, siehe OPTIONAL(*).

OWNER A10 ein Eigentümer der Symboltabelle.
NETWORK A10 ein Netzwerk (nur bei aktiver Symboltabelle).
NETWORK-VERSION A10 ein Netzwerkversion
RUN P13 ein Laufnummer (nur bei aktiver Symboltabelle).
JOB A10 ein Job.
SYMTAB A10 ein Symboltabelle.
SYMTAB-VERSION A10 ein Symboltabellenversion.
SYMBOL A40 ein Symbol.
aus Für Funktions-Codes N und P.
FORMAT A1 ein Das Symbolformat.

Bei der Funktion 1 für Master-Symboltabellen hat dieser Parameter eine besondere Bedeutung: FORMAT kann das Fluchtzeichen enthalten, das für die rekursive Auflösung verwendet werden soll. Die (unten) angegebenen Formatwerte und das Fragezeichen (?) dürfen nicht als Fluchtzeichen verwendet werden.

aus Für Funktions-Codes N, P und T:
leer oder A Alphanumerisch, keine Umwandlung.
D Datum im Format JJJJMMTT.
H Alphanumerisch, verborgen.
L Alphanumerisch, Umwandlung in Kleinbuchstaben.
N Numerisch.
U Alphanumerisch, Umwandlung in Großbuchstaben.
VALUE A250 ein Symbolwert.
aus Für Funktions-Codes N, P und T.
VALUE-INDEX I4 ein Index für mehrfache Symbole.

Setzen Sie VALUE-INDEX auf den erforderlichen Wert. Nach dem Aufruf wird dieser Wert an den Index des nächsten gelesenen mehrfachen Symbols angepasst.

Wenn der für VALUE-INDEX gesetzte Wert höher als der höchste Index des gegebenen Symbols ist, wird das nächste Symbol gelesen.

aus Nur für Funktions-Code 4.
USER A8 aus Benutzer, der die letzte Änderung durchführte.
TIME T aus Zeit der letzten Änderung.

Anmerkungen:

  1. Um auf eine Master-Symboltabelle zuzugreifen, müssen die Felder NETWORK und RUN leer sein. Um auf eine aktive Symboltabelle zuzugreifen, müssen die Felder NETWORK und RUN durch den Aufrufenden ergänzt werden.
  2. Wenn ein User-Exit zur Gültigkeitsprüfung für das Symbol definiert ist (siehe User Exit zur Gültigkeitsprüfung von Symbolen, wird auch er aus dieser API-Routine heraus aufgerufen. Stellen Sie sicher, dass der User-Exit in der aufrufenden Umgebung zugänglich ist. Die Bibliothek, die den User-Exit enthält, muss als Steplib für die Ausführungsumgebung dieser APIs definiert werden. Ein Symbolwert wird abgelehnt, wenn der Exit "not ok" zurückgibt (RC=10) oder wenn der Exit fehlt (RC=11).
  3. Alle Aktionen werden im Protokoll aufgezeichnet.
  4. Außerdem kann diese API die Werte vordefinierter Symbole lesen.
  5. Ein mit dieser API erstelltes Symbol erhält die Symboleingabe-Einstellung N (niemals).

Sequenzielles Lesen in einer Symboltabelle

Beginn der AnweisungslisteUm Symbole sequenziell von einer Master-Symboltabelle oder einer aktiven Symboltabelle zu lesen:

  1. Setzen Sie die Funktion auf N.

  2. Wenn Sie am Anfang der Tabelle mit dem Lesen beginnen wollen, dann setzen Sie zuerst SYMBOL zurück; sonst geben Sie einen Start-Namen in SYMBOL ein.

  3. Rufen Sie den Benutzer-Exit in einer REPEAT-Schleife auf; verlassen Sie die Schleife, wenn RC nicht 0 ist und nicht 20 ist.

  4. Lassen Sie SYMBOL unverändert als Start-Wert für den nächsten Aufruf.

  5. Setzen Sie VALUE vor dem nächsten Aufruf zurück, wenn RC=0.

  6. Setzen Sie VALUE nicht zurück, wenn RC=20.

Beginn der AnweisungslisteUm Symbole sequenziell von einer aktiven Symboltabelle zu lesen:

  1. Setzen Sie die Funktion auf 4.

  2. Wenn Sie am Anfang der Tabelle mit dem Lesen beginnen wollen, dann setzen Sie zuerst SYMBOL zurück; sonst geben Sie einen Start-Namen in SYMBOL ein.

  3. Lassen Sie SYMBOL und VALUE-INDEX unverändert als Start-Werte für den nächsten Aufruf.

  4. Setzen Sie VALUE vor dem nächsten Aufruf zurück, wenn RC=0.

  5. Setzen Sie VALUE nicht zurück, wenn RC=20.

Beispiel: Lesen einer sequenziellen Symboltabelle

MOVE 'N' TO FUNCTION
RESET SYMBOL-NAME
R1.  REPEAT
     CALLNAT 'NOPUSY7N' RC  ...

     DECIDE ON FIRST VALUE OF RC
     VALUE 0, 20 IGNORE
     VALUE 1 ESCAPE BOTTOM (R1.)
     NONE VALUE
            /* Error handling
     END-DECIDE
            /* process symbol here
     IF RC NE 20
          RESET VALUE
     END-IF
END-REPEAT