给flowable任务表(ACT_RUN_TASK)设置内容(值)

简述:在项目开发中,通常我们会需要给任务运行表设置内容(值),因为默认启动任务或完成任务的操作时有些值为空,但我们需要给我们的字段设置值,比如脱离表单关联,我想给form_keys设置值,我们可以通过以下几种方式:

1、常用情况:流程启动时,我们就需要设置对应的表单key,则我们可以通过以下方式:

List 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)