呼び出されたワークフロー・マップからの戻り
すべてのサブマップには、呼び出し元マップへの戻りがあります。戻りは、終了時に自動的に発生する暗黙の戻りと、Return システム関数呼び出しによる明示的な戻りがあります。呼び出し元マップに戻ると、プロセスは次のどちらかの状態で継続されます。(a) サブマップが呼び出された地点の状態、(b) 次に説明する複数のオプションの設定から決定される、その次の状態。Return システム関数の使用方法については、「Return システム関数」を参照してください。
次の例は、呼び出されたサブマップからの暗黙の戻りの動作を示しています。
サブマップからの戻り | 詳細 |
---|---|
![]() |
この図で、StepS はマップ Submap1 を呼び出す Submap ステップです。実行時に Submap1 が完了すると、処理は自動的に呼び出し元マップに戻ります。この場合、Return システム関数を持つステップを使用する必要はありません。ユーザー定義サブマップからの暗黙の戻りでは、常に、呼び出し元マップ内の、サブマップが呼び出された直後の時点に戻ります。 ワークフロー作成者は必要に応じて、Return システム関数を含むステップをマップに配置し、サブマップの完了前に呼び出し元マップに戻れます。 ヒント: 呼び出し元エンティティーが Submap ステップまたは Call システム関数である場合、サブマップの呼び出しを繰り返さず、Submap ステップ後の処理を続行できるように、呼び出されるマップ上の任意の Return システム関数には、false に設定する Return 式を含めてください。 |
通常の処理用のサブマップのほかに、タイマーが切れたとき、または処理中に例外が発生したときに呼び出されるマップもあります。これらのマップは、暗黙の戻りに異なる動作を指定できます。ワークフロー作成者は、Return システム関数を持つステップを追加して戻りを制御することもできます。
次の例は、Return システム関数を含む Malfunction マップからの戻りを示しています。
Malfunction マップ | 詳細 |
---|---|
![]() |
この図で、ワークフローの StepX の前には割り当て式 (A) があります。またここで、デフォルトの Malfunction マップは、Return 式 = true である Return ステップを含むように変更されています。このマップは、すべての例外の戻りを制御します。 実行時に A 地点の割り当て式で、エラーが発生すると (# で示されています)、ワーク・アイテムは Malfunction マップに移動します。エラーの例として、ゼロによる除算があります。ワークフロー管理者は、(データを適切な値に変更することによって) エラーを修正し、変更内容を保存できます。この例では、Return システム関数の Return 式が true です。したがって、呼び出し元マップの割り当て直前の地点から処理が再開され、割り当て式が繰り返されます。管理者が問題を修正すると、割り当てが行われ、次に StepX が実行され、ワークフローは予期したとおりに続行されます。 ワークフロー定義で Return 式が false に設定されている場合、割り当て直後の地点から処理が再開され、割り当て式はスキップされて、StepX が実行されます。以降の処理が割り当て値に依存する場合、結果は予期したとおりにならないことがあります。 |
呼び出し元マップへの戻り時にどちらのケースになるかは、次の 2 つの要因で決まります。
- Return システム関数を含むステップでは、Return ブール式 (Retry オプションとも) の値の指定により、マップを呼び出したアクションを繰り返すか (Return 式 = true)、またはアクションをスキップして次の段階へ進みます (Return 式 = false)。
および
- 以前のバージョンの Process ソフトウェアを使用して作成されたワークフロー定義に対応するため、管理者ユーザーは「整合性のある戻り値を使用する」オプションを使用して現在の戻りの動作、または Exception マップと Timer 期限切れマップの動作が異なる古いバージョンの動作を選択できます。デフォルトでは、「整合性のある戻り値を使用する」設定は有効になっています。
2 つの要因に基づく Return システム関数の動作を次にまとめます。表には Return ステップを含まないマップからの、暗黙の戻りの動作も含まれます。
Return 式 (Retry) | Return を含むマップ | 「整合性のある戻り値を使用する」オプションが有効 (デフォルト) | 「整合性のある戻り値を使用する」オプションが無効 (以前のバージョン) | |
---|---|---|---|---|
Return システム関数 (Return システム関数を含む特別なステップ) | true | 呼び出されたマップ (サブマップ) | 繰り返し | 繰り返し |
Exception マップ | 繰り返し | 繰り返し | ||
Timer 期限切れマップ | 繰り返し | 繰り返し | ||
false | 呼び出されたマップ (サブマップ) | スキップ | スキップ | |
Exception マップ | スキップ | スキップ | ||
Timer 期限切れマップ | スキップ | 繰り返し | ||
暗黙の戻り (マップの最後のステップからの暗黙の戻り) | なし | 呼び出されたマップ (サブマップ) | スキップ | スキップ |
Exception マップ | スキップ | スキップ | ||
Timer 期限切れマップ | スキップ | 繰り返し |
ヒント: FileNet® P8 Process では、Consistent Return フラグが true (デフォルト設定) であれば、暗黙の戻りは常に値 false (スキップ) で戻ります。
Submap ステップ (または Call システム関数) から呼び出されるサブマップでは、AND 分割ステップから出るパスと AND 結合ステップに入るパスで Return システム関数を使用しないでください。AND 分割ステップから出るすべてのパスにワーク・アイテムがコピーされるため、Return を使用すると無関係なワーク・アイテムが生じます。AND 分割ステップと AND 結合ステップの詳細については、「System ステップ - ルーティング・プロパティー」を参照してください。