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