Net.Data Verwaltung und Programmierung für OS/400


Aufrufen von Funktionen

Verwenden Sie eine Net.Data-Funktionsaufrufanweisung, um benutzerdefinierte oder integrierte Funktionen aufzurufen. Verwenden Sie das kommerzielle A (@), gefolgt von einem FUNCTION-Blocknamen bzw. einem MACRO_FUNCTION-Blocknamen:

@function_name([ argument,... ])

function_name
Gibt den Namen des FUNCTION-Blocks oder MACRO_FUNCTION-Blocks an, der aufgerufen werden soll. Die Funktion muß bereits im Net.Data-Makro definiert sein, es sei denn, es handelt sich um eine integrierte Funktion.

argument
Gibt den Namen einer definierten Variablen, einer Literalzeichenfolge, eines Variablenverweises oder eines Funktionsaufrufs an. Die Argumente in einem Funktionsaufruf werden mit den Parametern eines FUNCTION-Blocks bzw. MACRO_FUNCTION-Blocks abgeglichen, und jedem Parameter wird bei der Verarbeitung des FUNCTION-Blocks bzw. des MACRO_FUNCTION-Blocks der Wert des entsprechenden Arguments zugewiesen. Die Argumente müssen dieselbe Anzahl und Art wie die zugehörigen Parameter aufweisen.

Net.Data verarbeitet den FUNCTION-Block, MACRO_FUNCTION-Block oder integrierte Funktionen, die einem Funktionsaufruf zugeordnet sind, in der folgenden Reihenfolge:

  1. Net.Data verarbeitet die Variablenverweise und Funktionsaufrufe im Abschnitt mit den ausführbaren Anweisungen des FUNCTION-Blocks. Net.Data ersetzt alle Variablenverweise durch die aktuellen Werte der Variablen, führt alle Funktionsaufrufe aus und ersetzt sie durch den Rückkehrwert des jeweiligen Funktionsaufrufs. Die Variablenverweise und Funktionsaufrufe werden in der Reihenfolge verarbeitet, in der sie angegeben sind. Net.Data verarbeitet während dieses Schritts keine integrierten Funktionen oder MACRO_FUNCTION-Blöcke.

  2. Der native Sprachprozessor verarbeitet den Abschnitt mit den ausführbaren Anweisungen. Bei FUNCTION-Blöcken entspricht der Prozessor der für den FUNCTION-Block definierten Sprachumgebung wie zum Beispiel SQL, REXX oder Perl. Bei MACRO_FUNCTION-Blöcken fungiert Net.Data als Sprachprozessor und führt die ausführbaren Anweisungen aus. Integrierte Funktionen enthalten keine ausführbaren Anweisungen. Net.Data verarbeitet die integrierten Funktionen nach Funktionsnamen.

    Net.Data übergibt die Parameter der Funktion an den nativen Sprachprozessor. Net.Data übergibt nur für IN- und INOUT-Parameter Werte an den nativen Sprachprozessor und akzeptiert vom nativen Sprachprozessor zurückgegebene Werte nur für OUT- und INOUT-Parameter.

  3. Net.Data setzt die impliziten Variablen RETURN_CODE und DTW_DEFAULT_MESSAGE entsprechend dem Rückkehrcode und der zurückgegebenen Nachricht des Sprachprozessors. Für MACRO_FUNCTION-Blöcke setzt Net.Data diese Variablen nicht.

  4. Wenn der FUNCTION-Block bzw. MACRO_FUNCTION-Block einen oder mehrere REPORT-Blöcke enthält oder angibt, daß Standardberichte generiert werden sollen, verarbeitet Net.Data den Bericht bzw. die Berichte unter Verwendung der neuen Werte aller angegebenen Ausgabeparameter. Für integrierte Funktionen generiert Net.Data keine Berichte.

  5. Wenn der FUNCTION-Block einen lokalen MESSAGE-Block enthält, verarbeitet Net.Data den MESSAGE-Block. Net.Data verarbeitet den globalen MESSAGE-Block, wenn eine der folgenden Bedingungen zutrifft:

    Net.Data verarbeitet keine MESSAGE-Blöcke für MACRO_FUNCTION-Blöcke.

  6. Net.Data ersetzt den Funktionsaufruf durch den zurückgegebenen Wert der Funktion. Bei FUNCTION-Blöcken ist dieser Wert einer der folgenden:

    RETURNS-Parameterwert
    Ersetzt den FUNCTION-Block mit einem Schlüsselwort RETURNS.

    Leere Zeichenfolge ("")
    Ersetzt den FUNCTION-Block ohne Schlüsselwort RETURNS, wenn der Wert für RETURN_CODE gleich Null ist.

    RETURN_CODE
    Ersetzt den FUNCTION-Block ohne Schlüsselwort RETURNS, wenn der Wert für RETURN_CODE ungleich Null ist.

    Bei MACRO_FUNCTION-Blöcken ersetzen die Ergebnisse der Verarbeitung des Abschnitts mit den ausführbaren Anweisungen den Funktionsaufruf.

    Bei integrierten Funktionen hängt der Wert vom Format der integrierten Funktion ab.


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