您位於此處:
InsProductService:repriceProduct
使用此服務使用附加至該產品的等級程序來定價產品。此服務通常會在使用者選取產品並自訂其涵蓋範圍時呼叫。
方法:repriceProduct
服務會在輸入 JSON 中取用一個產品物件,並將產品與總價格和總投保總金額一起退貨。也會從等級程序傳回完整結果 JSON。
此服務適用於一或多個受保人 (保單產品涵蓋的人員) 和一或多個受保項目 (例如汽車保單上的多輛車)。
當修改報價時,此服務不會執行「資格」、「必要」和「預設」選用涵蓋範圍規則。
運作方式
-
服務會針對所選產品金鑰,搜尋輸入 JSON,然後取用其值。此物件包含一個產品物件。
-
使用產品資料來搜尋 Salesforce,服務會尋找產品並取回分級程序。
-
服務會以產品 JSON 結構對產品進行評分。
-
服務會傳回具有總價與總投保總金額的產品物件。輸出 JSON 包含來自等級程序的剖析結果 JSON,作為
CalculatedPriceData的值。如果公式在產品上設定,則服務也會設定價格和totalSumInsured。
遠端選項
選項 |
描述 |
|---|---|
|
設定 例如,汽車保險報價或保單會將多個司機附加至每個受保的汽車。受保的汽車針對每個 auto+driver 例項都有個別的 |
|
針對在指定階層層級中具有多個子系規格、無孫系規格,且只有一個根層級分級程序的產品,將此選項設定為 針對不符合這些條件的產品省略此選項。 若要設定此類型產品的 |
|
或 %OmniScriptDataElement% 預設為今天日期。 |
|
如果此選項 = |
|
Omnistudio 資料對應器的名稱,此服務會用來取得原則 (資產) 資訊。 如果您使用 Salesforce FSC,則必須指定此選項或 |
|
此服務使用的自訂類別名稱,此名稱會用於取得原則 (資產) 資訊。 如果您使用 Salesforce FSC,則必須指定此選項或 |
|
服務傳入和傳出計算程序之以逗號分隔金鑰/值配對的字串。 這些金鑰/值配對包含在 只有計算程序使用的輸入索引鍵在結果中具有值。 |
|
預設為 在 |
|
如果您計畫使用選用涵蓋範圍驗證規則,請設定為 |
|
選擇性
設定為 如果您使用 Salesforce FSC 並將此選項設為 |
|
識別碼的字串清單 與 僅計算與所提供的管轄權相關聯的稅金和費用。 |
taxAndFeeEffectiveDate
|
此服務用於計算稅額與費用的生效日期。此選項與用於定價產品的 如果提供值,則服務會使用該值。 如果未提供值,且產品 JSON 不是原則,則服務預設為今天日期。 如果未提供值,且產品 JSON 是原則,則服務會使用原始原則版本的生效日期。 |
withTaxFeeRounding
|
選擇性 如果為 true,則會使用半偶數捨入方法將計算的稅金與費用金額捨入至兩個小數位數。 預設值為 false。 |
輸入 JSON
InsProductService: repriceProduct 會在其輸入 JSON 的 selectedProduct 金鑰中尋找產品物件。此物件包含產品屬性中對應的等級程序所需的輸入,包括其相關聯的涵蓋範圍規格、保險項目規格、受保方規格和等級實情規格。其他服務 (例如 getRatedProducts) 可以建立此物件。其中包含根產品、子系產品和孫系產品。服務會剖析產品結構,並將資料傳遞至運算式集或計算程序。如果物件中未包含對應給等級的屬性,則服務會使用由產品管理員設定的預設值。
此服務也會在輸入 JSON 中尋找 userInputs 金鑰,因此其可以尋找未包含在 selectedProduct 節點中的任何等級係數。根據產品定義和等級組態,使用適當的 userInputs 格式。服務一次只能接受一種 userInputs 格式。
輸出 JSON
服務會傳回與 selectedProduct 節點中的相同 JSON 結構,以及更新的定價資訊。如需此物件內容與結構的詳細資料,請參閱「產品 JSON 結構模型」。
如果使用稅金和費用服務,JSON 輸出會持續存在於 JSON 記錄上,類似於 getRatedProducts 寫入 JSON 的方式。
針對每個產品,將等級程序計算的輸出 JSON 新增至具有 CaculatedPriceData 金鑰的產品。如果在產品上設定定價公式,則 price 的值會設定為其計算值。如果在產品上設定總計投保公式,則 TotalInsured 的值會設定為其計算值。
CalculatedPriceData 下的結構包含例項支援。價格度量會在例項層級下分組。
輸出 JSON 包含根層級的 priceDiff 節點,其會加總例項層級價格。其中也包含根層級的 totalPremiumForTermDiff 欄位。此值是原始期限總保費與新保單版本期限總保費與舊保單版本期限更新的保費之間的總和差異。
在此範例中,會在產品上設定定價公式,但不會設定總計受保公式。服務會從等級程序將 CalculatedPriceData 新增至結果。服務會根據公式計算價格。未在產品上設定總計受保公式,且不會顯示在資料中 (TotalInsured 也不會顯示)。
"totalSize": null,
"records": [{
"displaySequence": -1,
"rootProductId": "01t1I000002fuBoQAI",
"rootProductCode": "AUTOROOT",
"timestamp": 1533948385704,
"hasInstanceKeys": true,
"childProductsCount": 8,
"instanceKeyChildren": 2,
"pathFromChild": "[0]",
"pathFromRoot": "[0]",
"Price": 80,
"productId": "01t1I000002fuBoQAI",
"Term__c": "Semi-Annual",
"PricingFormula__c": "SUM(AutoPremium__autoPremium + rentalTotal + medicalTotal + roadsideTotal + dedWaiverTotal + uninsuredMotoristPDTotal + uninsuredMotoristBITotal)",
"IsConfigurable__c": true,
"RecordTypeName__c": "Product",
"IsRecommended__c": false,
"ProductCode": "AUTOROOT",
"Name": "Auto Root",
"Id": "01t1I000002fuBoQAI",
"RawPriceData": [{
"calculationResults": [{
"DRIVER.LN": null,
"DRIVER.FN": null,
"AUTO.instanceKey": "2015 Lexus LX250",
"uninsuredMotoristBITotal": 100,
"uninsuredMotoristPDTotal": 0,
"dedWaiverTotal": 10,
"roadsideTotal": 10,
"medicalTotal": 10,
"rentalTotal": 40,
"comprehensiveTotal": 500,
"ID": "0"
}],
"aggregationResults": {}
},
{
"calculationResults": [{
"DRIVER.LN": null,
"DRIVER.FN": null,
"AUTO.instanceKey": "2006 Honda Odyssey",
"uninsuredMotoristBITotal": 100,
"uninsuredMotoristPDTotal": 0,
"dedWaiverTotal": 10,
"roadsideTotal": 10,
"medicalTotal": 10,
"rentalTotal": 40,
"comprehensiveTotal": 500,
"ID": "1"
}],
"aggregationResults": {}
}
],
"CalculatedPriceData": {
"2015 Lexus LX250": {
"DRIVER.LN": null,
"DRIVER.FN": null,
"AUTO.instanceKey": "2015 Lexus LX250",
"uninsuredMotoristBITotal": 100,
"uninsuredMotoristPDTotal": 0,
"dedWaiverTotal": 10,
"roadsideTotal": 10,
"medicalTotal": 10,
"rentalTotal": 40,
"comprehensiveTotal": 500,
"ID": "0"
},
"2006 Honda Odyssey": {
"DRIVER.LN": null,
"DRIVER.FN": null,
"AUTO.instanceKey": "2006 Honda Odyssey",
"uninsuredMotoristBITotal": 100,
"uninsuredMotoristPDTotal": 0,
"dedWaiverTotal": 10,
"roadsideTotal": 10,
"medicalTotal": 10,
"rentalTotal": 40,
"comprehensiveTotal": 500,
"ID": "1"
}
},
"priceDiff": 0,
"totalPremiumForTermDiff": 0,
"attributeCategories": {
"totalSize": 1,
"records": [{
"displaySequence": 5,
"id": "a1V1I0000007xJSUAY",
"Name": "Alan Health Attributes",
"Code__c": "AHA",
"productAttributes": {
"totalSize": 1,
"records": [{
"code": "ALANDEDUCTIBLE",
"dataType": "text",
"inputType": "text",
"required": false,
"readonly": false,
"disabled": false,
"filterable": true,
"attributeId": "a1W1I000000Bu1jUAC",
"label": "Deductible",
"displaySequence": 2,
"hasRules": false,
"hidden": false,
"values": [{
"readonly": false,
"disabled": false
}],
"userValues": "test",
"parentProductId": "01t1I000002fuBoQAI",
"parentProductCode": "AUTOROOT",
"pathFromChild": "attributeCategories.records[0].productAttributes.records[0]",
"pathFromRoot": "attributeCategories.records[0].productAttributes.records[0]"
}]
}
}]
},
"childProducts": {
...
}- 針對 repriceProduct 每個產品一個評分程序
針對使用每個根產品單一評分程序的產品格式化InsProductService:repriceProduct userInputs。 - 每個產品的多個評分程序,或 repriceProduct 的多個任何層級規格
在產品階層中使用多個等級程序的產品其格式化InsProductService:repriceProduct userInputs,或在階層的任何層級中使用多個子系規格的產品。
