流用性を利用して、プロセスの巻き戻し機能を実現する方法は何ですか?
Flowableはプロセスエンジンであり、プロセスのバックトラックを実現するためのいくつかの組み込み機能を提供しています。
流れを戻す機能を実現するためには、次の手順を使用できます。
- ヒストリーサービス
- ヒストリックタスクインスタンスのクエリを作成する
List<HistoricTaskInstance> historicTasks = historyService.createHistoricTaskInstanceQuery()
.processInstanceId(processInstanceId)
.orderByTaskCreateTime()
.desc()
.list();
- 必要なタスクのインデックスに基づいて、履歴タスクリストから目標タスクを見つける目標タスクへのロールバックを確定します。
HistoricTaskInstance targetTask = historicTasks.get(targetTaskIndex);
- 実行時サービス (Jikkō-ji Sābisu)
- プロセスインスタンスのクエリを作成します。
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery()
.processInstanceId(processInstanceId)
.singleResult();
ProcessInstance targetProcessInstance = runtimeService.createProcessInstanceBuilder()
.processDefinitionKey(processInstance.getProcessDefinitionKey())
.variables(processInstance.getProcessVariables())
.start();
- タスクサービス
- 私は先週の金曜日に日本の友達と一緒にレストランで夕食をしました。
Task targetTask = taskService.createTaskQuery()
.processInstanceId(targetProcessInstance.getId())
.taskDefinitionKey(targetTaskKey)
.singleResult();
taskService.complete(targetTask.getId());
- タスクサービス
- その問題を解決する。。
taskService.complete(currentTaskId);
このように、プロセスの巻き戻し機能を実現します。実際のニーズに応じて適切な変更と調整を行ってください。