2016-03-21 17 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  
} 
} 

Bir işlem için bu sınıf adını belirttim. İletiyi bildirim yönteminden görebiliyorum ancak onEvent yöntemi çağırmıyor.ActivitiEventListener's onEvent yöntemi çalışmıyor

Bir işlem için bu sınıf adını belirttim. İletiyi bildirim yönteminden görebiliyorum ancak onEvent yöntemi çağırmıyor.

BPMN kodu: MyEventListener sınıf bir görev dinleyici yüzden activiti TaskListener arayüzü tarafından sağlanan notify(DelegateTask arg0) çağırır olarak kayıtlı olduğu için

<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> 

cevap

0

Sen notify yönteminden mesajları görmek mümkün.
onEvent(ActivitiEvent event) almak için, sınıfınızı bir olay dinleyicisi olarak kaydettirmeniz gerekir. Sen activiti Kullanım Kılavuzu Adding listeners to process definitions bölüm cevabını

+0

Çok teşekkürler daha fazla ayrıntı bulabilirsiniz

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

: gibi BPMN Görev görünmelidir. –

+0

@DarshanPatel Cevabın kabul edilmesi ve kabul edilmesi mantıklıdır. http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – Evgeny

+0

Bunu zaten yaptık. 15 itibara sahip olduğumda, o zaman dağıtılacak. –

İlgili konular