繰り返しノードのフィルタリング
実行時にフィルタリングを実行するための XPath 述部を指定すれば、 マッピング・アクティビティーから返される繰り返しノードの数を 制限できます。
このタスクについて
- 繰り返し構造内でループする「While ループ (While Loop)」または「For Each」アクティビティー。
- 値をテストするための「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 ディレクトリー内にあります。
繰り返しノードの 述語を指定するには、次のようにします。