OutSystemsで利用できる、OSSのリポジトリがForgeです。
トラブルシュートするときや、新機能の確認をするときには、現環境にインストールされているForegeコンポーネントのバージョンを知りたくなります。
Forgeコンポーネントでは、バージョンチェックが難しい点があるので、解説と対策をまとめておきます。
インストールされているForgeコンポーネントのバージョンがわからない
Service StudioやService CenterのUIには、インストールされているForgeコンポーネントのバージョンを確認する方法がありません。
例えば、Service Studioでモジュールを開き、Moduleメニュー > Open other versionを選択するとバージョンが表示されますが、これは各環境内で振られたバージョン番号であって、Forgeにおけるバージョン番号とは別物。
一部、モジュールのDescriptionにバージョン番号を記載してくれているものもありますが、これは例外で当てにはできない。
例えば、ardoJSONなどはこの方法をとっている。
Forge Components Installed Versionsを利用する
直接インストールしたものだけが対象とのことだが、環境にインストールされているForgeコンポーネントをバージョン付きでリストアップしてくれる。これ自体もForgeコンポーネント。
https://www.outsystems.com/forge/component-overview/8152/forge-components-installed-versions
↓がPersonal EnvironmentでForgeコンポーネントを表示してみた例。
直接インストールとは
Service StudioのForgeタブからインストールしたものと、oapファイルを使ったインストールが該当するようです。
oapファイルを展開して取得したomlをPublishしたときと、lifetimeを使ったリリースしたものは、このForgeでは検索対象外(Personal Environmentでは、lifetimeを使ったリリースができないので未確認)。
仕組み
このForgeコンポーネントは非公開API(Table)を使っているので、バージョンアップ時に動作しなくなる可能性は考慮に入れる必要があると思います。
OSSYS_APP_FORGEという名前のテーブルとApplication Entityをジョインすることで、Forgeからインストールした「アプリケーション」を検索する仕組み。
公式モジュールでは、このテーブルにアクセスできるEntityはない(Forgeにはある)。
そのForgeBaseVersionという列を加工することでバージョン番号を取得可能。
ForgeホームページのVersionsで当たりをつけ、Service StudioでCompareして特定
- Service Centerでバージョンを確認したいモジュールを開く
- Service CenterのVersionsタブで該当モジュールをインストールまたは更新した日時を確認する
- Forgeで該当コンポーネントを開く
- ForgeのVersionsタブで日時に近い物を探し、ダウンロード
- ダウンロードしたoapファイルをzipファイルとして展開する
- 展開したフォルダに含まれているomlをインストールされているモジュールと比較(Service Studioでモジュールを開き、Moduleメニュー > Compare and Merge with Another Version or File > CHOOSE A FILEボタン > omlファイルを選択)
この方法で、両方のバージョンのdiffが取れます。
少々面倒ですが、差分を見てあたりをつけながら、対象バージョンを切り替えながら調査する。