flowable工作流技术学习

一.flowable工作流引擎中文文档
Flowable BPMN 用户手册 (v 6.3.0)
这个文档内容太多,稍微看看就好,具体学习还得从demo里面去学习。

二.flowable项目下载地址与启动流程:
2.1 项目下载地址:
https://github.com/flowable/flowable-engine/releases/download/flowable-6.4.0/flowable-6.4.0.zip
启动过程参考如下博客:
flowable工作流入门(一)_吕小小布的博客-CSDN博客_flowable工作流
2.2 Docker 快速搭建 Flowable:
在命令行下执行命令:docker run -p 8080:8080 flowable/all-in-one
2.3. Flowable 应用介绍:
Flowable IDM:对所有的Flowable UI应用提供注册于认证的应用,同时提供管理用户与组的管理功能,即我们说的权限管理。
Flowable Modeler:让用户制作model,表单,决策表,和应用定义
Flowable Task:启动流程引擎的运行任务,编辑,完成,查询工作流实例中的任务。
Flowable Admin:允许管理员权限的用户查询BPMN,DMN,表单,提供一些选项来修改工作流中的任务,依赖Flowable Task和Flowable REST App。
2.4 Flowable 各入口链接:
应用名称 入口链接
后台管理: http://localhost:8080/flowable-admin
流程定义管理: http://localhost:8080/flowable-modeler
用户组权限管理: http://localhost:8080/flowable-idm
用户任务管理: http://localhost:8080/flowable-task
用户名:admin
密码:test
2.5 Flowable 创建报销流程例子:
Flowable-UI (二) Flowable 创建报销流程例子_卷卷的博客-CSDN博客_flowable-ui
2.6 Flowable流程中加入 form 表单:
Flowable-UI (三) Flowable流程中加入 form 表单_卷卷的博客-CSDN博客_flowable 表单
2.7 Flowable 流程、表单部署(发布应用):
Flowable-UI (四) Flowable 流程、表单部署(发布应用)_卷卷的博客-CSDN博客_flowable 表单部署

三.flowable是基于Activiti6开发的,所以数据库结构基本一致。Activiti数据库表结构(表详细版)
数据库表介绍:
Flowable的数据库名称都以ACT_开头。第二部分是表的用例的双字符标识。此用例也将大致匹配服务API。
ACT_RE_ *:RE代表repository。具有此前缀的表包含静态信息,例如流程定义和流程资源(图像,规则等)。
ACT_RU_ *:RU代表runtime。这些是包含流程实例,用户任务,变量,作业等的运行时数据的运行时表。Flowable仅在流程实例执行期间存储运行时数据,并在流程实例结束时删除记录。这使运行时表保持小而快。
ACT_HI_ *:HI代表history。这些是包含历史数据的表,例如过去的流程实例,变量,任务等。
ACT_GE_ *:general数据,用于各种用例。
具体详细表说明可参考如下博客:
https://blog.csdn.net/hj7jay/article/details/51302829

四.工作流集成demo:
地址:flowable: 学习流程的重点项目: 关于流程审批的各种功能: 会签, 回退, 驳回, 自由跳转等,
代码下载下来后,按照上面的说明操作就行了,个人建议学习flowable用这个demo代码学习。
跑前端时,会报个错,修改文件:D:\ideaWorkspace\flowable-master\flowable-manager-ui\src\pages\tasks\components\BackStepModal\index.tsx

flowable工作流技术学习
文章图片


五.工作流基本知识点
5.1Process engine API和服务
重点7大接口

flowable工作流技术学习
文章图片


RepositoryService:主要是关于静态信息(数据不会改变,或者至少不是很多)
查询引擎已知的部署和流程定义。
暂停和激活整个部署或特定流程定义。暂停意味着不能对它们执行进一步的操作,而激活则相反并且再次启用操作。
检索各种资源,例如部署中包含的文件或引擎自动生成的流程图。
检索流程定义的POJO版本,该版本可用于使用Java而不是XML来内省流程
RuntimeService:但RuntimeService恰恰相反。它涉及启动流程定义的新流程实例。
TaskService:需要由系统的用户执行的任务是BPM引擎(如Flowable)的核心。围绕任务的所有内容都在TaskService中进行分组:
查询分配给用户或组的任务
【flowable工作流技术学习】创建新的独立任务。这些是与流程实例无关的任务。
操作分配任务的用户或以某种方式参与任务的用户。
声称并完成任务。声称意味着某人决定成为该任务的受让人,这意味着该用户将完成该任务。完成意味着完成任务的工作。通常,这是填写各种形式。
IdentityService:它支持组和用户的管理(创建,更新,删除,查询......)。
formService:是一个可选的服务,将flowable里的表单关联到dpmn中(不使用)。
HistoryService:暴露了可流动的引擎收集的所有历史数据例如流程实例启动时间,执行哪些任务,完成任务所需的时间,每个流程实例中遵循的路径,等等。此服务主要公开查询功能以访问此数据。
ManagementService:该ManagementService编码使用可流动的自定义应用程序时,通常是没有必要的。它允许检索有关数据库表和表元数据的信息。此外,它还公开了作业的查询功能和管理操作。Flowable中的作业用于各种事物,例如计时器,异步延续,延迟暂停/激活等。稍后,将更详细地讨论这些主题。
DynamicBpmnService(多出来特殊的一个)
可以用来改变流程定义的一部分,而无需重新部署。例如,您可以更改流程定义中用户任务的受理人定义,或更改服务任务的类名称。
5.2 任务侦听器:
任务侦听器(Task listener) - 近博 - 博客园
5.3 流程设计器:
1.每个节点可定义通过的方式,如:一个节点有多个人审核时,多个人同时审核通过才完成—简称为“同步”,或至少一个人通过-简称为“异步”。
这个需求实现可参考博客:
Flowable 快速入门教程:Flowable 入门开发案例,结合流程设计器详细讲解_乐之终曲-CSDN博客_flowable入门教程
5.4 工作流程相关的术语:
加签:顾名思义就是增加一道审批签名,这个道审批往往是临时增加的,标准流程没有规定要走的。在现实工作流程中,加签功能使用率颇高;有时,审批人对内容不太确定,不太敢做主,就会找更高层的领导进行加签;这样就可以规避个人风险;出问题大家一起担。有时为了表示对领导尊重,或者让领导知道这回事,也需要使用加签功能。
前加签:加签的人办理后,还要重新回过来继续办理。
后加签:加签的人办理后,直接到流程下一步。
签收:一般情况就是多个候选人,或者候选组的情况下,要先把这个任务签收下来,以免别人又做了同样的任务。
反签收:就是把执行人设置为空
注意事项:反签收的时候,一定要先确定是否有候选人或者候选组,如果没有的话,不能反签收。因为会导致这个任务无法认领。
委派:委派人办理后回到原接点人。
委办:委办人办理后直接到流程下一步。

六.项目集成建议:
Flowable集成到项目的时候,原来的老项目已经有了用户,组/角色/组织,权限之类的表和业务设计,所以工作流自己在做一套用户,组的权限控制会增加额外的维护成本。
所以搞就搞的简单点,删掉Flowable生成的用户,用户组关联,组这三张表,建立三个同名的视图,视图查询项目已有的用户组进行关联即可。
实际的项目,我们也没有完全用原有的用户关系表,毕竟工作流的关系只需要找到下个节点(人/组)即可,单独加了个关联表,使流程并不是完全按照组织架构流转...

    推荐阅读