PowerBuilderのソースファイル(ライブラリ/PBLファイル)は、独自形式のためPowerBuilder IDE上でしか開くことができません。
しかし、PowerBuilderが提供する組み込み関数の中には、ソースファイルの内容を解析し登録されているオブジェクトの一覧を取得したり、本体部分をテキストとして取得したりする機能が含まれているので、中身を取り出しテキスト化すること自体は可能そうです。
今回は、この機能を使ってPBL形式のソースファイルをテキスト形式のソースファイルとして一括エクスポートするツールを作成しました。
このツールは、指定されたディレクトリ以下にPBLファイルごとにフォルダを作成し、PBLファイルに含まれるすべてのオブジェクトを個別のファイルにテキスト形式でエクスポートします。
このとき付与されるファイル名は次のようになります。
[PBLファイル名] + “-” + [オブジェクトの種類] + “-” + [オブジェクトの名前] + [拡張子]
オブジェクトの種類と拡張子の対応は次のようになります。
オブジェクトの種類 |
拡張子 |
Project | .SRJ |
Application | .SRA |
Window | .SRW |
Menu | .SRM |
DataWindow | .SRD |
Function | .SRF |
Structure | .SRS |
UserObject | .SRU |
Query | .SRQ |
Pipeline | .SRP |
エクスポートしたソースファイルの文字コードはUTF-16LEで、Visual Studio Codeなどで表示・編集することができます。Visual Studio Codeをお使いの場合、powerbuilder syntaxというプラグインを導入することでシンタックスハイライトが使えるようになります。
また、このツールはPBLファイルに含まれるオブジェクトの一覧をサマリ情報としてExcel形式で出力することもできます。
出力される項目は、オブジェクト名、オブジェクトの種類、最終更新日時、コメント、ステップ数(定義情報などヘッダ部分も含む)です。
PowerBuilderで作られたシステムを解析する必要があり、PowerBuilder IDEでは検索や参照関係の追跡がしづらく動作ももっさりとしていたことから作業の効率化のためにこのツールを作りました。
自分が必要とする最小限の機能実装と確認しかしておらず、より大規模・複雑な構成ではうまく処理ができないことがあるかもしれません。また、一部関数(MidやPosなど)で期待する動作とならず、力業で動くように実装した箇所があるので意図しない結果となる可能性もあります。
NYSLですので煮るなり焼くなりお好きにどうぞ!
PowerBuilderランタイムのバージョンについて問い合わせをいただきました。
当方で確認済みのランタイムは2017R3(Build 1862)です。
[…] PowerBuilderライブラリファイル(.PBLファイル)から.SRW形式のソースファイルの作り方については、『PowerBuilderのソースファイルをテキスト形式で一括エクスポートするツール』をご覧ください。 […]
[…] PowerBuilderライブラリファイル(.PBLファイル)から.SRD形式のソースファイルの作り方については、『PowerBuilderのソースファイルをテキスト形式で一括エクスポートするツール』をご覧ください。 […]