1、什么是JBPM?
java business process management,即java业务流程管理,它是Jboss旗下的开源工作流引擎。
那么什么是工作流workflow?
工作流,即按照某种预定义规则,进行文档、文件等信息流的传输,使得多人之间可以协同工作完成某种工作或实现某个目标。
如:请假审批、物资审批等。
2、工作流必须理解的理论知识
1)、流程定义:process Definition,即某种预定义的规则
2)、流程实例:process Instance,即规则+数据
3)、流程变量:process variable ,流程变量保存了上下文信息,采用Map结构存储,流程变量的生命周期随着流程实例的消亡而消亡
4)、任务节点:Task:当流程到达该节点会创建流程任务实例TaskInstance,分别分配给参与者(只要有人参与活动,一般就使用任务节点,因为要分配给人处理
5)、起始节点:start,流程定义必须有一个起始节点,而且有且只能有一个
6)、结束节点:end,流程定义中可以没有结束节点,也可以有多个结束节点
7)、决策节点:decision,决策节点是由流程自动决策的,不需要人为干预,该节点相当于if...else.
8)、分支节点:fork,将一个路径分解为多个子路径,只有所有的子路径达到联合节点join,主路径才会继续执行事件Event
3、Jbpm数据库表详解
jbpm持久层采用Hibernate,它通过18张表进行数据处理
1)、jbpm4_deployment:保存部署id
2)、jbpm4_deployprop:部署文件相关属性
3)、jbpm4_execution:存放当前执行信息
4)、jbpm4_hist_actinst:存放历史活动(Task、state、fork、join)等信息
5)、jbpm4_hist_detail:保存流程变量的变更
6)、jbpm4_hist_procinst:保存历史流程实例
7)、jbpm4_hist_task:历史任务
8)、jbpm4_hist_var:历史变量
9)、jbpm4_id_group:组
10)、jbpm4_id_membersship:用户和组的关系
11)、jbpm4_id_user:用户
12)、jbpm4_job:存放timer
13)、jbpm4_lob:存放流程定义的jpdl内容和流程定义图片
14)、jbpm4_participation:和用户相关
15)、jbpm4_property:id维护表
16)、jbpm4_swimlane:存放泳道
17)、jbpm4_task:存放当前任务
18)、jbpm4_variable:存放当前流程变量
4、jbpm的6个核心service
jbpm的核心类是ProcessEngine,通过ProcessEngine来获取各种Service类
1)、RepositoryService:流程定义相关类,如:部署流程、删除流程、查看流程
2)、ExecutionService:流程实例相关类,如:启动流程
3)、HistoryService:主要用于查询流程历史
4)、TaskService:流程任务相关类,如:取得个人任务、组任务和结束任务。完整的任务=个人任务+组任务
5)、IdentityService:身份相关,创建用户、创建组
6)、ManagementService:管理定时任务的