文脈に依存した問題
RPG III では、基本ソース・メンバーの前後の仕様書の文脈がない /COPY メンバーで
は仕様書のタイプを判別できないことがあります。 この問題には次の 2 つの場合があります。
- データ構造サブフィールドまたはプログラム記述ファイル・フィールド
図 1. 入力フィールドのみの RPG III /COPY ファイル
I* RPG III ソース・メンバーが、以下のフィールド FIELD1 および I* FIELD2 を記述するソース・ステートメントしか含んでいない場合、 I* 変換援助プログラムは変換の方法を判別できません。 I* これらのステートメントは、(定義仕様書に変換される) I* データ構造フィールドである場合も、(入力仕様書に変換される) I* プログラム記述ファイル・フィールドである場合もあります。 I 1 3 FIELD1 I 4 6 FIELD2 - 外部記述データ構造フィールドの名前変更または
外部記述ファイル・フィールドの名前変更
図 2. 名前変更フィールドの ある RPG III ソース
I* RPG III ソース・メンバーが、以下のフィールド CHAR を I* 記述するソース・ステートメントしか含んでいない場合、 I* 変換援助プログラムは変換の方法を判別できません。 I* このステートメントは、(定義仕様書に変換される) I* 外部記述データ構造フィールドの名前変更である場合も、 I* (入力仕様書に変換される) 外部記述ファイル・フィールドの I* 名前変更である場合もあります。 I CHARACTER CHAR
上の 2 つの例では、データ構造が仮定され、定義仕様書が作成されます。 入力仕様書コードを含むコメントのブロックも作成されます。 例えば、変換援助プログラムは図 1 のソースを図 3 に示されているコードに変換します。 入力仕様書コードが必要な場合には、定義仕様書を削除し、 対応する入力仕様書からアスタリスクを消去してください。
図 3. 入力フィールドのみのソースを
変換した後の RPG IV ソース
D* RPG III ソース・メンバーが、以下のフィールド FIELD1 および
D* FIELD2 を記述するソース・ステートメントしか含んでいない場合、
D* 変換援助プログラムは変換の方法を判別できません。
D* これらのステートメントは、(定義仕様書に変換される)
D* データ構造フィールドである場合も、(入力仕様書に変換される)
D* プログラム記述ファイル・フィールドである場合もあります。
D FIELD1 1 3
D FIELD2 4 6
I* 1 3 FIELD1
I* 4 6 FIELD2
この種の問題を訂正するためには 2 つの方法があることを覚えておいてください。CVTRPGSRC コマンドの EXPCPY(*YES) オプションを使用するか、あるいは変換 後にコードを手操作で訂正してください。