特集 IBM i Project ExplorerとBobを使用したRPG開発 <Part5>IBM i Project Explorerを使用したローカル開発 ~③ テキスト・ファイルに変換されたソース・メンバー
ソース物理ファイルごとに、テキスト・ファイルに変換された各ソース・メンバーの状態を確認する。
QRPGSRC
変換元のメンバーは、図表1のとおりである。

変換後のソース・テキスト・ファイルは、図表2のようになった。

図表3、図表4は、変換前のソース・メンバーCUB010と、変換後のテキスト・ファイルcub010.rpgの内容の一部である。


文字化けもなく正常に変換が行われているようだが、以下のとおり、両者の間にいくつかの違いもみられる。
❶ ソースの最上部にコメント行が追加されている。

図表5の%TEXTの後のテキストは、変換前のメンバー・テキストの値である。

図表6は、WindowsやLinuxのファイル・システムではファイルの属性としてテキストを保存できないためで、このようにソースの先頭にメタタグ付きのコメントとして保存される。
❷ 日付フィールドとシーケンス番号フィールドが削除されている。


これらはSEUが使用していたもので、Git等を使用してソースのバージョン管理を行う場合の障害となるため、自動的に削除される。
❸ シフト文字(SO/SI)が削除されている。


IBM iの日本語EBCDIC環境では、全角文字列の前後に1バイトのシフト文字(SO/SI)が挿入されるが、変換後のテキスト・ファイルではそれらがすべて削除されている。
これは、変換後のテキスト・ファイルの文字コードがユニコード(UTF-8)であり、EBCDICのシフト文字に対応する文字がユニコードでは定義されていないためである。
コメントに含まれるシフト文字が削除されるのは問題とならないが、次のように仕様書の記入欄に全角文字が含まれている場合、正常(コンパイル可能)であるにもかかわらず桁ずれが起きて文法エラーのように見えるため、編集する際は注意が必要である。


図表12 全角文字のリテラルを含むステートメント(変換後)
また、ユニコードへの変換時に削除されたシフト文字は通常、EBCDICへの変換時に再び挿入されるが、次のように連続したシフト文字({と}で表している)は変換の過程で完全に削除されるため、この点も注意が必要である。

❹ その他
前述のとおり、テキスト・ファイルの文字コードはUTF-8となっている。そのほか、行末の半角スペースはすべて削除されており、改行コードはLF(ライン・フィード)となっている。

QDDSSRC
次にQDDSSRCを確認する。変換元のメンバーと変換後のテキスト・ファイルは図表15、図表16のとおりである。


図表17、図表18は、変換元のソース・メンバーMCUSと、変換後のテキスト・ファイルmcus.pfの内容である。


RPGソースと同様の変換が行われている。DDSの場合、仕様書の記入欄の中で、全角文字が入力されるのは右端の欄(Functions)に限定されるため、シフト文字削除による桁ずれの問題は比較的軽微と思われる。
DSPFソース・メンバーを格納しているQDSPSRCと、PRTFソース・メンバーを格納しているQPRTSRCについては、QDDSSRCと変わらないため割愛する。
QCLSRC
最後にCLソースを確認してみよう。
変換元のメンバーと変換後のテキスト・ファイルは図表19、図表20のとおりである。


図表20 変換後のCLソース・テキスト・ファイル
CLでは、変換後のテキスト・ファイルの命名規則がRPGやDDSの場合とは異なっている。RPGやDDSでは、cub010.rpgやmcus.pfのように、<メンバー名>.<メンバー・タイプ>という規則になっていた。今回のCLソースのメンバー・タイプはCLPなので、その規則に従えばcub010c.clpとなるはずだが、cub010c.pgm.clleとなっている。
図表21、図表22は、変換元のCLソース・メンバーCUB010Cと、変換後のCLソース・テキスト・ファイルcub010c.pgm.clleの内容である。


これもRPGソースと同様の変換が行われている。CLプログラムのソースは、記入桁の制限がないフリーフォーマットなので、シフト文字削除による桁ずれの影響は軽微と思われる。
——————————
Better Object BuilderもしくはBobは、2025年10月にリリースされたIBM Project Bobとの混同・混乱を避けるため、2025年12月に「TOBi」(The Object Builder for IBM i)へと名称が変更されました。ただしここでの記事は従来どおり、Bobと明記していることをご了承ください。
著者
佐藤 尚氏
ソリューション・ラボ・ジャパン株式会社
第1サービス事業部 第3サービス部 第1グループ
AS/400ユーザーの情報システム部門を経て、2006年にソリューション・ラボ・横浜(現ソリューション・ラボ・ジャパン)に入社。主にIBM iを中心に他のプラットフォームとの連携を行うシステムの設計・開発を行う。近年はシステム開発の傍ら、IBM i技術者向け研修サービスの講師を担当している。







