Version 4.2.6
 —  Statements  —

Definition von Kontext-Variablen für den Natural RPC

Allgemeine Syntax von DEFINE DATA CONTEXT:

CONTEXT

USING

local-data-area

parameter-data-area
context-data-definition ../graphics/dot3.gif

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 Remote Procedure Call (RPC) verwendet. Es dient dort zur Definition von als Kontext-Variablen bekannte Variablen, die für mehrere Subprogramme auf einem externen (Remote-)Rechner innerhalb einer Konversation zur Verfügung stehen sollen, ohne dass Sie die Variablen explizit als Parameter mit den entsprechenden CALLNAT-Statements übergeben müssen.

Eine Kontext-Variable wird über ihren Namen referenziert, und ihr Inhalt wird von allen in einer Konversation ausgeführten Programmierobjekten gemeinsam benutzt, die auf diesen Namen verweisen. Die Variable wird vom ersten ausgeführten Programmierobjekt zugewiesen, das die Definition der Variable enthält, und wird freigegeben, wenn die Konversation beendet ist.

Kontext-Variablen können auch in einem nicht-konversationellen CALLNAT benutzt werden. In diesem Fall sind die Kontext-Variablen nur während eines einzigen Aufrufs dieses CALLNAT vorhanden, aber die Variablen können mit allen ihren aufgerufenen Callees gemeinsam benutzt werden.

Eine Kontext-Variable wird nicht mit Subprogrammen gemeinsam benutzt, die innerhalb der Konversation aufgerufen werden. Wenn ein solches Subprogramm oder eines seiner Callees eine Kontext-Variable referenziert, wird ein separater Speicherbereich für diese Variable zugewiesen.

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 Remote Procedure Call (RPC)-Dokumentation.

Seitenanfang

Einschränkungen

Eine Kontext-Variable muss auf Level 01 definiert werden. Andere Levels werden nur bei einer Redefinition benutzt.

Seitenanfang

Syntax-Beschreibung

USING local-data-area

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 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 Kontext-Daten können auch direkt innerhalb eines Programms oder einer Routine definiert werden. Bei einer direkten Daten-Definition gilt die weiter unten gezeigte Syntax.
END-DEFINE

Das für Natural reservierte Wort END-DEFINE muss zum Beenden des DEFINE DATA-Statements benutzt werden.

Kontextdaten-Definition

Kontext-Daten können direkt innerhalb eines Programms oder einer Routine definiert werden. Bei einer direkten Daten-Definition gilt die folgende Syntax:

level

variable-definition

redefinition
handle-definition

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

level Eine anwendungsunabhängige Variable muss auf Stufe (Level) 01 definiert werden. Andere Levels werden nur bei einer Redefinition benutzt.
variable-definition

Eine Variablen-Definition 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 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.
handle-definition Eine Handle identifiziert ein Dialog-Element im Code und wird in Handle-Variablen gespeichert. Siehe Handle-Definition.

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

Seitenanfang