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 ../graphics/dot3.gif
END-DEFINE

Dieses Dokument behandelt folgende Themen:

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 (Datenbanksicht), 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.