CVTRPGSRC コマンドで EXPCPY(*YES) オプションを指定しても、手操作で修正 しなければならないことがある問題が、2 つあります。
これらの問題は、外部記述データ構造の使用に関係しています。
これらの問題はコンパイル時エラーを生じるので、ILE RPG コンパイラー・リストや「WebSphere Development Studio: ILE RPG 言語解説書」の 情報を使ってそれらを訂正することができます。
前に述べたように、RPG IV では、独立型配列とデータ構造サブフィールドを同 じ名前で定義することはできません。 一般に、変換援助プログラムはこの 2 つの定義を組み合わせます。 しかし、サブフィールドが外部記述データ構造にある場合には、この組み合わせは 処理されず、変換後のソース・メンバーを手操作で訂正する必要があります。
例えば、図 227 のフィールド ARRAY は図 228 に 2 回組み込まれます。 すなわち、独立型配列として 1 回組み込まれ、外部記述データ構造 EXTREC としてもう 1 回組み込まれます。 変換時に、生成される RPG IV ソースが図 229 に示されています。ARRAY が 2 回定義されているので、 このコーディングはコンパイルされません。 この問題を訂正するためには、図 230 に示されているように、 独立型配列を削除して、キーワードをもつサブフィールドをデータ構造 DSONE に追加してください。
A R RECORD A CHARACTER 10 A ARRAY 10
E ARRAY 10 1 IDSONE E DSEXTREC C CHAR DSPLY C SETON LR
D ARRAY S 1 DIM(10) D DSONE E DS EXTNAME(EXTREC) C CHAR DSPLY C SETON LR
D DSONE E DS EXTNAME(EXTREC) D ARRAY E DIM(10) C CHAR DSPLY C SETON LR
RPG III の場合には、外部記述データ構造のフィールドの名前変更と初期化 の両方とも行う時には、図 231 のフィールド CHAR に示さ れているように、2 つのソース行を使用しなければなりません。図 232 に示されているように、変換後のソースにも 2 つの ソース行が入っています。フィールドの 2 つのソース行をこれに使用すると、 フィールド CHAR が 2 回定義されているので、コンパイル時エラーが起こりま す。このコーディングを訂正するためには、図 233 に示されてい るように、フィールド CHAR のキーワードを組み合わせて単一行にしなければ なりません。ここでは、キー・フィールド INZ と EXTFLD が組み合わされたの で、フィールド CHAR が 1 つだけ示されています。
IDSONE E DSEXTREC I CHARACTER CHAR I I 'XYZ' CHAR C CHAR DSPLY C SETON LR
D DSONE E DS EXTNAME(EXTREC) D CHAR E EXTFLD(CHARACTER) D CHAR E INZ('XYZ') C CHAR DSPLY C SETON LR
D DSONE E DS EXTNAME(EXTREC) D CHAR E EXTFLD(CHARACTER) INZ('XYZ') C CHAR DSPLY C SETON LR
(C) Copyright IBM Corporation 1992, 2006. All Rights Reserved.