エクスポート (0) 印刷
すべて展開

手順 5:フラット ファイル スキーマを OrderDetails テーブルの挿入スキーマに変換する

更新日: 2014年11月

このトピックでは、フラット ファイル メッセージ スキーマを SQL Server の OrderDetails テーブルの挿入操作のスキーマにフラット ファイル メッセージ スキーマをマッピングする変換を作成する手順について説明します。変換を作成する前に、2 つのスキーマを確認し、変換の一部として実行する必要がある処理を理解しましょう。

次に 2 つのスキーマのスナップショットを示します。

フラット ファイルと挿入スキーマ

次の表は、マッピング要件と、達成時に使用するマップ操作の一覧です。

 

マップ対象 実行方法

ソース スキーマの [OrderId] ノードは、変換先スキーマの [OrderId] ノードに直接マッピングされます。

2 つのスキーマの 2 つのノードを直接関連付けます。

フラット ファイル スキーマの [OrderDetails] ノードは反復するノードなので、[Quantity] ノードのすべての値を合計し、累計値は変換先スキーマの [QuantityOrdered] ノードに渡す必要があります。

[累積合計] マップ操作を使用して、[Quantity] ノードと [QuantityOrdered] ノードを接続します。

変換先スキーマの [TotalAmount] ノードには、すべて (単価 * 数量) の累積値を含める必要があります。

この値を設定する手順については、「TotalAmount 要素にマッピングするには」を参照してください。

  1. Visual Studioで [FTP_EAI_Tutorial] プロジェクトを右クリックし、[追加] をポイントして、[新しい項目] を選択します。

  2. [新しい項目の追加] で、[マップ] を選択し、マップ名に「Map.trfm」と入力して、[OK] をクリックします。

  3. ソリューション エクスプローラーで Map.trfm ファイルをクリックして変換を開きます。変換デザイン領域で、PO.xsd のソース スキーマと FTPEAITutorial_TableOperation.dbo.OrderDetails.xsd の変換先スキーマを設定します。

  4. [ツールボックス] の [リスト操作] カテゴリから [リストの作成] マップ操作を変換デザイン領域にドラッグ アンド ドロップします。[マップ操作] をダブルクリックし、プラス記号を選択し、メンバー名として「Amount」と入力します。[番号] として [メンバーの種類] を入力し、[OK] をクリックします。

    こうすることで、[Amount] というメモリ内の変数が作成されます。

  5. [リスト] マップ操作内に [ForEach ループ] マップ操作を追加し、ソース スキーマの OrderDetails 要素に接続します。この処理を実行するのは、OrderDetails 要素がメッセージ スキーマで反復する要素であるためです。

  6. [ForEach ループ] マップ操作内に [算術式] マップ操作を追加します。ソース スキーマの UnitPrice 要素と Quantity 要素をこのマップ操作に接続します。マップ操作をダブルクリックして [算術式の構成] ダイアログ ボックスを開き、[算術式の入力] ボックスに「UnitPrice * Quantity」と入力します。

  7. 以上で、OrderDetails 要素の繰り返し処理ごとに UnitPrice * Quantity の値を計算しました。この値を、リスト操作の一部として作成した Amount 変数に追加する必要があります。そのために、[ForEach ループ] 操作内に [リストに項目を追加する] 操作を追加し、[算術式] 操作に接続します。この操作で、[算術式] マップ操作の値 (Unit Price * Quantity) が [リスト] 操作の一部として作成した Amount 変数に割り当てられます。

  8. [リスト] 操作には多数の変数が定義されている可能性があります。このチュートリアルでは、1 つの変数 (Amount) のみを定義しましたが、その変数を選択するために変換を構成する必要があります。そのために、[エントリの選択] マップ操作を使用します。

    [エントリの選択] マップ操作をデザイン画面にドラッグ アンド ドロップし、[リストの作成] 操作に接続します。[エントリの選択] マップ操作をダブルクリックして [エントリの選択の構成] ダイアログ ボックスを開き、[メンバーの選択] ボックスから [Amount] のチェック ボックスを選択します。

  9. 次に、Amount 変数の値の累積合計を計算する必要があります。そのため、累積合計マップ操作を追加し、[エントリの選択] マップ操作に接続します。[累積合計] マップ操作をダブルクリックし、テキスト ボックスに次の式を入力します。

    item.Amount
    

    次に、[累積合計] マップ操作 を変換先スキーマで TotalAmount 要素に接続する必要があります。変換は次のようになります (変換先スキーマで TotalAmount 要素のみをマッピングする場合)。

    合計を計算するマップ操作

    noteメモ
    また、FTP_EAI_Tutorial サンプルの一部として使用できるマップを確認するには、http://go.microsoft.com/fwlink/?LinkId=247973 も参照してください。

関連項目

表示:
© 2015 Microsoft