DEFINE FUNCTION
function-name
|
[return-data-definition] |
[function-data-definition] |
statement... |
END-FUNCTION
|
Dieses Dokument behandelt folgende Themen:
Eine Erläuterung der in dem Syntax-Diagramm verwendeten Symbole entnehmen Sie dem Abschnitt Syntax-Symbole.
Verwandtes Statement: DEFINE
PROTOTYPE
Mit dem DEFINE FUNCTION
-Statement können Sie eine
benutzerdefinierte Funktion erstellen, die als ein Objekt des Typs
Function
gespeichert wird. Eine Function kann nur ein DEFINE
FUNCTION
-Statement enthalten.
Mit dem DEFINE FUNCTION
-Statement wird der Name der
Funktion, die Parameter, die lokalen und die anwendungsunabhängigen Variablen,
das Ergebnis der Funktion und die Statements, die die Operationslogik bilden,
definiert.
Weitere Informationen siehe folgende Abschnitte im Leitfaden zur Programmierung:
Natural-Objekttyp Function
Syntax-Element | Beschreibung |
---|---|
function-name
|
Name der Funktion:
Sie dürfen denselben Funktionsnamen nicht zweimal in einer Library benutzen |
return-data-definition
|
Informationen zu dieser Klausel siehe Rückgabedatendefinition weiter unten. |
function-data-definition
|
Informationen zu dieser Klausel siehe Funktionsdatendefinition weiter unten. |
statement... |
Auszuführende(s) Statement(s):
Definiert die Operation(en), die ausgeführt werden sool(en), wenn die Function aufgerufen wird. Bildet die Function-Logik. |
END-FUNCTION
|
Ende des DEFINE FUNCTION-Statement:
Das für Natural reservierte Wort |
(return-data-definition
)
RETURNS [variable-name]
|
(format-length[/array-definition]) | [BY VALUE ]
|
|||||||
[(array-definition)]
HANDLE OF
OBJECT |
|||||||||
( | A |
[/array-definition]) |
DYNAMIC |
||||||
U |
|||||||||
B |
Mit dieser Klausel wird das Format, die Länge und, falls zutreffend, die Array-Struktur des Ergebniswertes festgelegt, der von der Funktion zurückgegeben wird.
Syntax-Element-Beschreibung:
Syntax-Element | Beschreibung |
---|---|
variable-name
|
Name des Rückgabewerts:
Hier kann optional ein Name angegeben werden, der benutzt werden kann, um auf das Rückgabefeld im Kode der Funktion zuzugreifen. Falls Sie keinen Namen angeben, wird der stattdessen der Name der Function verwendet. |
format-length
|
Format-/Länge-Definition:
Format und Länge des Ergebnisfeldes. Weitere Informationen siehe Format und Länge von Benutzervariablen im Leitfaden zur Programmierung. |
array-definition |
Definition der Array-Dimensionen:
Falls das Ergebnisfeld ein Array-Feld ist, legen Sie hier die untere und obere Grenze einer Dimension fest. Weitere Informationen siehe |
HANDLE OF OBJECT |
Object-Handle:
Wird bei NaturalX verwendet. Weitere Informationen siehe NaturalX im Programming Guide. |
A , U or
B |
Datentyp:
Alphanumerisch (A), Unicode (U) oder binär (B) für ein dynamisches Ergebnis. |
DYNAMIC |
Dynamische Variable:
Das Function-Ergebnis kann als Weitere Informationen siehe Dynamische Variablen im Leitfaden zur Programmierung. |
BY VALUE |
BY VALUE-Option:
Wenn Sie Das Format und die Länge des "empfangenden" Felds werden wie folgt definiert:
Bezüglich der Datenübertragungskompatibilität gelten die Regeln in den Abschnitten Regeln für arithmetische Operationen und Kompatibilitätsregeln zur Datenübertragung im Leitfaden zur Programmierung. Wenn Sie |
(function-data-definition
)
DEFINE
DATA
|
||||||||||
PARAMETER
|
||||||||||
LOCAL
|
USING
|
|||||||||
local-data-definition | ||||||||||
[INDEPENDENT aiv-data-definition
]
|
||||||||||
END-DEFINE
|
Mit dieser Klausel werden die Parameter, die beim Aufrufen der Function mitgegeben werden sollen, und die von der Function benutzten Datenfelder festgelegt, zum Beispiel lokale Variable und anwendungsunabhängige Variable. Eine Global Data Area (GDA) kann nicht innerhalb der Function-Definition referenziert werden.
Syntax-Element-Beschreibung:
Syntax-Element | Beschreibung |
---|---|
PARAMETER USING
parameter-data-area |
PDA-Name:
Der Name der Parameter Data Area (PDA), die Datenelemente enthält, die als Parameter in einem Function Call benutzt werden. Siehe auch Definition
von Parameter Data in der |
PARAMETER
parameter-data-definition |
Parameterdatendefinition:
Anstatt eine Parameter Data Area zu definieren, können Sie Parameter auch direkt in einem Function Call definieren. Siehe auch Definition
von Parameterdaten in der |
LOCAL USING
local-data-area |
LDA-Name:
Geben Sie den Namen der zu referenzierenden Local Data Area (LDA) an. Siehe auch Definition
von Local Data in der |
LOCAL USING
parameter-data-area |
PDA-Name:
Geben Sie den Namen der zu referenzierenden Parameter Data Area (PDA) an. Anmerkung: Siehe auch Definition
von Local Data in der |
LOCAL
local-data-definition |
Lokale Daten-Definition:
Informationen, wie Sie Elemente oder Felder innerhalb des
Statements selbst definieren können, das heisst, ohne dazu eine LDA oder eine
PDA zu benutzen, finden Sie im Abschnitt
Lokale
Daten-Definition in der |
INDEPENDENT
aiv-data-definition |
AIV-Daten-Definition:
Hier können Sie eine oder mehrere anwendungsunabhängige Variablen angeben. Siehe Definition von
anwendungsunabhängigen Variablen in der |
END-DEFINE |
Ende der Klausel:
Das für Natural reservierte Wort |
** Example 'DFUEX1': DEFINE FUNCTION ************************************************************************ DEFINE FUNCTION F#FIRST-CHAR RETURNS #RESULT (A1) DEFINE DATA PARAMETER 1 #PARM (A10) END-DEFINE /* #RESULT := #PARM /* First character as return value. END-FUNCTION * END
Die Funktion F#FIRST-CHAR
wird in dem Beispielprogramm
DPTEX2
in der Library SYSEXSYN
verwendet. Siehe
Beispiele
in der DEFINE PROTOTYPE
-Statement-Beschreibung.
** Example 'DFUEX2': DEFINE FUNCTION ************************************************************************ DEFINE FUNCTION F#FACTOR RETURNS (I2/1:3) DEFINE DATA PARAMETER 1 #VALUE (I2) END-DEFINE /* F#FACTOR(1) := #VALUE * 1 F#FACTOR(2) := #VALUE * 2 F#FACTOR(3) := #VALUE * 3 /* END-FUNCTION * END
Die Funktion F#FACTOR
wird in dem Beispielprogramm
DPTEX1
in der Library SYSEXSYN
verwendet. Siehe
Beispiele
in der DEFINE PROTOTYPE
-Statement-Beschreibung.