EGL-COBOL-Laufzeit-Arbeitsdatenbank für IMS/VS verwenden

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.

Die zwei Serviceroutinen, die von Nicht-EGL-Programmen verwendet werden können, um eine Schnittstelle zur Arbeitsdatenbank herzustellen, lauten wie folgt:

Aus der Arbeitsdatenbank (ELATSGET) in IMS lesen

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.

Das Modul ELATSGET wird in der folgenden Aufrufreihenfolge zur Ausführungszeit dynamisch geladen. Mit dieser Methode wird vermieden, dass dieses Modul mit jedem Programm verbunden werden muss, das das Modul verwenden möchte.
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:
  • Datensatzpuffer
  • Länge des Puffers (Vollwort-Binärzahl)
  • Zieltransaktionscode (8 Byte, mit Leerzeichen aufgefüllt)
  • Eingabe-/Ausgabe-PCB
  • ELAWORK-PCB (oder Vollwort mit binären Nullen, wenn die DB2-Arbeitsdatenbank verwendet wird)
  • Rückgabecode (Vollwort-Binärzahl).
ELATSGET stellt folgende Rückgabecodes bereit:
Tabelle 1. ELATSGET-Rückgabecodes
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.

In eine Arbeitsdatenbank (ELATSPUT) in IMS schreiben

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.

Das Modul ELATSPUT wird in der folgenden Aufrufreihenfolge zur Ausführungszeit dynamisch geladen. Mit dieser Methode wird vermieden, dass dieses Modul mit jedem Programm verbunden werden muss, das das Modul verwenden möchte.
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:
  • Datensatzpuffer
  • Länge des Datensatzes (Vollwort-Binärzahl)
  • Zieltransaktionscode (8 Byte, mit Leerzeichen aufgefüllt)
  • Eingabe-/Ausgabe-PCB
  • ELAWORK-PCB (oder Vollwort mit binären Nullen, wenn die DB2-Arbeitsdatenbank verwendet wird)
  • Rückgabecode (Vollwort-Binärzahl)
ELATSPUT stellt folgende Rückgabecodes bereit:
Tabelle 2. ELATSPUT-Rückgabecodes
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.


Feedback