タイガー!タイガー!じれったいぞー!(SE編)

AS400,WAS,GlassFish,Java,JavaEE,JSF等の開発における日々の気づきをまとめたブログ(備忘録)。

【AS400】CVTRPGSRC(RPGⅢをRPGLEへ変換)

作業手順

(1) 変換記録用のログファイルの準備

一般的には不要と思われるが、変換した結果を記録したい場合に、ログ用PFを準備します。

CPYF  FROMFILE(QRPGLE/QARNCVTLG)  TOFILE(TIGER/QRNCVTLG) 
      MBROPT(*REPLACE)  CRTFILE(*YES)

※項目キーワードへ、ALWNULLを追記することで、NULLデータの格納が許されるようになります。

(2) 変換処理

ログファイルに変換記録を取る場合

CVTRPGSRC FROMFILE(TIGER/RPGLESRC) FROMMBR(SAMPLE00)
          TOFILE(TIGER/RPGLESRC) TOMBR(SAMPLE00B) LOGFILE(TIGER/QRNCVTLG)

ログファイル不要な場合

CVTRPGSRC FROMFILE(TIGER/RPGLESRC) FROMMBR(SAMPLE00)
          TOFILE(TIGER/RPGLESRC) TOMBR(SAMPLE00B) LOGFILE(*NONE)

(3) 変換記録用ログの確認

RUNQRY QRYFILE(TIGER/QRNCVTLG)     

(4) 変換したRPGLEの修正

  • 「/COPY」の参照元がある場合、RPGⅢのままのため、RPGLE用の「/COPY」を作成する必要があります。
  • シフト文字を16進記述で定義します。

プログラム内にOE,OFシフト文字が使われている場合、「文字リテラルの中の漢字データが正しくない。正しいデータだけが使用されます。」と構文エラーになります。その場合は、下記のように16進数記述でエラーを回避させます。

C                   MOVEL     '  '          W1BDEN       // '  'はOEOF文字
C*                            ↓            
C                   MOVEL     X'0E0F'       W1BDEN