テンプレートおよびコピーブックの概念

コピーブックは、COBOL データ記述項目、PL/I DECLARE ステートメント、または HLASM データ記述項目が入っている PDS メンバーです。
COBOL Copybook
コピーブック内の各レベル 01 グループ項目はセグメント・レイアウトについて記述し、グループ中の基本項目はレイアウト中のフィールドについて記述しています。例えば、次のコピーブックは固定長セグメント・タイプの 3 つのレイアウト (SHIRE、SHIRE-TOWN、および SHIRE-CITY) について記述しています。
   01  SHIRE.
       05 SHIRE-KEY.
        10 SHIRE-NAME           PIC X(20).
       05 SHIRE-TYPE            PIC X(1).
            88 SHIRETYPE-SHIRE  VALUE '0'.
            88 SHIRETYPE-TOWN   VALUE '1'.
            88 SHIRETYPE-CITY   VALUE '2'.
       05 SHIRE-CODE1           PIC 9(3).
       05 SHIRE-CODE2           PIC 9(5).
       05 SHIRE-ROAD            PIC S9(15) COMP-3.
       05 SHIRE-RIVER           PIC S9(15) COMP-3.
       05 SHIRE-BRIDGE          PIC S9(15) COMP-3.
   01  SHIRE-TOWN.
       05 SHIRE-KEY.
        10 SHIRE-NAME           PIC X(20).
       05 SHIRE-TYPE            PIC X(1).
            88 SHIRETYPE-SHIRE  VALUE '0'.
            88 SHIRETYPE-TOWN   VALUE '1'.
            88 SHIRETYPE-CITY   VALUE '2'.
              05 SHIRE-CODE1           PIC 9(3).
       05 SHIRE-CODE2           PIC 9(5).
       05 SHIRE-YEAR            PIC 9(4) COMP.
       05 SHIRE-BRICK           PIC S9(15) COMP-3.
       05 SHIRE-WOODEN          PIC S9(15) COMP-3.
       05 SHIRE-SCHOOL          PIC S9(7) COMP-3.
       05 SHIRE-GOLF            PIC S9(4) COMP.
   01  SHIRE-CITY.
       05 SHIRE-KEY.
        10 SHIRE-NAME           PIC X(20).
       05 SHIRE-TYPE            PIC X(1).
            88 SHIRETYPE-SHIRE  VALUE '0'.
            88 SHIRETYPE-TOWN   VALUE '1'.
            88 SHIRETYPE-CITY   VALUE '2'.
       05 SHIRE-CODE1           PIC 9(3).
       05 SHIRE-CODE2           PIC 9(5).
       05 SHIRE-MAJOR           PIC S9(4) COMP.
       05 SHIRE-MAIN-ATTRACTION PIC X(20).
       05 SHIRE-MINOR           PIC S9(4) COMP.
PL/I コピーブック
COBOL コピーブックと類似していて、各大構造 (レベル 1 名) は、セグメント・レイアウトについて記述し、基本名はフィールドについて記述します。
1 SHIRE,
  3 SHIRE_KEY,
    5 SHIRE_NAME           CHAR(20),
  3 SHIRE_TYPE             CHAR(1),
                    /* '0' -SHIRE    */
  3 SHIRE_CODE1            PIC'(3)9',
  3 SHIRE_CODE2            PIC'(5)9',
  3 SHIRE_ROAD             FIXED(15),
  3 SHIRE_RIVER            FIXED(15),
  3 SHIRE_BRIDGE           FIXED(15);
1 SHIRE_TOWN,
  3 SHIRE_KEY,
    5 SHIRE_NAME           CHAR(20),
  3 SHIRE_TYPE             CHAR(1),
                    /* '1' -TOWN     */
  3 SHIRE_CODE1            PIC'(3)9',
  3 SHIRE_CODE2            PIC'(5)9',
  3 SHIRE_YEAR             FIXED BIN(15),
  3 SHIRE_BRICK            FIXED(15),
  3 SHIRE_WOODEN           FIXED(15),
  3 SHIRE_SCHOOL           FIXED(9),
  3 SHIRE_GOLF             FIXED BIN(15);
1 SHIRE_CITY,
  3 SHIRE_KEY,
    5 SHIRE_NAME           CHAR(20),
  3 SHIRE_TYPE             CHAR(1),
                    /* '2' -CITY     */
  3 SHIRE_CODE1            PIC'(3)9',
  3 SHIRE_CODE2            PIC'(5)9',
  3 SHIRE_MAJOR            FIXED BIN(15),
  3 SHIRE_MAIN_ATTRACTION  CHAR(20),
  3 SHIRE_MINOR            FIXED BIN(15);
HLASM Copybook
HLASM コピーブックは COBOL コピーブックと似ていて、大構造 (DSECT 名) にはレコード・タイプが、基本名にはフィールドが記述されます。
SHIRE        DSECT
SHIRE_KEY    DS  0CL20
SHIRE_NAME   DS  CL20
SHIRE_TYPE   DS  CL1
SHIRE_CODE1  DS  CL3
SHIRE_CODE2  DS  CL5
SHIRE_ROAD   DS  H
SHIRE_RIVER  DS  H
SHIRE_BRIDGE DS  H
*
SHIRE_TOWN   DSECT
SHIRE_KEY    DS  0CL20
SHIRE_NAME   DS  CL20
SHIRE_TYPE   DS  CL1
SHIRE_CODE1  DS  CL3
SHIRE_CODE2  DS  CL5
SHIRE_YEAR   DS  H
SHIRE_BRICK  DS  PL8
SHIRE_WOODEN DS  PL8
SHIRE_SCHOOL DS  PL4
SHIRE_GOLF   DS  H
*
SHIRE_CITY   DSECT
SHIRE_KEY    DS  0CL20
SHIRE_NAME   DS  CL20
SHIRE_TYPE   DS  CL1
SHIRE_CODE1  DS  CL3
SHIRE_CODE2  DS  CL5
SHIRE_MAJOR  DS  H
SHIRE_MAIN_ATTRACTION DS CL10
SHIRE_MINOR  DS  H

詳細については、『File Manager での HLASM コピーブックの使用』Base(File Manager ユーザーズ・ガイドおよびリファレンス) を参照してください。

テンプレートを作成または更新すると常に、FM/IMS は次の処理を行います。

  1. コピーブック (セグメント・タイプと突き合わせたもの) を連結して、それらのすべてをシェル・プログラムに組み込みます。
  2. 選択されているコンパイラーを呼び出してコピーブックの構文を検査し、ADATA ファイルを作成します。
    「Compiler Language Selection (コンパイラー言語の選択)」パネル (オプション 0.4.1) を使用して、FM/IMS で呼び出すコンパイラーを指定できます。次のパネルで、コンパイルで許容される戻りコード・レベルを指定できます。
    • 「Set COBOL Processing Options (COBOL 処理オプションの設定)」パネル (オプション 0.4.2)
    • 「Set HLASM Processing Options (HLASM 処理オプションの設定)」パネル (オプション 0.4.3)
    • 「Set PL/I Processing Options (PL/I 処理オプションの設定)」パネル (オプション 0.4.4)
  3. コンパイルがエラーなしで完了したら、FM/IMS は、ADATA ファイルの情報を処理してテンプレートを作成します。

    コンパイルが、指定された最大値より大きい戻りコードで完了した場合は、FM/IMS はポップアップ・メニューを表示します。このポップアップ・メニューから、 以下のことを選択できます。

    • コンパイル・リストをブラウズする。
    • テンプレート作成処理を停止する。
    • コンパイルを再試行する。このオプションを選択する前に、コンパイル・リストを調べて、コピーブックのエラーを修正してください。コンパイル・リストが表示されているときには、ISPF 分割画面機能を使用して他の ISPF セッションでコピーブックを編集し、エラーを修正することができます。
    • エラーを無視して、テンプレートの作成に進む。このオプションを使用できるのは、FM/IMS がテンプレートを作成できる場合のみです。警告のような一部のコンパイル・エラーは、テンプレートの作成には影響しません。不確かなときは、コンパイル・リストを参照してください。重大なコンパイル・エラーの場合には、FM/IMS はテンプレートを作成できません。
    • 別の言語でコンパイラーを試行する (COBOL または PLI コンパイラー言語が選択されている場合)。