NOPUSY7N - Auf Entire Operations Symbole zugreifen

#### Search Results

Search

# 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:

- Beschreibung der Parameter

- Sequenzielles Lesen in einer Symboltabelle

- Beispiel: Lesen einer sequenziellen Symboltabelle

#### Verwandtes Thema:

- Symboltabellen und Symbole

## 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

Um 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`.

Um 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

### On this page

- Beschreibung der Parameter
- Sequenzielles Lesen in einer Symboltabelle
- Beispiel: Lesen einer sequenziellen Symboltabelle