IMS MFS メッセージ入力記述子 (MID) のフォーマット

据え置きのプログラム間メッセージ交換に対する端末へのフォームの読み取りおよび書き込みに使用される IMS™ MFS メッセージ入力記述子 (MID) およびメッセージ出力記述子 (MOD) は、基本フォーマットを共用します。 下の表に、MID のレコード・レイアウトを示します。 MFS MOD の場合、IMS トランザクション名および COND パラメーターの値 (フォーム名) は反転されます。 さらに、MOD の一部のフィールドは無視されます。

表 1. MFS メッセージ入力記述子 (MID) のフォーマット
フィールド 長さ (バイト) データのタイプ 説明
セグメント長 2 2 進数 セグメントの長さ。
予約済み 2 2 進数 IMS 用に予約済み。
IMS トランザクション名 8 文字 EGL プログラムの IMS トランザクション名。
予約済み 1 文字 Rational® COBOL Runtime for zSeries 用に予約済み。
フォーム名 8 文字 据え置きのプログラム間メッセージ交換の MID からの MFS COND パラメーターの値。
追加の Rational COBOL Runtime for zSeriesフィールド 51 可変長 フォームを検証する際に Rational COBOL Runtime for zSeries が使用するフィールドのグループ。 プログラム・フォーム・フィールド開始前のすべてのフィールドの合計の長さは、72 バイトです。
プログラム・フォーム・フィールド 可変長 可変長 この領域には、EGL 書式用に定義された各フィールドが格納されます。
以下の例に、据え置きのプログラム間メッセージ交換に対するフォーム・メッセージ入力記述子 (MID) の COBOL 定義を示します。 PL/I では、COBOL での使用に 2 バイトではなく、4 バイトの長さのフィールドが必要であることに注意してください。 詳しくは、ご使用のシステムの IMS/VS 資料を参照してください。 特定のフィールド名は説明の目的にのみ使用されています。 実際のフィールド名は生成されるコードによって異なることがあります。
* COPY メンバー 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.                            注 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).           注 2
     10 EZEMAP-SCA-BIN              REDEFINES EZEMAP-SCA
                                    PIC S9(4) COMP.
     10 EZEMAP-EZEAID               PIC X(2).           注 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).           注 4
       88 EZEMAP-SSM-PREMODIFIED    VALUE X"0081".
     10 EZEMAP-SSM-STATUS           PIC X(1).           注 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".
* フォーム・グループ formGroup の COPY メンバー
 01 EZEMFS-form                     REDEFINES EZEMAP-IO-AREA.
   05 EZEMFS-form-HEADER            PIC X(72).          注 6
   05 EZEMAP-DATA.
     10 formField.                                      注 7
       15 EZEATTR                   PIC X(08).
       15 EZEDATA                   PIC ....            注 8
       .
       .
       .
この例には、以下の内容が適用されます。
  1. MOD の場合、トランザクション名とマップ名は反転されます。 会話型トランザクションが IMS /FORMAT コマンドを使用して開始される場合、IMS によってデータ・ストリームからトランザクション名が除去されます。
  2. MID では、SCA は空白に設定されます。 MOD の場合、SCA は MOD を挿入するプログラムによって 2 進ゼロに初期化される必要があります。
  3. MOD では、EZEAID フィールドから EZEMAP-GEN-DATETIME フィールドが空白のまま残される可能性があります。 これらのフィールドに配置されるすべての値は入力で戻されません。
  4. 転送元のプログラムでは、EZEMAP-SSM-PREMODIFIED を TRUE に設定して、EZEMAP-SSM-STATUS の値がターゲット・プログラムに伝送されるようにする必要があります。
  5. 転送元のプログラムがターゲットの非会話型プログラムの作業データベースにデータを格納して、その入力レコードの初期化に使用する場合は、このフィールドの設定にレベル 88 EZEMAP-SSM-WSR-SAVED を使用する必要があります。 その他の場合、このフィールドはレベル 88 EZEMAP-SSM-INVALID を使用して初期化する必要があります。

    ターゲット・プログラムでは、EZEMAP-SSM-STATUS の値を検査して、作業データベースに復元するデータがあるかどうかを判別する必要があります。 EZEMAP-SSM-WSR-SAVED または EZEMAP-SSM-WSR-MAP-SAVED のいずれかが TRUE である場合は、作業データベースに復元するレコードがあります。

  6. Form は、EGL に定義されたフォームの実際の名前、フォームの alias プロパティーによって指定された名前、または別名 (生成時に別名を割り当てる必要がある場合) です。
  7. formField は、フォームに定義されたフィールドの実際の名前、または生成時に別名を割り当てる必要がある場合は別名です。 formField が配列である場合は、OCCURS 節が使用されます。
  8. PIC の表記は、フォーム・フィールドのタイプおよび長さに基づいて変化します。
EGL は、FormGroup に関連付けられた MID/MOD の COBOL コピーブックを生成します。 コピーブック・パーツの名前は、FormGroup 名、または FormGroup の別名 (別名が指定された場合) です。 非 EGL プログラムではこのコピーブックを使用して、EGL プログラムが非 EGL プログラムに制御権を移動する場合に受け取る入力フォームおよびメッセージ・フォーマットで EGL プログラムが必要とするメッセージ・フォーマットを正しく定義できます。

フィードバック