Вы находитесь здесь:
Сценарии действий перехода на состояние объекта в Salesforce Contracts
Эти сценарии содержат важную информацию, которую нужно учитывать при настройке действий для контракта.
Сценарий 1
Статус контракта не меняется, поскольку логика класса Apex и соотнесение перехода в состояние не совпадают. А вот и пример:
-
Контракт находится в состоянии черновика.
-
Вы настраиваете:
-
Определение действия состояния объекта посредством Apex Type DraftToInApproval.
-
Действие перехода состояния объекта из черновика в в утверждение для действия DraftToInApproval.
-
Класс Apex ChangeStatus.apxc с логикой, перемещающей контракт из черновика в отмененный.
-
-
При нажатии кнопки DraftToInApproval контракт не перемещается из «Черновик» в «В утверждении». Класс Apex выполняет заданную логику и перемещает контракт из Черновика в Отмененное в качестве промежуточного состояния.
-
Если переход состояния объекта содержит переход, который перемещает контракт из «Отменено» в «В утверждении», контракт возвращается в исходное черновое состояние.
Примечание Чтобы перевести контракт из состояния «Черновик» в состояние «В утверждении», необходимо создать переход состояния объекта из «Отменено» в «В утверждении». -
Окончательное состояние контракта - Черновик.
Сценарий 2
Статус контракта меняется, даже если логика класса Apex и соотнесение перехода состояния не совпадают — поскольку переход состояния объекта содержит все обязательные переходы. А вот и пример:
-
Контракт находится в состоянии черновика.
-
Вы настраиваете:
-
Определение действия состояния объекта посредством Apex Type DraftToCanceled.
-
Действие перехода состояния объекта из черновика в отмененное для действия DraftToCanceled.
-
Класс Apex StatusChange.apxc с логикой, перемещающей контракт из черновика в утверждение.
-
-
При нажатии кнопки DraftToCanceled контракт перемещается с «Черновик» на «В утверждении» на «Отменено», так как существует стандартный переход с InApproval_ на_Canceled.
-
Окончательное состояние контракта: «Отменено».
Сценарий 3
Статус контракта не меняется при нажатии кнопки действия состояния объекта, поскольку выполнение класса Apex уже обновило статус контракта. А вот и пример:
-
Контракт находится в состоянии черновика.
-
Вы настраиваете:
-
Определение действия состояния объекта посредством Apex Type DraftToInApproval.
-
Действие перехода состояния объекта из черновика в в утверждение для действия DraftToInApproval.
-
Класс Apex ChangeStatus.apxc с логикой, перемещающей контракт из черновика в утверждение.
-
-
При нажатии кнопки «DraftToInApproval» контракт уже находится в процессе утверждения, так как класс Apex уже выполнил логику, заданную в классе, который перемещает контракт из черновика в «В утверждении» в качестве промежуточного состояния. Таким образом, статус контракта остается «На утверждении», так как он является действительным.
-
Окончательное состояние контракта: «В утверждении».
Сценарий 4
Определение состояния объекта содержит несколько связанных действий перехода к состоянию объекта. Действия перехода в состояние объекта имеют одинаковое состояние «От» и разные состояния «К». Приложение Salesforce Contracts обновляет статус контрактов на основе заданных переходов и действий. При наличии отличий между логикой класса Apex и определенными переходами приложение пытается выполнить определенные переходы. А вот и пример:
-
Контракт находится в состоянии черновика.
-
Вы настраиваете:
-
Определение действия состояния объекта посредством Apex Type DraftToFinalStatus.
-
Действие перехода состояния объекта из черновика в в утверждение для действия DraftToFinalStatus.
-
Действие перехода состояния объекта из черновика в активированное для действия DraftToFinalStatus.
-
-
Ниже указаны два варианта настройки класса Apex и их итоговые результаты.
Примечание Для успеха вызовов Apex в этом сценарии параметр finalStatusValue является обязательным.Параметр Сценарии Создайте класс Apex ChangeStatus.apxc с логикой, перемещающей контракт из черновика в «В утверждении». -
Если finalStatusValue установлен на «В процессе утверждения», контракт перемещается из черновика в процесс утверждения.
-
Если finalStatusValue установлено на «Активировано», переход не выполняется, поскольку путь не определен из «В процессе утверждения» в «Активировано». Контракт остается в статусе «Черновик».
Создайте класс Apex ChangeStatus.apxc с логикой, перемещающей контракт из черновика в активированный. -
Если finalStatusValue установлен на «Активировано», контракт перемещается из черновика в активирован.
-
Если finalStatusValue установлено на «В процессе утверждения», переход не выполняется, поскольку путь не определен из «Активировано» в «В процессе утверждения». Контракт остается в статусе «Черновик».
-
