跳到主要内容

工作流使用

集成

<dependency>
<groupId>com.manatee.manatee-lowcode</groupId>
<artifactId>lowcode-camunda</artifactId>
<version>${lowcode.version}</version>
</dependency>

<dependency>
<groupId>org.camunda.bpm.springboot</groupId>
<artifactId>camunda-bpm-spring-boot-starter-rest</artifactId>
<version>7.17.0</version>
</dependency>

注意

由于工作流的判断机制,所以建议在数据库的url路径上添加下面这个配置,防止表的初始化失败

&nullCatalogMeansCurrent=true

优化点

工作流模块支持DMN规则,工作流节点支持配置扩展信息

创建工作流模型

首先点击应用中心,选择工作流

进入下面界面,进行工作流的创建

新建工作流之后,可以对该工作流进行流程命名,完成后进行保存

工作流调试

点击右上角调试开始,可以点击三角进行开始

导入工作流流程图

导入流程图:支持bpmn格式的文件导入 导出流程图:支持讲当前流程图以bpmn的格式导出

工作流组件介绍

事件组件

组件名称组件介绍组件配置
开始每个工作流中必须要有一个并且只能有一个
结束每个工作流中必须要有一个并且可以不止一个
中断流程中断,根据具体逻辑使用

网关组件

组件名称组件介绍组件配置
排他网关只允许一条分支执行,根据不同的条件选择下一个节点。一般用于不同条件不同角色的人审批的时候使用,比如事假申请中,大于3天需要部门主管审批,3天以内直接审批通过。
并行网关同时执行多条分支,当所有分支执行完成后,才可进入下一个节点。一般用于需要多种角色的人同时审批时使用。比如年假申请中,必须部门主管和财务主管全部审核通过才可以到HR审批。
包容网关允许多条分支执行,并根据不同的条件选择下一个节点,但如果没有任何一个分支满足条件,则选择默认分支。
连接线设置排他网关时,用来根据不同条件来设置不同的分支。

任务组件

组件名称组件介绍组件配置
用户任务比较常用的组件。即根据不同条件需要执行的指定角色的用户需要做的任务。比如大于3天需要部分主管审批,则部门主管审批就是一个用户任务。本版本中处理人没有关联用户数据库,后续版本会改为动态获取。
任务创建暂时无需关注
服务任务暂时无需关注

创建工作流实例

工作流模型准备

以如下工作流模型为基础,在接口流程图中创建工作流实例

此工作流的逻辑为:

  1. 请假默认需要部门主管审批
  2. 如果部门主管审批时间在三天及以上,就由财务人员审批,再由财务主管审批
  3. 部门主管审批时间在三天之内,则到研发中心主管审批
  4. 审批通过后到人力资源主管审批
  5. 最后结束

创建接口流程图

创建启动流程实例接口

  • 流程Key:即上面工作流模型的流程key
  • 业务Key:即实际流程实例的标题名称,比如XXX提交的请假申请。
  • 用户id:提交申请的用户id或名称,这个版本建议用名称。(后续关联动态数据库后改为选择)
  • 流程变量:即上面工作流模型中需要用到的变量,比如dayNum。

调试运行之后,在实例当中就会出现此流程实例

并可以通过操作 – 历史中查看当前流程实例的进度:

创建任务接口

每一个角色审批都属于一个任务,每个任务都需要有对应的接口,比如第一个任务是部门主管审批。如下,使用【任务处理】组件:

用户id:取自工作流模型中的处理人,目前都是固定名称,后续可从数据库中动态获取。

任务id:即流程实例创建后生成的对应的任务id,如下:(后续可优化为根据流程实例选择对应任务)

意见:即审批意见,当前版本支持直接审核通过。后续可优化为根据变量选择是否要通过还是驳回。

配置完成后,点击调试,则会执行此任务,执行完可在流程实例中查看效果。

工作流组件介绍

序号组件名称组件介绍配置项说明
1流程定义工作流模型初始定义,需输入工作流模型的bpmn文件
2查询流程定义查询所有的工作流列表
3查询单个模型查询单个工作流模型定义
4删除流程定义删除已经定义好的工作流模型
5查询流程部署流程定义好后,需要部署到特定环境才可使用,部署后可根据id进行查询
6启动流程实例正式开启一个流程实例,比如某人提交一条申请信息,就是启动一个流程实例
7操作流程实例操作包括挂起、激活、重启,也可以自定义操作状态
8删除流程实例删除当前工作流实例
9查询单个流程实例根据实例id查询此实例的具体信息
10批量查询流程实例根据工作流模型的流程key查询此模型下所有的流程实例
11查询流程定义历史信息查询流程实例的历史信息
12查询已执行的节点根据实例ID来查询已经执行的节点
13完成任务执行每一个用户任务,目前只支持直接审核通过(驳回的需要后续优化)
14批量查询任务按照实例id,查询指定实例下的所有任务
15查询历史任务根据实例id查询此实例的已经执行过的任务