`
学习随笔
  • 浏览: 18268 次
  • 性别: Icon_minigender_1
  • 来自: 东莞
文章分类
社区版块
存档分类
最新评论

jbpm4.4 task实体属性扩展

 
阅读更多
研究jbpm4.4也比较久了,但由于学习得比较分散,也没过太过深入,今天突然想jbpm4.4的最简单的扩展---实体属性扩展,google一下,资料太少了,大多都是api方面的问题

本着前人挖井,后人喝水的原则,前面喝了太多水,今天是时候挖口井了

下面用最简单的例子说明实体属性扩展的大概:

在流程定义文件里增加一个属性,然后解释,接着创建任务的时候把这个属性set进去

<task form="open.jsp" g="395,103,92,52" name="省市场部" role_id="195">
    <assignment-handler class="com.zhizhao.assignmentHandler.AssignSingle"/>
    <transition g="442,233:12,-46" name="同意" to="省客服服务部"/>
</task>


如上面代码,在task节点里面增加一个role_id="195"的属性
这时xml一般会报错,因为原来的验证xsd文件根本没这个属性

可以修改jbpm包目录下jpdl-4.4.xsd,定位到 <element name="task">
添加一行(中间那行attribute name="role_id"....)
<attribute name="swimlane" type="string" />
<!-- 自定义-->
<attribute name="role_id" type="string" />
<attribute name="form" type="string">


在myeclipse定义好引用,这时不会报错了

找到org.jbpm.pvm.internal.task.TaskDefinitionImpl和org.jbpm.pvm.internal.task.TaskImpl,在里面添加属性roleId
至于get/set我就不说了

jbpm4.4解释流程定义xml的类是
org.jbpm.jpdl.internal.xml.JpdlParser

找到方法parseTaskDefinition,在里面加入两行
public TaskDefinitionImpl parseTaskDefinition(Element element, Parse parse,
    ScopeElementImpl scopeElement) {
    //....  这里看其他怎么写就怎么写 换个属性名而已
    String role_id = XmlUtil.attribute(element, "role_id");
    taskDefinition.setRoleId(role_id);
    //....
}


接着就是最重要的,就是jbpm创建任务的方法,这个问题我纠结了很久了,没想到在这里...
org.jbpm.jpdl.internal.activity.TaskActivity

public void execute(ExecutionImpl execution) {
    DbSession dbSession = EnvironmentImpl.getFromCurrent(DbSession.class);
    TaskImpl task = dbSession.createTask();
    task.setTaskDefinition(taskDefinition);
    task.setExecution(execution);
    task.setProcessInstance(execution.getProcessInstance());
    task.setSignalling(true);
    ........
    //找个地方写就行
     task.setRoleId(taskDefinition.getRoleId());
}


这个方法是jbpm任务创建的时候都会执行的,至于自己创建任务,你想怎么搞就怎么搞吧。。

扩展了当然就要保存到数据库咯,接着修改jbpm.task.hbm.xml,添加属性映射
 <property name="roleId" column="ROLE_ID"/>


接着定义就可以保存到jbpm4_task里面咯

有什么不懂可以问
分享到:
评论
1 楼 microbone 2012-12-25  
用这种方式还需要把修改后的文件重新打成jar,是吧?有只修改配置文件就可以实现的方式吗

相关推荐

    jBPM4.4.rar_jbpm4.4_jbpm4.4 PDF

    《jBPM4.4开发指南》与《jBPM4.4中文用户手册》是深入理解jBPM4.4这一开源工作流管理系统的重要参考资料。jBPM,全称Java Business Process Management,是一个用于执行业务流程的轻量级、灵活的开源框架,它为业务...

    jbpm4.4下载地址

    6. **扩展性**:jBPM 4.4具有高度的可扩展性,允许开发者通过插件机制添加自定义功能,如新的活动类型或事件处理器,这为满足特定业务需求提供了灵活性。 7. **社区支持**:作为开源项目的一部分,jBPM 4.4拥有一个...

    jbpm4.4文档+学习资料

    jbpm4.4是JBoss企业级业务流程...总之,jbpm4.4是企业级业务流程管理的有力工具,其强大的功能和良好的可扩展性使其在许多项目中得到广泛应用。通过深入学习和实践,你可以熟练掌握jbpm4.4,提升你的业务流程管理能力。

    jBPM4.4开发实例

    **jBPM4.4开发实例** jBPM(Java Business Process Management)是一个开源的工作流管理系统,用于管理和执行业务流程。jBPM4.4是该框架的一个版本,它提供了强大的工作流服务,包括流程定义、流程实例管理、任务...

    jbpm4.4中文开发指南

    **jbpm4.4中文开发指南** JBPM(Java Business Process Management)是一个开源的工作流管理系统,专注于业务流程的建模、执行和管理。jbpm4.4是该系统的某一版本,它提供了丰富的功能,包括流程定义、流程实例的...

    jBPM 4.4用户手册 中文PDF

    **jBPM 4.4 用户手册 中文PDF** **jBPM 4.4** 是一个开源的工作流程管理系统,由Red Hat公司开发并维护,主要用于业务流程管理(BPM)和工作流自动化。该系统提供了强大的流程建模、执行和监控功能,支持Java平台,...

    JBPM4.4资料的其他补充

    JBPM4.4是JBPM的其中一个稳定版本,发布于2009年,它提供了强大的工作流服务,包括流程定义、流程实例管理、任务管理和监控等功能。在JBPM4.4版本中,开发者可以利用其提供的API和工具来设计、部署和执行复杂的业务...

    jBPM4.4开发指南

    ### jBPM4.4开发指南关键知识点解析 #### 一、工作流基础与概念 **1. 工作流定义** 工作流是指业务过程的部分或整体在计算机应用环境下的自动化,其目的是为了使在多个参与者之间按照某种预定义的规则传递文档、...

    jbpm4.4 schema.xsd

    jbpm4.4 schema.xsd jbpm4.4 schema.xsd jbpm4.4 schema.xsd jbpm4.4 schema.xsd jbpm4.4 schema.xsd

    jBPM4.4.rar_jbpm4_jbpm4.4

    "jBPM4.4.docx" 文件可能是关于 jbPM 4.4 示例的详细文档,它可能包含如何安装、配置、创建和运行流程实例的步骤,以及可能遇到的问题和解决办法,对于学习和使用 jbPM 4.4 是非常有价值的参考资料。 总结,jbPM ...

    jbpm4.4 shh2 项目示例

    jbpm4.4 shh2 项目示例是基于jbpm4.4版本与SSH2(Struts2、Spring和Hibernate)集成的一个实战项目。jbPM(Business Process Management)是一款开源的工作流管理系统,用于实现业务流程自动化。SSH2是Java开发中的...

    jbpm4.4开发用户指南

    8. **监听器与工作流服务**:讲解如何自定义监听器以扩展jBPM的功能,以及如何使用内置的服务,如邮件服务、定时服务等。 9. **持久化与事务管理**:阐述jBPM如何与数据库交互,以及如何配置事务策略。 接下来,...

    JBPM4.4与SSH2之整合(附可运行源码和jar包列表)(my_jbpm4.4_ssh2.rar)

    JBPM4.4与SSH2之整合(附完整源码) 这些天,想着把jbpm4.4与ssh2整合一下,由于之前从来没用过jbpm,也不知道各版本之间会有什么差异(经过网上的收集对比,还真有些差异),整合起来,还真是有些步履艰难。收集了...

    jBPM4.4 详解 API 中文

    ### jBPM4.4 API 详解:工作流自动化的核心技术 #### 一、工作流基础知识 工作流,作为业务过程的部分或整体自动化,旨在通过计算机应用环境实现文档、信息或任务在多个参与者间的自动传递,以达到预期的业务目标...

    jbpm4.4表字段说明

    JBPM4.4是JBoss Business Process Management (BPM)平台的一个特定版本,它提供了用于设计、执行和管理业务流程的工具和框架。在JBPM4.4中,数据库是存储流程实例、流程定义以及相关元数据的关键部分。以下是关于...

    JBPM4.4流程管理Demo(附学习资料)

    【JBPM4.4流程管理Demo】是一个基于JBPM4.4版本的示例项目,主要展示了如何在实际业务场景中应用工作流引擎进行流程管理,特别是报销流程的管理。这个Demo不仅包含了可运行的代码,还附带了学习资料和SQL文件,方便...

    jbpm4.4+ssh

    【jbpm4.4+SSH】是一个集成的Java企业级应用框架,主要涉及的是工作流管理系统jbpm4.4与Spring、Struts2(SSH)三大框架的整合。jbpm4是一个开源的工作流程管理系统,它提供了流程定义、执行、监控和优化等一系列...

    jbpm4.4spring.rar_jbpm4_jbpm4.4

    【标题】"jbpm4.4spring.rar_jbpm4_jbpm4.4" 提供的是一个关于JBPM4.4与Spring框架整合的实际应用案例。JBPM(Java Business Process Management)是一款开源的工作流管理系统,它允许开发者设计、执行、管理和监控...

    jbpm4.4 流程运转+驳回+分配组任务+ssh2

    jbpm4.4是JBoss Business Process Management Suite的第4.4版本,它是一个开源的工作流和业务流程管理系统,用于构建、部署和管理业务流程。本教程将深入探讨jbpm4.4中的核心功能,包括流程运转、驳回、分配组任务...

Global site tag (gtag.js) - Google Analytics