Vous êtes ici :
InsQuoteService:invokeRules
Utilisez ce service pour invoquer des règles de transition d'état associées à une transition d'état cible dans un devis cible.
Si les règles remplissent les critères de transition, ce service exécute les actions associées à la transition, consigne éventuellement les résultats des exécutions de règles et passe le devis cible au nouvel état.
Avant l'exécution de ce service, le système exécute une vérification de l'utilisateur invité.
Ce service peut être utilisé par des utilisateurs invités. Un utilisateur invité qui exécute une tâche OmniScript, Procédure d'intégration ou Interface utilisateur peut continuer. Ce service est exécuté. Cependant, les quoteId et les opportunityId sont cryptés dans ces cas. Par conséquent, les utilisateurs invités ne peuvent pas afficher ces ID.
Fonctionnement
-
Ce service récupère l'objet spécifié par l'option quoteId.
-
Selon le type d'objet, l'état actuel de l'objet et l'option toState, la transition vers l'état cible est déterminée.
-
À partir de la transition d'état, des règles de transition d'état et des actions de règle de transition d'état, les règles produit sont récupérées et exécutées.
-
Si les règles de transition d'état remplissent les critères de réalisation de la transition spécifiés dans la transition d'état, l'objet est transféré vers toState.
Si la transition d'état est associée à une action, cette action est exécutée.
Si les critères de réalisation de la transition ne sont pas remplis, l'objet est transféré vers l'état Alternatif spécifié dans la transition d'état s'il existe. Si la transition d'état n'a pas d'état Alternatif, l'objet conserve son état actuel.
-
Si l'option logResults est spécifiée, les résultats de chaque règle et le résultat de la transaction de l'objet (réussite ou échec) sont consignés.
Options distantes
JSON d'entrée
L'exemple suivant montre un exemple de JSON d'entrée.
{
"quoteId": "02i3h0000009OqCAAU",
"toState": "Review",
"lastDefaultState": "Draft",
"invokeStateTransitionRules": true,
"invokeProductRules": true,
"invokeActionType": "draft",
"actionScope": "version",
"logResults": true,
"fromNoneState": false
}JSON de sortie
L'exemple suivant montre un exemple de JSON de sortie.
{
"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"
}
}]
}
}
}Description du résultat
Résultat Résultat global des règles exécutées. Si true, l'objet cible est transféré vers toState. Si false, l'état cible reste le même ou passe à l'état Alternatif défini dans la transition d'état.
ruleDetails Liste des règles exécutées et leurs résultats
Ce JSON inclut les paires clé/valeur suivantes :
Clé |
Valeur |
|---|---|
conditions |
Condition de règle |
nom |
Nom de la règle |
objId |
ID d'objet avec lequel les règles ont été exécutées |
result |
Résultat de l'évaluation de la condition de règle par rapport au devis cible |
ruleId |
ID de règle |
transitionName |
Nom de la transition associée à la règle |
