jbpm4流程服务介绍
jbpm4流程服务介绍
1) 流程引擎ProcessEngine的构建方式如下三种:
2) 流程引擎提供的主要服务接口如下:
2.1) 流程资源RepositoryService:rs包含了管理流程定义的所有方法(发布、删除、挂起和恢复、查看)
2.1.1) 发布流程:
2.1.2) 删除流程:
2.1.3)挂起和恢复流程:
2.1.4) 查看流程:
2.2) 执行服务ExecutionService:es主要用于维护流程实例(processInstance),包含流程实例的查询和流程变量的操作。
2.2.1) 启动新流程:
2.3) 任务服务TaskService:ts
2.3.1) 任务列表访问
2.3.2) 读取任务节点相关数据
2.3.3) 完成任务
Jbpm4数据库结构介绍
1) jbpm4的18张表如下:
2) 流程定义相关的布署信息就存储在JBPM4_DEPLOYMENT、JBPM4_DEPLOYPROP及JBPM4_LOB中。上传一个包含png和jpdl.xml的zip包后,JBPM4_DEPLOYMENT多一条记录JBPM4_DEPLOYPROP多三条,JBPM4_LOB多两条。
3) JBPM4_HIST_PROCINST与JBPM4_HIST_ACTINST分别存放的是Process Instance、Activity Instance的历史记录。
4) JBPM4_EXECUTION主要是存放JBPM4的执行信息。
5) JBPM4_TASK存放需要人来完成的Activities,需要人来参与完成的Activity被称为Task
6) JBPM4_PARTICIPATION存放Participation的信息,Participation的种类有Candidate、Client、Owner、Replaced Assignee和Viewer。而具体的Participation既可以是单一用户,也可以是用户组。
7) JBPM4_SWIMLANE。Swim Lane是一种Runtime Process Role。通过Swim Lane,多个Task可以一次分配到同一Actor身上。
8) JBPM4_VARIABLE 存的是进行时的临时变量。
9) JBPM4_HIST_DETAIL保存Variable的变更记录。
10) JBPM4_HIST_VAR保存历史的变量。
11) JBPM4_HIST_TASKTask的历史信息。
12) JBPM4_ID_GROUP,JBPM_ID_MEMBERSHIP,JBPM4_ID_USER 这三张表实现基本的权限控制。
13) JBPM4_JOB 存放的是Timer的定义。
Oss开发(demo)
1) 新建web工程,导入jbpm所需jar包,导入jbpm配置文件
配置本地数据库(demo为mysql)
2) 设计流程图并指定节点属性
流程图如下:
相应的xml文件:
3) 新建OssServlet,初始化流程引擎及接口服务
提出问题:将问题提交人存入map,在start流程时传递流程变量customer
请求派发页面issueApply.jsp
提交问题至issueApply方法处理,在完成该任务节点后,根据问题类型判断进入下一节点。问题类型表达式:
#{issueType== '报表问题' ? '是' : '否' } |
taskService.completeTask(task.getId()); |
完成当前节点自行进入下一节点。具体方法如下:
其他流程节点方法处理类似。
原文出处--------------http://www.cnblogs.com/hexiweb/archive/2012/05/31/2528090.html