Live2D

初识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,得到当前结点和结束结点。清空原有方向,设置新方向(结束结点),完成当前任务,回复原有方向
posted @ 2024-02-20 16:36  一只快乐的柠檬精J  阅读(7)  评论(0编辑  收藏  举报
复制代码