| Java-Generierung |
- Ein Java-Programm kann nur ein anderes Java-Programm starten, das von EGL auf derselben Maschine, in einer separaten Java Virtual Machine (JVM) generiert wurde. Das Standardverhalten ist es, ein Programm zu starten, das in demselben Java-Paket enthalten ist. Sie können jedoch ein anderes Paket angeben, indem Sie progName vollständig qualifizieren.
(Oder Sie können das Element asynchLink im Verbindungsoptionsabschnitt ändern, das verwendet wird, um das aufrufende Programm zu generieren.)
- Die Bytes 3-10 des Datensatzes request enthalten den Namen des zu startenden Standardprogramms. Wenn Sie progName angeben, überschreibt dieses Argument den Programmnamen im Datensatz request.
Die Größe des übergebenen Datensatzes darf 32.767 Bytes nicht überschreiben. Die Parameter prID und termID werden ignoriert.
- Wenn Sie V6-Ausnahmekompatibilität verwenden (siehe V6-Ausnahmebedingungskompatibilität verwenden), werden die folgenden Werte in sysVar.errorCode zurückgegeben:
- 00000000
- Die neue JVM wurde erstellt und der Datensatz wurde erfolgreich übergeben.
Dieser Wert kann selbst dann auftreten, wenn das aufgerufene Programm nicht ausgeführt werden kann.
- 00000001
- Eine neue JVM kann nicht erstellt werden oder ein Fehler ist aufgetreten, während der Datensatz übergeben wurde.
|
| CICS |
- Die Funktion vgLib.startTransaction() gibt einen CICS-START-Befehl für die Zieltransaktion aus. Das Standardverhalten ist, ein Programm zu starten, das sich in derselben CICS-Region befindet. Sie können jedoch eine andere Region angeben, indem Sie das Element asynchLink im Verbindungsoptionsabschnitt definieren, der verwendet wird, wenn Sie das aufrufende Programm generieren. Die Parameter prID und termID werden ignoriert, wenn die Zieltransaktion auf einem fernen System gestartet wird.
- Die Bytes 3-6 des request-Datensatzes enthalten eine Transaktions-ID, und die nächsten vier Bytes müssen leer sein. Die Größe des übergebenen Datensatzes darf 32.767 Bytes nicht überschreiten.
- Abhängig von dem Wert des Parameters termID gibt EGL den CICS-START-Befehl mit oder ohne zugehörige Einheit aus:
- Wenn termID nicht angegeben ist, ordnet EGL das aktuelle Terminal nicht der Zieltransaktion zu. Genauer gesagt, weist EGL die ID des aktuellen Terminals der TERMID-Option im CICS-START-Befehl zu.
- Wenn termID angegeben ist und der zugehörige Wert keine binären Nullen sind, weist EGL die angegebene Einheit (Terminal
oder Drucker) der Zieltransaktion zu. Genauer gesagt, weist EGL den Wert von termID der TERMID-Option im CICS-START-Befehl zu, weist der RTERMID-Option aber keinen Wert zu.
Ergebnisse sind nicht vorhersehbar, wenn der Wert in termID die ID des CICS-Terminals ist, die der aktuellen Transaktion zugeordnet ist. Um die aktuelle Transaktion zu beenden und eine neue Transaktion im aktuellen Terminal zu starten, verwenden Sie statt der Systemfunktion vgLib.startTransaction die Anweisung transfer
to transaction oder show.
- Wenn der Wert des Parameters termID binäre Nullen sind, ordnet EGL der Zieltransaktion kein Terminal zu. Genauer gesagt, weist EGL den Wert des Parameters prID der RTERMID-Option im CICS-START-Befehl zu, weist jedoch der TERMID-Option keinen Wert zu. Darüber hinaus ist der Parameter prID die Drucker-ID, die für die Initialisierung der Systemvariablen converseVar.printerAssociation in der Zieltransaktion verwendet wird. Um das CHAR-Feld termID auf binäre Nullen zu setzen, verwenden Sie eine Zuordnungsanweisung, die ein hexadezimales Literal für vier Bytes von binären Nullen enthält:
myCHAR = x"00000000";
- Weitere Informationen zur Verwendung der Parameter prID und termID für eine Initialisierung von printerAssociation im Zielprogramm finden Sie unter 'printerAssociation'.
- Die Zieltransaktion muss PCT- und PPT-Einträge aufweisen. Wenn das erste Programm in dieser Transaktion nicht von EGL oder VisualAge Generator generiert wird, muss dieses Programm eine CICS-Operation RETRIEVE ausgeben, um die übergebenen Informationen zum Arbeitsbereich und zum Terminal abzurufen.
|
| CICS (Fortsetzung) |
- Wenn Sie V6-Ausnahmekompatibilität verwenden (siehe V6-Ausnahmebedingungskompatibilität verwenden), können die folgenden Werte in sysVar.errorCode zurückgegeben werden:
- 00000000
- Erfolgreich
- 00000203
- Die Transaktions-ID ist nicht gültig.
- 00000205
- Die Terminal-ID ist nicht gültig.
- 00000206
- Die Parameter sind nicht gültig.
- 00000207
- Die System-ID ist nicht gültig.
- 00000208
- Der Link funktioniert nicht.
- ffrrrrrr
- Ein weiterer CICS-Fehler, wobei
'ff' die hexadezimale Darstellung des EIBFN-Bytes 0 und 'rrrrrr' die hexadezimale Darstellung der EIBRCODE-Bytes 0-2 ist.
|
| iSeries COBOL |
- Die Funktion startet ein Programm auf derselben iSeries-Maschine. Die EGL-Laufzeit stellt Unterstützung dafür mithilfe von zwei Befehlssprachenprogrammen bereit:
- CREATX
- Dieses Programm führt die folgenden Aktionen aus:
- Ruft die aktuelle Jobnummer ab.
- Sendet die Benutzerdaten an die Datenwarteschlange VGCREATX.
- Startet einen neuen CREATXJOB, der das CL-Programm CREATXPP startet.
- CREATXPP
- Dieses Programm führt die folgenden Aktionen aus:
- Verwendet die vorherige Jobnummer als Schlüssel zum Abrufen von Daten aus der Datenwarteschlange VGCREATX.
- Ruft das asynchrone CL-Programm auf, das in den request-Datensatzbytes 3 bis 11 angegeben ist.
- Die Bytes 3-10 des Datensatzes request enthalten den Namen des zu startenden Programms. Die Größe des übergebenen Datensatzes kann 4.095 Bytes nicht überschreiten.
- Der Parameter prID ist ein optionales, 4 Bytes umfassendes CHAR-Feld, das den Wert der Ausgabewarteschlange enthält, der für den asynchronen Job verwendet wurde. Der Standardwert ist VGEN. Die Ausgabewarteschlange muss definiert werden, bevor das Programm converseVar.printerAssociation ausgeführt wird.
- Der Parameter termID wird ignoriert.
|
| IMS/VS oder IMS BMP |
- vgLib.startTransaction() kann eine Transaktion nur in demselben IMS-System starten.
Die Bytes 3-10 des Datensatzes request enthalten den IMS-Transaktionscode. Die Größe des übergebenen Datensatzes kann 32.765 Bytes nicht überschreiten. Die Parameter prID und termID werden ignoriert.
- Die Funktion resultiert in einer Einfügung in den änderbaren alternativen PCB. EGL konvertiert den Datensatz request in das erforderliche Format für eine IMS-Nachricht, indem 2 Stellen zur Länge hinzugefügt und 2 Bytes zwischen dem Längenfeld und dem Transaktionsfeld eingefügt werden. Die Transaktion wird ohne ein zugehöriges Terminal gestartet.
- Die gestartete Transaktion muss in der IMS-Systemdefinition enthalten und als Nicht-Dialog-Transaktion definiert sein. Wenn die Zieltransaktion kein EGL-Programm ist, muss sie einen GU-Aufruf an den Eingabe-/Ausgabe-PCB ausgeben, um die Nachricht abzurufen.
- Wenn Sie V6-Ausnahmekompatibilität verwenden (siehe V6-Ausnahmebedingungskompatibilität verwenden), können die folgenden Werte in sysVar.errorCode zurückgegeben werden:
- 00000000
- Der Aufruf war erfolgreich.
- 00000203
- Der Aufruf ist fehlgeschlagen, wahrscheinlich aufgrund eines ungültigen Transaktionscodes.
|
| z/OS Batch |
Die Funktion wird nicht unterstützt. |