Graphical Data Mapping Data Warehousing サンプルの詳細説明
サンプルが機能する方法についての説明は、グラフィカル・データ・マップに主に焦点が当てられています。
- 入力 XML メッセージ (LoyaltySalesData) には、固有の顧客番号が含まれます。
この番号は、LOYALTY 表の 1 次キーとして使用され、データベースでの Select を作成し、Select 変換を使用します。
- この Select 変換の結果は、XPath 式 (fn:count()) を使用して照会します。
これは、Select によって返された行をカウントします。LOYALTY 表に検出されるレコードがない場合、Count 変換は 0 を返し、Else ネスト変換が続けて処理されます。このインスタンスでは、新規レコードがデータベースに挿入されます。
- Insert 変換は、Else ネスト変換に含まれます。データのデータベースへの挿入について詳しくは、IBM Integration Bus インフォメーション・センターの『表へのデータの挿入』を参照してください。
- Insert ネスト変換では、データベースに挿入する前に、各カテゴリー内にある項目エレメントのすべての項目の合計を作成する必要があります。これは、Sum 変換を使用して実装されます。
- 式を指定し、変換の「一般プロパティー」を使用して合計する項目エレメントを選択する必要があります。合計するパラメーターを指定するために、大括弧を使用して、$Items でのフィルターを実装できます (配列であるため)。
このサンプルでは、すべての製菓会社に 1 から 10 の範囲の項目コードがあり、この条件はフィルターとして使用されます。この情報の入力を支援するために、コンテンツ・アシスト (Ctrl+Space) を使用できます。
- Return 変換は、XML 出力を LoyaltySalesDataOut メッセージとして提供します。このメッセージは、メッセージ・フローの LOYALTYDATA.OUT 出力キューに配置され、正常に完了したデータベースへの挿入を解析します。メッセージには、入力メッセージと同じデータが含まれますが、DatabaseReturn エレメントと Action エレメントも存在します。Action エレメントには、挿入が成功したことを示す簡単なメッセージが含まれます。項目は、繰り返されるエレメントであるため、For Each 変換を使用してマップされます。
- データベースの挿入時および更新時に、Failure 変換を使用して失敗を処理するオプションがあります。Failure 変換を挿入または更新に追加するには、変換を右クリックして、「データベース」>「失敗の処理」を選択します。SQL 失敗メッセージをこの変換の出力メッセージに経路指定できます。
- Failure 変換は、出力メッセージ LoyaltySalesDataOut を使用します。挿入が失敗した場合、SQL コードと失敗の状態は、DatabaseReturn エレメントにマップされます。その他のすべてのフィールドは、Insert 変換と同様にマップされます。Failure 変換について詳しくは、IBM Integration Bus インフォメーション・センターの『Failure』を参照してください。
- Select ステートメントが一致するレコードを検出した場合、fn:count() は行数を返し、If 変換が続けて処理されます。この顧客がデータベースに存在する場合、結果のセット・カウントは 1 になり、そのレコードはメッセージの新しいデータで更新される必要があります。顧客番号は 1 次キーであるため、複数のレコードを選択することはできません。
- Update 変換は、If ネスト変換に含まれます。データのデータベースでの更新について詳しくは、IBM Integration Bus インフォメーション・センターの『表のデータの更新』を参照してください。
- Update 変換では、各カテゴリー内のすべての項目の合計を作成する必要があります。これには、データベースの現行値と入力メッセージからの項目が含まれます。「一般プロパティー」の式を使用して、Sum 変換にカテゴリーの項目のサブセットおよび Select からの既存のデータベース・フィールドを指定する必要があります。
- Update Failure 変換は、Insert 変換と同じ方法で実装されます。
サンプルのホームに戻る