2016-03-21 13 views
0
import org.activiti.engine.RuntimeService; 
import org.activiti.engine.delegate.DelegateExecution; 
import org.activiti.engine.delegate.DelegateTask; 
import org.activiti.engine.delegate.ExecutionListener; 
import org.activiti.engine.delegate.TaskListener; 
import org.activiti.engine.delegate.event.ActivitiEvent; 
import org.activiti.engine.delegate.event.ActivitiEventListener; 


@SuppressWarnings("serial") 
public class MyEventListener implements ActivitiEventListener,ExecutionListener,TaskListener { 

    @Override 
    public void onEvent(ActivitiEvent event) { 

     System.out.println("Excecution id"+event.getExecutionId()+"ProcessDefinition id"+event.getProcessDefinitionId()); 
     System.out.println("ProcessInstance Id"+event.getProcessInstanceId()+"Type"+event.getType()); 

    switch (event.getType()) { 

     case ACTIVITY_STARTED: 
      System.out.println("Activi started "); 
      break; 
     case ACTIVITY_COMPLETED: 
      System.out.println("Activi completed "); 
      break; 

     case TASK_CREATED : 
      System.out.println("Task Created "); 
      break; 

     case TASK_COMPLETED: 
      System.out.println("Task completed "); 
      break; 

     case JOB_EXECUTION_SUCCESS: 
     System.out.println("A job well done!"); 
     break; 

     case JOB_EXECUTION_FAILURE: 
     System.out.println("A job has failed..."); 
     break; 

     default: 
     System.out.println("Event received: " + event.getType()); 
    } 
    } 

    @Override 
    public boolean isFailOnException() { 
    // The logic in the onEvent method of this listener is not critical, exceptions 
    // can be ignored if logging fails... 
    return false; 
    } 

@Override 
public void notify(DelegateExecution arg0) throws Exception { 

    System.out.println("Notify Execution called"); 
    // TODO Auto-generated method stub 

} 

@Override 
public void notify(DelegateTask arg0) { 
    System.out.println("Notify Delegate task called"); 
    // TODO Auto-generated method stub  
} 
} 

私はこのクラス名をプロセスに指定しました。 notifyメソッドからメッセージを見ることができますが、onEventメソッドが呼び出されていません。ActivitiEventListenerのonEventメソッドが機能していません

私はプロセスにこのクラス名を指定しました。 notifyメソッドからメッセージを見ることはできますが、onEventメソッドは呼び出されていません。

BPMNコード:

<process id="myProcess" name="myProcess" isExecutable="true"> 
    <extensionElements> 
<activiti:executionListener event="start" class="MyEventListener"></activiti:executionListener> 
    </extensionElements> 
    <startEvent id="startevent1" name="Start"></startEvent> 
    <userTask id="usertask1" name="Login" activiti:assignee="Darshan"> 
     <extensionElements> 
     <activiti:taskListener event="create" class="MyEventListener"></activiti:taskListener> 
     </extensionElements> 
    </userTask> 
    <userTask id="usertask2" name="Welcome Page" activiti:assignee="Darshan"></userTask> 
    <endEvent id="endevent1" name="End"></endEvent> 
    <sequenceFlow id="flow1" sourceRef="startevent1" targetRef="usertask1"></sequenceFlow> 
    <sequenceFlow id="flow2" sourceRef="usertask1" targetRef="usertask2"></sequenceFlow> 
    <sequenceFlow id="flow3" sourceRef="usertask2" targetRef="endevent1"></sequenceFlow> 
    </process> 

答えて

0

あなたはMyEventListenerクラスがそのようにActivitiは、TaskListenerインタフェースによって提供さnotify(DelegateTask arg0)を呼び出すタスクリスナーとして登録されているためnotifyメソッドからのメッセージを見ることができます。
onEvent(ActivitiEvent event)を呼び出すには、クラスをイベントリスナーとして登録する必要があります。あなたはActivitiユーザガイドの答えのために非常に多くのAdding listeners to process definitionsセクション

+0

おかげでより詳細な情報を見つけることができます

<userTask id="usertask1" name="Login" activiti:assignee="Darshan"> <extensionElements> <activiti:taskListener event="create" class="MyEventListener" /> <activiti:eventListener class="MyEventListener" /> </extensionElements> </userTask> 

:BPMNでのタスクは次のようになります。 –

+0

@DarshanPatel答えが役に立ったら、それを受け入れてupvoteするのが理にかなっています。 http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – Evgeny

+0

すでにこれを行いました。私は15の評判を得ると、それはdispayedされます。 –

関連する問題