工作流使用
集成
<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天需要部分主管审批,则部门主管审批就是一个用户任务。本版本中处理人没有关联用户数据库,后续版本会改为动态获取。 | ![]() |
任务创建 | 暂时无需关注 | |
服务任务 | 暂时无需关注 |
创建工作流实例
工作流模型准备
以如下工作流模型为基础,在接口流程图中创建工作流实例
此工作流的逻辑为:
- 请假默认需要部门主管审批
- 如果部门主管审批时间在三天及以上,就由财务人员审批,再由财务主管审批
- 部门主管审批时间在三天之内,则到研发中心主管审批
- 审批通过后到人力资源主管审批
- 最后结束
创建接口流程图
创建启动流程实例接口
- 流程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查询此实例的已经执行过的任务 | ![]() |