Вы находитесь здесь:
InsQuoteService:invokeRules
Используйте эту службу для вызова правил перехода в состояние, связанных с переходом в целевое состояние в целевой смете.
Если правила соответствуют критериям перехода, эта служба выполняет действия, связанные с переходом, по желанию регистрирует результаты выполнения правил и переводит целевую смету в новое состояние.
Перед выполнением этой службы система выполняет проверку пользователя-гостя.
Данная служба может использоваться пользователями-гостями. Пользователь-гость, выполняющий задачу OmniScript, процедуры интеграции или пользовательского интерфейса, сможет продолжить работу; эта служба будет запущена. Однако, в этих случаях quoteId и opportunityId зашифрованы, поэтому пользователи-гости не могут видеть эти коды.
Принцип работы
-
Данная служба извлекает объект, указанный параметром quoteId.
-
На основе типа объекта, текущего состояния объекта и параметра toState определяется переход в целевое состояние.
-
Извлекаются и выполняются правила продукта из перехода в состояние, правил перехода в состояние и действий правил перехода в состояние.
-
Если правила перехода состояния соответствуют критериям завершения перехода, указанным в переходе состояния, объект переходит в состояние.
Если переход состояния связан с действием, это действие выполняется.
Если критерии завершения перехода не соблюдены, объект переходит в состояние «Альтернатива», указанное в переходе состояния, при его наличии. Если переход состояния не содержит альтернативного состояния, объект сохраняет текущее состояние.
-
Если указан параметр logResults, результаты из каждого правила и результат транзакции объекта (успех или сбой) регистрируются.
Удаленные параметры
JSON ввода
Следующий пример отображает образец ввода JSON.
{
"quoteId": "02i3h0000009OqCAAU",
"toState": "Review",
"lastDefaultState": "Draft",
"invokeStateTransitionRules": true,
"invokeProductRules": true,
"invokeActionType": "draft",
"actionScope": "version",
"logResults": true,
"fromNoneState": false
}Вывод JSON
Следующий пример отображает образец вывода JSON.
{
"transition": true,
"transitedState": "Review",
"stateTransitionRules": {
"result": true,
"ruleDetails": [{
"result": true,
"conditions": "Quote.Status == 'Draft'",
"name": "Status is Draft",
"ruleId": "a5Q6g0000005vSPEAY",
"transitionName": "Draft > Review",
"objId": "02i3h0000009OqCAAU"
}, {
"result": false,
"conditions": "Quote.Name == 'Test'",
"name": "Name is Test",
"ruleId": "a5Q6g0000005vSPEAZ",
"transitionName": "Draft > Review",
"objId": "02i3h0000009OqCAAU"
}]
},
"productRules": {
"allFalse": false,
"trueRules": {
"Quote": [{
"ruleDetails": {
"ruleId": "a5Q6g0000005vSPEBX",
"objectId": "02i3h0000009OqCAAU",
"transitionName": "Draft > Review",
"productId": "01t6g000000RzFAAA0",
"action class": null,
"action method": null,
"message": "Name is not blank",
"conditions": "Quote.Name != ''",
"requirement name": "Name is not blank"
}
}]
},
"falseRules": {
"Quote": [{
"ruleDetails": {
"ruleId": "a5Q6g0000005vSPEBX",
"objectId": "02i3h0000009OqCAAU",
"transitionName": "Draft > Review",
"productId": "01t6g000000RzFAAA0",
"action class": null,
"action method": null,
"message": "Name is blank",
"conditions": "Quote.Name == ''",
"requirement name": "Name is blank"
}
}]
}
}
}Описание результата
Результат Общий результат выполненных правил. Если значение true, целевой объект переходит в состояние. Если значение false, то целевое состояние остается неизменным или переходит в альтернативное состояние, заданное при переходе в состояние.
ruleDetails Список выполненных правил и их результаты
Этот JSON содержит следующие пары ключ/значение:
Клавиша |
Значение |
|---|---|
conditions |
Условие правила |
name |
Имя правила |
objId |
Код объекта, по которому выполнялись правила |
результат |
Результат оценки условия правила относительно целевой сметы |
ruleId |
Код правила |
transitionName |
Имя перехода, связанного с правилом |
