Rational Developer for System z
Enterprise COBOL for z/OS バージョン 4.1 コンパイラーおよびランタイム 移行ガイド


可変長グループ受け取り側の参照変更

参照変更された可変長グループにデータを MOVE するプログラムは、可変長グループを評価するのに使用された長さが実際の長さと最大長のどちらかであるかによって、異なる結果を生成する可能性があります。

可変長グループが以下のすべての基準を満たす場合は、結果が異なる可能性があります。
たとえば、グループ VAR-LEN-GROUP-A は ODO オブジェクトと OCCURS サブジ ェクトを含んでおり、このグループの後に可変位置データ項目があります。
01 VAR-LEN-PARENT-A.
   02 VAR-LEN-GROUP-A.
      03 ODO-OBJECT PIC 99 VALUE 5.
      03 OCCURS-SUBJECT OCCURS 10 TIMES DEPENDING ON ODO-OBJECT.
         04 TAB-ELEM  PIC X(4).
   02 VAR-LOC-ITEM  PIC XX.
01 NEXT-GROUP.

MOVE ALL SPACES TO VAR-LEN-GROUP-A(1:).
グループ VAR-LEN-GROUP-B は ODO オブジェクトと OCCURS サブジェクト を含んでおり、このグループの後に可変位置データ項目がありません。VAR-LOC-ITEM は、VAR-LEN-GROUP-B の後にあるのではなく、OCCURS サブジェク トの後にあります。
01 VAR-LEN-PARENT-B.
   02 VAR-LEN-GROUP-B.
      03 ODO-OBJECT PIC 99 VALUE 5.
      03 OCCURS-SUBJECT OCCURS 10 TIMES DEPENDING ON ODO-OBJECT.
         04 TAB-ELEM PIC X(4).
      03 VAR-LOC-ITEM PIC XX.
01 NEXT-GROUP.

MOVE ALL SPACES TO VAR-LEN-GROUP-B(1:).

上記の例では、MOVE ALL SPACES TO VAR-LEN-GROUP-A (1:) の実行結 果は、どの NOCMPR2 プログラム (VS COBOL II リリース 3.x、VS COBOL II リリース 4、また は Enterprise COBOL) の場合も同じになります。このケースでは、どの NOCMPR2 プログラムも実際の長さを使用します。

MOVE ALL SPACES TO VAR-LEN-GROUP-B (1:) の実行結果 は、NOCMPR2 を指定してコンパイルされた以下のプログラムでは異なります。
プログラムに、参照変更された可変長グループの受信側が含まれており、グループがそれ 自体の ODO オブジェクトを持ち、グループの後に可変位置データがなく、参照修飾子で長さが指定されていない場合は、以下のメッセージが出されます。
IGYPS2298-I
可変長グループ "data name" への参照は、グループの最大長を使用して評価されます。実行結果が VS COBOL II リリース 3.x の場合とは異なる可能性があります。

ご利用条件 | フィードバック

このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)