实操版本V6.7.2

一、Flowable 是什么

Flowable 是一个使用 Java 编写的轻量级业务流程引擎,使用 Apache V2 license 协议开源。2016 年 10 月,Activiti 工作流引擎的主要开发者离开 Alfresco 公司并在 Activiti 分支基础上开启了 Flowable 开源项目。基于 Activiti v6 beta4 发布的第一个 Flowable release 版本为6.0。以 JAR 形式发布使得 Flowable 可以轻易加入任何Java环境:Java SE、Tomcat、Jetty 或 Spring 之类的 servlet 容器;JBoss 或 WebSphere 之类的 Java EE 服务器等等。 另外,也可以使用 Flowable REST API 进行 HTTP 调用。

二、工作流引擎使用场景

工作流在企业管理系统中是高频使用的功能,一个最常见的例子是请假加班申请与审批的过程。事实上,工作流引擎能支持的业务场景远远不止单据审批,几乎所有涉及到业务流转、多人按流程完成工作的场景背后都可以通过工作流引擎作为支撑。基于工作流引擎,可以搭建客户关系管理系统(CRM)、运输管理系统(TMS)、仓储管理系统(WMS)、财务费用系统等多种复杂业务系统。对于达到一定规模的企业,良好的 BPM(业务流程管理,Business Process Management)体系可以支持创建公司内横跨不同部门的复杂业务流程,既提高工作效率、又可推动企业规范化发展。

三、下载flowable-6.7.2压缩包

下载地址:https://github.com/flowable/flowable-engine/releases

二、解压

获得flowable-ui.war,并将此war包拷贝到tomcat下运行

三、启动Tomcat

访问地址:http://localhost:8080/flowable-ui/

用户名:admin 密码:test

四、创建流程

五、创建应用程序

六、导出流程定义

把导出的文件放当项目的resources目录下

使用流程发起人分配(踩坑)

场景

希望用户任务直接分配给流程发起人

用法:在流程开始事件上绑定发起人变量

<startEvent flowable:initiator="INITIATOR" />

启动流程时通过代码设置用户ID,开始事件会自动将用户ID填入变量INITIATOR

try {
  identityService.setAuthenticatedUserId("zhangsan");
 // Authentication.setAuthenticatedUserId("wangwu");
  runtimeService.startProcessInstanceByKey("someProcessKey");
} finally {
  identityService.setAuthenticatedUserId(null);
// Authentication.setAuthenticatedUserId(null);
}

  在用户任务上分配发起人变量

<userTask flowable:assignee="${INITIATOR}" />

如果使用flowable ui进行流程建模,并在用户任务的分配用户属性点选分配给流程发起人

可以看到生成的xml文件中分配用户变量形如

<userTask flowable:assignee="$INITIATOR" />

如果将此流程部署到独立的flowable引擎将无法正确分配发起人用户到用户任务(原因是此变量需要IDM模块支持) 直接使用固定值设置 ${INITIATOR} 即可解决

注意避坑:${myAssignee.getassignee}  myAssignee的首字母必须为小写

create:创建时触发

complete:审批完毕后触发

七、表结构

1、通用数据表(2个)

act_ge_bytearray:二进制数据表,如流程定义、流程模板、流程图的字节流文件;

act_ge_property:属性数据表(不常用);

2、历史表(8个,HistoryService接口操作的表)

act_hi_actinst:历史节点表,存放流程实例运转的各个节点信息(包含开始、结束等非任务节点);

act_hi_attachment:历史附件表,存放历史节点上传的附件信息(不常用);

act_hi_comment:历史意见表;

act_hi_detail:历史详情表,存储节点运转的一些信息(不常用);

act_hi_identitylink:历史流程人员表,存储流程各节点候选、办理人员信息,常用于查询某人或部门的已办任务;

act_hi_procinst:历史流程实例表,存储流程实例历史数据(包含正在运行的流程实例);

act_hi_taskinst:历史流程任务表,存储历史任务节点;

act_hi_varinst:流程历史变量表,存储流程历史节点的变量信息;

3、用户相关表(4个,IdentityService接口操作的表)

act_id_group:用户组信息表,对应节点选定候选组信息;

act_id_info:用户扩展信息表,存储用户扩展信息;

act_id_membership:用户与用户组关系表;

act_id_user:用户信息表,对应节点选定办理人或候选人信息;

4、流程定义、流程模板相关表(3个,RepositoryService接口操作的表)

act_re_deployment:部属信息表,存储流程定义、模板部署信息;

act_re_procdef:流程定义信息表,存储流程定义相关描述信息,但其真正内容存储在act_ge_bytearray表中,以字节形式存储;

act_re_model:流程模板信息表,存储流程模板相关描述信息,但其真正内容存储在act_ge_bytearray表中,以字节形式存储;

5、流程运行时表(6个,RuntimeService接口操作的表)

act_ru_task:运行时流程任务节点表,存储运行中流程的任务节点信息,重要,常用于查询人员或部门的待办任务时使用;

act_ru_event_subscr:监听信息表,不常用;

act_ru_execution:运行时流程执行实例表,记录运行中流程运行的各个分支信息(当没有子流程时,其数据与act_ru_task表数据是一一对应的);

act_ru_identitylink:运行时流程人员表,重要,常用于查询人员或部门的待办任务时使用;

act_ru_job:运行时定时任务数据表,存储流程的定时任务信息;

act_ru_variable:运行时流程变量数据表,存储运行中的流程各节点的变量信息

 参考资料:

官网地址:https://www.flowable.org/

github地址:https://github.com/flowable

Flowable 6.4.1 官方文档  https://www.flowable.org/documentation.html

https://tkjohn.github.io/flowable-userguide/

https://github.com/flowable/flowable-engine/releases

flowable 流程引擎总结-CSDN博客

附实践操作代码:https://download.csdn.net/download/zyf1203/89588795

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐