Flowable学习总结
- Flowable 与 Activit 关系:
Flowable是Activiti原班主创人员从Activiti分离出来的一套工作流引擎,是一个业务流程管理(BPM)和工作流系统,适用于开发人员和系统管理员。其核心是超快速、稳定的BPMN2流程引擎,易于与 Spring集成使用。
- Flowable流程实现
1). 流程图
流程图为工作流主要构成,流程的步骤全部在流程图上体现。
绘制流程图可使用IDEA插件
一个完整的流程需要由开始,审批过程,结束构成。由箭头指定下一步。
在设置审批时应☞定该步骤编号(id),名称(name),以及审批人(Assignee),审批人可指定,或者写表达式
${用户}用代码来指定
流程图绘制完毕后,通过修改文件后缀名 bpmn 改为 xml 可直接生成对应的xml文件
2).flowable数据库
使用flowable必须指定数据库 加入flow able的jar包后 启动项目会在数据库中生成flowable的数据表(60张),其中
act_cmmn_:CMMN流程引擎数据
act_dmn_ : DMN流程引擎
act_evt_log: 事件日志
act_fo_:表单引擎数据
act_ge_: 通用数据
act_hi_:表包含历史数据
act_id_:存储与用户身份相关数据
act_prodef_info:流程定义的信息
act_re_: 流程定义相关数据的存储库
act_ru__:流程实例运行时数据,流程结束删除数据
3).部署流程文档
部署流程文档有六种方式,选用addClasspathResource 方式
4).发起流程
5).获取流程,管理员查看,个人查看
第一条:指定用户查询流程中 userId 对应上面向${userId}赋的值,
只有Assignee中有此用户,才可以查看该用户发起流程。
第二条:需在画流程图时,设定审批(candidate Groups) 组 , 可查询到所有到该步骤的流程
通过上述语句可以通过遍历集合获取流程编号
For(int i=0;i<task.size();i++){
Integer taskId = task.get(i).getId();
}
TaskService.getVariables(taskId);
可以根据获取到的taskId 取得请假单信息
6). 审批流程
流程审批需要根据taskId 根据上述5获取
调用taskService.complete()方法完成审批