addOnStageChange() вызывается дважды
Я написал обработчик событий при смене этапа в BPF в Opportunity Entity:
var checkForAccountApproved = function (executionContext) {
var formContext = executionContext.getFormContext();
formContext.data.process.addOnStageChange(function (stageContext) {
var stageName = stageContext.getEventArgs().getStage().getName().toString();
if (some conditions) {
formContext.data.process.movePrevious();
}
else {
currentActiveStage.setValue(stageName);
formContext.data.entity.save();
}
});
};
По сути, при нажатии "Далее" мне нужно проверить, не удовлетворены ли некоторые условия, только тогда следующий этап должен быть активным, в противном случае текущий этап должен быть активным.
Если условия не выполняются, то есть происходит смена ступени, я сохраню значение текущей активной ступени в поле. Если я явно вызываю save, обработчик события снова запускается.
Почему это так?
0 ответов
Вероятно, поздний ответ, но... не используйте formContext.data.process.movePrevious() для отмены изменения этапа, так как это попытается переместить этап назад и повторно выполнить предварительное изменение (это, вероятно, сохранит цикл до тех пор, пока вы не вернетесь к первому этапу).. Вместо этого используйте приведенный ниже, который отменяет изменение этапа и остается на текущем этапе
ExecutionContext.getEventArgs().preventDefault();