使用jBpm支持高级用户交互模式 - 编程入门网
有以下几种可能方法:
在任务外解决:需要大量时间的任务并行循环(parallel looping) 。 使用动作处理器(Action handler):附加到任务节点的进入事件(enter event),基于流程实例变量创建多个节点实例。 在任务内解决:引入“任务接受量(task take)”(类似jPDL 4)并允许某 个任务实例可被接受多次。 根据jBPM最佳实践 ——“扩展jBPM API而不是去搞复杂的流程建模” ,我决 定采用任务内解决的方法。这就要求修改jBPM提供的任务和任务实例类。 使用jBpm支持高级用户交互模式(2)时间:2011-07-08 infoq 译:胡键扩展Task类 jBPM任务的定义被包含在org.jbpm.taskmgmt.def.Task类中。为了支持四眼原 则,我们需要给类增加以下的字段/方法(清单1):
清单1 给Task类增加字段和方法 这个新的参数允许指定任务完成所需的任务处理人数量。缺省值为1,这意味 着,只有1个用户应该/可以处理这个任务。 jBPM使用Hibernate来向数据库保存和读取数据。为了让我们新加的变量持久 化,我们需要更新Task类的Hibernate配置文件(Task.hbm.xml),它在 org.jbpm.taskmgmt.def文件夹中,增加代码如下(清单2) <property name="numSignatures" column="NUMSIGNATURES_" /> 清单2 在Task映射文件中指定新增域 为了让我们新加的属性能被流程定义和数据库正确读取,我们需要修改 org.jbpm.jpdl.xml.JpdlXmlReader类以正确地读取我们的新属性(清单3)
清单3 读取numSignature属性 最后,因为JpdlXmlReader根据模式来验证XML,因此我们需要在jpdl-3.2.xsd 中增加一个属性定义(清单4):
清单4 在jpdl-3.2.xsd中增加numSignatures属性 当完成这些工作,任务定义就被扩展可以使用numSignatures属性(清单5):
清单5 给任务定义增加numSignatures属性 使用jBpm支持高级用户交互模式(3)时间:2011-07-08 infoq 译:胡键扩展TaskInstance类 在扩展完任务类后,我们还需要创建一个自定义的任务实例类来跟踪分配给该 任务实例的参与者,并确保所有被分配的参与者完成类执行(清单6)。
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |