Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

BEGIN-PROCEDURE

&pagelevel(3)&pagelevel

Prozedurdatei einleiten und Prozedurparameter definieren

Komponente:

SYSFILE

Funktionsbereich:

Prozeduren                                                                                                                

Anwendungsbereich:

PROCEDURE

Privilegierung:

STD-PROCESSING
HARDWARE-MAINTENANCE
SAT-FILE-EVALUATION
SAT-FILE-MANAGEMENT
SECURITY-ADMINISTRATION

Funktionsbeschreibung

Das Kommando kann nur für Nicht-S-Prozeduren verwendet werden.

Das BEGIN-PROCEDURE-Kommando muss der erste Datensatz einer Nicht-S-Prozedur sein. Es definiert symbolische Parameter, die in den nachfolgenden Kommandos der Prozedurdatei verwendet werden.
Symbolische Parameter sind Variablen, die während des Prozedurablaufs mit aktuellen Werten versorgt werden. Diese Werte können vereinbart werden:

  • bei Aufruf der Prozedur: im CALL-PROCEDURE-Kommando,

  • bei Erstellung der Prozedur: im BEGIN-PROCEDURE-Kommando (sog. Vordefinition: die Werte werden nur eingesetzt, wenn die Angabe im CALL-PROCEDURE-Kommando fehlt),

  • während des Prozedurablaufs (Prompting): Der Benutzer wird zur Eingabe des Wertes im Dialog aufgefordert, wenn für den entsprechenden symbolischen Parameter weder im CALL- noch im BEGIN-PROCEDURE-Kommando Werte vereinbart wurden.

Das Kommando BEGIN-PROCEDURE darf nur in Prozedurdateien verwendet werden. Es wird im Dialog abgewiesen und daher auch nicht im Menü angeboten.

Format

BEGIN-PROCEDURE                                                                                                                                    

 LOGGING = *NO / *ALL / *DATA / *CMD

,PARAMETERS = *NO / *YES(...)


*YES(...)



|

PROCEDURE-PARAMETERS = <text 0..1800 with-low>



|

,ESCAPE-CHARACTER = *NONE / <c-string 1..1>

,INTERRUPTION-ALLOWED = *YES / *NO

 

Operandenbeschreibung

LOGGING
Art der Protokollierung des Prozedurablaufs. SDF-Anweisungen werden bei der Protokollierung wie Kommandos behandelt.

LOGGING = *NO
Es wird kein Protokoll über den Ablauf der Prozedur in die Systemdatei SYSOUT geschrieben.

LOGGING = *ALL
Kommandos und Eingabedaten der Prozedurdatei werden bei Ausführung auf SYSOUT protokolliert.

LOGGING = *DATA
Die Eingabedaten der Prozedurdatei werden bei Ausführung auf SYSOUT protokolliert.

LOGGING = *CMD
Kommandos und SDF-Anweisungen der Prozedurdatei werden bei Ausführung auf SYSOUT protokolliert.

PARAMETERS = *NO / *YES(...)
Gibt an, ob die Prozedur symbolische Parameter enthält.

PARAMETERS = *YES(...)

PROCEDURE-PARAMETERS = <text 0..1800 with-low>
Namen der symbolischen Parameter, die in der Prozedurdatei verwendet werden sollen. Sie bilden die Parameterliste der Prozedur.

Zulässige Zeichen für symbolische Parameter:

1. Zeichen:

&

2. Zeichen:

alphabetisch

weitere Zeichen:

Buchstaben und Ziffern

Mindestlänge:

2 Zeichen

Maximallänge:

255 Zeichen

Die einzelnen symbolischen Parameter sind durch Kommas zu trennen; der gesamte Ausdruck muss in runde Klammern eingeschlossen werden.

Symbolische Parameter können als Stellungs- oder Schlüsselwortparameter definiert werden.
Stellungsparameter bestehen nur aus dem Namen, z.B.: &A.
Schlüsselwortparameter bestehen aus dem Namen, gefolgt von einem Gleichheitszeichen, z.B.: &A=. Zusätzlich kann dem Namen ein Wert zugewiesen werden, z.B.:
&A=WERT. Dieser gilt, wenn bei Aufruf der Prozedur (CALL-PROCEDURE) der betreffende Parameter weggelassen wird.
Der Wert darf maximal 254 Zeichen lang sein.
Als Wert sind auch von Hochkommas eingeschlossene Zeichenfolgen (Strings) zugelassen. Der Wert muss in Hochkommas eingeschlossen werden, wenn er Leerzeichen oder Sonderzeichen enthalten soll. Hochkommas innerhalb von Strings sind zu verdoppeln. Kleinbuchstaben innerhalb von Strings bleiben erhalten.

Bei Eingabe von Werten während des Prozedurablaufs (Prompting) werden Kleinbuchstaben auch innerhalb von Strings in Großbuchstaben umgesetzt!
Der Schrägstrich vor einem Kommando kann nicht durch Parameter ersetzt werden.Schlüsselwort- und Stellungsparameter dürfen in der Parameterliste in beliebiger Reihenfolge stehen. Folgt in der Prozedurdatei auf einen symbolischen Parameter ein Punkt oder ein alphanumerisches Zeichen, so muss der Parameter davon durch einen Punkt getrennt werden.

ESCAPE-CHARACTER = *NONE / <c-string 1..1>
Zeichen (&, @, #, $ oder *), das symbolische Parameter in Eingabedaten kennzeichnet. Wird kein Zeichen angegeben (entspricht der Voreinstellung NONE), werden symbolische Parameter in Eingabedaten nicht ersetzt. SDF-Anweisungen werden wie Kommandos behandelt, d.h. symbolische Parameter müssen dort mit & beginnen und werden immer ersetzt.
Symbolische Parameter in Eingabedaten müssen mit dem vereinbarten Zeichen beginnen. Die Verdoppelung des Zeichens wird zu einem Zeichen ersetzt und verhindert die Parameterersetzung.

INTERRUPTION-ALLOWED =
Gibt an, ob die Prozedur zur Kommandoeingabe mit der K2-Taste unterbrochen werden kann. Kommandos innerhalb der Prozedur, die eine Unterbrechung zur Folge haben, werden dennoch ausgeführt.

INTERRUPTION-ALLOWED = *YES
Unterbrechung der Prozedur mit der K2-Taste ist möglich.
Der Benutzer kann Kommandos eingeben.
Die Angabe wird ignoriert, wenn die Prozedur aus einer nicht unterbrechbaren Prozedur aufgerufen wird.

INTERRUPTION-ALLOWED = *NO
Unterbrechung der Prozedur mit der K2-Taste ist nicht möglich. Geschachtelte Prozeduren auf den nachfolgenden Prozedurstufen sind ebenfalls nicht unterbrechbar (unabhängig von der jeweiligen Festlegung in INTERRUPTION-ALLOWED).
Wird in einer Prozedur ein Programm aufgerufen, in dem die Ereignisklasse ESCPBRK definiert ist, so wird diese STXIT-Routine durch die K2-Taste immer aktiviert.

Kommando-Returncode

Das Kommando BEGIN-PROCEDURE wird nicht von SDF ausgewertet. Es kann nur zu einem Fehler führen, wenn es im falschen Kontext verwendet wird. In diesem Fall wird der nachfolgende Kommando-Returncode ausgegeben.

(SC2)

SC1

Maincode

Bedeutung


64

SSM2057

Kommando nicht erstes Kommando einer Nicht-S-Prozedur

Hinweise

  • Das BEGIN-PROCEDURE-Kommando muss immer der erste Datensatz einer Prozedurdatei sein. Diese Datei darf kein weiteres BEGIN-PROCEDURE-Kommando und kein LOGON- oder RESTART-PROGRAM-Kommando enthalten.

  • Aus der Beschreibung des CALL-PROCEDURE-Kommandos geht hervor, wie eine Prozedurdatei aufgerufen wird und die symbolischen Parameter durch aktuelle Werte ersetzt werden.

  • Aus der Beschreibung des END-PROCEDURE-Kommandos ist zu entnehmen, wie eine Prozedurdatei beendet wird.

 

Beispiele

Beispiel 1

Die Prozedurdatei MJ.PROC beginnt mit folgendem Satz:

/BEG-PROC LOG=*ALL,PAR=*YES(PROC-PAR=(&A,&B),ESC-CHAR=C'#')

Durch den Prozeduraufruf

/CALL-PROC FROM-FILE=MJ.PROC,PROC-PAR=(MODULE,LISTE)

werden die symbolischen Parameter mit Werten belegt und die Prozedur ausgeführt.

Durch den Aufruf

/CALL-PROC FROM-FILE=MJ.PROC

werden die Werte erst während des Prozedurlaufes vereinbart (Prompting).

Beispiel 2

Die Prozedurdatei MJ.PROC enthält folgende Sätze:

/BEG-PROC LOG=*ALL,PAR=*YES(PROC-PAR=(&A,&B),ESC-CHAR=C'#')
/MODIFY-JOB-SWITCHES ON=(1,4,5)
/ASS-SYSDTA TO=*SYSCMD
/START-EXE FROM-FILE=$LMS
LIB MJ.BIBLIO.#A,BOTH,NEW
ADDJ #B
END
/SHOW-FILE-ATTR F-NAME=MJ.BIBLIO.&A,INF=*ALL-ATTR
/MODIFY-JOB-SWITCHES OFF=(1,4,5)
/END-PROC

Durch den Prozeduraufruf

/CALL-PROC FROM-FILE=MJ.PROC,PROC-PAR=(MODULE,LISTE)

werden folgende Kommandos und LMS-Anweisungen ausgeführt:

...
/ASS-SYSDTA TO=*SYSCMD
/START-EXE FROM-FILE=$LMS
LIB MJ.BIBLIO.MODULE,BOTH,NEW
ADDJ LISTE
END
/SHOW-FILE-ATTR F-NAME=MJ.BIBLIO.MODULE,INF=*ALL-ATTR
...
 

Beispiel 3

Die Prozedurdatei MJ.PROC1 enthält folgende Sätze:

/BEG-PROC LOG=*ALL,PAR=*YES(PROC-PAR=(&EIN,&AUS=MJ.AUS),ESC-CHAR=C'&')
/ASS-SYSDTA TO=*SYSCMD
/MOD-JOB-SW ON=(4,5)
/START-EDT
@READ'&EIN'
...
@WRITE'&AUS'
@HALT
/MOD-JOB-SW OFF=(4,5)
/END-PROC

Bei Aufruf durch

/CALL-PROC FROM-FILE=MJ.PROC1

erscheint folgende Ausgabe auf dem Bildschirm:

%/BEG-PROC LOG=*ALL,PAR=*YES(PROC-PAR=(&EIN,&AUS=MJ.AUS),ESC-CHAR=C'&')
%/ASS-SYSDTA TO=*SYSCMD
%/MOD-JOB-SW ON=(4,5)
%/START-EDT
%@READ'&EIN'
&EIN=
mj.eingabedatei
%@READ'MJ.EINGABEDATEI'
...
%@WRITE'MJ.AUS'
%@HALT
%/MOD-JOB-SW OFF=(4,5)
%/END-PROC

Der symbolische Parameter &AUS ist also schon durch die Prozedurvereinbarung vorbelegt, nur noch &EIN muss während des Prozedurablaufs angegeben werden.