初识flowable
三个月前开始做flowable的项目,刚刚了解一些又中断了,乘着重新开始之前,赶快恶补一下。
相信大家在之前已经了解很多关于flowable的知识了,但是很乱,我也是这样。
1、对于一个流程来说,你肯定要开启流程。当提交人提交的那一瞬间,流程被开启。
这个开启方法需要我们自己去写,并且可以携带流程变量。这个变量可以干嘛,先别管
自己写的这个方法,最终还是调用flowable提供的一个RuntimeService.startProcessInstanceByKeyAndTenantId 方法。
这里面会涉及到三个名词 processDefinitionKey, businessKey, Map<String, Object> variables 这个后期再去查,流程变量放在act_hi_variable 和 act_ru_variable 中,可以存放提交人的姓名和id 以及businessKey
2、流程开启成功后,会生成一条流程实例,我们可以通过这个流程实例id找到很多东西,包括每一个结点的task任务信息,所以可以在我们的业务表保存下来这个id
但是流程是怎么来的呢?
具体流程是需要我们自己定义的,定义一个流程有两种方式 : 一种通过flowable-ui 画出流程图,然后生成对应的bpmn.xml,接着把xml放入项目resource目录下,flowable即可读取该流程定义。
还有一种就是我们组小伙伴用的硬编码方式。
系统要注入 FlowDefinitionService 这个bean,这是flowable提供的
大致分为 :
1、创建用户任务 2、创建节点间连线 3 给流程对象添加元素 4、处理开始和结束节点的连线信息 5、处理抄送人
处理完成后你就可以得到一个deployment流程定义,同时生成一个bpmn.xml
- 创建用户任务:这个就是创建普通的UserTask节点,包括要判断是否该用户有领导的情况
3、现在提交成功了,提交后,最重要的就是审批,我们该如何进行审批操作?
在审批之前,有一个操作,就是我们需要知道当前结点进行到哪一步了,这里,我们可以获取流程运行视图,流程图需要有结点,以及历史活动、任务评论、申请人信息、历史数据(开始结束时间),当前任务位置,任务评论,处理直属领导,处理开始结点
接下来,即进入审批环节,审批,我的待办,我的已办 等等都属于任务task部分
- 我的待办: 先通过流程定义key,找出当前assign的所有任务,接着过滤流程挂起的任务,即选出状态为activity的任务,然后包装剩下的任务,即可返回为我的待办
- 我的已办:
- 审批:审批只需要把当前审批人审批的任务id,评论拿到,接着直接进行 taskService.complete(taskId);完成该任务即可。
- 拒绝:寻找流程实例当前任务的activeId,得到当前结点和结束结点。清空原有方向,设置新方向(结束结点),完成当前任务,回复原有方向
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具