詳細情報:
InsQuoteService:invokeRules
このサービスを使用して、対象見積の対象状態遷移に関連付けられた状態遷移ルールを呼び出します。
ルールが移行条件を満たしている場合、このサービスは移行に関連付けられたアクションを実行し、必要に応じてルールの実行結果を記録し、対象見積を新しい状態に移行します。
操作手順
-
このサービスは、quoteId オプションで指定されたオブジェクトを取得します。
-
オブジェクト種別、オブジェクトの現在の状態、および toState オプションに基づいて、対象状態遷移が決定されます。
-
状態遷移、状態遷移ルール、状態遷移ルールアクションから、商品ルールが取得されて実行されます。
-
状態遷移ルールが状態遷移で指定された遷移完了条件を満たしている場合、オブジェクトは toState に移行されます。
状態遷移に関連付けられたアクションがある場合、そのアクションが実行されます。
移行完了条件が満たされない場合、オブジェクトは状態遷移で指定された代替状態 (存在する場合) に移行されます。状態遷移に [代替] 状態がない場合、オブジェクトは現在の状態を保持します。
-
logResults オプションが指定されている場合、各規則の結果とオブジェクト トランザクションの結果(成功または失敗)が記録されます。
リモートオプション
オプション |
説明 |
|---|---|
quoteID |
必須。 |
toState |
必須 状態遷移条件に基づいて対象見積の移動先となる都道府県 |
lastDefaultState |
省略可能 対象見積の最後のデフォルト状態の名前 |
invokeStateTransitionRules |
省略可能 true 状態遷移ルールを呼び出す場合に使用します。これはデフォルトです。 false 状態遷移ルールを呼び出さない場合に使用します。 |
invokeProductRules |
省略可能 true 商品ルールを呼び出す場合に使用します。これはデフォルトです。 false 商品ルールを呼び出さない場合に使用します。 |
invokeActionType |
省略可能 指定されている場合、条件を満たした場合に呼び出すアクションの種別を示します。デフォルト設定は default です。 default 状態遷移に関連付けられたデフォルトアクションのみを実行する all 状態遷移に関連付けられたすべてのアクションの実行 なし 状態遷移に関連付けられたアクションを呼び出さない |
actionScope |
省略可能 指定されている場合、呼び出されたアクションを現在の状態モデルバージョンで定義する必要があるか、任意の状態モデルバージョンで定義する必要があるかを示します。デフォルトの設定は version です。 バージョン 現在の状態モデルバージョンに関連付けられたアクションのみ実行 任意の状態モデルバージョンに関連付けられた実行アクション |
logResults |
省略可能 true 結果を記録する場合に使用します。これはデフォルトです。 false 結果を記録しない場合に使用します。 |
fromNoneState |
省略可能 true オブジェクトが [なし] 状態から移行しています。 false Object is not transition from None state. (false オブジェクトが [なし] 状態から移行していません。)これはデフォルトです。 |
Input 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"
}
}]
}
}
}