Allgemeine Syntax von DEFINE DATA CONTEXT:
DEFINE
DATA |
||||||||
CONTEXT |
|
USING |
|
|
|
|||
|
context-data-definition
|
||||||||
END-DEFINE |
||||||||
Dieser Abschnitt 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 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 aufgerufen 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 einzelnen
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.
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 Variablen 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, 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.