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

Aufrufen von Funktionen

Eine Funktion wird von einem Net.Data-Makro mit Hilfe des kommerziellen A (@) gefolgt von einem FUNCTION-Blocknamen bzw. einem MACRO_FUNCTION-Blocknamen aufgerufen:

@funktionsname([ argument,... ])

funktionsname

Dies ist der Name des FUNCTION-Blocks

bzw. MACRO_FUNCTION-Blocks, 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
Dies ist der Name einer definierten Variable, eine Literalzeichenfolge, ein Variablenverweis oder ein Funktionsaufruf. 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 und 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 systemeigene 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 systemeigenen Sprachprozessor. Net.Data übergibt Werte an den systemeigenen Sprachprozessor nur für IN- und INOUT-Parameter und akzeptiert vom systemeigenen 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 einen REPORT-Block enthält oder angibt, daß ein Standardbericht generiert werden soll, verarbeitet Net.Data den Berichtsabschnitt 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: 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 ]