BPEL 1.1のflowNアクティビティによるflowアクティビティ数のカスタマイズ

flowアクティビティでは、BPELコードによってパラレル・ブランチの数が決定されます。ただし、必要なブランチの数は、多くの場合、使用可能な情報に応じて異なります。flowNアクティビティは、Nの値に等しい複数のフローを作成します。この値は、使用可能なデータおよびプロセス内のロジックに基づいて実行時に定義されます。索引変数は、Nの値に到達するまで、新しいブランチが作成されるたびに増分されます。

flowNアクティビティは、任意の数のデータ要素に対してアクティビティを実行します。BPELプロセス・サービス・コンポーネントは、要素の数の変化に応じて適切に調整を実行します。

flowNで作成される各ブランチは、同じアクティビティを実行しますが、異なるデータを使用します。各ブランチは、索引変数を使用して入力変数を参照します。索引変数をXPath式で使用すると、そのブランチに固有のデータを取得できます。

たとえば、データの配列があるとします。BPELプロセス・サービス・コンポーネントは、count関数を使用して配列内の要素の数を判断します。次に、Nが要素の数に設定されます。索引変数は、事前に設定された値(デフォルトは0(ゼロ))で始まります。flowNは、複数のブランチを作成して配列の各要素を取得し、その要素に含まれるデータを使用してアクティビティを実行します。これらのブランチは、初期索引値とNの間のすべての値を使用して、並行して生成され、実行されます。flowNアクティビティは、索引変数がNの値に到達すると終了します。たとえば、配列に3つの要素が含まれている場合、N3に設定されます。索引変数が1で始まるとすると、flowNアクティビティは索引1、2および3を使用して3つのパラレル・ブランチを作成します。

flowNアクティビティでは、Webサービスから取得したデータなど、他のソースのデータも使用できます。

図10-15に、3つのホテルを参照するOracle Enterprise Manager Fusion Middleware ControlのflowNアクティビティの実行時フローを示します。この図は、BPELプロセス・サービス・コンポーネントではなく、プロセスを実際に実行する方法を示しているため、ビューそのものではありません。この例では、3つのホテルがありますが、ブランチの数は使用可能なホテルの数に応じて異なります。

図10-15 flowNアクティビティの実行を示すOracle Enterprise Manager Fusion Middleware Controlビュー

図10-15の説明が続きます
「図10-15 flowNアクティビティの実行を示すOracle Enterprise Manager Fusion Middleware Controlビュー」の説明