由于activiti并不会自动更新act_ru_task表中的PRIORITY_列,PRIORITY_类代表任务的优先级,默认值为50,因此我们使用的时候,可以使用该值作为任务的优先级属性。具体使用如下:
写一个命令类如下:
public class UpdateTaskPriorityCommand implements Command{ protected int priority; protected String processInstanceId; public UpdateTaskPriorityCommand(int priority, String processInstanceId) { this.priority = priority; this.processInstanceId = processInstanceId; } @Override public Void execute(CommandContext commandContext) { List findTasksByProcessInstanceId = commandContext.getTaskEntityManager().findTasksByProcessInstanceId(processInstanceId); for (TaskEntity taskEntity : findTasksByProcessInstanceId) { commandContext .getTaskEntityManager() .findTaskById(taskEntity.getId()); taskEntity.setPriority(priority); } return null; } }
测试代码如下:
@Test public void executeCommand() { processEngine.getManagementService().executeCommand(new UpdateTaskPriorityCommand(10, "2501")); }
关于taskEntity.setPriority(priority)操作之后数据库的数据就会更新,可以参考activiti权威指南一书中的会话缓存章节
转载请注明:分享牛 » activiti act_ru_task表中的priority更新