Добрый день, накинул слушателя на Task, в методе notify получаю обьект DelegateTask. Я накидываю слушателя после события complete и мне нужно узнать какой вариант выбрал юзер. Как мне сделать это имея обьект DelegateTask?
Добрый день!
Используйте метод(-ы) delegateTask.getVariableInstances()
и delegateTask.getVariable(variableName)
, пример кода ниже
public class MyTaskListener implements TaskListener {
private static final Logger logger = LoggerFactory.getLogger(MyTaskListener.class);
@Override
public void notify(DelegateTask delegateTask) {
delegateTask.getVariableInstances().forEach((k, v) -> {
if ("outcomes-container".equals(v.getTypeName())) {
OutcomesContainer outcomeContainer = (OutcomesContainer) delegateTask.getVariable(k);
Outcome outcome = outcomeContainer.getOutcomes().get(0);
String outcomeId = outcome.getOutcomeId();
logger.info("chosen outcome is {}", outcomeId);
}
});
}
}