プロセス内でのループ処理

*10 で追加*

Workbench の以前のバージョンでは、ユーザーは、ループ処理を実装するために、条件付きの循環ルートを手動で追加する必要がありました。また、ループの実行および終了を明示的に追跡するために、カウンターが作成されました。

Workbench の Iteration Wizard 機能を使用すると、件名、サイズ、データソースに基づいてループを自動的に生成できます。

ループの追加は、2 つの手順に分かれた処理です。

  • データソースの識別:ループのデータソースは、XML またはコレクション変数(List または Map)です。

  • 件名の識別:ループの件名は、空のサブプロセスです。このサブプロセスは、サービス操作を使用して後で定義できます。

ループの追加

  1. プロセスデザイナーで、Iteration Wizard をプロセスダイアグラムのレーンにドラッグします。

  2. Iteration ウィザードで、ループを反復するデータソースを識別します。次の変数の種類のうちいずれかを使用します。
    • XML 変数:「XML Variable」オプションを選択し、ドロップダウンリストからあらかじめ定義された XML 変数を選択します。 ボタンをクリックして、XML 変数を追加することもできます。XML 変数から要素を選択するには、「Element from The XML Variable」フィールドを使用します。 ボタンをクリックして XPath Builder を開き、要素の代わりとなる XPath 式を適宜構築します。ループは、この要素のすべての繰り返しインスタンスで反復されます。

    • コレクション変数:「Collection Variable (List or Map)」オプションを選択し、ドロップダウンリストからあらかじめ定義された List または Map 変数を選択します。 ボタンをクリックして、新しい変数を追加することもできます。

    ループの最大反復数を指定するには、「Maximum Loop Size」オプションを使用します。「Next」をクリックします。

  3. ループの各要素を処理する新しい空のサブプロセスを入力します。「Next」をクリックします。

  4. 完了した設定の概要を確認します。「Finish」をクリックします。

ループの理解

Workbench のループは、折りたたみ可能なグループに含まれる次のアイテムで構成されます。

  • ループの各要素を処理するように設計された、空のサブプロセス。ループを反復実行する目的のサービス操作でサブプロセスのアクティビティを定義します。

  • 自動生成された 3 つの変数。

    • iteration_wizard_datasize:XML 変数内の要素数を読み取るか、またはコレクション変数のサイズを表します。

    • iteration_wizard_data:ループを実行するたびに、ループを実行するデータソースの現在の値を格納します。

    • iteration_wizard_counter:ループの現在の反復回数を格納します。この値はゼロから始まり、ループの実行が成功するたびに増加します。

    • iteration_wizard_valueList:ループのデータソースが Map 変数である場合のみ生成されます。この List 変数は、Map のすべての値を格納します。

  • 2 つの個別ルート。2 つの決定ポイントがループのさらなる実行を評価するために使用します。

    • exit infinite loop」ルートは、iteration_wizard_counter がループの最大サイズを超えたときに入ります。

    • has next element」ルートは、「exit infinite loop」ルートの評価に失敗したときに入ります。ループの XML 変数に要素がまだあること、またはコレクションがまだ実行されていないことを示します。