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.
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:
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.
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.
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.
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.
Definieren Sie Funktionen in der äußersten Net.Data-Makroebene, bevor diese im Net.Data-Makro aufgerufen werden.