8.4. 実行中のプロセスインスタンス内でタイマーを更新

場合によっては、遅延、期間、または制限の繰り返しなど、新しい要件を満たすようにスケジュールされたタイマーを再スケジュールする必要があります。タイマーの更新には多くの低レベルの操作が含まれるため、Red Hat Process Automation Manager は以下のコマンドを実行して、タイマーの更新に関連する低レベルの操作をアトミック操作として実行します。以下のコマンドは、すべての操作が同じトランザクション内で実行されるようにします。

org.jbpm.process.instance.command.UpdateTimerCommand

注記

更新には、境界タイマーイベントと中間タイマーイベントのみがサポートされます。

タイマーを再スケジューリングするには、2 つの必須パラメーターと UpdateTimerCommand クラスの 3 つの任意のパラメーターセットを指定します。

表8.1 UpdateTimerCommand クラスのパラメーターおよびパラメーターセット

パラメーターまたはパラメーターセットタイプ

プロセスインスタンス ID (必須)

long

タイマーノード名 (必須)

String

遅延 (任意)

long

期間 (任意)

long

繰り返しの制限 (任意)

init

再スケジュール時間イベントの例

// 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));