Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

COMPILE-PROCEDURE Prozedur kompilieren

&pagelevel(4)&pagelevel

Anwendungsgebiet: PROCEDURE

Kommandobeschreibung

Das Kommando COMPILE-PROCEDURE konvertiert eine S-Prozedur in eine kompilierte Prozedur, d.h. in ein Zwischenformat, das dann auch in Umgebungen benutzt werden kann, in denen das Subsystem SDF-P nicht zur Verfügung steht.

In kompilierten Prozeduren kann der volle Umfang von SDF-P benutzt werden. Das gilt auch, wenn diese Prozeduren in einer Umgebung gestartet werden, die nur SDF-P-BASYS enthält.

Hinweise

  • Das Kommando COMPILE-PROCEDURE ist Teil des Subsystems SDF-P. Es wird abgewiesen, wenn dieses Subsystem nicht geladen ist (auch wenn es in einer kompilierten Prozedur enthalten ist)

  • Es ist nicht möglich, bei den Operanden FROM-FILE und TO-FILE Wildcards anzugeben. Bei beiden Operanden ist es aber möglich, sowohl Dateien als auch Bibliothekselemente anzugeben.

  • Inkonsistente Angaben bei Ein- und Ausgabe werden als Semantikfehler bewertet, d.h. es wird die dafür vorgesehene Fehlerbehandlung angestoßen.

  • Fehlermeldungen werden nur nach SYSOUT gesendet. Diese Meldungen sind bis auf ein paar zusätzliche Compiler-spezifische Meldungen identisch mit denen von CALL-PROCEDURE bei einer aufgerufenen Prozedur.

    Die compiler-spezifischen Meldungen sind:

    SDP1300 PROZEDUR-COMPILER VERSION '(&00)' GESTARTET
    SDP1301 PROZEDUR-COMPILER NORMAL BEENDET
    SDP1302 PROZEDUR-COMPILER ABNORMAL BEENDET
    
  • Auch S-Prozeduren, die keine oder nur teilweise kostenpflichtige Funktionen von SDF-P nutzen, können mit COMPILE-PROCEDURE konvertiert und bei Installationen ohne das Subsystem SDF-P mit dem Subsystem SDFPBASY ausgeführt werden.

Format

COMPILE-PROCEDURE

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

*LIBRARY-ELEMENT(...)

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

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

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

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

,TYPE = J / <alphanum-name 1..8>

,TO-FILE = <filename1..54without-gen> / *LIBRARY-ELEMENT(...) / *DUMMY

*LIBRARY-ELEMENT(...)

LIBRARY = *SAME / <filename 1..54 without-gen>

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

*SAME(...)

VERSION = *SAME / *UPPER-LIMIT / *INCREMENT / *HIGHEST-EXISTING /

<composed-name 1..24>

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

VERSION = *SAME / *UPPER-LIMIT / *INCREMENT / *HIGHEST-EXISTING /

<composed-name 1..24>

,TYPE = SYSJ / <alphanum-name 1..8>

Operandenbeschreibung

FROM-FILE =
Bezeichnet die Quellprozedur.

FROM-FILE = <filename 1..54 without-gen>
Name der Prozedurdatei.

FROM-FILE = *LIBRARY-ELEMENT(...)
Die Prozedur ist in einer PLAM-Bibliothek gespeichert.

LIBRARY = <filename 1..54 without-gen>
Name der PLAM-Bibliothek, die die Prozedur enthält.

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

VERSION =
Bezeichnet die Versionsnummer des Elements.

VERSION = *HIGHEST-EXISTING
Wählt die höchste existierende Versionsnummer.

VERSION = *UPPER-LIMIT
Wählt die höchste mögliche Versionsnummer.

VERSION = <composed-name 1..24>
Wählt die angegebene Versionsnummer.

TYPE= J / <alphanum-name 1..8>
Typ des Elements. Default-Typ ist J.

TO-FILE =
Gibt an, wo die kompilierte Prozedur gespeichert werden soll.

TO-FILE = <filename 1..54 without-gen>
Name der Datei, in der die kompilierte Prozedur gespeichert werden soll.

TO-FILE = *DUMMY
Es muss keine Prozedur kompiliert werden. Das Kommando überprüft nur die Prozedur (siehe dazu CALL-PROCEDURE EXECUTION = *NO).

TO-FILE = *LIBRARY-ELEMENT(...)
Die kompilierte Prozedur wird in einer PLAM-Bibliothek gespeichert.

LIBRARY = *SAME / <filename 1..54 without-gen>
Name der PLAM-Bibliothek, die die kompilierte Prozedur enthalten soll. Der Defaultwert ist die Bibliothek der Quellprozedur.

ELEMENT =
Name des Elements für die kompilierte Prozedur.

ELEMENT = *SAME(...)
Der Name des Elements ist derselbe wie bei der Quellprozedur.

VERSION =
Bezeichnet die Versionsnummer des Elements (nur bei S-Prozeduren).

VERSION = *SAME
Wählt dieselbe Versionsnummer wie bei der Quellprozedur.

VERSION = *UPPER-LIMIT
Wählt die höchste mögliche Versionsnummer.

VERSION = *INCREMENT
Die Versionsnummer des Elements wird erhöht.

VERSION = *HIGHEST-EXISTING
Wählt die höchste existierende Versionsnummer.

VERSION = <composed-name 1..24>
Wählt die angegebene Versionsnummer.

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

VERSION =
Bezeichnet die Versionsnummer des Elements (nur bei S-Prozeduren).

VERSION = *SAME
Wählt dieselbe Versionsnummer wie bei der Quellprozedur.

VERSION = *UPPER-LIMIT
Wählt die höchste mögliche Versionsnummer.

VERSION = *INCREMENT
Die Versionsnummer des Elements wird erhöht.

VERSION = *HIGHEST-EXISTING
Wählt die höchste existierende Versionsnummer.

VERSION = <composed-name 1..24>
Wählt die angegebene Versionsnummer.

TYPE= SYSJ / <alphanum-name 1..8>
Typ des Elements. Default-Typ ist SYSJ.

Kommando-Returncode

(SC2)

SC1

Maincode

Bedeutung / garantierte Meldungen


0CMD0001Ohne Fehler

1CMD0202Syntaxfehler

1SDP0118Kommando im falschen Kontext

1SDP0138Fehler bei Voranalyse der Prozedur
garantierte Meldung: SDP0138

1SDP0223Falsche Umgebung

3CMD2203Falsche Syntaxdatei

32CMD0221Systemfehler (interner Fehler)

64SDP0091Semantikfehler

130SDP0099Kein Adressraum mehr verfügbar

Beispiel

Installation A: SDF-P ist gestartet

/ASSIGN-SYSLST TO-FILE=THE-RESULT-LISTING
/MODIFY-JOB-OPTIONS LISTING=*YES
/
/"EINE FEHLERHAFTE PROZEDUR WIRD KOMPILIERT"
/COMPILE-PROCEDURE *LIB(LIB=THE-PROC-LIB,EL=THE-ERRONEOUS-PROC),-
/                  TO-FILE=*LIB-ELEMENT
SDP1300 PROZEDUR-COMPILER VERSION 'V2.4A20' WURDE GESTARTET
SDP0201 ES WURDE EIN UNVOLLSTÄNDIGES BLOCKSCHLIESSKOMMANDO BENUTZT
:
SDP1302 PROZEDUR-COMPILER WURDE MIT FEHLER BEENDET
/
/MODIFY-JOB-OPTIONS LISTING=*NO
/ASSIGN-SYSLST TO-FILE=*PRIMARY 
/"LISTING: THE-RESULT-LISTING"
/
/...
/"NACH DER KORREKTUR"
/COMPILE-PROCEDURE *LIB(LIB=THE-PROC-LIB,EL=THE-CORRECT-PROC),-
/                  TO-FILE=*LIB-ELEMENT
SDP1300 PROZEDUR-COMPILER VERSION 'V2.4A20' WURDE GESTARTET
SDP0302 PROZEDUR-COMPILER WURDE BEENDET

Installation B: SDF-P ist nicht gestartet:

/CALL-PROCEDURE *LIB(LIB=THE-PROC-LIB,EL=THE-CORRECT-PROC)
%          1  1 /SET-PROCEDURE-OPTIONS
%          2  1 /DECLARE-VARIABLE A(TYPE=INTEGER,INITIAL-VALUE=1)
%          3  1 /WHILE (A < 3)
%          4  1 /IF (NOT IS-CAT-FILE ('MYFILE.1'))
%          4  1 /END-IF
%          5  1 /A=A+1
%          6  1 /END-WHILE
%          4  1 /IF (NOT IS-CAT-FILE ('MYFILE.2'))
%          4  1 /CREATE-FILE MYFILE.2
%          4  1 /END-IF
%          5  1 /A=A+1
%          6  1 /END-WHILE
%             1 /EXIT-PROCEDURE ERROR=*NO