IMS-Funktionen in EGL-Programmen verwenden

Sie können in EGL-Programmen IMS-Funktionen verwenden.

In der folgenden Tabelle sind die IMS-Funktionen aufgelistet, die Sie in EGL-Programmen verwenden können. In der Tabelle ist ebenfalls aufgelistet, wie diese Funktionen verwendet werden.
Tabelle 1. IMS-Funktionen und deren Darstellung in EGL
IMS-Funktion EGL-Funktion Kommentare
Programmtyp
IMS, interaktiv
  • Haupt-textUI-Programm verwendet CONVERSE-Anweisung
  • Programmeigenschaft: segmented = YES
  • Erstellungsdeskriptoroption: spaSize > 0
Durch die Erstellungsdeskriptoroption 'workDBType' wird angegeben, ob DL/I oder DB2 zum Speichern von Daten über die CONVERSE-Anweisung hinaus verwendet werden soll.
IMS, nicht interaktiv oder nachrichtengesteuerter Fast Path (Option 1)
  • Haupt-textUI-Programm verwendet CONVERSE-Anweisung
  • Programmeigenschaft: segmented = YES
  • Erstellungsdeskriptoroption: spaSize = 0
  • Durch die Erstellungsdeskriptoroption 'workDBType' wird angegeben, ob DL/I oder DB2 zum Speichern von Daten über die CONVERSE-Anweisung hinaus verwendet werden soll.
  • Wenn die Erstellungsdeskriptoroption 'imsFastPath' auf YES festgelegt ist, werden Anweisungen und die EGL-Fehlerbehandlung auf die im IMS-Fast-Path-Programm festgelegten Werte beschränkt.
IMS, nicht interaktiv oder nachrichtengesteuerter Fast Path (Option 2)
  • Haupt-textUI-Programm verwendet SHOW-Anweisung
  • Programmeigenschaft 'inputForm' ist festgelegt
  • Erstellungsdeskriptoroption: spaSize > 0
  • Durch die Erstellungsdeskriptoroption 'workDBType' wird angegeben, ob DL/I oder DB2 zum Weitergeben des Datensatzes mit der SHOW-Anweisung verwendet werden soll.
  • Wenn die Erstellungsdeskriptoroption 'imsFastPath' auf YES festgelegt ist, werden Anweisungen und die EGL-Fehlerbehandlung auf die im IMS-Fast-Path-Programm festgelegten Werte beschränkt.
IMS, nicht interaktiv oder nachrichtengesteuerter Fast Path (Option 3, keine Textformulare) Hauptbasisprogramm mit einer Schleife für die Anweisung GET NEXT für einen seriellen Datensatz, der dem Eingabe-/Ausgabe-PCB zugeordnet ist und für IMS/VS generiert wurde Wenn die Erstellungsdeskriptoroption 'imsFastPath' auf YES festgelegt ist, werden Anweisungen und die EGL-Fehlerbehandlung auf die im IMS-Fast-Path-Programm festgelegten Werte beschränkt.
Transaktionsorientiertes BMP Hauptbasisprogramm mit einer Schleife für die Anweisung GET NEXT für einen seriellen Datensatz, der dem Eingabe-/Ausgabe-PCB zugeordnet ist und für das IMS-BMP generiert wurde  
Stapelorientiertes BMP Hauptbasisprogramm, das dem Eingabe-/Ausgabe-PCB zugeordnet ist und für IMS-BMPs generiert wurde, für das jedoch kein serieller Datensatz verwendet wird  
DL/I Batch Hauptbasisprogramm, für das DL/I verwendet wird und das für z/OS Batch generiert wurde  
Normales z/OS Batch Hauptbasisprogramm, für das DL/I verwendet wird und das für z/OS Batch generiert wurde  
Terminal- und Druckerunterstützung
MFS-Quelle formGroup mit Text- und Druckerformularen MFS-Quelle wird in EGL für die formGroup generiert
Kommunikation mit dem Terminal
  • CONVERSE-Anweisung für Ein-/Ausgabe
  • SHOW-Anweisung mit Eigenschaft 'inputForm' im nächsten Programm
 
Druckausgabe an Terminaldrucker
  • PRINT-Anweisung
  • Ressourcenzuordnung für Druckergruppe an 'smsgq' und 'pcbName' angegeben
 
Dynamische Druckerunterstützung 'converseVar.printerAssociation' festlegen, um Druckerzuordnung zur Laufzeit dynamisch zu ändern  
/FORMAT modname formName
  • modname ist der mit dem Buchstaben O verknüpfte formGroup- oder Aliasname mit 6 Zeichen.
  • formName ist der Textformular- oder Aliasname mit 8 Zeichen.
  • Beim Programm muss die Eigenschaft 'inputForm' auf den im Befehl /FORMAT verwendeten formName festgelegt werden.
 
Physische und logische Paginierung Nicht unterstützt Bei EGL-Formularen wird die Definition physischer oder logischer Seiten nicht unterstützt.
SDF II zum Erstellen der MFS-Quelle Nicht unterstützt Für die EGL-Generierung ist Wissen über die Bearbeitungsreihenfolge und über bestimmte Steuerfelder erforderlich.
SQL-Datenbankunterstützung
DB2-Datenbankdefinition und -zugriff SQLRecord-Definition und SQL-E/A-Anweisungen In EGL werden Standard-SQL-Anweisungen erstellt. Ändern Sie den Standard mithilfe der #sql-Direktive.
DL/I-Datenbankunterstützung
Zu verwendender PSB Eigenschaft 'psb' der komplexen Eigenschaft '@dli' zum Ermitteln des Namens der Programmvariable für den EGL-PSBRecord EGL-PSB ist eine Untergruppe von Informationen im IMS-PSB.
DL/I-Datenbankdefinition und -zugriff PSBRecord-Definition, DLISegment-Definition und DL/I-E/A-Anweisungen. Mit dem Schlüsselwort 'usingPCB' in der E/A-Anweisung wird angegeben, welcher PCB verwendet werden soll. In EGL werden Standard-SSAs erstellt. Ändern Sie den Standard mithilfe der #dli-Direktive.
DL/I-Fast-Path-Datenbankdefinition und -zugriff
  • Genauso wie für die DL/I-Datenbankdefinition und den -zugriff.
  • Verwenden Sie 'dliLib.AIBTDLI()', 'dliLib.EGLTDLI()' oder 'vgLib.VGTDLI()' für FLD- und POS-Aufrufe
  • 'dliLib.AIBTDLI()' ist für neue Programme am besten geeignet.
In EGL sind die Befehlscodes mit 2 Zeichen zulässig, wenn Sie die #dli-Direktive verwenden.
IMS-Nachrichtenwarteschlange
  • SerialRecord-Definition
  • Verwenden Sie die Anweisungen ADD und CLOSE zum Schreiben von Datensätzen, die alternativen TP-PCBs zugeordnet sind. Verwenden Sie alternativ vgLib.startTransaction() .
  • Verwenden Sie die GET NEXT-Anweisung zum Auslesen von Datensätzen, die einem Eingabe-/Ausgabe-PCB zugeordnet sind.
  • Legen Sie recordName.resourceAssociation so fest, dass der Name der Ausgabewarteschlange automatisch geändert wird.
Verwenden Sie in einem EGL-Basisprogramm eine GET NEXT-Anweisung für einen seriellen Datensatz, der dem Eingabe-/Ausgabe-PCB zugeordnet ist. Der Datensatz wurde möglicherweise mithilfe einer ADD-Anweisung oder einer vgLib.startTransaction()-Funktion in ein vorheriges Programm eingefügt. Nicht unterstützt für z/OS Batch.
GSAM-Datei
  • SerialRecord-Definition
  • Verwenden Sie die Anweisungen ADD, GET NEXT und CLOSE, um auf einer GSAM-Datei zugeordnete Datensätze zuzugreifen.
Wird nur für IMS-BMPs und z/OS Batch unterstützt.
Dateiunterstützung
Unterstützung für sequenzielle Dateien Serieller Datensatz mit Ressourcenzuordnung für 'fileName' mit der Einstellung 'seq' oder 'seqrs'.
  • Verwenden Sie 'seq', wenn in EGL COBOL-Datei-Ein-/Ausgabe verwendet wird.
  • Verwenden Sie 'seqrs', wenn in EGL Rational COBOL Runtime für die Datei-Ein-/Ausgabe verwendet wird.
  • Wird nur für IMS-BMPs und z/OS Batch unterstützt.
Unterstützung für VSAM-Dateien Serielle, indizierte oder relative Datensätze mit Ressourcenzuordnung für 'fileName' mit der Einstellung 'vsam' oder 'vsamrs'
  • Verwenden Sie 'vsam', wenn in EGL COBOL-Datei-Ein-/Ausgabe verwendet wird.
  • Verwenden Sie 'vsamrs', wenn in EGL Rational COBOL Runtime für die Datei-Ein-/Ausgabe verwendet wird.
  • Wird nur für IMS-BMPs und z/OS Batch unterstützt.
Dateinamen dynamisch zur Laufzeit ändern recordName.resourceAssociation Die Verwendung von 'seqrs' oder 'vsamrs' ist erforderlich.
COBOL-Anweisung DISPLAY
  • sysLib.writeStdOut()
  • sysLib.writeStdErr()
Das Ausgabeziel ist der in der COBOL-Compileroption OUTDD angegebene DDNAME. Standardmäßig wird die Ausgabe in DDNAME SYSOUT in den Job geschrieben, mit dem der Nachrichtenbereich für IMS/VS oder die JCL gestartet wird, mit dem bzw. der der IMS-BMP-Job oder der z/OS Batch-Job ausgeführt wird.
IMS-Nachrichtenschalter
Schalter für sofortige Programm-an-Programm-Nachrichten
  • Eine Anweisung TRANSFER TO TRANSACTION, mit der ein Datensatz an ein anderes EGL-Programm oder ein Nicht-EGL-Programm übergeben wird
  • Wenn die Erstellungsdeskriptoroption 'spaSize' auf 0 gesetzt wird, handelt es sich um einen Schalter für nicht interaktive Nachrichten und der Datensatz wird in der Arbeitsdatenbank übergeben.
  • Wenn die Erstellungsdeskriptoroption 'spaSize' > 0 ist, handelt es sich um einen Schalter für interaktive Nachrichten und der Datensatz wird in den Arbeitspufferbereich übergeben.
  • Der Transaktionsname und der Name des PSBs müssen geändert werden, da es ein neues Lademodul gibt und der Name des PSBs dem Namen des Lademoduls entsprechen muss.
  • formGroup kann für zwei Programme identisch sein, dies ist aber nicht zwingend erforderlich.
Schalter für verzögerte Programm-an-Programm-Nachrichten (Methode 1)
  • Das erste Programm endet mit einer SHOW-Anweisung. Im nächsten Programm muss 'inputForm' auf dasselbe Textformular festgelegt werden, das in der SHOW-Anweisung angegeben wurde.
  • Wenn die Erstellungsdeskriptoroption 'spaSize' auf 0 gesetzt wird, handelt es sich um einen Schalter für nicht interaktive Nachrichten und der Datensatz wird in der Arbeitsdatenbank übergeben.
  • Wenn die Erstellungsdeskriptoroption 'spaSize' > 0 ist, handelt es sich um einen Schalter für interaktive Nachrichten und der Datensatz wird in den Arbeitspufferbereich übergeben.
  • Der Transaktionsname und der Name des PSBs müssen geändert werden, da es ein neues Lademodul gibt und der Name des PSBs dem Namen des Lademoduls entsprechen muss.
  • formGroup muss für die beiden Programme denselben Wert besitzen.
Schalter für verzögerte Programm-an-Programm-Nachrichten (Methode 2) In dem Programm wird eine CONVERSE-Anweisung verwendet und 'sysVar.transactionID' auf einen neuen Transaktionscode vor der CONVERSE-Anweisung festgelegt. Der Transaktionsname kann im selben EGL-Programm geändert werden. Bei beiden Transaktionen müssen derselbe PSB und dieselbe formGroup verwendet werden, da das Programm nicht geändert wird.
Sonstiges
Basisprüfpunkt Systemfunktion 'sysLib.commit()'  
Symbolischer Prüfpunkt 'dliLib.AIBTDLI()', 'dliLib.EGLTDLI()' oder 'vgLib.VGTDLI()' Siehe:
Neustart (XRST-Aufruf) 'dliLib.AIBTDLI()', 'dliLib.EGLTDLI()' oder 'vgLib.VGTDLI()' Siehe:
Rollback Systemfunktion sysLib.rollback()  
Protokollaufruf Systemfunktion sysLib.audit() Siehe audit().
PURG-Aufruf für einen alternativen TP-PCB Verwenden Sie die CLOSE-Anweisung für den seriellen Datensatz oder das Druckformular, der bzw. das einer Ausgabe-IMS-Nachrichtenwarteschlange zugeordnet ist.  
Asynchrone Verarbeitung vgLib.startTransaction() Siehe startTransaction().

Feedback