Definition von Kontext-Variablen für den Natural RPC

#### Search Results

Search

# Definition von Kontext-Variablen für den Natural RPC

Allgemeine Syntax von `DEFINE DATA CONTEXT`:

`DEFINE DATA`
`CONTEXT` |  | `USING` |  | local-data-area parameter-data-area |  |
context-data-definition
`END-DEFINE`

Dieses Dokument behandelt folgende Themen:

- Funktion

- Einschränkungen

- Syntax-Beschreibung

Eine Erläuterung der in dem Syntax-Diagramm verwendeten Symbole entnehmen Sie dem Abschnitt Syntax-Symbole.

Gehört zur Funktionsgruppe: Natural Remote Procedure Call

## Funktion

Das `DEFINE DATA CONTEXT`-Statement wird im Zusammenhang mit dem Natural RPC (Remote Procedure Call) verwendet. Es dient dort zur Definition von als Kontextvariablen bekannten Variablen, die für mehrere entfernte (remote) Subprogramme innerhalb einer Konversation zur Verfügung stehen sollen, ohne dass die Variablen explizit als Parameter mit den entsprechenden `CALLNAT`-Statements übergeben werden müssen.

Eine Kontextvariable wird über ihren Namen referenziert. Ihr Inhalt wird von allen in einer Konversation ausgeführten Natural-Objekten, diesen Namen referenzieren, geteilt (gemeinsam genutzt). Die Variable wird vom ersten ausgeführten Natural-Objekt zugeordnet, das die Definition der Variablen enthält, und wird freigegeben, wenn die Konversation beendet ist.

Eine Kontextvariable wird nicht mit Subprogrammen geteilt, die innerhalb der Konversation aufegrufen werden. Wenn ein solches Unterprogramm oder einer seiner Aufrufer eine Kontextvariable referenziert, wird für diese Variable ein getrennter Speicherbereich zugeordnet.

Kontextvariablen können auch in einem nicht-konversationellen `CALLNAT` benutzt werden. In diesem Fall existieren die Kontextvariablen nur während eines einzelenen Aufrufs dieses `CALLNAT`. Die Variable wird zugeordnet, wenn das entfernte (remote) Subprogramm gestartet wird, und die Zuordnung wird aufgehoben, wenn es endet. Der Inhalt wird von allen Programmierobjekten (jedoch nicht von Subprogrammen) gemeinsam verwendet, die von diesem nicht-konversationellen `CALLNAT` ausgeführt werden.

Die optionale `INIT`-Klausel wird bei jedem ausgeführten Programmierobjekt ausgewertet, das diese Klausel enthält (nicht nur im Natural-Objekt, das die Variable zuordnet). Bei globalen Variablen funktioniert `INIT` dagegen anders.

Weitere Informationen siehe Einen Konversationskontext definieren in der Natural RPC (Remote Procedure Call)-Dokumentation.

## Einschränkungen

Eine Kontextvariable muss auf Level 01 definiert werden. Andere Levels werden nur bei einer Redefinition benutzt.

## Syntax-Beschreibung

Syntax-Element-Beschreibung:

Syntax-Element | Beschreibung
--- | ---
`USING local-data-area` | LDA-Name: Eine Local Data Area (LDA) enthält Datenelemente, die in einem einzelnen Natural-Modul benutzt werden sollen. Sie können mehr als eine Data Area referenzieren; in diesem Fall müssen Sie die reservierten Wörter `CONTEXT` und `USING` wiederholen, zum Beispiel:
    DEFINE DATA
      CONTEXT USING DATX_L
      CONTEXT USING DATX_P

      ...
    END-DEFINE ;
Weitere Informationen siehe Felder in einer separaten Data Area definieren im Leitfaden zur Programmierung.
`USING parameter-data-area` | PDA-Name: Eine Parameter Data Area enthält Datenelemente, die als Parameter in einem Subprogramm, einer externen Subroutine oder in einem Dialog benutzt werden.
`context-data-definition` | Kontextdaten-Definition Kontextdaten können auch direkt innerhalb eines Programms oder einer Routine definiert werden. Bei einer Kontextdaten-Definition gilt die weiter unten gezeigte Syntax.
`END-DEFINE` | Ende des DEFINE DATA-Statements: Das für Natural reservierte Wort `END-DEFINE` muss zum Beenden des `DEFINE DATA`-Statements benutzt werden.

#### Kontextdaten-Definition

Kontextdaten können direkt innerhalb eines Programms oder einer Routine definiert werden. Bei einer direkten Datendefinition gilt die folgende Syntax:

level |  | variable-definition |
redefinition

Weitere Informationen siehe Felddefinitionen im DEFINE DATA-Statement im Leitfaden zur Programmierung.

Syntax-Element | Beschreibung
--- | ---
`level` | Level-Nummer: Eine anwendungsunabhängige Variable muss auf Stufe (Level) 01 definiert werden. Andere Levels werden nur bei einer Redefinition benutzt.
`variable-definition` | Definition einer Variablen: Eine Variablendefinition wird zur Definition eines einzelnen Feldes oder einer einzelnen Variablen benutzt, die einen Wert (Skalar) oder mehrere Werte (Array) haben kann. Siehe Definition von Variablen. Anmerkung Die `CONSTANT`-Klausel darf in diesem Zusammenhang nicht benutzt werden.
`redefinition` | Redefinition: Mit einer Redefinition redefinieren Sie eine Gruppe, eine View (Datensicht), ein DDM-Feld oder ein einzelnes Feld oder eine einzelne Variable (d.h. ein Skalar oder ein Array). Siehe Redefinition.

Anmerkung
Die sich aus einer Redefinition ergebenden Felder werden nicht als eine Kontext-Variable angesehen. Diese Felder werden als lokale Variablen behandelt.

### On this page

- Funktion
- Einschränkungen
- Syntax-Beschreibung