简述:在项目开发中,通常我们会需要给任务运行表设置内容(值),因为默认启动任务或完成任务的操作时有些值为空,但我们需要给我们的字段设置值,比如脱离表单关联,我想给form_keys设置值,我们可以通过以下几种方式:
1、常用情况:流程启动时,我们就需要设置对应的表单key,则我们可以通过以下方式:
List<Task> taskList= taskService.createTaskQuery().processInstanceId(processInstance.getId()).list();
for (Task task:taskList) {
task.setFormKey((String) map.get("id"));
taskService.saveTask(task);
}
以上方式为通过流程启动后的操作(此处不再赘述流程启动),通过taskService的saveTask方法,前提时把我们的task对象设置上对应的值,但是此处有个小弊端,每次调用saveTask方法后库表里面的REV_ (版本号)会对应的➕1;
此时,你肯定会想问,那么我不想让他继续➕1怎么办,那请继续阅读下文;
2、通过任务监听器设置(TaskListener),直接上代码:
@Override
public void notify(DelegateTask delegateTask) {
// 在这里执行自定义身份查询
delegateTask.setAssignee(shiroUserDo.getId().toString());
delegateTask.setFormKey((String) delegateTask.getVariable("_formkey"));
}
上面的_formkey是通过启动流程时传过去的变量;
3、还有种方式,你当然可能也知道啦,但是还的写出来是吧,手动滑稽...
同样直接上代码;
task.setFormKey((String) map.get("id"));
taskService.complete(taskid, variablies);
以上呢是通过complete方法设置,但是这个一般很少用,这个方法是在完成任务时才使用的,所以慎用啦。。
以上,over!
以上方式,仅为个人观点,若各位大佬有更好的方式,还望不吝赐教...
在项目开发中,使用Flowable时可能需要给任务运行表(ACT_RUN_TASK)设置内容。本文介绍了三种方法:1) 通过taskService的saveTask方法设置表单key,但会导致版本号递增;2) 使用TaskListener任务监听器设置;3) 利用complete方法在完成任务时设置,但使用需谨慎。欢迎交流更多优化方案。
设置内容(值)&spm=1001.2101.3001.5002&articleId=104041084&d=1&t=3&u=68037563a69640e2aaa5db9b37b48b91)
4075

被折叠的 条评论
为什么被折叠?



