Loading
保險
InsProductService:repriceProduct

InsProductService:repriceProduct

使用此服務使用附加至該產品的等級程序來定價產品。此服務通常會在使用者選取產品並自訂其涵蓋範圍時呼叫。

類別:InsProductService

方法:repriceProduct

服務會在輸入 JSON 中取用一個產品物件,並將產品與總價格和總投保總金額一起退貨。也會從等級程序傳回完整結果 JSON。

此服務適用於一或多個受保人 (保單產品涵蓋的人員) 和一或多個受保項目 (例如汽車保單上的多輛車)。

當修改報價時,此服務不會執行「資格」、「必要」和「預設」選用涵蓋範圍規則。

運作方式

  1. 服務會針對所選產品金鑰,搜尋輸入 JSON,然後取用其值。此物件包含一個產品物件。

  2. 使用產品資料來搜尋 Salesforce,服務會尋找產品並取回分級程序。

  3. 服務會以產品 JSON 結構對產品進行評分。

  4. 服務會傳回具有總價與總投保總金額的產品物件。輸出 JSON 包含來自等級程序的剖析結果 JSON,作為 CalculatedPriceData 的值。如果公式在產品上設定,則服務也會設定價格和 totalSumInsured。

遠端選項

選項

描述

aggByKey

PRODUCT.instanceKey

設定 aggByKey 時,如果 aggregationResult 不是空白,則其值會包含在計算程序的 aggregationResult 中。(當計算程序已設定彙總步驟時,通常會填入 aggregationResult)。

例如,汽車保險報價或保單會將多個司機附加至每個受保的汽車。受保的汽車針對每個 auto+driver 例項都有個別的 instanceKey。aggByKey 會取用車輛的所有 instanceKeys,並建立每個 instanceKey 的涵蓋範圍保費陣列,並將其傳遞至計算程序,以便正確計算保費。

alwaysCreateInstance

針對在指定階層層級中具有多個子系規格、無孫系規格,且只有一個根層級分級程序的產品,將此選項設定為 true。

針對不符合這些條件的產品省略此選項。

若要設定此類型產品的 userInputs 格式,請參閱 repriceProduct 的 每個產品一個評分程序。

effectiveDate

“YYYY-MM-DD HH:MM:SS”

或

%OmniScriptDataElement%

預設為今天日期。

evalOptionalCoverageRelationship

true 或 false

如果此選項 = true,則服務會先撥打updateOptionalCovIsSelectedField 電話,然後再撥打 repriceProduct。

getDataDRBundleName

Omnistudio 資料對應器的名稱,此服務會用來取得原則 (資產) 資訊。

如果您使用 Salesforce FSC,則必須指定此選項或 getDataCustomClassName。

getDataCustomClassName

此服務使用的自訂類別名稱,此名稱會用於取得原則 (資產) 資訊。

如果您使用 Salesforce FSC,則必須指定此選項或 getDataDRBundleName。

includeInputKeys

服務傳入和傳出計算程序之以逗號分隔金鑰/值配對的字串。

這些金鑰/值配對包含在 CalculatedPriceData 物件內的輸出產品物件中。他們可以幫助您剖析計算結果。

只有計算程序使用的輸入索引鍵在結果中具有值。

includeRawCalculationResult

true 或 false

預設為 false。

在 RawPriceData 金鑰中包含計算程序的完整結果。

validateCoverageSelection

true 或 false

如果您計畫使用選用涵蓋範圍驗證規則,請設定為 true。當此選項設定為 true 時,服務會先呼叫 InsuranceSelectValidationService 再呼叫重新定價。

calculateTaxesAndFees

選擇性

true 或 false

設定為 true 以計算目標產品的稅額與費用。

如果您使用 Salesforce FSC 並將此選項設為 true,則您也必須指定 getDataDRBundleName 或 getDataCustomClassName 選項。

jurisdictionIds

識別碼的字串清單

與 calculateTaxesAndFees 選項一併使用。

僅計算與所提供的管轄權相關聯的稅金和費用。

taxAndFeeEffectiveDate

此服務用於計算稅額與費用的生效日期。此選項與用於定價產品的 effectiveDate 選項分開。

如果提供值,則服務會使用該值。

如果未提供值,且產品 JSON 不是原則,則服務預設為今天日期。

如果未提供值,且產品 JSON 是原則,則服務會使用原始原則版本的生效日期。

withTaxFeeRounding

選擇性

如果為 true,則會使用半偶數捨入方法將計算的稅金與費用金額捨入至兩個小數位數。withTaxFeeRounding 只有在 calculateTaxesAndFees 選項也是 true 時才有效。如果為 false,則捨入會停用。

預設值為 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": {
      ...
    }
 
正在載入
Salesforce Help | Article