最終更新日: 2024.11.26
RPGⅢからILERPG、そしてFreeFormRPGへのコンバートを徹底解説
<前回の記事>
FFRPG言語徹底解説~ILERPGへのコンバート方法~
目次
ILERPGからFreeFormRPGへのソースコンバート
前回は RPGⅢ から ILERPG へのコンバート方法についておさらいしました。
今回は【特別編】RPGⅢ→ILERPG→FreeFormRPGコンバートをFREE(タダ)で!その2 として、 ILERPG から FFRPG へのソースコンバートを行います。
VSCodeにIBMi接続とFFRPG変換を追加
最初に Visual Studio Code(以降VSC)の拡張機能に IBMi 接続と FFRPG 変換を追加します。前回に引き続き EOL に登録されているソースコードを使用します。
EOLについてはコチラを参照ください。
(https://www.i-learning.jp/service/selfstudy/eol.html)
Code for IBM i

検索欄に”Code for IBM i”と入力すると、検索結果が表示されます。
“Code for IBM i” が見つかったら[インストール]を押して拡張機能の導入を行います。
RPGLE Free
次に“RPGLE Free”を検索して同様にインストールします。

導入が終わりましたら、IBM i の接続設定を行います。
IBM iの接続設定
アクティビティバーにある[IBMi]をクリックします。
![VSCodeのアクティビティバーにある[IBMi]をクリック](https://fbicenter.co.jp/wp/wp-content/uploads/2023/08/19ded4c24565d0820a98c60f72629934.jpg)
サイドバーにある[+]をクリックします。
![VSCodeのサイドバーにある[+]をクリック](https://fbicenter.co.jp/wp/wp-content/uploads/2023/09/image-3.png)

Connection Name:接続名
Host or IP Address:接続先IBMiのIPアドレス
Username:ユーザーID
Password:パスワード
SavePassword:チェックを付けると登録したユーザーID・パスワードで自動ログインされます[Save&Exit]を押して保存、終了を行います。
サイドバーの[SERVERS]に登録した情報が表示されます。

追加されたアイコンをクリックしてしばらく待つとIBM iへ接続されます。

IBM iに接続できない場合はSSHDを起動
接続できない場合は、IBM i 側でsshdが開始されていないので、IBM iのコマンド入力画面からsshdの起動を行ってください。
STRTCPSVR SERVER(*SSHD)
フィルターの作成
接続が成功すると、サイドバーがエクスプローラーになります。
OBJECT BROWSERから[+ Create New Filter..]をクリックします。
![サイドバーのエクスプローラーからOBJECT BROWSERから[+ Create New Filter..]をクリック](https://fbicenter.co.jp/wp/wp-content/uploads/2023/08/51ee1d58c898a9e6e63781b8c8e8d625.jpg)

Filter name:定義するフィルター名
Library:ライブラリー名(ここではQEOLICJ)
Object:オブジェクト名(ここではQ*) Object type filter:SRCPF 変更なし
最下部にある[Save settings]を押します。

フィルターが作成されました。
作成されたフィルターをクリックします。

フィルターの条件に合致するオブジェクト(Name:Q*、Type:ソースファイル)が表示されます。QEOLRPGLEをクリックしてメンバーを展開します。

ソースファイル:QEOLICJ/QEOLRPGLEに登録されているメンバーが表示されます。
[BPL010.RPGLE]をクリックしてソース編集画面を開きます。
※コンバートを行う際の注意
コンバートを行う際は、事前にソースメンバーのバックアップを行ってください。バックアップを作成しないと、不慮の事故で上書きされた時に復旧できなくなります。
ILERPGからフリーフォームRPGへ変換
プログラムソースがエディター部分に表示されます。

エディター部分をクリックして[Ctrl]+[a]で全て選択を行います。
![[Ctrl]+[a]でプログラムソースを全て選択](https://fbicenter.co.jp/wp/wp-content/uploads/2023/08/1e64200de6054146edb09920f834d825.jpg)
ソースコードが選択された状態で、右クリックします。
![プログラムソースを全て選択した状態で右クリックし、[Convert to Free Format]を押下](https://fbicenter.co.jp/wp/wp-content/uploads/2023/08/d05fee007945e2fb6b045baebe27f3de.jpg)
ポップアップメニューにある[Convert to Free Format]をクリックします。

反転された部分が固定ILERPGからフリーフォームRPGへ変換されました。
[Ctrl]+[s]で上書き保管か名前を付けて保管ができます。
STRPDMのメンバー処理でコンパイル
コンパイルはSTRPDMのメンバー処理から行います。オプションに14を入力して[実行]、または[F4]を押してオプションを指定します。


まとめ
前回と今回の2回にわたり、無料でFreeFormat変換を行う方法を紹介してきました。
いかがでしたでしょうか。もちろん、機能や変換精度ではARCAD Transformer RPG に軍配が上がります。変換後のソースでコンパイルエラーになる事もありますが、FFRPGに触れる取り掛かりとして一度試してみてはいかがでしょうか。
執筆者プロフィール

こんにちは。株式会社福岡情報ビジネスセンターの江口です。
今回もFREE FORM RPG(以降、FFRPG)について、あれこれ書かせて頂きます。
簡単な経歴ですが、入社(1987)から1年間はCOBOLプログラムの開発、その後2年ほどバロースBASIC、PROGRESS/2を経てS/36での開発に携わりました。RPG2です。後はS/38(RPG3)、AS/400(RPG3・ILERPG)と順当にアップデートして現在のIBMiへと続いているので、30年ほどRPG関係の開発を行っています。