研究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里面咯
有什么不懂可以问
分享到:
相关推荐
jbpm4.4 jar 包下载jbpm4.4 jar 包下载jbpm4.4 jar 包下载jbpm4.4 jar 包下载
jbpm4.4 schema.xsd jbpm4.4 schema.xsd jbpm4.4 schema.xsd jbpm4.4 schema.xsd jbpm4.4 schema.xsd
jBPM4.4开发指南 开发手册 JBPM4.4 开发
JBPM4.4与SSH2之整合(附完整源码) 这些天,想着把jbpm4.4与ssh2整合一下,由于之前从来没用过jbpm,也不知道各版本之间会有什么差异(经过网上的收集对比,还真有些差异),整合起来,还真是有些步履艰难。收集了...
jbpm4.4下载地址
资源名称:JBPM4.4视频教程(22集附源码)资源目录:【】(01)jbpm4.4简介【】(02)JBPM4.4开发环境搭建【】(03)jbpm4.4环境搭建续【】(04)jbpm4.4配置文件和开发前准备【】(05)jbpm4.4部署流程发起流程实例【】(06)...
jbpm4.4开发指南,jbpm4.4用户指南
jBPM4.4入门开发实例
首先感谢原创,相关信息请查询原创。... 看到好多朋友找不到相应的jar包,致使jbpm4.4的学习遇到困难,现提供除jbpm4.4自身jar包外的所有包,以便大家更快的学习jbpm4.4,希望能帮朋友们少走弯路!
jBPM4.4课程文档
JBPM4.4学习文档.ppt
jbpm4.4 工作流框架 笔记 工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现...
JBPM4.4之HelloWorld示例
终于把jbpm4.4上传完了,由于csdn最大容量才50m,所以我把这个jar包分成三个部分。
jbpm4.4+ssh配置
jbpm4.4整合s2sh 请假流程例子
jBPM4.4数据库表简单介绍
jbpm4.4 ibatis-spring 整合
jBPM 4.4开发指南,翻译官方文档 JBoss jBPM Teams
jBPM 4.4 用户手册 中文版 PDF格式