Я написал обработчик событий при смене этапа в 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, обработчик события снова запускается.
Почему это так?