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 bekannte Variablen, die für mehrere Subprogramme auf einem externen (Remote-)Rechner 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, und ihr Inhalt wird von allen in einer Konversation ausgeführten Natural-Objekten, die auf diesen Namen verweisen, gemeinsam benutzt. Die Variable wird vom ersten ausgeführten Natural-Objekt zugewiesen, das die Definition der Variable enthält, und wird freigegeben, wenn die Konversation beendet ist.

Kontextvariablen können auch in einem nicht-konversationellen CALLNAT benutzt werden. In diesem Fall sind die Kontextvariablen nur während eines Aufrufs dieses CALLNAT vorhanden. Die Variable wird zugewiesen, wenn das Remote-Subprogramm gestartet wird, und die Zuweisung wird aufgehoben, wenn es endet. Der Inhalt wird von allen Programmierobjekten gemeinsam verwendet, jedoch nicht von Subprogrammen, 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 Programmierobjekt, das die Variable zuweist). Bei globalen Variablen funktioniert INIT anders.

Weitere Informationen siehe Defining a Conversation Context 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 Variable 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, ein View, 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.