こんにちは、植田です。
私がGeneXusの紹介を承った時にお客様からよく
「既存のDBとの連携は可能でしょうか」
とご質問を受けることがあります。その時には中々1から準備できない事から簡単な返答(出来ます)しか
返すことが出来ていなかったため、当記事にてDBRET(DBリバースエンジニアリングツール)の紹介と
簡単な検証を行ってみたいと思います。
DBRETとは
GeneXusではTransactionオブジェクトを定義することによりアプリケーションとデータベースが新規に作成され、
アプリケーションのメインDBとして機能しますが、レガシー化したシステムの再構築を行う場合は既存の資源(ハード、ソフト)を活かしたまま新規アプリケーションと接続する場面もあります。
そのような場合はGeneXusでは通常、トランザクションオブジェクトと共にDataViewオブジェクトを定義することで
外部システムとの接続情報の定義やテーブル項目のマッピング等を行い連動が可能になります。
但し、活かしたい項目が大量にある場合には都度トランザクションオブジェクトとDataViewオブジェクトの定義を行わなければならず、またDataView側の接続情報を定義する作業も頻繁に発生します。
DBRET(DBリバースエンジニアリングツール)はこのような問題を解決するためのツールとなります。
使い方
GeneXusIDE上の「ツール」メニュー⇒「データベースリバースエンジニアリング」を選択します。
連携先システムとのDBMS接続情報を選択し、「次へ」を押下します。
次に、左側のリストから接続したいテーブルを選択し、右側へ移動させます。
選択が完了した場合、「次へ」を押下します。
GeneXusが連携先DBMSの構造情報を自動的に読み込みます。
最後に、生成オプションを指定していきます。
【主な生成オプション(一例)】
- Transaction を生成:読込先の構造をTransactionとして生成します。(FalseはDataViewオブジェクトのみ生成)
- 名前変更ルール:KB内の項目名と完全に重複した場合のAttributeの命名方法を指定します。
- データストア:外部接続用に準備したデータストア名を指定します。未指定の場合はDataStore1など自動で生成
- Transaction として表示を生成:(VIEWから構造を取得する場合等)、トランザクションのキーを指定できるようになります。
KBエクスプローラ上に2つのオブジェクト(DataViewオブジェクト、Transactionオブジェクト)が生成されているのが確認できます。
生成されたTransactionオブジェクトに対してビルド&実行を行うと1から手動で作成した場合と全く同じ挙動の画面が使用可能になります。
まとめ
如何でしたでしょうか?今回はDBRETの基本的な使い方についてご紹介させて頂きました。
次回はもう少し実際のユースケースに基づいた検証を行っていきたいと思います。
最後までご覧頂きありがとうございました!