JBPM Activty深入解析
JBPM对于活动结点的架构设计有什么特别之处?
JBPM将活动功能分为活动本身的行为(ActivityBehaviour)和活动作为流程元素所共有的一些东西(Activity);这样的架构设计很巧妙,既保证了各种活动自身的独特特性,也保证作为流程元素所共有的功能,保证了最大程度的代码重用!
JBPM活动的类型大致分为自由执行结点和外部唤醒结点,可以满足现实中业务流程需要自动业务处理和需要人参与的业务处理要求。
JBPM的活动本身是一种复合元素,其可以作为父活动而拥有众多的子活动。这样保证了JBPM提供的单一活动不能满足业务需求时候,我们可以进行活动组合!
JBPM的活动可以定义变量,这样可以使我们在运行时动态传递数据,满足我们一些灵活的业务需求。
JBPM的活动可以订阅相应的事件,当相应事件触发时,就会调用相应的事件监听器的方法。这样我们可以开发自己的事件监听器进行代码注入,灵活的实现自己的一些业务需求。

实现满足特定需求的活动
如果jbpm提供的活动不能满足我们的业务需求,我们除了可以使用组合活动外,也可以实现我们自定义的活动,自定义活动根据我们的需要,我们可以继承JpdlActivity、JpdlAutomaticActivity、JpdlExternalActivity,
代码示例:

流程定义中引用自定义活动

扩展JBPM活动相关属性
Jbpm的活动是以name作为标识的,这一点有点不是很好,在名字有重复时,可能会导致一些运行时错误!为了避免这一点,我们可以自己给活动结点扩展id属性,并在设计流程时自动生成id;
流程发布xsd验证id

流程发布解析活动xml时,解析id属性
在JpdlBinding中添加代码

在JpdlParser中的parseActivities方法中添加下列选中一行的代码

在Activiy中添加接口
public String getId();
在ActivityImpl中添加下列代码
private String id;
public String getId(){
return this.id;
}
public void setId(String id){
this.id=id;
}
为了保证流程的顺利运行,我们需要提供通过Id查找活动的方法并替换掉原来的通过Name获取的方法,具体代码不在赘述!
分享到:
相关推荐
通过对jBPM4的PVM实现的深入解析,我们可以看到PVM不仅是一个强大的流程执行引擎,还具备高度的灵活性和可扩展性。它通过一系列的设计模式和技术手段实现了对流程定义和执行的有效管理。无论是对于业务流程的定义...
8. **jbpm-bam-5.4.0.Final.jar**:业务活动监控(Business Activity Monitoring)模块,允许收集和分析流程执行的数据,以便进行性能监控和改进。 9. **jbpm-test-5.4.0.Final.jar**:提供了测试框架,帮助开发者...
1. **流程建模**:jbPM4.0支持基于Java Business Activity Model (BPMN) 2.0标准的流程建模。BPMN是一种图形化的建模语言,使得业务人员和IT人员可以共同理解和创建流程。 2. **工作流引擎**:jbPM4.0包含了一个...
这些文件可能用于描述流程实例的模型,可以通过JBPM的工具进行解析和执行。 学习和使用JBPM4.4,你需要熟悉Java编程,了解基本的BPMN概念,并且掌握如何使用其提供的工具和API。通过实践DEMO,你可以了解如何部署...
本文将深入探讨jbpm5的持久化机制以及流程流转的核心原理,帮助开发者更好地理解和利用这一强大的工具。 首先,我们来了解jbpm5的持久化机制。jbpm5使用Hibernate作为其持久化框架,实现了对流程实例、任务、变量等...
### JBPM4.3数据库说明书知识点解析 #### 一、JBPM4简介 JBPM4作为一款当前最为流行的企业级开源工作流管理平台之一,它提供了丰富的API接口以及灵活的扩展性,允许开发者构建出复杂的工作流应用。JBPM4在架构设计...
**jbpm4.3 开发指南** JBPM(Java Business Process Management)是一...通过深入学习"jbpm4.3开发指南",开发者不仅可以掌握jbpm4.3的具体用法,还能理解BPM系统的设计理念,为后续的业务流程管理项目打下坚实基础。
### jBPM4.4 用户手册关键知识点解析 #### 一、引言 ...通过以上知识点的深入解析,用户可以全面掌握jBPM4.4的核心功能和使用技巧,无论是进行流程设计、开发还是运维管理,都能找到详实的指导。
通过对内核的深入解析,我们可以更好地理解和应用jbpm,提升企业流程自动化水平,优化业务运行效率。对于希望在业务流程管理领域有所建树的技术人员而言,掌握jbpm内核的设计原理与构架思想,无疑将为他们的职业生涯...
### JBPM 4.4 实用教材:HelloWorld 示例详解 #### 一、JBPM简介与应用场景 JBPM(Java Business Process Management)是...通过这些基础知识的学习,初学者可以快速入门JBPM,并能够基于此进行更深入的研究和实践。
jbpm4.4源代码阅读第一季发布是一个针对企业级工作流引擎——jBPM的深入学习资源。jBPM是一款开源的业务流程管理(BPM)和工作流系统,它允许开发者通过Java编程语言来定义、执行和管理业务流程。这个资源包含3个...
当导入一个新的流程定义时,jBPM会将XML解析后存储在这个表中,便于后续的流程实例创建和执行。 2. **Act_Ru_Activity_Instance**: 此表记录运行时活动实例的信息,每个活动在执行过程中都会生成一个活动实例。这...
- **jBPM执行引擎**:解析JPDL定义的流程,负责流程实例的启动、执行和监控。 - **持久化**:jBPM支持数据库持久化,确保流程实例在系统重启后能恢复。 - **工作流管理**:提供对流程实例的控制,如挂起、激活、...
在Android开发领域,源代码是理解系统工作原理和构建应用程序的关键。"Android source codes"这个主题涵盖了许多核心组件和技术,包括布局、菜单、对话框...这些文件将帮助开发者深入理解和实现Android应用的各种功能。
运行时,JBPM引擎解析JPDL文件并执行相应的流程实例。 总的来说,《JPDL3.1规范手册》是学习和掌握JBPM系统的核心参考资料,对于理解业务流程建模和管理,以及如何利用Java技术实现流程自动化具有极高的价值。无论...
ObeDesigner作为设计工具,可能提供了一个用户友好的界面,让用户可以通过拖拽和配置的方式来设计工作流图,包括活动(Activity)、分支(Branch)、会合(Join)和用户任务(User Task)等元素。 4. **源码解析**...
【描述】:本教程将全面解析工作流的概念,以及Activiti的工作原理和关键组件。我们将探讨工作流的表的作用,并通过代码示例来帮助理解Activiti的工作流程。 【正文】: 工作流(Workflow)是企业信息化建设中的...