前置き
- 「C仕様書だけFF RPGで書くことが多いです」というお声を聞き、私も完全FFでなく、部分FFをやってみようと思い立った次第です
- 尚、かなり初歩的なところで躓きました
- これも学び、ということでこちらの記事に残したいと思います
RPGⅢからILE RPGにしてみよう
- CVTRPGSRCコマンドの前に、変換ログ取得用のファイルを準備する
CPYF FROMFILE(QRPGLE/QARNCVTLG) TOFILE(KOINULIB/QRNCVTLG)
MBROPT(*REPLACE) CRTFILE(*YES)
- CVTRPGSRCでRPGⅢをQRPGSRC(RPGⅢ)→QRPGLESRC(ILE RPG)に変換する
CVTRPGSRC FROMFILE(KOINULIB/QRPGSRC) FROMMBR(*ALL) TOFILE(KOINULIB/QRPGLES
RC) LOGFILE(KOINULIB/QRNCVTLG)
RDiでFF RPGに変換してみよう
- C仕様書部分だけソースを選択、右クリック、
選択をフリー・フォームに変換
をクリック(画像は変換済) - 一部C仕様書が残ったままになるので、その部分にFF RPGへコーディングする
- 今回試したソースでは以下の部分を手動で変更しました
-
帳票オーバーフローのフラグオンオフ
- Before
//頁変えの確認 C OF EXCEPT MIDASI C OF SETOFF OF
- After
//頁変えの確認 IF *INOF = *ON; EXCEPT MIDASI; *INOF = *OFF; ENDIF;
-
四則演算
- Before
C TKGEND SUB TKUZAN WKRIYO 9 0
- After
DCL-S WKRIYO ZONED(9:0); WKRIYO = TKGEND - TKUZAN;
-
- 今回試したソースでは以下の部分を手動で変更しました
SEUとRDiとVS Codeでコーディングしながらコンパイルエラーを解消してみた
- いつもよりコンパイルエラーを出していました(開発時代なら怒られそうなくらいに…)
- 共通しておきていたエラーの理由は、「私は部分Free Form RPGを書いている」という自覚が少なかったことです
コンパイルエラーによる気づき、躓きポイント
- 部分 FF RPGはあくまで、ILE RPGであることを意識しないといけないという点
- 各定義H→F→D→Cの徹底をすっかり忘れていた
- FF RPGに徐々に慣れていると、C仕様書(演算仕様書)の途中でDCL-S等の定義仕様書を書きたくなる…
- 桁の始まりミスが多かった(C仕様書は8桁目からです)
3つの開発ツール、開発環境を使ってどのように感じたか
- SEUに慣れていたとしても、「やっぱりRDiいいなあ」の一言に尽きます
- コンパイル前に上記のDCL-Sのポジションミスを教えてくれました
- エラー箇所にカーソルを合わせ、内容を確認(今回は2行目が原因)
- SEUでもVS Code(Code for IBM i)でも現在はここまで丁寧にエラーチェックはされないので、この点はかなりRPG開発者に寄り添っているというか、改めてRPG開発に特化されているという印象を受けました
おわりに
- 初歩的なところで躓いてしまいましたが、部分も完全も使いこなしていけるように精進いたします!
参照サイト&記事リンク(素敵な記事)
-
【AS400】CVTRPGSRC(RPGⅢをRPGLEへ変換)
- タイガー!タイガー!じれったいぞー!(SE編)様
- 【VS Code】RPGⅣからFFRPGにConvertしてみた!