長期にわたって実行するトップレベルのプロセス・インスタンスを
実行中に中断し、再開して完了することができます。
始める前に
呼び出し元は、プロセス・インスタンスの管理者、またはビジネス・プロセス管理者でなければなりません。プロセス・インスタンスを中断するには、プロセス・インスタンスが実行状態または失敗状態でなければなりません。
このタスクを実行する理由と実行時期
例えば、プロセスで後で使用されるバックエンド・システムへのアクセスを構成するために、
プロセス・インスタンスを中断することがあります。プロセスの前提条件を満たしていれば、そのプロセス・インスタンスを再開することができます。プロセスを中断してからプロセス・インスタンスの失敗の原因となっている問題の修正を行い、問題が修正されたら再びプロセスを再開することもできます。
このタスクのステップ
- 中断する実行中のプロセス CustomerOrder を取得します。
ProcessInstanceData processInstance =
process.getProcessInstance("CustomerOrder");
- プロセス・インスタンスを中断します。
PIID piid = processInstance.getID();
process.suspend( piid );
このアクションにより、指定したトップレベルのプロセス・インスタンスが中断します。プロセス・インスタンスは、中断状態になります。
autonomy 属性が child に設定されたサブプロセスも、状態が実行中、失敗、終了、または補正になっていれば中断されます。このプロセス・インスタンスに関連するインライン・タスクも中断されますが、このプロセス・インスタンスに関連するスタンドアロン・タスクは中断されません。
この状態では、開始されたアクティビティーはまだ完了することはできますが、新規のアクティビティーは活動化されません。例えば、要求済み状態のスタッフ・アクティビティーは完了することができます。
- プロセス・インスタンスを再開します。
process.resume( piid );
このアクションにより、プロセス・インスタンスとそのサブプロセスが中断前の状態に戻ります。