Dieser Abschnitt behandelt folgende Themen:
Sie können selbst entwickelte Symbol-Funktionen über Exits in Entire Operations verfügbar machen.
Syntax für Symbol-Funktionen:
§!function<parm1,...,parmn>
Dem Fluchtzeichen (hier §) muss immer ein Ausrufezeichen (!, bei BS2000: ö) oder Fragezeichen (?) folgen, damit eine Funktion erkannt wird .
Die Parameterliste ist optional und wird in spitze Klammern (<) (>) eingeschlossen. Zwischen Funktionsname und Parameterliste sind keine Leerzeichen erlaubt
Parameter müssen durch Kommas getrennt werden.
Die Gesamtlänge des Funktionsaufrufs darf nicht länger als 20 Zeichen sein.
Die Symbolfunktionen müssen in der Bibliothek SYSEOR abgelegt werden.
Die Parameter werden der Funktion in einem extra Feld übergeben.
Die Protokollierung (Logging) der Symbolersetzung wird vom Entire Operations-Monitor ausgeführt. Zusätzliche Protokollierung ist freigestellt.
Der Symbolwert wird nach erfolgreicher Ersetzung in die aktive Symboltabelle des Jobs zurückgeschrieben. Bei Folge-Ersetzungen wird nicht mehr die Symbol-Funktion aufgerufen, sondern der Wert aus der aktiven Tabelle gelesen.
Die Namen der Symbolfunktions-Exits beginnen mit SX. Da die Namenslänge der Natural-Objekte auf 8 begrenzt ist, darf der Funktionsname - ohne Ausrufezeichen (!) - maximal 6 Zeichen haben.
Die Funktion !RANDOM
wird in der Routine
SXRANDOM
behandelt.
Die Symbolfunktions-Exits werden mit der Parameterliste
NOPXPL-A
aufgerufen. Die erste Zeile des Exits sollte somit lauten:
DEFINE DATA PARAMETER USING NOPXPL-A
Bedeutung der Parameter in NOPXPL-A
:
Parameter | Format | Verwendung | ||
---|---|---|---|---|
P-CALL-PLACE
|
(A03) | ein | Konstant SFX. | |
P-RC
|
(N04) | aus | Rückgabe-Code: | |
0 | Funktion ok. | |||
4511 | Symbol nicht gefunden. | |||
P-RT
|
(A66) | aus | Rückgabe-Text (kann zur genauen Fehler-Beschreibung verwendet werden; optional). | |
P-OWNER
|
(A10) | ein | Eigentümer des Netzwerks. | |
P-NETWORK
|
(A10) | ein | Job-Netzwerk. | |
P-JOB
|
(A10) | ein | Job. | |
P-RUN
|
(P13) | ein | Laufnummer. | |
P-EXECUTION-NODE
|
(N03) | ein | Entire System Server Ausführungs-Knoten. | |
P-SYMBOL-TABLE
|
(A10) | ein | Name der definierten Symboltabelle. | |
P-SYMBOL
|
(A20) | ein | Funktionsparameter, ohne Klammern. | |
P-SYMBOL-VALUE
|
(A54) | aus | Symbolwert (Ergebnis der Funktion). |
Anmerkungen:
P-SYMBOL
werden nur die
Funktionsparameter (ohne Klammern) übergeben. Den Funktionsnamen kann man
aus der Natural-Variable *PROGRAM
erkennen.
NOPXPL-A
dürfen
nicht verwendet werden, da sie keinen gültigen Inhalt haben.
* SYMBOL FUNCTION EXIT EXAMPLE * SXQS<PARM1> * CROSSFOOTING OF THE PARAMETER * ------------------------------------------------------------- DEFINE DATA PARAMETER USING NOPXPL-A LOCAL 1 #I (I02) 1 #N (I02) 1 #SUM (I02) 1 #A (A01) END-DEFINE * ------------------------------------------------------------- RESET #SUM F1. FOR #I = 1 TO 20 #A := SUBSTR (P-SYMBOL,#I,1) IF #A IS (N1) #N := VAL(#A) ADD #N TO #SUM END-IF END-FOR /* F1. P-SYMBOL-VALUE := #SUM RESET P-RC P-RT END
//SN000001 JOB ,SN,CLASS=K //IEFBR14 EXEC PGM=IEFBR14 //* //* +!D<AQ+1> //* §!D<AQ+1> //* //* +!QS<4711> //* §!QS<4711> //* //* +!QS<+*DATE> NESTED Symbole //* +!QS<§*DATE> NESTED Symbole //* §!QS<§*DATE> NESTED Symbole //* //* +!QS<+!D<AM-1>> NESTED FUNCTIONS //* +!QS<§!D<AM-1>> NESTED FUNCTIONS //* §!QS<§!D<AM-1>> NESTED FUNCTIONS //*
//SN000001 JOB ,SN,CLASS=K //IEFBR14 EXEC PGM=IEFBR14 //* //* +!D<AQ+1> //* 20081117 //* //* +!QS<4711> //* 13 //* //* +!QS<+*DATE> NESTED Symbols //* +!QS<17/11/08> NESTED Symbols //* 18 NESTED Symbols //* //* +!QS<+!D<AM-1>> NESTED FUNCTIONS //* +!QS<20081117> NESTED FUNCTIONS //* 30 NESTED FUNCTIONS //*
Symbol F A Wert modified by !D<AM-1> A E 20081117 EORMON 17.11.08 10:25 !D<AQ+1> A E 20081101 EORMON 17.11.08 10:25 !QS<17/11/08> A E 18 EORMON 17.11.08 10:25 !QS<20081117> A E 30 EORMON 17.11.08 10:25 !QS<4711> A E 13 EORMON 17.11.08 10:25 X A E x SN 17.11.08 10:13