修正flowable流程支持节点表单字段条件判断

简介: 修正flowable流程支持节点表单字段条件判断

   原先条件判断在主表单是可以正常的判断的,但用节点的表单就出现问题了。

出现下面错误:

      就起原因还是在complete里出现问题了。

     通过跟踪还是下面的代码出现报错

private void taskFormComplete(FlowTaskVo taskVo) {
      if(taskVo.getValues() !=null && taskVo.getValues().containsKey("taskformvalues")) {//有任务节点表单
        @SuppressWarnings("unchecked")
      Map<String , Object> taskformvalues = (Map<String, Object>) taskVo.getValues().get("taskformvalues");
        taskService.complete(taskVo.getTaskId(),taskformvalues,true);//保存taskformvalues到变量表里
      }
      else {
        taskService.complete(taskVo.getTaskId());
      }
    }

其中 taskService.complete(taskVo.getTaskId(),taskformvalues,true);//保存taskformvalues到变量表里  这里报错了,看官方说明就是

void org.flowable.engine.TaskService.complete(String taskId, Map<String, Object> variables, boolean localScope)

localScope If true, the provided variables will be stored task-local, instead of process instance wide (which is the default for complete(String, Map)).

这里true跟通常缺省的还是不一样,所以应该要去掉这个参数或变成false,同时增加下面一句

taskService.setVariableLocal(taskVo.getTaskId(), "taskformvalues", taskformvalues);

这样既保留原来的功能,又能正常运行。如下:

/**
     * 任务节点有表单的操作
     *
     * @param taskVo
     */
    private void taskFormComplete(FlowTaskVo taskVo) {
      if(taskVo.getValues() !=null && taskVo.getValues().containsKey("taskformvalues")) {//有任务节点表单
        @SuppressWarnings("unchecked")
      Map<String , Object> taskformvalues = (Map<String, Object>) taskVo.getValues().get("taskformvalues");
        taskService.setVariableLocal(taskVo.getTaskId(), "taskformvalues", taskformvalues);
        taskService.complete(taskVo.getTaskId(),taskformvalues);//保存taskformvalues到变量表里
      }
      else {
        taskService.complete(taskVo.getTaskId());
      }
    }

效果图如下:

利用节点表单里的表单内容money值来走不通的流程

 


相关文章
|
存储 XML Java
Flowable工作流-高级篇
Flowable工作流-高级篇
9298 1
|
搜索推荐
基于jeecgboot的flowabale流程节点动态设置审批人的实现
基于jeecgboot的flowabale流程节点动态设置审批人的实现
2340 2
|
移动开发 前端开发 Java
Flowable 任务监听器与执行监听器的介绍
Flowable 任务监听器与执行监听器的介绍
3839 1
基于jeecgboot的flowable流程按照条件进行流转的例子
基于jeecgboot的flowable流程按照条件进行流转的例子
710 1
|
XML 存储 JavaScript
Flowable学习笔记(二、BPMN 2.0-基础 )
Flowable学习笔记(二、BPMN 2.0-基础 )
4465 0
Flowable学习笔记(二、BPMN 2.0-基础 )
|
存储 Java 数据安全/隐私保护
SpringBoot整合Flowable【03】- 通过Flowable-UI体验一个简单流程
本文介绍了如何使用Flowable 7.0以下版本的flowable-ui进行流程建模、发布和执行。首先,通过解压并启动flowable-ui war包,访问http://localhost:8080/flowable-ui/idm/#/login登录系统。接着,创建并绘制一个简单的绩效流程模型,包含开始节点、任务节点(自评、上级评、隔级评)和结束节点,并为各节点分配处理人。然后,创建应用并发布绩效流程。最后,通过创建a、b、c三个用户分别完成各节点任务,演示了整个流程的执行过程。本文旨在帮助读者理解Flowable的基本操作和流程元素,后续将介绍通过Java代码控制流程的方法。
3841 1
SpringBoot整合Flowable【03】- 通过Flowable-UI体验一个简单流程
|
前端开发
基于jeecg-boot的flowable流程增加部门经理审批功能
基于jeecg-boot的flowable流程增加部门经理审批功能
631 0
|
前端开发 Java API
SpringBoot整合Flowable【07】- 驳回节点任务
本文通过绩效流程的业务场景,详细介绍了如何在Flowable工作流引擎中实现任务驳回功能。具体步骤包括:获取目标任务节点和当前任务节点信息,进行必要的判空和逻辑校验,调用API完成节点回退,并清理相关脏数据(如历史任务和变量)。最后通过测试验证了驳回功能的正确性,确保流程能够成功回退到指定节点并清除中间产生的冗余数据。此功能在实际业务中非常有用,能够满足上级驳回自评等需求。
2548 0
SpringBoot整合Flowable【07】- 驳回节点任务
|
前端开发 数据库 JavaScript
基于Flowable的流程挂接自定义业务表单的设计与实践
文章讨论了如何在Flowable流程引擎中挂接自定义业务表单,以及相关设计和实践的步骤。文章中包含了一些前后端代码示例,如Vue组件的模板和脚本部分,这些代码用于实现与Flowable流程引擎交互的界面。例如,有一个按钮组件用于提交申请,点击后会触发applySubmit方法,该方法会与后端API进行交互,处理流程启动、查询关联流程等逻辑。
54489 11
|
存储 XML 监控
Springboot整合Flowable流程引擎
Springboot整合Flowable流程引擎