繰り返しノードのフィルタリング

実行時にフィルタリングを実行するための XPath 述部を指定すれば、 マッピング・アクティビティーから返される繰り返しノードの数を 制限できます。

このタスクについて

アクティビティーのマッピング・ペインで述部を直接使用してフィルターすることで、 以下のアクティビティーの必要性を排除できます。 ループおよび 「If..Then」アクティビティーを排除することで、 オーケストレーションのパフォーマンスが向上します。
例えば、 以下のいずれかの方法を使用して、BatchOrderProcessingSample オーケストレーション によって処理される書籍の数を制限し、文字 B で始まる書名 のみを返すことができます。
  • フラット・ファイル・データを XML に変換する「フラット・ファイルの読み取り」 アクティビティーの後、文字 B で始まるすべての書名をテストする 「If..Then」アクティビティーを含む 「While ループ (While Loop)」アクティビティーを追加できます。 実行時に「While ループ (While Loop)」アクティビティーが完了すると、 文字 B で始まる書名を持つ BookOrder 繰り返しノードのセットが 返されます。
  • フラット・ファイル・データを XML に変換する「フラット・ファイルの読み取り」アクティビティーの「出力のマップ」タスクの「オーケストレーションへ」ペインで、述部を直接指定してフィルタリングします。実行時の処理が減少し、オーケストレーションのパフォーマンスが向上するため、 この方法をお勧めします。例えば、BookOrder 繰り返しノードで述部 *:title/starts-with(.,'B') を指定し、 文字 B で始まる書名のみを対象とすることで、 実行時に返される Bookorder ノードを制限できます。
この述部の例については、次の表で説明します。
述部の文字 説明
*: この述部がソース・ノード内のすべての名前空間に 適用されることを指定します。
title/ この述部が現在のソース・ノードの title ノードに 適用されることを指定します。
starts-with(.,'B') この述部が、文字 B で始まる title ノードを持つ ノードのみを返すことを指定します。starts-with 関数は XPath の組み込み関数です。

BookOrder サンプルについて詳しくは、 「Getting Started Guide」を参照してください。 Studio のインストール時にデフォルトを受け入れた場合、サンプルの参照実装環境は C:¥Program Files¥IBM¥WebSphere Cast Iron Studio 3.X¥Samples¥BookOrder ディレクトリー内にあります。

繰り返しノードの 述語を指定するには、次のようにします。

手順

  1. 次の BatchOrderProcessingSample オーケストレーションの「フラット・ファイルの読み取り」アクティビティーの「出力のマップ」ペインに示されているように、フィルターを適用できるのは、アクティビティーのマッピング・ペイン内で繰り返しソース・ノードにマップされた繰り返し宛先ノードのみです。
  2. 宛先 occurrence ノードを右クリックし (この例では BookOrder/occurrence)、 メニューから「繰り返しノードのフィルタリング」を選択します。 繰り返しノードのフィルタリング」ダイアログ・ボックスが 開きます。
  3. XPath 述部を入力します。 この例では、 次の図に示した述部を入力します。
  4. 「OK」をクリックします。述部が有効かどうかが 評価されます。
    • 述部が無効な場合は、エラー・メッセージが報告されます。
    • 述語が有効な場合は、フィルター・アイコン (繰り返しノード・アイコン) が宛先 occurrence ノードの横に表示されます。



フィードバック | 特記事項


タイム・スタンプ・アイコン 最終更新: 2013年11月7日 (木曜日)


http://pic.dhe.ibm.com/infocenter/wci/v7r0m0/topic/com.ibm.wci.doc/map_Filter_Recurring_Nodes.html