jbpm事件

一、流程图

jbpm事件_第1张图片

二、代码实现

 1>test.jbpl.xml

[html]  view plain copy print ?
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2.   
  3. <process name="test" xmlns="http://jbpm.org/4.4/jpdl">  
  4.   
  5.   
  6.   
  7.     <!-- 流程启动事件 -->  
  8.     <on event="start">  
  9.         <event-listener class="com.njupt.k_event.EventListenerImpl"></event-listener>  
  10.     </on>  
  11.       
  12.     <!-- 流程结束事件 -->  
  13.     <on event="end">  
  14.         <event-listener class="<span style="font-family: Arial, Helvetica, sans-serif;">"com.njupt</span><span style="font-family: Arial, Helvetica, sans-serif;">.k_event.EventListenerImpl"></event-listener></span>  
  15.     </on>  
  16.   
  17.   
  18.   
  19.   
  20.     <start name="start1" g="136,73,48,48">  
  21.         <transition name="to task1" to="task1" g="-53,-17" />  
  22.   
  23.         <!-- Start活动只有离开活动事件 -->  
  24.         <on event="end">  
  25.             <event-listener class="<span style="font-family: Arial, Helvetica, sans-serif;">"com.njupt.</span><span style="font-family: Arial, Helvetica, sans-serif;">k_event.EventListenerImpl"></event-listener></span>  
  26.         </on>  
  27.   
  28.     </start>  
  29.   
  30.   
  31.     <task name="task1" g="127,168,92,52" assignee="张三">  
  32.         <transition name="to end1" to="end1" g="-47,-17" />  
  33.   
  34.         <!-- 进入活动事件 -->  
  35.         <on event="start">  
  36.             <event-listener class=<span style="font-family: Arial, Helvetica, sans-serif;">"com.njupt.</span><span style="font-family: Arial, Helvetica, sans-serif;">k_event.EventListenerImpl"></event-listener></span>  
  37.         </on>  
  38.   
  39.         <!-- 离开活动事件 -->  
  40.         <on event="end">  
  41.             <event-listener class="<span style="font-family: Arial, Helvetica, sans-serif;">"com.njupt.</span><span style="font-family: Arial, Helvetica, sans-serif;">k_event.EventListenerImpl"></event-listener></span>  
  42.         </on>  
  43.   
  44.     </task>  
  45.   
  46.     <end name="end1" g="156,269,48,48">  
  47.   
  48.         <!-- End活动只有进入活动事件 -->  
  49.         <on event="start">  
  50.             <event-listener class="<span style="font-family: Arial, Helvetica, sans-serif;">"com.njupt.</span><span style="font-family: Arial, Helvetica, sans-serif;">k_event.EventListenerImpl"></event-listener></span>  
  51.         </on>  
  52.   
  53.     </end>  
  54.   
  55. </process>  


2>编写事件处理类

[java]  view plain copy print ?
  1. package com.njpt.k_event;  
  2.   
  3. import org.jbpm.api.listener.EventListener;  
  4. import org.jbpm.api.listener.EventListenerExecution;  
  5.   
  6. public class EventListenerImpl implements EventListener {  
  7.   
  8.     @Override  
  9.     public void notify(EventListenerExecution execution) throws Exception {  
  10.         System.out.println("事件触发了, " + execution.getActivity());  
  11.     }  
  12.   
  13. }  

三、编写流程测试类

[java]  view plain copy print ?
  1. package com.njupt.k_event;  
  2.   
  3. import java.io.InputStream;  
  4.   
  5. import org.jbpm.api.Configuration;  
  6. import org.jbpm.api.ProcessEngine;  
  7. import org.jbpm.api.ProcessInstance;  
  8. import org.junit.Test;  
  9.   
  10. public class ProcessTest {  
  11.   
  12.     private ProcessEngine processEngine = Configuration.getProcessEngine();  
  13.   
  14.     @Test  
  15.     public void test() throws Exception {  
  16.         // 1,部署流程定义  
  17.         InputStream in = getClass().getResourceAsStream("test.jpdl.xml");  
  18.         processEngine.getRepositoryService()//  
  19.                 .createDeployment()//  
  20.                 .addResourceFromInputStream("test.jpdl.xml", in)//  
  21.                 .deploy();  
  22.   
  23.         // 2,启动流程实例  
  24.         processEngine.getExecutionService().startProcessInstanceByKey("test");  
  25.     }  
  26.   
  27.     @Test  
  28.     public void testCompleteTask() throws Exception {  
  29.         String taskId = "350008";  
  30.         processEngine.getTaskService().completeTask(taskId);  
  31.     }  
  32.   
  33. }  


你可能感兴趣的:(jbpm,事件)