Format des IMS-MFS-Nachrichteneingabedeskriptors (MID)

Der IMS MFS-Nachrichteneingabedeskriptor (MID) und Nachrichtenausgabedeskriptor (MOD), die verwendet werden, um Formulare für Terminals für eine verzögerte Programm-zu-Programm-Nachrichtenumschaltung zu lesen und zu schreiben, nutzen gemeinsam dasselbe Basisformat. In der folgenden Tabelle wird das Datensatzlayout für einen Nachrichteneingabedeskriptor dargestellt. Für einen MFS-Nachrichtenausgabedeskriptor werden der IMS-Transaktionsname und der Wert des Parameters COND (Formularname) umgekehrt. Außerdem werden einige Felder im Nachrichtenausgabedeskriptor ignoriert.

Tabelle 1. Format des MFS-Nachrichteneingabedeskriptors (MID)
Feld Länge in Byte Datentyp Beschreibung
Segmentlänge 2 Binär Die Länge des Segments.
Reserviert 2 Binär Reserviert für IMS.
IMS-Transaktionsname 8 Zeichen Der IMS-Transaktionsname für das EGL-Programm.
Reserviert 1 Zeichen Reserviert für Rational COBOL Runtime für zSeries.
Formularname 8 Zeichen Wert des Parameters MFS COND vom Nachrichteneingabedeskriptor für eine verzögerte Programm-zu-Programm-Nachrichtenumschaltung.
Zusätzliche Felder für Rational COBOL Runtime für zSeries 51 Variable Eine Gruppe von Feldern, die von Rational COBOL Runtime für zSeries zum Auswerten des Formulars verwendet werden. Die Gesamtlänge aller Felder vor dem Start der Programmformularfelder beträgt 72 Byte.
Programmformularfelder Variable Variable In diesem Bereich sind die Felder enthalten, die für das EGL-Formular definiert wurden.
Im folgenden Beispiel wird die COBOL-Definition für den Nachrichteneingabedeskriptor (MID) eines Formulars für eine verzögerte Programm-zu-Programm-Nachrichtenumschaltung dargestellt. Denken Sie daran, dass PL/I ein 4 Byte langes Feld und kein 2 Byte langes Feld wie für COBOL benötigt. Weitere Informationen finden Sie in der IMS/VS-Dokumentation für Ihr System. Die spezifischen Feldnamen werden nur zu Darstellungszwecken verwendet. Die tatsächlichen Feldnamen variieren je nach generiertem Code.
* CopyMember ELAAHMMI
 01 EZEMAP-IO-AREA.
   05 EZEMAP-HEADER.
     10 EZEMAP-LL                   PIC S9(4) COMP.
     10 EZEMAP-ZZ
       15 EZEMAP-Z1                 PIC X(1).
       15 EZEMAP-Z2                 PIC X(1).
     10 EZEMAP-ZZ-BIN               REDEFINES EZEMAP-ZZ
                                    PIC S9(4) COMP.
     10 EZEMAP-MID-TRANCODE.                            Anmerkung 1
       15 EZEMAP-MOD-MAP            PIC X(8).
     10 FILLER                      PIC X(1).
     10 EZEMAP-MOD-TRANCODE.
       15 EZEMAP-MID-MAP            PIC X(8).
     10 EZEMAP-STRUCTURE-TYPE       PIC X(4).
       88 EZEMAP-IS-A-MAP           VALUE "MAP ".
     10 EZEMAP-SCA                  PIC X(2).           Anmerkung 2
     10 EZEMAP-SCA-BIN              REDEFINES EZEMAP-SCA
                                    PIC S9(4) COMP.
     10 EZEMAP-EZEAID               PIC X(2).           Anmerkung 3
     10 EZEMAP-HELP-PF-KEY          PIC X(2).
     10 EZEMAP-BYPASS-PF-KEYS.
       15 EZEMAP-BYPASS-PF-KEY      PIC X(2)
                                    OCCURS 5 TIMES.
     10 EZEMAP-HELP-MAP-NAME        PIC X(8).
     10 EZEMAP-CURSOR.
       15 EZEMAP-ROW                PIC S9(4) COMP.
       15 EZEMAP-COL                PIC S9(4) COMP.
     10 EZEMAP-GEN-DATE-TIME.
       15 EZEMAP-DATE               PIC X(8).
       15 EZEMAP-TIME               PIC X(8).
     10 EZEMAP-SSM-STATUS-ATTR      PIC X(2).           Anmerkung 4
       88 EZEMAP-SSM-PREMODIFIED    VALUE X"0081".
     10 EZEMAP-SSM-STATUS           PIC X(1).           Anmerkung 5
       88 EZEMAP-SSM-INVALID        VALUE X"40" X"FF" X"00".
       88 EZEMAP-SSM-WSR-SAVED      VALUE "C".
       88 EZEMAP-SSM-WSR-MAP-SAVED  VALUE "D".
       88 EZEMAP-SSM-FILL-CHAR      VALUE X"FF".
* Copymember for form group formGroup
 01 EZEMFS-form                     REDEFINES EZEMAP-IO-AREA.
   05 EZEMFS-form-HEADER            PIC X(72).          Anmerkung 6
   05 EZEMAP-DATA.
     10 formField.                                      Anmerkung 7
       15 EZEATTR                   PIC X(08).
       15 EZEDATA                   PIC ....            Anmerkung 8
       .
       .
       .
Hinweise zu diesem Beispiel:
  1. Für einen Nachrichtenausgabedeskriptor können der Transaktionsname und der Zuordnungsname umgekehrt werden. Wenn eine interaktive Transaktion mithilfe des Befehls IMS /FORMAT gestartet wird, entfernt IMS den Transaktionsnamen aus dem Datenstrom.
  2. In einem Nachrichteneingabedeskriptor ist der Systemsteuerbereich (SCA) auf Leerzeichen festgelegt. In einem Nachrichtenausgabedeskriptor muss der SCA vom Programm, das den Nachrichtenausgabedeskriptor einfügt, auf binäre Nullen festgelegt werden.
  3. In einem Nachrichtenausgabedeskriptor können die Felder EZEAID bis EZEMAP-GEN-DATETIME leer gelassen werden. Wenn in diesen Feldern Werte eingetragen werden, werden diese nicht als Eingabe zurückgegeben.
  4. Beim übertragenden Programm muss EZEMAP-SSM-PREMODIFIED auf TRUE festgelegt werden, um sicherzustellen, dass der Wert EZEMAP-SSM-STATUS an das Zielprogramm übertragen wird.
  5. Wenn das übertragende Programm Daten in die Arbeitsdatenbank für das nicht interaktive Zielprogramm zur Verwendung bei der Initialisierung des Eingabedatensatzes einfügt, sollte Level 88 EZEMAP-SSM-WSR-SAVED zum Festlegen dieses Felds verwendet werden. Anderenfalls sollte dieses Feld mit 88 EZEMAP-SSM-INVALID initialisiert werden.

    Das Zielprogramm sollte den Wert von EZEMAP-SSM-STATUS testen, um zu bestimmen, ob in der Arbeitsdatenbank Daten vorhanden sind, die wiederhergestellt werden sollen. Wenn entweder EZEMAP-SSM-WSR-SAVED oder EZEMAP-SSM-WSR-MAP-SAVED den Wert "true" hat, befindet sich ein Datensatz in der Arbeitsdatenbank, der wiederhergestellt werden soll.

  6. "Form" ist der tatsächliche Name des in EGL definierten Formulars, der von der Eigenschaft "alias" angegebene Name oder der Aliasname, wenn ein Aliasname zum Zeitpunkt der Generierung zugeordnet werden musste.
  7. "formField" ist der tatsächliche Name eines Felds, das im Formular definiert wurde, oder der Aliasname, wenn ein Aliasname zum Zeitpunkt der Generierung zugeordnet werden musste. Wenn "formField" ein Array ist, wird eine OCCURS-Klausel verwendet.
  8. Die PIC-Darstellung variiert anhand des Typs und der Länge des Formularfelds.
EGL generiert ein COBOL-Copybook des Nachrichteneingabedeskriptors/Nachrichtenausgabedeskriptors in Verbindung mit einer Formulargruppe (formGroup). Der Name des Copybook-Abschnitts ist der formGroup-Name oder der Alias für die formGroup, wenn ein Alias angegeben wurde. Das Nicht-EGL-Programm kann dieses Copybook verwenden, um das Nachrichtenformat korrekt zu definieren, das das EGL-Programm im Eingabeformular benötigt, sowie um das Nachrichtenformat zu definieren, das empfangen wird, wenn ein EGL-Programm die Steuerung an ein Nicht-EGL-Programm überträgt.

Feedback