Você está aqui:
InsQuoteService:invokeRules
Use esse serviço para invocar regras de transição de estado associadas a uma transição de estado de destino em uma cotação de destino.
Se as regras cumprirem os critérios de transição, esse serviço executará ações associadas à transição,, como opção, registrará os resultados das execuções da regra e migrará a cotação de destino para o novo estado.
Antes de esse serviço ser executado, o sistema executa uma verificação de usuário convidado.
Esse serviço pode ser usado por usuários convidados. Um usuário convidado que esteja executando uma tarefa do OmniScript, Procedimento de integração ou UI poderá continuar; esse serviço será executado. No entanto, os quoteId e os opportunityId são criptografados nesses casos, de modo que os usuários convidados não podem ver esses IDs.
Como funciona
-
Esse serviço recupera o objeto especificado pela opção quoteId.
-
Com base no tipo de objeto, no estado atual do objeto e na opção toState, a transição de estado de destino é determinada.
-
Na transição de estado, nas regras de transição de estado e nas ações de regra de transição de estado, as regras de produto são recuperadas e executadas.
-
Se as regras de transição de estado cumprirem os critérios de conclusão de transição especificados na transição de estado, o objeto é migrado para o Estado.
Se a transição de estado tiver uma ação associada a ela, essa ação será executada.
Se os critérios de conclusão da transição não forem atendidos, o objeto será migrado para o estado Alternativo especificado na transição de estado, se existir. Se a transição de estado não tiver um estado Alterado, o objeto manterá seu estado atual.
-
Se a opção logResults for especificada, os resultados de cada regra e o resultado da transação do objeto (sucesso ou falha) serão registrados.
Opções remotas
JSON de entrada
O exemplo a seguir mostra o JSON de entrada de amostra.
{
"quoteId": "02i3h0000009OqCAAU",
"toState": "Review",
"lastDefaultState": "Draft",
"invokeStateTransitionRules": true,
"invokeProductRules": true,
"invokeActionType": "draft",
"actionScope": "version",
"logResults": true,
"fromNoneState": false
}JSON de saída
O exemplo a seguir mostra o JSON de saída de amostra.
{
"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"
}
}]
}
}
}Descrição do resultado
resultado Resultado geral de regras executadas. Se true, o objeto de destino é migrado para toState. Se falso, o estado de destino permanece igual ou passa para o estado Alternativo definido na transição de estado.
Lista das regras executadas e seus resultados ruleDetails
Esse JSON inclui estes pares de chave/valor:
Chave |
Valor |
|---|---|
condições |
Condição da regra |
nome |
Nome da regra |
objId |
ID do objeto em relação ao qual as regras foram executadas |
result |
Resultado da avaliação da condição da regra em relação à cotação de destino |
ruleId |
ID da regra |
transitionName |
Nome da transição associada à regra |

