Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

CALL-PROCEDURE Kommandofolge starten

&pagelevel(4)&pagelevel

Anwendungsgebiet: PROCEDURE

Das Kommando ist Bestandteil von BS2000/OSD-BC (Stand der Beschreibung: V7.0). Der Aufrufer benötigt (im Gegensatz zu den SDF-P-Kommandos) die Privilegien STD-PROCESSING bzw. HARDWARE-MAINTENANCE.

Kommandobeschreibung

Das Kommando CALL-PROCEDURE startet eine gespeicherte Kommandofolge (Prozedur). Bei Abarbeitung werden darin enthaltene symbolische Parameter durch die im Kommandoaufruf angegebenen Werte (Operand PROCEDURE-PARAMETERS) ersetzt.

S-Prozeduren:

  • Als Aktualparameter können Variablen übergeben werden, über die die Prozedur auch Ausgabewerte zurückliefert.

  • Die Aktualparameter können als Stellungs- oder als Schlüsselwortparameter übergeben werden. Die Reihenfolge der Stellungsparameter entspricht dabei der dynamischen Reihenfolge der DECLARE-PARAMETER-Kommandos; die Namen der Schlüsselwörter entsprechen den Namen der formalen Prozedurparameter. Die Schlüsselwörter dürfen bis zur Eindeutigkeit abgekürzt werden.

  • Die Protokolierung wird im Kommandoaufruf eingestellt; ebenso, ob ein bereits geladenes Programm entladen werden darf.

Prozeduren können gespeichert werden als:

  • katalogisierte (auch temporäre) SAM- oder ISAM-Datei mit Sätzen variabler Länge

  • Element vom Typ J oder SYSJ einer PLAM-Bibliothek

  • S-Variable vom Typ Liste

Prozedur-Formate:

  • Text-Prozedur
    Die S-Prozedur liegt im ursprünglichen Textformat vor. Volle SDF-P-Funktionalität kann nur verwendet werden, wenn bei Aufruf der Prozedur das kostenpflichtige Subsystem SDF-P geladen ist. In Bibliotheken sollte für Text-Prozeduren der Elementtyp J verwendet werden.

  • Objekt-Prozedur
    Die S-Prozedur im Textformat wurde mit dem Kommando COMPILE-PROCEDURE in ein Zwischenformat kompiliert. Diese Objekt-Prozedur kann, unabhängig von der Verfügbarkeit des Subsystems SDF-P, die volle SDF-P-Funktionalität nutzen (mit Ausnahme des Kommandos COMPILE-PROCEDURE). In Bibliotheken sollte für Objekt-Prozeduren der Elementtyp SYSJ verwendet werden (Default-Wert bei COMPILE-PROCEDURE).

Format

CALL-PROCEDURE                                          Kurzname: CL / CLP

FROM-FILE = <filename 1..54 without-gen> / *LIBRARY-ELEMENT(...) / *VARIABLE(...)

*LIBRARY-ELEMENT(...)

LIBRARY = <filename 1..54 without-gen>

,ELEMENT = <composed-name 1..64>(...)

<composed-name 1..64>(...)

VERSION = *HIGHEST-EXISTING / <composed-name 1..24>

,TYPE = *STD / *BY-LATEST-MODIFICATION / <alphanum-name 1..8>

*VARIABLE(...)

VARIABLE-NAME = <composed-name 1..255>

,PROCEDURE-PARAMETERS = *NO / <text 0..1800 with-low>

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

*PARAMETERS(...)

CMD = *BY-PROC-TEST-OPTION / *YES / *NO

,DATA = *BY-PROC-TEST-OPTION / *YES / *NO

,UNLOAD-ALLOWED = *YES / *NO

,EXECUTION = *YES / *NO

Operandenbeschreibung

FROM-FILE = <filename 1..54 without-gen> / *LIBRARY-ELEMENT(...) / *VARIABLE(...)
Name der Prozedurdatei.

FROM-FILE = *LIBRARY-ELEMENT(...)
Die Prozedur ist in einem PLAM-Bibliothekselement abgelegt.

LIBRARY = <filename 1..54 without-gen>
Name der PLAM-Bibliothek, die die Prozedurdatei als Element (Typ J oder SYSJ; siehe Operand TYPE) enthält.

ELEMENT = <composed-name 1..64>(...)
Name des Elements.

VERSION = *HIGHEST-EXISTING / <composed-name 1..24>
Version des Bibliothekelements. Voreingestellt ist HIGHEST-EXISTING, d.h. die Prozedur wird dem Element mit der höchsten Version entnommen.

TYPE = *STD / *BY-LATEST-MODIFICATION / <alphanum-name 1..8>
Bestimmt den Elementtyp, unter dem die Prozedurdatei in der PLAM-Bibliothek abgelegt ist.

TYPE = *STD
Die Prozedurdatei kann als Element des Typs SYSJ oder J abgelegt sein.
Das angegebene Element wird zuerst unter den Elementen vom Typ SYSJ gesucht. Falls es dort nicht existiert, wird unter den Elementen vom Typ J weitergesucht.

Eine Nicht-S-Prozedur kann nur als Element vom Typ J vorliegen.
Eine S-Prozedur kann sowohl als Text-Prozedur (ursprüngliches Textformat) als auch als Objekt-Prozedur (kompiliertes Zwischenformat) vorliegen. Zur Vereinfachung der Verwaltung beider Formate in einer Bibliothek sollten Text-Prozeduren als Element vom Typ J und Objekt-Prozeduren als Element vom Typ SYSJ ablegt sein. Mit dem Kommando COMPILE-PROCEDURE (Bestandteil des kostenpflichtigen Subsystems
SDF-P) wird aus einer Text-Prozedur vom Typ J standardmäßig eine Objekt-Prozedur vom Typ SYSJ (Default-Wert) erzeugt.
Die Angabe von TYPE=*STD (Default-Wert) stellt sicher, dass bei Einhaltung dieser Konvention Objekt-Prozeduren bevorzugt aufgerufen werden.

TYPE = *BY-LATEST-MODIFICATION
Die Prozedurdatei kann als Element des Typs SYSJ oder J abgelegt sein.
Existiert das angegebene Element sowohl als Typ SYSJ als auch J, wird das zuletzt geänderte Element aufgerufen. Bei gleichem Zeitstempel wird des Element vom Typ SYSJ aufgerufen.
Die Angabe von TYPE=*BY-LATEST-MODIFICATION stellt sicher, dass z.B. während der Testphase bei der Erstellung bzw. Erweiterung einer Prozedur das aktuellste Element aufgerufen wird.

TYPE = <alphanum-name 1..8>
Die Prozedurdatei wird ausschließlich unter den Elementen des angegebenen Typs gesucht.

FROM-FILE = *VARIABLE(...)
Die Prozedur ist in einer S-Variablen vom Typ Liste abgelegt.

VARIABLE-NAME = <composed-name 1..255>
Name der S-Variablen.

PROCEDURE-PARAMETERS = *NO / <text 0..1800 with-low>
Definiert die aktuellen Prozedurparameter; die Parameter müssen in Klammern eingeschlossen werden.
Zu Prozedurparametern siehe auch „Prozedurparameter übergeben“ff.

LOGGING = *PARAMETERS(...) / *YES / *NO
Steuert die Protokollierung des Prozedurablaufs.
Der Operand LOGGING wird bei Aufruf von Nicht-S-Prozeduren ignoriert, da die Protokollierung dort nur im Prozedurkopf vereinbart werden kann (siehe BEGIN-PROCEDURE, Operand LOGGING).
Bei Protokollierung einer S-Prozedur wird jede abgearbeitete Prozedurzeile mit vorangestellter Zeilennummer und Prozedurstufe ausgegeben.

Zu Protokollierung siehe auch „Protokollierung einstellen“ff.

LOGGING = *PARAMETERS(...)
Die Protokollierung kann getrennt eingestellt werden für Kommando-/Anweisungszeilen und Datenzeilen.

CMD = *BY-PROC-TEST-OPTION / *YES / *NO
Gibt an, ob Kommandos protokolliert werden sollen. Voreingestellt ist BY-PROC-TEST-OPTION, d.h. keine Protokollierung (entspricht *NO) bzw. der Wert, den der Benutzer mit dem Kommando MODIFY-PROC-TEST-OPTIONS als Voreinstellung gewählt hat (Bestandteil des kostenpflichtigen Subsystems SDF-P).

DATA = *BY-PROC-TEST-OPTION / *YES / *NO
Gibt an, ob Datenzeilen protokolliert werden sollen. Voreingestellt ist BY-PROC-TEST-OPTION, d.h. keine Protokollierung (entspricht *NO) bzw. der Wert, den der Benutzer mit dem Kommando MODIFY-PROC-TEST-OPTIONS als Voreinstellung gewählt hat (Bestandteil des kostenpflichtigen Subsystems SDF-P).

UNLOAD-ALLOWED = *YES / *NO
Legt fest, ob ein Programm, das zum Zeitpunkt des Prozeduraufrufs geladen ist, entladen werden darf.
Der Schutz vor Programmentladung ist nur für das Entladen mit den Kommandos LOAD-/START-EXECUTABLE-PROGRAM (bzw. LOAD-/START-PROGRAM) und CANCEL-PROGRAM gewährleistet.
Die Angabe YES wird ignoriert, wenn der Prozeduraufruf aus einer Prozedur erfolgt, für die UNLOAD-ALLOWED=*NO vereinbart wurde.

EXECUTION = *YES / *NO
Legt fest, ob die Prozedur nur zu Testzwecken analysiert werden oder auch ausgeführt werden soll.
Für Nicht-S-Prozeduren kann nur EXECUTION=*YES vereinbart werden.
Der Test ist mit MODIFY-SDF-OPTIONS (Operand MODE) möglich.

Kommando-Returncode

Die nachfolgenden Kommando-Returncodes werden nur zurückgegeben, wenn die aufgerufene Prozedur selbst keinen Kommando-Returncode liefert (z.B. EXIT-PROCEDURE wegen Fehlers nicht ausgeführt).

Kommando-Returncodes, deren Maincode mit „SSM“ beginnt, werden nur bei Aufruf einer Nicht-S-Prozedur zurückgegeben.

Kommando-Returncodes, deren Maincode mit „SDP“ beginnt, werden nur bei Aufruf einer S-Prozedur zurückgegeben.

(SC2)

SC1

Maincode

Bedeutung


0CMD0001Ohne Fehler
20SSM2058Protokoll-Typ-Fehler
20SSM2065EOF auf Prozedurdatei, /END-PROC simuliert

1SSM2036Unvollständiger Operand

1SSM2054Symbolischer Operandenfehler

1SSM2055Symbolischer Operandenfehler in /BEGIN-PROC

1SDP0138Fehler bei Voranalyse der Text-Prozedur oder Objekt-Prozedur fehlerhaft

1CMD0202Syntaxfehler

3CMD2203Falsche Syntaxdatei

32CMD0221Systemfehler (interner Fehler)

64SDP0093Nicht-S-Prozedur kann nur Element vom Typ J sein

64SDP0144Fehler bei Parameterübertragung

64SSM2052DVS-Fehler (Open-Fehler)

64SSM2053keine SAM/ISAM-Datei oder Datei beginnt nicht mit /BEGIN-PROC bzw. /PROC

64SSM2056Parameter von /CALL-PROC und /BEGIN-PROC passen nicht zusammen

64SSM2061Fehler bei Zugriff auf Bibilothekselement

64SSM2064Prozedurdatei kann nicht von entferntem Rechner geholt werden

130SDP0099Kein Adressraum mehr verfügbar

xxxxxxxxxsonstige Returncodes der aufgerufenen Prozedur