ステップの状態
大まかに見た場合、ワークフロー内の各ステップは、ビジネス・プロセス全体における、1 つの活動を表します。例えば、融資事務ワークフローでは、雇用状態の確認が、ステップに相当します。
大部分のユーザーにとっては、ステップを単一のアクションとして理解することは適切です。現実には、ステップは、「状態」と呼ばれる一連の段階を経由して進みます。システム・ソフトウェアは、各状態内のワーク・アイテムに対して、1 つ以上のオペレーションを実行します。通常、ユーザーはステップの状態を意識しませんが、ワークフロー作成者やアプリケーション開発者は、ステップの状態を理解した上でワークフロー定義、アプリケーション設計上の決定を行う場合があります。
ステップ内で発生するオペレーションの概要を次に示します。オペレーションは、順番にリストされ、それぞれの状態によって分類されます (それぞれの状態には番号が付けられます)。この概要では、制御の流れが別のワークフロー・マップに移動できるポイントも (=> で) 示しています。
- ステップ開始前
- 遅延キューの子と親を結合する
- 最後の子の場合は、親をステップに進ませる
- 事前条件
- F_Comment をクリアする
- F_Responses および F_ResponseCount をクリアする
- 事前割り当て
- 事前割り当てを実行する
- [=> 例外]
- 事前割り当てを実行する
- Milestone
- 事前マイルストーンを実行する
- 期限
- 期限の式を計算する
- [=> 例外]
- 必要に応じ、通知の式を計算する
- [=> 例外]
- 期限の式を計算する
- キュー
- 必要に応じ、複数参加者のワーク・アイテムに分割する
- 必要に応じ、ワーク・アイテムをキューに入れるワーク・アイテムがキューに入っている間の流れは次のとおり
- [=> API 呼び出し]
- [=> API 例外]
- [=> タイマー期限切れ]
- 事後割り当て
- 応答を確認する
- 事後割り当てを実行する
- [=> 例外]
- ステップ終了
- 事後マイルストーンを実行する
- ルーティングを評価する
- F_Responses および F_ResponseCount をクリアする
- F_Comment をクリアする
- ルート
- 必要に応じ、子に分割する
- 必要に応じ、親を遅延キューの中に保管する
- 1 つまたは複数のワーク・アイテムを次のステップの中に移動させる
制御を (上記の => で示されているポイントで) 引き継ぐワークフロー・マップには、Return システム関数が使用されている場合があります。それぞれの Return には、再試行オプションが組み込まれています。この再試行オプションは、元のワークフロー・マップに制御が返された時点で Instruction Sheet Interpreter (ISI) に、呼び出し元エンティティーを含む状態をスキップするか、あるいは繰り返すかのいずれかを指示します。例えば、事後割り当ての実行途中 (上記 7b) で事後割り当て状態に例外が発生した場合、その例外が呼び出し元エンティティーになります。呼び出されたワークフロー・マップ上の Return システム関数に ISI が到達すると、制御は元の (呼び出し元) のワークフロー・マップに返されます。制御が呼び出し元ワークフロー・マップに返された時点で、ISI が事後割り当て状態を繰り返すかスキップするかは、Return がどのように定義されているかで決まります。設定の繰り返しやスキップは、状態に適用されるものであって、呼び出し元エンティティーをトリガーした状態内のオペレーションに適用されるものではありません。次の表は、繰り返しとスキップの両方に対応する ISI の動作を示しています。
再試行オプション | 呼び出し元マップに返った時点での ISI の動作 |
---|---|
繰り返し | ワーク・アイテムの状態を、その他のマップが呼び出された時点で置かれていた状態へと移動させる。 |
スキップ | ワーク・アイテムを、次の状態 (その他のマップが呼び出された時点でそのワーク・アイテムが置かれていた状態の後に続く状態) の始めに移動させる。 |