Sharperlightマテリアライズクエリは、複数データソースからのデータ統合などに利用できます。
この記事では、会社別にデータベースが存在するSAP Business Oneを使用します。
ユニオンクエリを作成して、ひとつのクエリ定義で米国本社と豪州支店のデータを抽出し、マテリアライズクエリデータベースにプールします。
マテリアライズクエリの作成
Sharperlightアプリケーションメニューからマテリアライズクエリを起動します。
[新規]アイコンをクリックし、マテリアライズクエリデータベース(以下 MQデータベース)を作成します。
MQデータベースは、Sharperlightシステムデータベースが存在するデータベースサーバー内に作成されます。
作成されたら、コード、タイトルを変更します。[適用]ボタンを押して確定します。
SQLサーバーマネジメントスタジオでデータベースサーバーを覗いてみます。MQデータベースが確認できます。
次に[テーブル編集]ボタンを押して、集めたデータをプールするテーブルを作成します。[新規]ボタンで開始します。
[クエリビルダ] (Sharperlight製品群内で共通のクエリ設計ツール)が開きます。クエリの定義がそのままテーブルの定義になります。
[プレビュー]ボタンでクエリの確認!確認が済んだら[OK]を押してクエリを確定します。
いくつかの確認メッセージが表れます。[OK]、[Yes]と進みます。
テーブルが作成されます。ダブルクリックでテーブルの編集ダイアログを開きます。
コードとタイトルを設定します。
[テーブルの詳細]タブに移動するとテーブルの構造定義が拝見できます。
自動付与されるテーブルIDがそのままテーブル名に使用されます。
編集ダイアログを閉じます。メッセージが表示される場合がありますが[Yes]で先に進みます。
実際のMQデータベースを覗いてみます。テーブルが作成されていますね。これで準備完了。
MQテーブルのデータの更新
テーブルを選択した状態で右クリックメニューを表示します。[データの更新を実行]を選びます。
MQテーブルで定義したクエリが動き、データソースであるSAPの米国と豪州のデータベースからデータが抽出され、MQデータベース内のテーブルに保存されます。
マテリアライズクエリのデータを抽出
Sharperlightアプリケーションメニューからクエリビルダを開きます。
[フィルター]領域の[製品]検索を開きます。先ほど作成したマテリアライズクエリが見えます。それを選択します。
[テーブル]検索では、対象マテリアライズクエリ内のテーブルリストが見えます。今回はひとつのみです。
会計期フィールドと金額フィールドを出力してみます。会計期別の売上金額の合計が表示されます。
更に会社名による動的出力オプションが設定されているので、この例では米国と豪州の出力フィールドが動的に作成されます。
動的出力オプションについてはまた別の記事で詳しく書きます。
プレビューをすると...、ほらこんな感じ。比較が簡単に行えますね。
あとがき
今回はマテリアライズクエリの概要を簡単に書くことが目的でしたので、MQデータベースもMQテーブルも自動付与されたIDが名称の一部になりました。しかし、それではデータベースやテーブルが何を意味するのか不明で、データベースを管理する人には厄介なものになります。後日、名称の変更方法については記事として取り上げていきます。
更にデータの更新では、ただ単純にテーブル内のデータを削除して、新たに抽出したデータを書き込んでいます。抽出するデータもフィルター値が一定のため、毎回同じデータセットです。こういったところも他にいくつかの機能がありますので、後日記事にしていきます。
またスケジューリングも可能なので、その詳細も記事にします。
Sharperlight