OS/VS COBOL では、LINKAGE SECTION が OCCURS DEPENDING ON 文節のオブジェクトを含んでいて、OCCURS 文節のサブジェクトのオカレンスの数が変わるときは、OCCURS DEPENDING ON 文節のオブジェクトをリセットして、グループの長さの更新を起動する必要があります。Enterprise COBOL では、構造が参照されるときは必ずグループの長さが計算されるため、このリセットは必要ありません。
OS/VS COBOL Enterprise COBOL
LINKAGE SECTION. LINKAGE SECTION.
01 PARMLIST.
05 FILLER PIC S9(8).
05 RECORD-POINTER PIC S9(8).
.
.
01 VAR-RECORD. 01 VAR-RECORD.
05 REC-OTHER-DATA PIC X(30). 05 REC-OTHER-DATA PIC X(30).
05 REC-AMT-CNT PIC 9(4). 05 REC-AMT-CNT PIC 9(4).
05 REC-AMT PIC 9(5) 05 REC-AMT PIC 9(5)
OCCURS 1 TO 100 TIMES OCCURS 1 TO 100 TIMES
DEPENDING ON REC-AMT-CNT. DEPENDING ON REC-AMT-CNT.
. .
. .
PROCEDURE DIVISION. PROCEDURE DIVISION.
. .
. .
EXEC CICS READ DATASET("INFILE") EXEC CICS READ DATASET("INFILE")
RIDFLD(INFILE-KEY) RIDFLD(INFILE-KEY)
SET(RECORD-POINTER) SET(ADDRESS OF VAR-RECORD)
LENGTH(RECORD-LEN) LENGTH(RECORD-LEN)
END-EXEC. END-EXEC.
MOVE REC-AMT-CNT TO REC-AMT-CNT. .
MOVE VAR-RECORD TO WS-RECORD-HOLD. MOVE VAR-RECORD TO WS-RECORD-HOLD.
. .
. .