`

jbpm总结

阅读更多
转载地址:http://blog.sina.com.cn/s/blog_5677c3830100il44.html
JBPM4.3总结四
2.9任务管理
2.9.1 分配任务
流程定义时,分配任务有多种方法:

1. 直接分配给成员:assignee="user1" 可以同时分配多人:candidate-users("user1","user2","user3")

2. 分配给组:candidate-groups="it_dept" 分配给多个组:用逗号隔开部门id组列表。

3. 利用任务泳道进行分配:

1.任务泳道分配的特点:一个单子可以有多个人填写,一旦A填写了,别人就不能 填写。而且当A提交的单子被退回的时候还应该有A来继续。

2.泳道定义:<swimlane candidate-groups="it_dept" name="test"/>,也可以为 candidate-users.

3.使用泳道:在task定义时 swimlane="test" 使用泳道,任务分配给it_dept部  门

4.使用任务分配器assignment-handler标签 使用方法:<assignment-handler class = "">

<field name="test"><string value="ttttttt"/></field>

</assignment-handler>

在class里面动态分配assignable.setAssignee(test);

通过传参数,设置 test的值。实现动态分配



2.9.2 成员任务列表
List<Task> taskList = taskService.findPersonalTasks(username);

2.9.3 组成员任务列表
List<Task> taskList = taskService.findGroupTasks(username);

由于任务有转交,加签等功能,所以一个人想要得到自己的任务就包括 组成员任务和 成员任务两部分组成。

2.9.4 执行任务
得到任务列表后,如果任务有对应的表单,就先跳到表单,填写,然后执行。表单的绑定:在task标签中使用 form = "xxxx.jsp",执行语句:



taskService.completeTask(taskId,"toFork1",map);

taskId 是任务id

toFork1 是outcome,即任务的出口

Map 是 传递的任务参数,通过任务就可以得到这些参数:

得到指定的参数值:taskService.getVariable(taskId, "user")

    得到所有的参数:taskService.getvariableNames(java.lang.String.taskId);

2.9.5 转交任务
taskService.assignTask(taskId,"用户Id");

2.9.6 任务加签
taskService.addTaskParticipatingUser(taskId,"用户Id",Participation.CANDIDATE);

2.9.7 fork  join 异步分支
<fork g="276,239,48,48" name="fork1">

      <transition g="-54,-18" name="to 计划部" to="计划部"/>

      <transition g="-54,-18" name="to 法务部" to="法务部"/>

      <transition g="-64,-18" name="to IT规划部" to="IT规划部"/>

</fork>

Fork join 处理并发的情况,分配给的三个部门当执行完后,都流入到join标签。

Join标签属性: multiplicity="3" multiplicity 的意思是当有几个执行到了join时,流程继续。

2.9.8 decision 决定条件
decision中会运行并判断每一个transition 里的判断条件。 当遇到一个嵌套条件是true 或者没有

设置判断条件的转移,那么转移就会被运行。

例子:当天数大于3天,总经理审批 否则 结束

<decision expr="#{day > 3 ? 'to 总经理' : 'to 结束}" g="361,280,48,48"  name="exclusive1">

      <transition g="-42,-18" name="to end1" to="end1"/>

      <transition g="-44,-18" name="to task2" to="总经理审核"/>

   </decision>

Decision属性: expr 表达式 必填





2.9.9 Events 事件
当一个流程通过这一点时,事件监听器就会被提醒。

用法:在流程的任何地方都可以加入监听

<on event="start">

<event-listener class="org.jbpm.examples.eventlistener.LogListener">

// 参数

      <field name="msg"><string value="start on process definition"/></field>

    </event-listener>

2.9.10 JPDL简 介
1. Start state
开始节点 流程开始,每个流程定义文件 只能有一个开始节点。

2. Task node
任务节点  人工参与,调用processEngine.getTaskService().complete()完 成任务

3.State node
状态节点

需要使用execution.signalExcution()触发流程流转

4. Descision Node
流程流向判断节点

指定condition条件或者DesisionHandler

5. Fork node
分支节点,任务并行处理

6.Join node
任务聚合节点

7. End State
任务结束节点 可以有多个结束节点

8. Transition
控制任务流向

9. Event
事件触发 可以在任何节点加事件触发处理



具体参看${JPBM.HOME}/doc/userguide文档 关于JPDL的描述





3数据库表说明
(1)JBPM4_DEPLOYMENT、

(2)JBPM4_DEPLOYPROP

(3)JBPM4_LOB:
存储 上传一个包含png和jpdl.xml的zip包 的相关数据
jbpm4_deployment表多了一条记录
jbpm4_deployprop表多了四条记录,对应langid,pdid,pdkey,pdversion
jbpm4_lob 表多了二条记录,保存流程图png图片和jpdl.xml
(4)JBPM4_HIST_PROCINST与(5)JBPM4_HIST_ACTINST
分别存放的是Process Instance、Activity Instance的历史记录。
(6)JBPM4_EXECUTION
主要是存放JBPM4的执行信息,Execution机制代替了JBPM3的Token机制
(7)JBPM4_TASK
存放需要人来完成的Activities,需要人来参与完成的Activity被称为Task。
(8)JBPM4_PARTICIPATION
存放Participation的信息,Participation的种类有Candidate、 Client、Owner、Replaced  Assignee和Viewer。而具体的Participation既可以是单一用户,也可以是用户组。
(9)JBPM4_SWIMLANE
Swim Lane是一种Runtime Process Role。通过Swim Lane,多个Task可以一次分配到 同一Actor身上。
(10)JBPM4_VARIABLE
存的是进行时的临时变量。
(11)JBPM4_HIST_DETAIL
保存Variable的变更记录。
(12)JBPM4_HIST_VAR
保存历史的变量。
(13)JBPM4_HIST_TASK
Task的历史信息。
(14)JBPM4_ID_GROUP(15)JBPM_ID_MEMBERSHIP(16)JBPM4_ID_USER
这三张表很常见了,基本的权限控制,关于用户认证方面建议还是自己开发一套,JBPM4 的功能太简单了,使用中有很多需要难以满足。
(17)JBPM4_JOB
存放的是Timer的定义。
(18)JBPM4_PROPERTY
分享到:
评论

相关推荐

    jBPM4学习总结

    【jBPM4学习总结】 jBPM,全称为Java Business Process Management,是一个开源的、灵活且可扩展的业务流程管理框架,涵盖了业务流程管理、工作流和服务协作等多个领域。自2004年10月加入JBoss组织后,jBPM逐渐成为...

    JBPM3总结.docx

    总结来说,JBPM3是一个强大的业务流程管理工具,通过XML描述流程,利用Hibernate进行数据管理,提供了轻量级的依赖和灵活的部署选项。其核心概念如流程定义、流程实例、令牌和事件,共同构建了一个完整的业务流程...

    jbpm3.2开发总结.pdf

    本文主要围绕jbpm3.2在开发过程中的关键概念、组件、API使用以及配置等知识点进行总结。 首先,了解jbpm3.2需要掌握Java语言,J2EE技术栈,特别是Hibernate,因为在jbpm3.2中,流程定义、任务实例等数据的持久化是...

    jbpm简介\jbpm简介

    #### 五、总结 综上所述,jBPM是一个功能强大、易于使用的商业流程管理工作流引擎。它不仅具备丰富的特性和高度的灵活性,而且在实际应用中也表现出了出色的稳定性和性能。对于寻求提高业务流程管理效率、简化软件...

    JBPM4 学习使用总结

    **JBPM4 学习使用总结** JBPM4(Java Business Process Management)是Jboss公司推出的一款开源的工作流管理系统,它提供了完整的业务流程自动化解决方案,包括流程设计、部署、执行、监控以及管理等功能。在深入...

    jBPM3.2.rar_JBPM3.2_jbpm_jbpm 3.2_jbpm3_jbpm3.2教程

    **jbPM 3.2 知识点详解** jbPM,全称为Java Business Process Management,是一个开源的工作流管理系统,主要用于企业级应用中的业务流程管理。...希望这份知识总结能对你在jbPM的学习和使用上提供帮助。

    jbpm3基本资料和代码总结

    **jbpm3基本资料与代码总结** jbpm(Java Business Process Management)是一个开源的工作流管理系统,专注于业务流程的建模、执行和管理。jbpm3是该系统的第三个主要版本,它提供了一整套工具和API,帮助开发者...

    JBPM4学习经验总结

    JBPM4学习经验总结 JBPM4是Java Business Process Management(业务流程管理)的缩写,它是一个开源的、灵活的、易扩展的可执行流程语言框架。JBPM4学习经验总结包括了JBPM4的概念、配置JBPM4开发环境、JBPM默认的...

    jbpm-jpdl-designer-3.0.13.zip_jbpm_jbpm design_jbpm designer_jbp

    总结来说,jbpm-jpdl-designer-3.0.13是一个jbpm的图形化流程设计工具,使用它可以方便地创建和编辑JPDL文件,而无需直接处理XML。这个工具支持在Eclipse集成开发环境下使用,提供了友好的界面和丰富的功能,有助于...

    jbpm工作流引擎总结文档

    jbpm工作流引擎基于J2EE的轻量级,纯java,开源的工作流管理系统。

    jbpm-2.0-beta1.zip_java 工作流引擎_jbpm_jbpm-demo_工作流_工作流引擎

    总结来说,jbpm是一个强大的Java工作流引擎,具有流程建模、执行和管理的全面功能,适合用于构建企业级工作流系统。jbpm-demo提供了丰富的示例,帮助开发者快速上手,而jbpm-2.0-beta1的压缩包则包含了实现这些功能...

    JBPM笔记总结-1

    JBPM笔记总结,最最经典的,初学者的必看

    JBPM阶段性工作总结

    请把webwork、spring、hibernate和jbpm的所有jar包放入web-inf的lib下。然后将这个rar包下的jbpm3.2.1的sql导入mysql中。大家可以用src里面的两个XXXTest测试用例跑一下,代码很粗糙,需要大量重构,请见谅。只是...

    jbpm4web-JBPM4的一个web版本的Demo

    总结来说,jbpm4web是一个实用的学习工具,它使开发者能够深入了解JBPM4的运作机制,并快速上手实践。通过这个Demo,你可以掌握流程设计、执行、管理和监控的关键技术,为实际项目开发打下坚实的基础。

    流程开发java插件jbpm 使用说明 个人总结

    【JBPM简介】 JBPM,全称JBOSS Business Process Management,是一个基于Java的开源工作流管理系统。它提供了一种灵活且可扩展的方式来设计、执行和管理业务流程。JBPM利用直观的流程语言,如任务、异步等待状态、...

    JBPM4.4完整可用审批流程

    这些报错指南可能是开发者根据经验总结出的常见问题解决方案,或者是官方文档中的错误处理部分,对于快速定位和解决问题非常有帮助。 在jbpm4_maven目录下,我们可以期待找到以下内容: 1. **源代码**:包括业务...

    jbpm中文教程-详细

    总结,jbpm作为企业级的业务流程管理工具,其强大之处在于它提供的完整流程生命周期管理、灵活的流程定义和强大的数据持久化能力。结合Hibernate的集成,jbpm成为Java开发人员实现高效流程自动化和管理的理想选择。...

    jbpm jar java

    总结来说,jbpm是一个功能丰富的Java工作流管理框架,它通过提供强大的API和工具,让开发者能够轻松地构建、执行和管理业务流程。在实际开发中,理解jbpm的核心概念、API使用以及最佳实践,将有助于构建高效、灵活的...

Global site tag (gtag.js) - Google Analytics