In anderen Umgebungen als CICS werden die Verbindungskonventionen für Standardbetriebssysteme verwendet. Es können bis zu 30 Parameter in der Anweisung "call" übergeben werden. Das aufgerufene Programm wird ausgeführt und kehrt zum aufrufenden Programm zurück, wenn das Programm beendet ist.
Verwenden Sie den Verbindungsoptionsabschnitt, um den generierten Verbindungstyp für die Anweisung"call" festzulegen. Sie können für Nicht-CICS-Umgebungen angeben, dass die Anweisung"call" entweder als dynamischer (DYNAMIC) oder als statischer (STATIC) COBOL-Aufruf mit Parametern generiert werden soll, die mit der COBOL-Standardparameterliste (OSLINK) übergeben werden. Dabei werden alle Parameter durch Referenz übergeben.
Die EGL-Anweisungen "call" werden als Standard-COBOL-Aufrufe generiert. Die Parameter in der EGL-Anweisung "call" sind Parameter in COBOL CALL. Alle Parameter werden durch Referenz, nicht durch Inhalt, übergeben. Verwenden Sie die Verbindungsoptionen, um anzugeben, ob COBOL CALL ein dynamischer oder statischer Aufruf ist.
Der kompilierte COBOL CALL übergibt Parameter mithilfe von Standardverbindungskonventionen. Register 1 verweist auf eine Liste von Parameteradressen. Das höchstwertige Byte der letzten Parameteradresse ist auf "1" festgelegt, wie in der Abbildung dargestellt.

Es gelten spezielle Überlegungen, wenn Sie "dliLib.psbData" oder einen PCB-Datensatz als Parameter übergeben. Weitere Informationen finden Sie unter "Referenzinformationen für spezielle Parameter für die Anweisung 'call' oder 'transfer'".
Für IMS/VS, BMP und z/OS CICS generierte Programme können Unterprogramme aufrufen, die für die z/OS-Batchumgebung generiert wurden. Stellen Sie sicher, dass das z/OS-Batchprogramm keine SQL-E/A-, Datei-E/A- oder batchumgebungsspezifische Aufrufe hat, da diese von der ursprünglichen Umgebung nicht zulässig sind. Beispiel: Da CICS über den gesamten Datei-E/A-Zugriff verfügt, ist ein Batchzugriff nicht zulässig. Programme, die für z/OS-Batches generiert wurden, aber durch eine Logik aufgerufen werden, die in anderen Umgebungen ausgeführt wird, sind in der Regel auf Operationen wie Berechnungen und Tabellensuchen beschränkt.
Ein Aufruf eines Nicht-EGL-Programms wird auf dieselbe Weise generiert wie ein Aufruf eines EGL-Programms. Aufrufe von Programmen, die in PL/I geschrieben wurden, müssen statische Aufrufe sein. Wenn das Nicht-EGL-Programm nicht in COBOL geschrieben wurde, befolgen Sie die Regeln für die Schnittstelle zu anderen Sprachen, wie im Handbuch zur Anwendungsprogrammierung für Ihr COBOL-Release beschrieben.
Das Nicht-EGL-Programm verwendet die Standardanweisung COBOL CALL, um das EGL-Programm aufzurufen. Alle Parameter werden durch Referenz, nicht durch Inhalt, übergeben. Aufrufe von Programmen, die in PL/I geschrieben wurden, müssen statische Aufrufe sein. Wenn das Nicht-EGL-Programm nicht in COBOL geschrieben wurde, befolgen Sie die Regeln für die Schnittstelle zu anderen Sprachen, wie im Handbuch zur Anwendungsprogrammierung für Ihr COBOL-Release beschrieben.
Wenn das erste in der Ausführungseinheit aufgerufene Programm ein Nicht-EGL-Programm ist und das Programm EGL-Programme wiederholt aufruft, führt Rational COBOL Runtime für zSeries bei jedem Aufruf Initialisierungs- und Beendigungsfunktionen durch. Der Systemaufwand für diese Aufrufe kann enorm sein, wenn es sich um eine große Anzahl von Aufrufen handelt. Um einen solchen Systemaufwand zu vermeiden und die Initialisierung und Beendigung nur einmalig auszuführen, bietet EGL ein Wrapperprogramm für jede Umgebung an. Sie müssen das entsprechende Wrapperprogramm mit Ihrem EGL-Programm verknüpfungseditieren. Um dies automatisch durchzuführen, erstellen Sie einen Link-Edit-Abschnitt mit demselben Namen wie Ihr EGL-Programm. Wenn Ihr EGL-Programm mit keinen anderen Programmen außer dem Wrapperprogramm verknüpfungseditiert werden muss, verwenden Sie die Link-Edit-Befehle unten, mit denen Sie Ihren Programmnamen durch den Namen YOURPROG ersetzen können. SELALMD stellt die Laufzeitservice-Ladebibliothek dar.
CHANGE NONVGRTN(YOURPROG)
CHANGE ELAAPPL(ELAWBAT)
INCLUDE SELALMD(ELAWBAT)
ENTRY ELARMAIN
NAME YOURPROG(R)
IMS BMP-Steueranweisungen: CHANGE NONVGRTN(YOURPROG)
CHANGE ELAAPPL(ELAWBMP)
INCLUDE SELALMD(ELAWBMP)
ENTRY ELARMAIN
NAME YOURPROG(R)
IMS/VS-Steueranweisungen: CHANGE NONVGRTN(YOURPROG)
CHANGE ELAAPPL(ELAWIMS)
INCLUDE SELALMD(ELAWIMS)
ENTRY ELARMAIN
NAME YOURPROG(R)
Wenn Sie Ihr Programm mit anderen Modulen verknüpfen möchten (z. B. mit einem PL/I-Programm), finden Sie weitere Informationen in Linkbearbeitungsabschnitt - Beispiele".CHANGE NONVGRTN(YOURPROG)
CHANGE ELAAPPL(ELAWBAT)
INCLUDE SELALMD(ELAWBAT)
INCLUDE SELALMD(ELARLEMN)
ENTRY ELARLEMN
NAME YOURPROG(R)
Ein z/OS-Batchprogramm kann die externe CICS-Schnittstelle (EXCI) verwenden, um Programme in einer CICS-Region aufzurufen. Die aufgerufenen Programme können von EGL oder auf andere Weise generiert werden.
Beim Verarbeiten der Anweisung "call" generiert EGL den erforderlichen COBOL-Code für den Aufruf über EXCI. Weitere Informationen zu diesen Verbindungsoptionen finden Sie in "Programme in CICS-Umgebungen aufrufen".
call "calledExci"(d, j);