因为activiti对于act_hi_taskinst表中的DELETE_REASON_列值是有限的,DELETE_REASON_类表明任务的完成缘由,好比completed或者delete,所以咱们在任意节点跳转或者撤销的时候,必须标记该字段,好比撤销能够标记能够定义为Revoke、跳转能够标记为jump等等。数据库
写一个命令类以下:缓存
public class UpdateHiTaskReasonCommand implements Command { protected String taskId; protected String deleteReason; public UpdateHiTaskReasonCommand(String taskId, String deleteReason) { this.taskId = taskId; this.deleteReason = deleteReason; } @Override public Void execute(CommandContext commandContext) { HistoricTaskInstanceEntity historicTaskInstance = commandContext .getDbSqlSession().selectById(HistoricTaskInstanceEntity.class,taskId); if (historicTaskInstance != null) { historicTaskInstance.markEnded(deleteReason); } return null; } }
关于historicTaskInstance.markEnded(deleteReason)操做以后数据库的数据就会更新,能够参考Activiti权威指南一书中的会话缓存章节ide