INITIALIZE ステートメントの規則

  1. ID-1 が基本項目またはグループ項目のいずれかを参照しても、 すべての操作は、あたかも一連の MOVE ステートメントが書かれていて、それぞれに受け入れフィールドとして基本項目が入っているかのように実行されます。
    REPLACING 句が指定されている場合には、次のようになります。
    • ID-1 がグループ項目を参照する場合には、 ID-1 によって参照されるデータ項目内のすべての基本項目は、 それが REPLACING 句に指定されたカテゴリーに属している場合にだけ初期設定されます。
    • ID-1 が基本項目を参照する場合には、その項目は、 それが REPLACING 句に指定されたカテゴリーに属している場合にだけ初期設定されます。

    この初期設定は、ID-2 またはリテラル-1 によって参照されるデータ項目が、 あたかも、識別された項目に対する暗黙の MOVE ステートメント中の送り出しオペランドとして働くかのように行われます。

    このような基本的な受け入れフィールド (グループ内でのテーブル項目のすべてのオカレンスを含めて) は、次の例外を除いて、すべて影響を受けます。
    • 指標、ポインター、およびプロシージャー・ポインター・データ項目
    • 基本 FILLER データ項目
    • ID-1 に従属していて、REDEFINES 文節が入っている項目、あるいはそのような項目に従属している項目。 (ただし、ID-1 は、REDEFINES 文節が入っていてもよく、あるいは再定義項目に従属していてもかまいません。)
    • BOOLEAN データ項目
    • 日付、時刻、またはタイム・スタンプの FORMAT 文節で記述されるデータ項目。
  2. ID-1 によって参照される区域は、ステートメント中で ID-1 が現れる順序 (左から右) で初期設定されます。 受け入れフィールドのグループ内では、影響を受ける基本項目が、グループ内でそれらが定義された順序で初期設定されます。
  3. ID-1 が ID-2 と同じ記憶域を使用している場合には、 たとえ、これらのオペランドが同じデータ記述記入項目で定義されていても、このステートメントの実行の結果は未定義となります。
  4. ID-1 がグループ項目である場合には、 そのグループ項目内のすべての項目がプログラム中で参照されているものと見なされます。