ソースコンポーネント内のローカルリレーション

www.altova.com このトピックを印刷 前のページ 1つ上のレベル 次のページ

ホーム >  データソースとターゲット > MapForce とデータベース > ストアドプロシージャ
 >

ソースコンポーネント内のローカルリレーション

このサンプルは、ローカルリレーションシップを使用して、ストアドプロシージャにより返されたデータを同じデータベース内のテーブルからのデータと組み合わせる方法について説明しています。

 

前のサンプルで既に行っていない場合、次のスクリプトを実行して、 「AdventureWorks」 データベース内にデモのストアドプロシージャを作成します。これをクエリウィンドウ Microsoft SQL Server Management Studio のクエリウィンドウ、または、 MapForce の 「DB クエリ」 ペインから行うことができます。データベースの参照とクエリを参照してください。 どちらの場合でも、データベースユーザーアカウントがストアドプロシージャを作成するパーミッションを持っていることを確認してください。

 

CREATE PROCEDURE HumanResources.uspGetAllEmployees
AS
  SELECT LastName, FirstName, JobTitle, Department
  FROM HumanResources.vEmployeeDepartment

 

上のストアドプロシージャは、 vEmployeeDepartment ビューから従業員の情報を返します。次のステップはこのプロシージャにより返されるデータを使用するマッピングの作成方法について説明しています。

 

1.マッピングにストアドプロシージャを追加する方法で説明されているとおり MapForce から 「AdventureWorks」データベースに接続します。データベースユーザーアカウントがストアドプロシージャをビューして実行するパーミッションが存在することを確認してください。
2.データベースオブジェクトを選択するようにプロンプトされると、Department テーブルと uspGetAllEmployees ストアドプロシージャを選択します。

mf_sp_20

3.ストアドプロシージャの横の 「コンテキストメニューの表示」 mf_ic_storedproc_menu ボタンをクリックし、「ソースとしてノードを表示」を選択します。
4.「コンテキストメニューの表示」 mf_ic_storedproc_menu  ボタンをもう一度クリックし、 「レコードセット構造の編集」を選択します。 「レコードセットの構造」 ダイアログボックスが表示されます。
5.「入力パラメータと呼び出しプロシージャの定義」をクリックし、「OK」 をクリックします。 「ストアドプロシージャの評価」 ダイアログボックスが表示されます。

mf_sp_06

6.「実行」をクリックし、「OK」 をクリックします。レコードセット構造 ("RS1") が「レコードセットの構造」 ダイアログボックスとマッピング上に表示されます。

mf_sp_21

 

「ローカルリレーションシップの定義」

返されたレコードセットの Department 列と Department テーブルの Name 列の間のローカルリレーションシップを定義します。

 

1.データベースコンポーネントのタイトルバーを右クリックし、 「データベースオブジェクトを追加/削除/編集」 をコンテキストメニューから選択します。
2.「リレーションの追加/編集」 をクリックし、「リレーションの追加」をクリックします。以下に示されるようにリレーションシップを定義します。

mf_sp_22

3.「OK」 をクリックして、ダイアログボックスを閉じます。Department テーブルは RS1 レコードセットの子になったことに注意してください。

mf_sp_23

 

マッピングを完了する方法

今しがた作成されたリレーションシップにより、テーブルからのデータと結合されたレコードセットからのデータをマップすることができるようになりました。 サンプルのスコープのために、データを次のようにターゲット XML ファイルに書き込むことにしましょう:

 

1.「挿入」 メニューから「XML スキーマ/ファイル」をクリックし、次のファイルを選択します: <マイ ドキュメント>\Altova\MapForce2019\MapForceExamples\EmployeesWithDetails.xsd
2.XML インスタンスファイルを提供するようにプロンプトされると、「スキップ」をクリックします。
3.下に示されるようにマッピングの接続を描きます。

mf_sp_24

上で示されるマッピングはデータベースからターゲット XML ファイルにデータを書き込みます。 ソースデータはストアドプロシージャから抽出されたデータと直接テーブルから抽出されたデータの組み合わせです。 マッピングは、 concat 関数を使用して、ダッシュ文字、とグループ名が後に続く部署名を含む文字列を作成します。

 

マッピングをプレビューするには、「出力」 ボタンをクリックして、「出力」 ペイン内でマッピングの結果を確認します。例:

mf_sp_25


(C) 2019 Altova GmbH