8.4. 実行中のプロセスインスタンス内でタイマーを更新
場合によっては、遅延、期間、または制限の繰り返しなど、新しい要件を満たすようにスケジュールされたタイマーを再スケジュールする必要があります。タイマーの更新には多くの低レベルの操作が含まれるため、Red Hat Process Automation Manager は以下のコマンドを実行して、タイマーの更新に関連する低レベルの操作をアトミック操作として実行します。以下のコマンドは、すべての操作が同じトランザクション内で実行されるようにします。
org.jbpm.process.instance.command.UpdateTimerCommand
更新には、境界タイマーイベントと中間タイマーイベントのみがサポートされます。
タイマーを再スケジューリングするには、2 つの必須パラメーターと UpdateTimerCommand
クラスの 3 つの任意のパラメーターセットを指定します。
表8.1 UpdateTimerCommand
クラスのパラメーターおよびパラメーターセット
パラメーターまたはパラメーターセット | タイプ |
---|---|
プロセスインスタンス ID (必須) |
|
タイマーノード名 (必須) |
|
遅延 (任意) |
|
期間 (任意) |
|
繰り返しの制限 (任意) |
|
再スケジュール時間イベントの例
// Start the process instance and record its ID: long id = kieSession.startProcess(BOUNDARY_PROCESS_NAME).getId(); // Set the timer delay to 3 seconds: kieSession.execute(new UpdateTimerCommand(id, BOUNDARY_TIMER_ATTACHED_TO_NAME, 3));