EGL-Programme können für eine verzögerte Programm-zu-Programm-Nachrichtenumschaltung sowohl ein Formular als auch einen Datensatz übergeben. Falls das segmentierte Programm als nicht interaktiv (ohne Arbeitspufferbereich) generiert wird, wird die Arbeitsdatenbank zum Speichern der Daten verwendet, wenn die Anweisung "show" sowohl ein Formular als auch einen Datensatz angibt. Rational COBOL Runtime für zSeries stellt Subroutinen bereit, die von einem Nicht-EGL-Programm verwendet werden können, um Daten in einer Arbeitsdatenbank zu speichern und von dort abzurufen. Sowohl die Quell- als auch Zielprogramme oder Transaktionen müssen dieselbe physische Arbeitsdatenbank verwenden.
Sie können mithilfe von ELATSGET einen Datensatz aus der Arbeitsdatenbank lesen, nachdem eine verzögerte Programmumschaltung von einem EGL-Programm erfolgt ist. Die logische Terminal-ID wird als Arbeitsdatenbankschlüssel verwendet.
MOVE "ELATSGET" TO modname.
CALL modname USING parm1, parm2, parm3, parm4, parm5, parm6.
Im vorherigen Beispiel ist "modname" ein 8-Byte-Zeichenfeld und "parm1" bis "parm6" ist wie folgt:| Code | Bedeutung |
|---|---|
| 0 | Lesevorgang erfolgreich |
| 4 | Lesevorgang erfolgreich, Abschneidung aufgetreten |
| 8 | Lesevorgang fehlgeschlagen, Datensatz nicht gefunden |
| 12 | Lesevorgang fehlgeschlagen, sonstiger Fehler |
Es tritt eine Abschneidung auf, wenn das aufrufende Programm versucht, Daten im Puffer wiederherzustellen, der kleiner ist als die Daten, die zuvor gespeichert wurden. Wenn der Puffer größer als die zuvor gespeicherten Daten ist, wird der abschließende Teil des Puffers auf Leerzeichen festgelegt.
ELATSGET gibt keine Fehlermeldungen aus. Das aufrufende Programm muss die entsprechenden Maßnahmen ergreifen, wenn ein Fehler auftritt. Wenn eine DL/I-Arbeitsdatenbank verwendet wird, enthält der PCB den Statuscode, der den Fehler angibt. Wenn eine DB2-Arbeitsdatenbank verwendet wird, enthält die Vollwort-Binärzahl (5. Parameter) den SQL-Code, der den Fehler angibt.
Sie können mithilfe von ELATSPUT einen Datensatz in die Arbeitsdatenbank schreiben, bevor Sie eine verzögerte Programmumschaltung zu einem EGL-Programm durchführen. Die logische Terminal-ID wird als Arbeitsdatenbankschlüssel verwendet.
MOVE "ELATSPUT" TO modname.
CALL modname USING parm1, parm2, parm3, parm4, parm5, parm6.
Im vorherigen Beispiel ist "modname" ein 8-Byte-Zeichenfeld und "parm1" bis "parm6" ist wie folgt:| Code | Bedeutung |
|---|---|
| 0 | Schreibvorgang erfolgreich, neuer Datensatz hinzugefügt |
| 4 | Schreibvorgang erfolgreich, vorhandener Datensatz ersetzt |
| 12 | Schreibvorgang fehlgeschlagen, sonstiger Fehler |
ELATSPUT gibt keine Fehlermeldungen aus. Das aufrufende Programm muss die entsprechenden Maßnahmen ergreifen, wenn ein Fehler auftritt. Wenn eine DL/I-Arbeitsdatenbank verwendet wird, enthält der PCB den Statuscode, der den Fehler angibt. Wenn eine DB2-Arbeitsdatenbank verwendet wird, enthält die Vollwort-Binärzahl (5. Parameter) den SQL-Code, der den Fehler angibt.