PowerBuilderのソースファイルに含まれるすべてのオブジェクトを一括エクスポートするツール

金曜日 , 18, 1月 2019 Leave a comment

pbl_exporttool

PowerBuilderのソースファイル(ライブラリ/PBLファイル)は、独自形式のためPowerBuilder IDE上でしか開くことができません。
しかし、PowerBuilderが提供する組み込み関数の中には、ソースファイルの内容を解析し登録されているオブジェクトの一覧を取得したり、本体部分をテキストとして取得したりする機能が含まれているので、中身を取り出しテキスト化すること自体は可能そうです。

今回は、この機能を使ってPBL形式のソースファイルをテキスト形式のソースファイルとして一括エクスポートするツールを作成しました。

このツールができること

  • 指定されたディレクトリに含まれるすべてのPBLファイルの一括エクスポート
  • 選択されたPBLファイルに含まれるすべてのオブジェクトの一括エクスポート
  • 選択されたPBLファイルに含まれるオブジェクトの表示と個別エクスポート
  • PBLファイルのサマリ情報のエクスポート

このツールは、指定されたディレクトリ以下にPBLファイルごとにフォルダを作成し、PBLファイルに含まれるすべてのオブジェクトを個別のファイルにテキスト形式でエクスポートします。

このとき付与されるファイル名は次のようになります。

[PBLファイル名] + “-” + [オブジェクトの種類] + “-” + [オブジェクトの名前] + [拡張子]

オブジェクトの種類と拡張子の対応は次のようになります。

オブジェクトの種類

拡張子

Project .SRJ
Application .SRA
Window .SRW
Menu .SRM
DataWindow .SRD
Function .SRF
Structure .SRS
UserObject .SRU
Query .SRQ
Pipeline .SRP

エクスポート例

  • エクスポート先として指定したディレクトリ直下(c:\exportをエクスポート先として指定)の状態

PBLファイルの出力例(エクスポート先直下)

  • PBLファイル(export_tool.pbl)のエクスポート状態

PBLファイルの出力例(個別のPBLファイル)

エクスポートしたソースファイルの文字コードはUTF-16LEで、Visual Studio Codeなどで表示・編集することができます。Visual Studio Codeをお使いの場合、powerbuilder syntaxというプラグインを導入することでシンタックスハイライトが使えるようになります。

Visual Studio Codeにpowerbuilder syntaxプラグインを導入した状態での表示例

また、このツールはPBLファイルに含まれるオブジェクトの一覧をサマリ情報としてExcel形式で出力することもできます。
出力される項目は、オブジェクト名、オブジェクトの種類、最終更新日時、コメント、ステップ数(定義情報などヘッダ部分も含む)です。

サマリ情報の出力例(Excel)

提供されるもの

  • 実行プログラム(※要PowerBuilderランタイム)
  • PowerBuilderソース一式
  • 出力サンプル(本ツールを使って出力したテキストソース)
  • 使い方

ダウンロード

ライセンス

PowerBuilderで作られたシステムを解析する必要があり、PowerBuilder IDEでは検索や参照関係の追跡がしづらく動作ももっさりとしていたことから作業の効率化のためにこのツールを作りました。
自分が必要とする最小限の機能実装と確認しかしておらず、より大規模・複雑な構成ではうまく処理ができないことがあるかもしれません。また、一部関数(MidやPosなど)で期待する動作とならず、力業で動くように実装した箇所があるので意図しない結果となる可能性もあります。
NYSLですので煮るなり焼くなりお好きにどうぞ!