文脈に依存した問題

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) オプションを使用するか、あるいは変換 後にコードを手操作で訂正してください。