レコード ID 基準の指定

ここでは、コピーブックまたはテンプレートに複数のレコード・タイプが含まれ、各タイプは当初そのレコード長によって識別されます。各タイプに固有のレコード長がある場合は、各種のタイプを選択して表示できます。ただし、複数のレコード・タイプが同じ長さである場合は、特定のレコード ID 基準の指定が必要となります。これには通常、同じタイプの各レコードに固有な値を組み込むフィールドの形式で行われます。

例えば、次のコピーブック定義では、「順序」と「項目」のレコードは異なった長さとなります。そのようにして、追加の ID 基準なしでレコードを選択して表示することができます。

01 ORDERS.
   05 ORDER-ID        PIC X(5).
   05 CUSTOMER-ID     PIC X(5).
   05 ORDER-DATE.
      10 ORDER-YEAR   PIC 9(4).
      10 ORDER-MONTH  PIC 9(2).
      10 ORDER-DAY    PIC 9(2).
01 ITEM.
   05 PRODUCT-ID      PIC X(9).
   05 QUANTITY        PIC 9(4) BINARY.
   05 UNIT-COST       PIC 9(8) BINARY.

ただし、下記に示すサンプル・コピーブックのように、レコードが同一の長さである場合は、なんらかのレコード ID 基準を使用しない限り、File Manager はこれらのレコードを識別できません。データを検査することによって、すべての REC-TYPE01 レコードでは、REC-TYPE フィールドに値「01」が含まれていて、すべての REC-TYPE02 レコードでは、REC-TYPE フィールド値が「02」となっていることが分かります。この場合、両方のレコード・タイプに REC-TYPE フィールドが含まれますが、各レコード・タイプはその識別で同じフィールドを使用する必要はありません。

01 REC-TYPE01.
   05 REC-TYPE                     PIC XX.
   05 NAME                         PIC X(20).
   05 EMPLOYEE-NO                  PIC 9(4) BINARY.
   05 AGE                          PIC 9(4) BINARY.
   05 SALARY                       PIC 9(7) PACKED-DECIMAL.
   05 MONTH                        PIC 9(8) BINARY OCCURS 12 TIMES.
   05 FILLER                       PIC XX.
01 REC-TYPE02.
   05 REC-TYPE                     PIC XX.
   05 NAME                         PIC X(20).
   05 JOB-TITLE                    PIC X(14).
   05 ADDR1                        PIC X(20).
   05 ADDR2                        PIC X(20).
   05 POSTCODE                     PIC X(4).

いずれかのレコード・タイプに同じレコード長のデータがある場合には、レコード ID 基準を指定して File Manager がレコード間で識別できるようにすることを強くお勧めします。そうしない場合には、予期しない結果になる可能性があります。

それぞれのレコード・タイプの長さが固有な場合でも、やはりすべてのレコード・タイプにレコード ID 基準を指定することをお勧めします。そうすると、有効なレコード・タイプの長さと一致しており、しかもそのタイプに無効なデータが入っているレコードを分離できるようにするのに役立ちます。

レコード ID 基準を指定するには、

  1. 入力パネルで、複数のレコード・タイプを含むコピーブックまたはコピーブック・テンプレートを指定して、そのテンプレートを編集します。

    これは、いくつかの方法で行うことができます。例えば、「View Entry (表示項目の入力)」パネル、「Edit Entry (編集項目の入力)」パネル、または各種の「Utilities (ユーティリティー)」パネルから、「Edit Template (テンプレートの編集)」オプションを選択することができます。また、「View (表示)」または「Edit (編集)」パネルでは、TE コマンドを入力でき、「Template Workbench (テンプレート・ワークベンチ)」パネルでは、E コマンドを入力できます。

    「Record Type Selection (レコード・タイプ選択)」パネルが表示されます。

  2. 編集したいタイプの横の「Cmd」フィールドに、E 接頭部コマンドを入力して Enter キーを押します。

    「Field Selection/Edit (フィールド選択/編集)」パネルが表示されます。

  3. 以下のいずれかを実行します。
    • 「Record Identification Criteria (レコード ID 基準)」フィールドにフリー・フォームの式を入力します。
    • コマンド行に 1 を入力して Enter キーを押してから、フィールド別にレコード ID 基準を指定します。

      「Record Identification Criteria (レコード ID 基準)」パネルが表示されます。このパネルは、次の点を除いて、「Dynamic Template (動的テンプレート)」パネルと同じです。

      • 「Field Name (フィールド名)」「Start (開始)」「Length (長さ)」および「Type (タイプ)」のフィールドが編集不可である。
      • 80 x 24 画面では、デフォルトで「Field Name (フィールド名)」フィールドが (「Start (開始)」「Length (長さ)」および「Type (タイプ)」のフィールドの代わりに) 表示される。

      終了時には、作成された式は直前のパネルの「Record Identification Criteria (レコード ID 基準)」フィールドに戻ります。

    注: フリー・フォーム基準式と、「フィールド別基準」式は一緒には使用できません。

レコードをタイプ別に (レコード長またはレコード ID 基準のいずれかによって) 識別できると、File Manager は、エディター・オプション「Expose (do not group) records of types: Suppressed」の設定に従って、そのレコード・タイプ以外のすべての表示を自動的に抑制します。デフォルトでは、最初に識別されたレコード・タイプが表示されます。

関連トピック

関連概念