Allgemeine Syntax von DEFINE DATA CONTEXT
:
DEFINE DATA |
||||||||
CONTEXT |
USING |
|||||||
context-data-definition | ||||||||
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
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.
Eine Kontextvariable muss auf Level 01 definiert werden. Andere Levels werden nur bei einer Redefinition benutzt.
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
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 |
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: |
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.