配列と外部記述 DS サブフィールドの組み合わせ
前に述べたように、RPG IV では、独立型配列とデータ構造サブフィールドを同 じ名前で定義することはできません。 一般に、変換援助プログラムはこの 2 つの定義を組み合わせます。 しかし、サブフィールドが外部記述データ構造にある場合には、この組み合わせは 処理されず、変換後のソース・メンバーを手操作で訂正する必要があります。
例えば、図 1 のフィールド ARRAY は図 2 に 2 回組み込まれます。 すなわち、独立型配列として 1 回組み込まれ、外部記述データ構造 EXTREC としてもう 1 回組み込まれます。 変換時に、生成される RPG IV ソースが図 3 に示されています。ARRAY が 2 回定義されているので、 このコーディングはコンパイルされません。 この問題を訂正するためには、図 4 に示されているように、 独立型配列を削除して、キーワードをもつサブフィールドをデータ構造 DSONE に追加してください。
図 1. 外部データ構造の DDS
A R RECORD
A CHARACTER 10
A ARRAY 10
図 2. 配列付きの外部データ構造を
使う RPG III ソース
E ARRAY 10 1
IDSONE E DSEXTREC
C CHAR DSPLY
C SETON LR
図 3. 配列に 2 つの定義を
持つ RPG IV ソース
D ARRAY S 1 DIM(10)
D DSONE E DS EXTNAME(EXTREC)
C CHAR DSPLY
C SETON LR
図 4. 配列に単一の定義を持つ
訂正済みの RPG IV ソース
D DSONE E DS EXTNAME(EXTREC)
D ARRAY E DIM(10)
C CHAR DSPLY
C SETON LR