Technical Capabilities Tech Blog

#検証 GeneXusのバージョン管理について②

2021年08月10日

こんにちは、植田です。
早速ですが、GeneXusのバージョン管理について検証していきたいと思います。

今回は1つのシステム内での過去バージョンとの差分抽出を行ってみます。
本記事ではGeneXusによるWEBアプリケーションに対し一定期間ごとに 改修を加え、
再リリースを行っていく 場面を想定し、

・ オブジェクトの差分は拾えるのか

・ DBの再編成はどのように取得できるのか

に焦点を当てて進めていきます。

(参考 ) KBのフリーズ
今回は以下のトランザクションオブジェクトを保有するKBに対してフリーズを行います。

フリーズは表示メニュー→バージョンにて行います。
バージョンタブ内にKB名の枠が表示されますので右クリック→
フリーズを選択し、名前とデスクリプションを指定します。

作成が完了すると、新たにバージョンが作成されます。(上が現在のKB、下がフリーズバージョン)

■オブジェクトの差分取得について

ここから本題となります。
まず、フリーズが終わった段階でアプリケーションの改修を行います。

今回の改修では、

・入力必須ルールの追加

・項目属性の変更(値の拡張)

・項目属性の削除

を実施しました。

(改修後)

ここからフリーズバージョンと最新KBの比較を行う場合の手順となります。
ナレッジベースバージョンツリーのフリーズした方の枠を右クリック→ 
アクティブバージョンと比較を選択します。

比較機能タブが表示されフリーズバージョンから変更されたオブジェクトのみ抽出されました。

ここで、変更のあったオブジェクトをダブルクリックすることで
フリーズ時点との差分の詳細を確認することもできます。良い感じですね!

■DB再編成の取得方法

次に、改修により発生したDBの差分についてどのように取得できるかを検証していきます。
先ほどのナレッジベースバージョンタブより、2つの枠をShiftまたはCtrlキーを押しながら
選択し、右クリック→XXXからYYYまでのデータベースの影響分析を選択します。

新たに影響分析タブが立ち上がり、Version1.00からのすべての再編成が取得できていることが確認できます。

(再編成のエクスポートについて)
あるKBをデプロイ専用として管理している場合、 リリース直前に変更分を1度に ビルドする事があります。
そのような場合には「再編成のエクスポート」が有用です。
この機能を使用すると、直近のローカルKBの再編成を本番環境に対して
バックグラウンドで実行する事が可能となります。

方法:ビルドメニュー→再編成のエクスポートを選択

再編成実行ファイルの名前を指定してZipファイルを作成します。

ファイルはターゲット環境のWebフォルダが存在するディレクトリのReorgs内に存在します。

Zipファイルを解凍するとReor.exeが存在しますので、これを実行します。
バックグラウンドで実行する場合はコマンドラインで

 Reor.exe -nogui -force 

を実行してください。

如何でしたでしょうか?
GeneXusなら統合開発環境1つでバージョンの管理が完結してしまいますよね。
特にバージョン同士の差分の抽出やDB再編成に関しては実際どうやってやるの?
と疑問に思われている方が多いのではないでしょうか?

今回の検証はまだまだ一部にすぎませんが、ご参考にしていただければ幸いです。
次回は「本流のシステムと枝派との差分取得等」について掲載させていただきたいと思います。
最後までご覧いただき有難うございました!

Tech Blog一覧