Net.Data Verwaltung und Programmierung für OS/2, Windows NT und UNIX
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:
- 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.
- 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.
- 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.
- 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.
- 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:
- Ein globaler MESSAGE-Block ist angegeben, und der Rückkehrcode wird nicht
von einem lokalen MESSAGE-Block bearbeitet.
- Eine integrierte Funktion wird aufgerufen.
MACRO_FUNCTION-Blöcke.
- 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 ]