1
votes

To any developers familiar with Activiti, essentially what I am looking for and currently I cannot find in their user guide for the product, whether an event exists, much the like the other start task event listener or end task event listener, a listener which is fired on update to a process variable? So the task is very much in progress and I want to react to a change of state of one of the process variables..

Does anybody know if this is possible with the OOTB product?

1

1 Answers

5
votes

I was just working on this today. I registered an EventListener and implemented onEvent().

runtimeService.addEventListener(new APIEventListener());

Then you can look at the event type and take appropriate action.

public class APIEventListener implements  ActivitiEventListener {

  final Logger logger = Logger.getLogger(this.getClass());

@Override
public void onEvent(ActivitiEvent event) {

  switch (event.getType()) {
    case VARIABLE_CREATED:
        variableEvent = (ActivitiVariableEvent)event;
        logger.debug("Event: "  + event.getType() + " "  
                    + variableEvent.getVariableName() + " (" + variableEvent.getVariableType().getTypeName() + ") = "  
                    + variableEvent.getVariableValue());
        break;

    case VARIABLE_DELETED:
        logger.debug("Event: "  + event.getType());
        break;
    case VARIABLE_UPDATED:
        logger.debug("Event: "  + event.getType());
        break;
   }

  } 
}

Hope that helps!