一.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

启动过程参考如下博客:

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 创建报销流程例子:

2.6 Flowable流程中加入 form 表单:

2.7 Flowable 流程、表单部署(发布应用):

三.flowable是基于Activiti6开发的,所以数据库结构基本一致。Activiti数据库表结构(表详细版)

数据库表介绍:

Flowable的数据库名称都以ACT_开头。第二部分是表的用例的双字符标识。此用例也将大致匹配服务API。

ACT_RE_ *:RE代表repository。具有此前缀的表包含静态信息,例如流程定义和流程资源(图像,规则等)。

ACT_RU_ *:RU代表runtime。这些是包含流程实例,用户任务,变量,作业等的运行时数据的运行时表。Flowable仅在流程实例执行期间存储运行时数据,并在流程实例结束时删除记录。这使运行时表保持小而快。

ACT_HI_ *:HI代表history。这些是包含历史数据的表,例如过去的流程实例,变量,任务等。

ACT_GE_ *:general数据,用于各种用例。

具体详细表说明可参考如下博客:


四.工作流集成demo:

代码下载下来后,按照上面的说明操作就行了,个人建议学习flowable用这个demo代码学习。

跑前端时,会报个错,修改文件:D:\ideaWorkspace\flowable-master\flowable-manager-ui\src\pages\tasks\components\BackStepModal\index.tsx

flowable工作流java开发 flowable工作流入门使用_java

五.工作流基本知识点

5.1Process engine API和服务

重点7大接口

flowable工作流java开发 flowable工作流入门使用_数据库表_02

RepositoryService:主要是关于静态信息(数据不会改变,或者至少不是很多)

查询引擎已知的部署和流程定义。

暂停和激活整个部署或特定流程定义。暂停意味着不能对它们执行进一步的操作,而激活则相反并且再次启用操作。

检索各种资源,例如部署中包含的文件或引擎自动生成的流程图。

检索流程定义的POJO版本,该版本可用于使用Java而不是XML来内省流程

RuntimeService:但RuntimeService恰恰相反。它涉及启动流程定义的新流程实例。

TaskService:需要由系统的用户执行的任务是BPM引擎(如Flowable)的核心。围绕任务的所有内容都在TaskService中进行分组:

查询分配给用户或组的任务

创建新的独立任务。这些是与流程实例无关的任务。

操作分配任务的用户或以某种方式参与任务的用户。

声称并完成任务。声称意味着某人决定成为该任务的受让人,这意味着该用户将完成该任务。完成意味着完成任务的工作。通常,这是填写各种形式。

IdentityService:它支持组和用户的管理(创建,更新,删除,查询......)。

formService:是一个可选的服务,将flowable里的表单关联到dpmn中(不使用)。

HistoryService:暴露了可流动的引擎收集的所有历史数据例如流程实例启动时间,执行哪些任务,完成任务所需的时间,每个流程实例中遵循的路径,等等。此服务主要公开查询功能以访问此数据。

ManagementService:该ManagementService编码使用可流动的自定义应用程序时,通常是没有必要的。它允许检索有关数据库表和表元数据的信息。此外,它还公开了作业的查询功能和管理操作。Flowable中的作业用于各种事物,例如计时器,异步延续,延迟暂停/激活等。稍后,将更详细地讨论这些主题。

DynamicBpmnService(多出来特殊的一个)

可以用来改变流程定义的一部分,而无需重新部署。例如,您可以更改流程定义中用户任务的受理人定义,或更改服务任务的类名称。

5.2 任务侦听器:

5.3 流程设计器:

1.每个节点可定义通过的方式,如:一个节点有多个人审核时,多个人同时审核通过才完成—简称为“同步”,或至少一个人通过-简称为“异步”。

这个需求实现可参考博客:

5.4 工作流程相关的术语:

加签:顾名思义就是增加一道审批签名,这个道审批往往是临时增加的,标准流程没有规定要走的。在现实工作流程中,加签功能使用率颇高;有时,审批人对内容不太确定,不太敢做主,就会找更高层的领导进行加签;这样就可以规避个人风险;出问题大家一起担。有时为了表示对领导尊重,或者让领导知道这回事,也需要使用加签功能。

前加签:加签的人办理后,还要重新回过来继续办理。

后加签:加签的人办理后,直接到流程下一步。

签收:一般情况就是多个候选人,或者候选组的情况下,要先把这个任务签收下来,以免别人又做了同样的任务。

反签收:就是把执行人设置为空

注意事项:反签收的时候,一定要先确定是否有候选人或者候选组,如果没有的话,不能反签收。因为会导致这个任务无法认领。

委派:委派人办理后回到原接点人。

委办:委办人办理后直接到流程下一步。

六.项目集成建议:

Flowable集成到项目的时候,原来的老项目已经有了用户,组/角色/组织,权限之类的表和业务设计,所以工作流自己在做一套用户,组的权限控制会增加额外的维护成本。

所以搞就搞的简单点,删掉Flowable生成的用户,用户组关联,组这三张表,建立三个同名的视图,视图查询项目已有的用户组进行关联即可。

实际的项目,我们也没有完全用原有的用户关系表,毕竟工作流的关系只需要找到下个节点(人/组)即可,单独加了个关联表,使流程并不是完全按照组织架构流转...