11-jbpm工作流之"事件处理Event"
2013-07-11 16:24
369 查看
Jbpm的事件处理:
是通过在test.jpdl.xml中配置事件节点来处理的:
注意:开始活动只有离开事件,结束活动只有进入事件
进入活动事件:
流程图配置文件test.jpdl.xml:通过配置事件处理类来实现事件驱动:EventListenerImpl.java实现EventListener接口
事件处理类:EventListenerImpl.java
测试类:
测试结果:
是通过在test.jpdl.xml中配置事件节点来处理的:
注意:开始活动只有离开事件,结束活动只有进入事件
进入活动事件:
<on event="start"> <event-listener class="cn.edu.zust.itee.event.EventListenerImpl" /> </on>离开活动事件:
<on event="end"> <event-listener class="cn.edu.zust.itee.event.EventListenerImpl" /> </on>流程图:test.png
流程图配置文件test.jpdl.xml:通过配置事件处理类来实现事件驱动:EventListenerImpl.java实现EventListener接口
<?xml version="1.0" encoding="UTF-8"?> <process name="test" xmlns="http://jbpm.org/4.4/jpdl"> <on event="start"> <event-listener class="cn.edu.zust.itee.event.EventListenerImpl"/> </on> <on event="end"> <event-listener class="cn.edu.zust.itee.event.EventListenerImpl"/> </on> <start g="295,82,48,48" name="start1"> <on event="end"> <event-listener class="cn.edu.zust.itee.event.EventListenerImpl"/> </on> <transition g="-93,-22" name="to 部门经理审批" to="部门经理审批"/> </start> <task assignee="部门经理" g="277,183,92,52" name="部门经理审批"> <on event="start"> <event-listener class="cn.edu.zust.itee.event.EventListenerImpl"/> </on> <on event="end"> <event-listener class="cn.edu.zust.itee.event.EventListenerImpl"/> </on> <transition g="-81,-22" name="to 总经理审批" to="总经理审批"/> <transition g="-50,-22" name="to end1" to="end1"/> </task> <task assignee="总经理" g="424,259,92,52" name="总经理审批"> <on event="start"> <event-listener class="cn.edu.zust.itee.event.EventListenerImpl"/> </on> <on event="end"> <event-listener class="cn.edu.zust.itee.event.EventListenerImpl"/> </on> <transition g="-50,-22" name="to end1" to="end1"/> </task> <end g="289,380,48,48" name="end1"> <on event="start"> <event-listener class="cn.edu.zust.itee.event.EventListenerImpl"/> </on> </end> </process>
事件处理类:EventListenerImpl.java
package cn.edu.zust.itee.event; import org.jbpm.api.listener.EventListener; import org.jbpm.api.listener.EventListenerExecution; /** * @author 郑勇 * 2013-7-11 16:05 * 处理事件类 */ public class EventListenerImpl implements EventListener { @Override public void notify(EventListenerExecution execution) throws Exception { System.out.println("触发事件了---:当前正在执行的事件是"+execution.getActivity()); } }
测试类:
package cn.edu.zust.itee.event; import java.io.InputStream; import org.jbpm.api.Configuration; import org.jbpm.api.ProcessEngine; import org.jbpm.api.ProcessInstance; import org.junit.Test; /** * @author Bob * 2013-07-11 16:03 * 事件处理 */ public class ProcessEvent { ProcessEngine processEngine = Configuration.getProcessEngine(); @Test public void testProcessEvent(){ //部署流程定义 //获得当前包中的文件 InputStream in = this.getClass().getResourceAsStream("test.jpdl.xml"); processEngine.getRepositoryService() .createDeployment() .addResourceFromInputStream("test.jpdl.xml", in) .deploy(); //启动流程实例 ProcessInstance pi = processEngine.getExecutionService() .startProcessInstanceByKey("test"); //完成"部门经理任务",并使用指定连线离开当前活动 String taskId = processEngine.getTaskService().createTaskQuery() //查询出该流程实例中仅有的一个任务 .processInstanceId(pi.getId()) .uniqueResult() .getId(); //活动中都是可以有1个或多个Transition,需要指定不同的名称 processEngine.getTaskService().completeTask(taskId,"to 总经理审批"); } }
测试结果:
相关文章推荐
- jquery阻止冒泡事件:$('span').bind("click",function(event){event.stopPropagation();})(有用源)
- AutoEventWireup="false"导致Page_Load事件未执行
- 条款11:在operator = 中处理"自我赋值"
- 条款11: 在operator= 中处理"自我赋值"
- C#"焦点事件"中的Validating处理方法
- 事件处理&时空推理(event processing/temporal reasoning)-jboss Drools Fusion
- “回发或回调参数无效<pages enableEventValidation="true"/>”的处理
- js事件处理程序的运行环境(改变attachEvent内部的this指向&封装兼容性的 addEvent方法)
- 多点触控事件处理 ev.getAction() & MotionEvent.ACTION_MASK
- 事件处理&时空推理(event processing/temporal reasoning)-jboss Drools Fusion
- C#"焦点事件"中的Validating处理方法
- 10-jbpm工作流之"自定义活动Custom"
- GridView“GridView1”激发了未处理的事件“RowDeleting"(转)
- 12-jbpm工作流之 分配任务给一个"组的成员"GroupTask
- "Java中可复用事件处理的设计与实现"代码
- 09-jbpm工作流之"分支聚合Join-Fork"
- 书:"Pro JavaScript Techniques 精通JavaScript"之绑定/移除事件监听函数
- 点击.txt文件显示"不是有效的Win32应用程序"处理方法
- 一个在SSAS中的"The attribute key cannot be found" Error处理方法
- 2012-11-16 - 11-17 11gR2 "Backup and Recovery User's Guide" page 121 - 150