Net.Data Verwaltung und Programmierung für OS/2, Windows NT und UNIX

Definieren von Funktionen

Sie können eigene Funktionen definieren oder die in Net.Data integrierten Funktionen verwenden. Zum Definieren eigener Funktionen für die Makrodatei (die auch als benutzerdefinierte Funktionen bezeichnet werden), verwenden Sie einen FUNCTION-Block oder MACRO_FUNCTION-Block.

FUNCTION-Block
Definiert eine Unterroutine, die von einem Net.Data-Makro aufgerufen wird und entweder von der Sprachumgebung verarbeitet wird oder ein externes Programm aufruft.

MACRO_FUNCTION-Block
Definiert eine Unterroutine, die von einem Net.Data-Makro aufgerufen wird und von Net.Data, d. h. nicht von einer anderen Sprachumgebung, verarbeitet werden muß. Die Anweisungen im Block müssen Quellenanweisungen der Net.Data-Makrosprache sein.

Der MACRO_FUNCTION-Block ist eine Alternative zum FUNCTION-Block, die die Leistung verbessern kann. Der MACRO_FUNCTION-Block wird nur von Net.Data verarbeitet und ruft keine Sprachumgebung auf. Einzelheiten zu diesen beiden Konstrukten finden Sie im Handbuch Net.Data Reference.

Die Syntax sieht wie folgt aus:

FUNCTION-Block:

%FUNCTION(art) funktionsname(syntax parameter, ...) [RETURNS(rückkehrvariable)] {
  ausführbare-anweisungen
  report-block
  message-block
%}

MACRO_FUNCTION-Block:

%MACRO_FUNCTION funktionsname(syntax parameter, ...)  {
  ausführbare-anweisungen
    %}

Dabei gilt folgendes:

art

Gibt eine Sprachumgebung an, die in der Initialisierungsdatei konfiguriert wird. Die Sprachumgebung ruft einen speziellen Sprachprozessor auf (der die ausführbaren Anweisungen verarbeitet) und stellt eine Standardschnittstelle zwischen Net.Data und dem Sprachprozessor bereit.

Mit Net.Data werden verschiedene Standardsprachumgebungen bereitgestellt.

funktionsname

Gibt den Namen des FUNCTION- oder MACRO_FUNCTION-Blocks an. Sie können den FUNCTION-Block oder MACRO_FUNCTION-Block über einen Funktionsaufruf an einer anderen Stelle in der Makrodatei ausführen. Der Funktionsaufruf verweist auf den funktionsnamen mit einem vorangestellten kommerziellen A (@). Nähere Informationen finden Sie unter Aufrufen von Funktionen.

Sie können mehrere FUNCTION- oder MACRO_FUNCTION-Blöcke mit dem gleichen Namen definieren, so daß sie gleichzeitig verarbeitet werden. Jeder der Blöcke muß eine identische Parameterliste besitzen. Wenn Net.Data eine Funktion aufruft, werden alle FUNCTION-Blöcke gleichen Namens bzw. MACRO_FUNCTION-Blöcke gleichen Namens in der Reihenfolge ausgeführt, in der sie im Net.Data-Makro definiert sind.

syntax
Gibt an, ob ein Parameter ein Eingabeparameter (IN), ein Ausgabeparameter (OUT) oder beides (INOUT) ist. Diese Angabe bestimmt, ob der Parameter an einen FUNCTION-Block bzw. einen MACRO_FUNCTION-Block übergeben, von ihm empfangen oder sowohl übergeben als auch empfangen wird. Die Syntaxart gilt für alle nachfolgenden Parameter in der Parameterliste, bis sie durch eine andere Syntaxart geändert wird. Die Standardart ist IN.

parameter

Der Name einer Variablen mit lokalem Geltungsbereich, die durch den Wert eines entsprechenden in einem Funktionsaufruf angegebenen Arguments ersetzt wird. Parameterverweise, z. B. $(parm1), in den ausführbaren Anweisungen oder REPORT-Blöcken werden durch den tatsächlichen Wert des Parameters ersetzt. Zudem werden die Parameter an die Sprachumgebung übergeben. Ausführbare Anweisungen, die die spezifische Syntax dieser Sprache verwenden, können darauf zugreifen oder sie als Umgebungsvariablen verwenden. Verweise auf Parametervariablen sind außerhalb des FUNCTION-Blocks bzw. MACRO_FUNCTION-Blocks ungültig.

rückkehrvariable
Geben sie diesen Parameter nach dem Schlüsselwort RETURNS an, um einen speziellen OUT-Parameter zu definieren. Der Wert der Rückkehrvariablen wird dem Funktionsaufruf zugeordnet und ersetzt den Funktionsaufruf bei der Net.Data-Makroverarbeitung. Wenn Sie die Klausel RETURNS nicht angeben, ist der Wert des Funktionsaufrufs einer der folgenden Werte:

ausführbare-anweisungen
Die Gruppe der Sprachanweisungen, die an die angegebene Sprachumgebung zur Verarbeitung übergeben wird, nachdem die Variablen ersetzt und die Funktionen verarbeitet wurden. ausführbare-anweisungen können Net.Data-Variablenverweise und Net.Data-Funktionsaufrufe enthalten. Vor der Übergabe der ausführbaren Anweisungen an die Sprachumgebung ersetzt Net.Data diese Variablenverweise bzw. Funktionsaufrufe durch die tatsächlichen Werte. ausführbare-anweisungen umfassen auch solche ausführbaren Anweisungen, die in einem HTML-Block zulässig sind.

Bei FUNCTION-Blöcken ersetzt Net.Data alle Variablenverweise durch die Variablenwerte, führt alle Funktionsaufrufe aus und ersetzt die Funktionsaufrufe mit den sich jeweils ergebenden Werten, bevor die ausführbaren Anweisungen an die Sprachumgebung übergeben werden. Jede Sprachumgebung verarbeitet die Anweisungen auf andere Weise. Weitere Informationen zur Angabe ausführbarer Anweisungen oder zum Aufrufen ausführbarer Programme finden Sie im Abschnitt Ausführbare Variablen.

Bei MACRO_FUNCTION-Blöcken sind die ausführbaren Anweisungen eine Kombination aus HTML-Anweisungen und Net.Data-Makrosprachkonstrukten. In diesem Fall spielt die Sprachumgebung keine Rolle, da Net.Data als Sprachprozessor fungiert und die ausführbaren Anweisungen auswertet und ausführt.

report-block
Definiert den REPORT-Block zur Behandlung der Ausgabe des FUNCTION-Blocks. Siehe Abschnitt REPORT-Blöcke.

message-block
Definiert den MESSAGE-Block, der alle vom FUNCTION-Block zurückgemeldeten Nachrichten verarbeitet. Siehe Abschnitt MESSAGE-Blöcke.

Definieren Sie Funktionen in der äußersten Net.Data-Makroebene, bevor diese im Net.Data-Makro aufgerufen werden.


[ Seitenanfang | Vorherige Seite | Nächste Seite | Inhaltsverzeichnis | Index ]