フローでの複数タスクの反復

1度のフローの送信で自動的にタスクを複数回繰り返すには、「別のタスクの送信」タスクを使用します。

タスクの反復を制御するルールを定義できます。たとえば、組織内の税レポート・ユニットごとにレポート・タスクを自動的に送信するルールを定義します。

「別のタスクの送信」タスクのルール・ベースの性質により、流動的なパラメータの詳細に基づいて送信ルールをサポートできます。たとえば、通常の給与計算を計算する前に、給与検証のために作成したすべてのQuickPay実行を自動的にロールバックできます。このインスタンスでは、給与期間内のすべてのQuickPay実行に対してロールバック・タスクが自動的に再送信されます。
ノート: 手動タスクは反復できません。たとえば、「別のタスクの送信」オプションを使用して、QuickPayタスクを反復し、複数のQuickPay実行を送信することはできません。

レポート・タスクの再実行など、タスクを修正する必要がある場合、この処理は「別のタスクの送信」タスクを使用して送信されたすべてのタスク反復に適用されます。

「別のタスクの送信」タスクを開始して送信すると、タスク・イテレータは、すでに処理済のタスクの複数のトランザクションIDを動的に識別し、後続のトランザクションIDごとにタスク反復を自動化します。指定する反復数によって、タスクを繰り返す回数が決まります。
ノート: タスクの反復に直接使用できる事前定義済フローはありません。タスクを反復するには、フローを作成し、「別のタスクの送信」タスクをフローに含める必要があります。
ノート: タスク送信ルールが税レポート・ユニットなどの静的パラメータに基づいており、各タスクを個別に管理する必要がある場合、標準のフロー・パターンの使用を検討してください。

フローを作成し、「別のタスクの送信」を含めてタスクの反復を開始する前に、次の点を考慮してください。

タスク名

「別のタスクの送信」ではタスク名を入力パラメータとして取得し、繰返しFormulaを使用してタスクの複数回の反復を実行します。

タスク繰返しFormula

「タスク繰返しFormula」はこのフローの前提条件であり、繰返しロジックを決定して反復を実行します。繰返しFormulaを作成する際は、「タスクの繰返し」Formulaタイプを使用します。入力パラメータは、入力タスクに対して事前定義されています。これらはフロー作成時にフロー・パラメータとして追加できます。Formulaの戻り値を使用して、タスク・パラメータが検証されます。

パラメータ

タスク・パラメータは、タスク送信の正常な完了に必要な情報を送信します。このフローには、パラメータのセットが2つあります。

  • 「別のタスクの送信」のパラメータ

  • 複数回送信される繰返し送信タスクのパラメータ

次のオプションのいずれかを繰返し送信タスクの入力値として使用します。

  • フローの作成時に定義されたフロー・パラメータからのタスク・パラメータ

  • 繰返しFormulaからの戻りパラメータ

次のオプションのいずれかをフロー・パラメータ値として使用します。

  • タスク・パラメータ名がUIに表示されるベース・フロー・パラメータ名とフロー・レベルで一致した場合は、その値が直接使用されます。

  • タスク・パラメータ名がベース・フロー・パラメータ名と一致しない場合、アプリケーションではFastFormula関数を使用して、フロー・パラメータの値をタスク・パラメータとして渡します。このFormula関数は、繰返しFormulaに組み込まれています。

    たとえば、フロー・パラメータとして'Effective Date' (有効日)を定義し、対応するベース・フロー・パラメータ名が'EFFECTIVE DATE'であるとします。アプリケーションでは、Formula関数GET_FLOW_PARAM_VALUE ()を使用してこのFormula関数の戻り値をタスク・パラメータ'EFFECTIVE DATE'に保存します。Formula関数は次のとおりです。

    • *EFFECTIVE DATE=GET_FLOW_PARAM_VALUE ('Effective Date')

タスク・パラメータを定義するときは、適切なパラメータ基準を指定します。「有効日」や「開始日」のような静的パラメータには、パラメータ基準値の「フローにバインド」を指定できます。「給与法定ユニットID」のような動的パラメータはデータベース表から導出されます。したがって、パラメータ基準値の「フロー・タスクにバインド」または「コンテキスト・バインド」を指定できます。フロー・タスク・パラメータに特定の名前を定義した場合は、繰返しFormulaで同じ名前が使用されていることを確認する必要があります。

あるいは、繰返しFormulaからの戻りパラメータをタスク・パラメータとして使用できます。この場合、繰返しFormulaの入力パラメータは、ベース・タスク名および繰返しカウンタのみです。Formulaのコール中に、アプリケーションではこれらの2つのパラメータを使用してジョブ送信のコンテキストを取得します。繰返しFormulaを作成して、送信タスクの入力値を戻します。

Formula出力の繰返しフローによって、「別のタスクの送信」の実行が必要かどうかが決定されます。

これらのパラメータは、静的または動的パラメータのいずれかです。たとえば、「年度末給与計算結果のアーカイブ」プロセスの場合は、次のパラメータが静的パラメータとして定義されています。

  • 有効日

  • 開始日

  • 課税年度日付

  • 繰返しカウンタ

    繰返しカウンタは、アプリケーションによって維持される静的変数です。反復プロセスで、このパラメータは各送信後に1ずつ増分されます。

この例では、各送信の動的パラメータは次のとおりです。

  • 給与法定ユニットID

  • 繰返しフロー

ただし、課税年度を動的パラメータとして定義して、様々な年度のレポートを生成することもできます。

最大繰返しカウンタ

タスクの単一送信で実行できる最大インスタンス数のしきい値制限を指定します。反復実行がエラーになった場合は、このパラメータによって、プロセスが無限ループに入るのを回避します。繰返しカウンタNは、1個の親とN-1個の子の送信を示します。

繰返しフロー・パラメータ

繰返しフロー・パラメータは、タスクの反復がいつ停止するかを示します。繰返しフロー・インスタンスは、繰返しフロー・パラメータが「Y」に設定されている場合のみ送信されます。

パラレルで実行

パラレルまたはシリアルで送信します。パラレル送信の場合は、スレッド数が考慮されます。スレッド数と等しい送信数がパラレルで送信されます。シリアル送信の場合は、繰返しカウンタと等しい送信数が順番に実行されます。

「パラレルで実行」パラメータを「はい」に設定している場合は、「最大パラレル・スレッド」の値を指定する必要があります。このパラメータはパラレル送信で考慮されます。

たとえば、値Xを指定すると、タスクのX個のインスタンスが最初に処理されます。親タスクはX個の子送信の完了を待機し、FastFormulaを評価し、別のX個の子送信のセットの実行を完了します。このサイクルは、「最大繰返しカウンタ」が完了するか、繰返しフローの値が「N」になるまで続行されます。

ノート: 特に大量のデータの場合は、パラレル・スレッドを使用してフローを実行することをお薦めします。

親のログ・ファイル

フローが完了した後、「プロセス結果要約」からタスクの反復ページを使用し、ESSログ・ファイルを表示して各ジョブ送信の入力パラメータの詳細を表示します。「出力およびログ・ファイル」セクションには、フロー・インスタンス詳細および親送信のパラメータ値のセットが1つと、後続の各子送信の同様の値セットが表示されます。

  1. 最初の行のプロセスIDをクリックすると、フローのログ出力の詳細が表示されます。

  2. タスクの反復または子の送信のログ出力を表示するには、2行目またはその下の他の行のプロセスIDをクリックします。