要約

異なる環境に対する異なる戦略

  • 以下のアクションは、反復処理において同じ戦略を共有します。すなわち、「ソースからのマップ」、「サブマップの新規作成」、「サブマップの呼び出し」、「ESQL ルーチンの呼び出し」です。
  • 「集計」アクションは、独自の方法で反復を処理します。
  • 「式の入力」アクションは、反復可能度とは無関係です。

「ソースからのマップ」、「サブマップの新規作成」、「サブマップの呼び出し」、「ESQL ルーチンの呼び出し」アクションにおける 1 対 1 マッピングの反復処理

  • 反復可能度の判別時に、エレメント (または属性) は、1 つ以上の xsd シーケンス/選択/すべて/グループといったエレメント (またはコンテナーのシーケンス/選択/すべて/グループ) と共に、1 つのレベルを形成します。
  • マッピングの作成は 3 つのステップ処理から成ります。すなわち、拡張、MapFrom 式の設定、ForEach/If/Condition の追加という処理です。 最後のステップとして、アルゴリズムの詳細な記述を行います (ForEach の挿入など)。
  • 選択されたマッピング・ソースおよびターゲットから開始して、内側から外へと進み、反復ソースの 1 つのレベルを、反復ターゲットの 1 つのレベルに突き合わせます。
  • ソースおよびターゲット内の反復の、それぞれの突き合わせレベルごとに、以下を行います。
    • ターゲットのこのレベルに反復シーケンス/選択/すべて/グループ・エレメントがない場合には、ターゲット構造のレベルを含む ForEachStatement を作成します。
    • ForEach の式は、反復ソースのレベルのマップ可能な参照です。
    • ターゲットのこのレベルが、反復シーケンス/選択/すべて/グループに含まれる場合、シーケンス/選択/すべて/グループ内のすべての構造を含む ForEachStatement を作成します。
    • ForEach の式は、反復ソースのレベルのマップ可能な参照です。
    • 期待されるシーケンス/選択/すべて/グループのメンバーを含む、期待される式を持つ ForEach がすでにある場合には、さらに ForEach は作成しません。
    • 異なる式を持つ ForEach がすでにあるものの、それが期待されるシーケンス/選択/すべて/グループのメンバーを含む場合には、必要な ForEach を、既存の ForEach の子として作成します。 内部 ForEach には、シーケンス/選択/すべて/グループのエレメントの内容すべてを含む If-Condition ブロックが含まれます。
    • 上記の Condition 式は、外部 ForEach 内の式のオカレンスが、内部 ForEach 内の式のオカレンスに等しいことを示します。
  • ターゲット内の反復のアンマッチのレベルは無視します。
  • ソース内の反復の、各アンマッチのレベルごとに、以下を行います。
    • ForEachStatement で、IfStatement を含むもの、ConditionStatement を含むもの、およびターゲット構造のレベルを含むものを作成します。
    • ForEach の式は、反復ソースのレベルのマップ可能な参照です。
    • 反復ソースのレベルに対する ForEach がすでにある場合には、さらに ForEach は作成しません。
    • Condition の式は occurrence(this_level_of_repeating_source)=1 です。
    • 反復ソースのレベルの最初に現れる位置に対する Condition がすでにある場合には、さらに Condition は作成しません。
    • すでに Qualify があるものの、期待される条件がない場合には、Qualify 内に別の Condition を作成します。
  • リレーショナル・データベース・ターゲット・ステートメントは、ForEach エレメント内部に置かなければなりません。
    • 単一ソースがネストされた反復レベルを含むときには、それぞれのレベルごとに ForEach がネストされます。
  • リレーショナル・データベース・ソースの選択結果セットは、概念的には反復です。 ただし、データベース・ソースからのマッピングは、選択ステートメントの有効範囲の拡張を必要とすることがあります。 事を単純にするために、ツールは、データベース・ソースからのマッピングの結果として、ForEach を挿入しません。
    • SelectStatement をステートメント・モデルに挿入すると、マッピング・ツールは常に、その内部で結果セットをループする ForEach を持つ Select を作成します。

「ソースからのマップ」アクションにおける 1 対多マッピングの反復処理

  • それぞれのターゲットごとに 1 回ずつ、1 対 1 戦略を何回も使用します。
  • 多数のマッピング間で最適化は試行しないでください。

「ソースからのマップ」、「サブマップの新規作成」、「サブマップの呼び出し」、「ESQL ルーチンの呼び出し」アクションにおける多対 1 マッピングの反復処理

  • 個々のソースおよびターゲット間で、1 対 1 戦略を適用します。
  • ソース反復のそれぞれのレベルごとに、各ソースによって呼び出される ForEach エレメントをネストします。 インスタンスにより限定して、ネストされた ForEach エレメントが、同じ索引のインスタンスだけを選出するようにします。
関連タスク
メッセージ・マッピングの開発
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック
Copyright IBM Corporation 1999, 2005 Last updated: 11/07/2005
ar25235_1_