Loading
保險
InsProductService:getRatedProducts

InsProductService:getRatedProducts

使用此服務可取得一或多個產品陣列,並使用附加至這些產品的評分程序進行定價。此服務也包含額外功能,例如稅額和費用計算、篩選和效能最佳化。

類別:InsProductService

方法:getRatedProducts

若要使用此服務,請傳遞評等程序所需的輸入集以定價產品。服務會傳回產品的已篩選陣列,以及來自等級程序的結果 JSON。

運作方式

  1. 此服務會搜尋 Salesforce 以在生效開始與結束日期之內的已啟用產品集。如需詳細資訊,請參閱下方 effectiveDate。

    作為查詢的一部分,服務會使用在篩選選項中傳遞的條件來取得初始產品集。從 Salesforce 提取的資料包含產品的資格規則和等級程序、受保項目規格、受保者規格、涵蓋範圍規格、等級實情規格及其所有屬性。

  2. 根據其資格規則評估初始集中的每個產品,進一步減少產品集。

  3. 在「輸入 JSON」中搜尋 userInputs 金鑰,並取回金鑰的值。userInputs 是評等程序用來取得產品價格的輸入資料集。服務會根據產品評分輸入對應評估此物件,以建立評分程序所需的輸入 JSON。

    您會根據產品定義和等級組態,以不同的格式設定 userInputs。若要避免發生錯誤,請篩選所有使用相同類型 userInputs 格式的產品。

  4. 將在步驟 2 中建立之集合中的每個產品評分。其會透過步驟 3 的輸入 JSON 呼叫產品的相關聯評分程序。

  5. 傳回包含每個產品總價與總投保總金額的產品物件陣列。

    每個退貨的產品物件也會從等級程序中包含輸出 JSON 作為 CalculatedPriceData 的值。如果公式在產品上設定,則服務也會設定 price 和 totalSumInsured。

    請記住:

    • 如果單一屬性同時設定「設定值」屬性規則和「設定預設值」屬性規則,則 getRatedProducts 只會套用「設定預設值」屬性規則。

    • 最佳作法是,當您設定屬性規則運算式時,請勿參照較低層級結構中的屬性值。

遠端選項

等級選項

選項

描述

aggByKey

PRODUCT.instanceKey

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

例如,若車保單有多名駕駛人為多輛車投保,則需要將 aggByKey 傳遞至計算程序。

alwaysCreateInstance

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

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

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

includeInputKeys

要在 CalculatedPriceData 物件內包含在輸出產品物件中的輸入按逗號分隔鍵值字串。

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

rateType

Age 或 Composite

將此選項用於小群組評分。

searchText

PartOfAProductName

如果使用此選項,則服務只會取得名稱包含您所提供值的產品。

sortBy

productField1、productField2。

依照您指定的順序排序服務取得的產品。

您可以使用具有此選項的 DESC 來依遞減順序排序產品。您可以指定要從中衍生的第一個項目。如果您未指定開始的位置,則 DESC 會依英文字母順序排序。

如果您未指定此選項的值,則服務會依名稱的遞增英文字母順序排序傳回的產品。

篩選選項

選項

描述

attributeFilters

attributeCode 與值的對應

僅傳回滿足篩選中所提供屬性值的產品。

effectiveDate

“YYYY-MM-DD HH:MM:SS” 或 %OmniScriptDataElement%

預設為今天日期。

服務會提取在 EffectiveDate__c 和 EndDate__c 和 IsActive 之間有 effectiveDate 的產品。

服務也會使用 effectiveDate 選取用於對產品評分的正確版本計算程序。

filters

Product2FieldName:Value

Product2FieldName:%ElementName%

使用 API 名稱加上冒號加上值或變數。例如,在 OmniScript 中,變數可以是元素的名稱,例如輸入選項清單。

使用逗號分隔多個篩選參數:

ProductCode:Value,ProductCode:%ElementName%

篩選條件可包含 Product2 物件上的任何欄位。

includeFilterAttrValues

true 或 false

預設為 false。

在輸出 JSON 中,這會連同產品陣列一起新增 filterAttrValues 物件。此物件包含標記為可篩選的根產品屬性,以及可能的值清單。某些 UI 範本會使用此清單來篩選大型產品集。

不包含子系產品屬性。

whereClause

輸入任何有效的 Salesforce SOQL 陳述式作為此選項的值。

當您需要此服務來在搜尋產品時查看多重選項清單欄位時,請使用此功能。

例如,陳述式會在多重選擇選項清單中vlocity_ins_marketsegment_c includes ('Small Group') 挑選具有「市場區段」「小群組」和多個或沒有更多市場區段的產品。

重要
重要

從您的篩選索引鍵中移除 whereClause 中欄位的任何參照。

例如,如果篩選條件中有 vlocity_ins_marketsegment_c:Small Group 且有包含相同欄位參照的 whereClause,則這些項目會發生衝突,產生無法預期的結果。

最佳化選項

選項

描述

includeOptionalCovSelectFlag

true 或 false

預設為 false。

將此選項設定為 true,讓服務在將等級輸入傳送至計算程序前評估選用涵蓋規則。

如果產品未使用選用涵蓋範圍,請使用預設設定為 false。將選用的涵蓋範圍資料取得並新增至評分輸入需要額外處理,且可能會使此服務速度變慢。

includeRawCalculationResult

true 或 false

預設為 false。

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

isBatchMode

true 或 false

設定為 true 時,服務會傳回不包含屬性種類,但包含屬性選取值與規則的簡化產品 JSON。

設定為 false 時,服務會傳回完整產品 JSON。

當沒有使用者介面耗用服務結果時,此選項很有用。例如,如果您在批次模式中執行包含此服務的整合程序。

mergeList

true 或 false

預設為 false。

使用相同的評分程序,依產品將評分程序呼叫分組,以最佳化評分呼叫。它會使用輸入物件陣列進行一個等級呼叫。

當提取大量產品清單時,這相當有用。多個等級呼叫可以達到 SQL 限制。評分程序結構已最佳化,以處理輸入物件陣列,並將所需的 SQL 查詢數目最小化。

omitChildren

true 或 false

只有在您將 omitRating 設定為 true 時,才將此選項設定為 true。這會傳回沒有定價的產品。

omitRating

true 或 false

如果為 true,則服務會不含定價退回產品。

productClasses

“ProductClassName1,ProductClassName2”

產品類別名稱的逗號分隔清單。將產品清單限制為以下產品類別。

rootPricingOnly

true 或 false

預設為 false。

此選項透過減少堆疊大小來改善效能。

如果您使用的等級程序僅在根產品層級定義,您可以將此選項設定為 true 以改善效能。

規則選項

選項

描述

evalOptionalCoverageRelationship

true 或 false如果設定為 true,則服務會執行選用的涵蓋範圍關係規則。

omitEligibility

true 或 false

預設為 false。

設定為 true 時,服務不會查詢符合資格的產品。

您必須改為在輸入地圖或選項地圖的主要 products 下提供清單產品識別碼。產品識別碼清單或以逗號分隔的產品識別碼字串皆為可接受的 products 值。

ruleAttributeSetValues

true 或 false

設定為 false 時,服務不會執行屬性集值規則。

設定為 true 時,服務會執行屬性集值規則。

validateCoverageSelection

true 或 false

如果您有需要服務執行的驗證規則,則設定為 true。

附加元件函數選項

選項

描述

calculateTaxesAndFees

選擇性

true 或 false

設定為 true 時,計算目標產品的稅額和費用。

includeFullProductJson

true 或 false

此選項會根據輸入 JSON 控制回應 API 中其他孫系節點的存在。設定為 true 時,輸出 JSON 有兩個變更:

  • 如果孫系的類型是「受保對象」,則父系 JSON 節點會包含兩個額外的子系節點;主要對象與其他對象。這些兩個新節點會根據是否針對孫系節點設定isPrimary 標記填入。

  • 如果孫系的類型是「受保項目」,則這些兩個節點 (主要對象和其他對象) 不會出現在回應 API 中。輸入 JSON 中包含的孫系會連結至 API 輸出 JSON 中的正確父系節點。

針對舊版相容性,預設值為 false。

jurisdictionIds

類型:識別碼的字串清單

與 calculateTaxesAndFees 選項一併使用。

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

taxAndFeeEffectiveDate

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

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

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

withTaxFeeRounding

選擇性

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

預設值為 false。

UI 選項

選項

描述

lastRecordId

指定服務提取至 UI 的最後產品識別碼。

將此選項搭配 pageSize 選項使用。

pageSize

決定服務在一個通話中將多少產品退回到 UI。

輸入 JSON

InsProductService: getRatedProducts 會在輸入 JSON 中尋找 userInputs 金鑰。根據產品定義和等級組態,使用適當的 userInputs 格式。服務一次只能接受一種 userInputs 格式。

輸出 JSON

服務會傳回一或多個產品物件的陣列。如需此物件的詳細資訊,請參閱產品 JSON 結構模型。

輸入 JSON 中任何對應的 userInputs 都會新增至產品物件,作為對應至其屬性的單一例項其 userValues 索引鍵。

針對每個產品,等級程序計算中的輸出 JSON 會使用 CalculatedPriceData 金鑰新增至產品。如果在產品上設定定價公式,則 Price 的值將設定為其計算值。如果在產品上設定總計投保公式,則 TotalInsured 的值會設定為其計算值。

在此範例中,會在產品上設定定價公式,但不會設定總計受保公式。系統會將 CalculatedPriceData 新增至等級程序的結果,然後根據公式計算價格。總計受保公式不會顯示在資料中,也不會顯示在 TotalInsured 中。

{
  "totalSize": 2,
  "records": [{
      "displaySequence": -1,
      "CalculatedPriceData": {
        "ID": "1",
        "basePremium": 719,
        "premGenlLiab": "356"
      },
      "Id": "01t6A000000FshIQAS",
      "Name": "Economy Business",
      "Family": "Commercial Lines",
      "ProductCode": "bop-ECON",
      "LineOfBusiness__c": "Property & Casualty",
      "Type__c": "BusinessOwners",
      "IsRecommended__c": false,
      "RecordTypeName__c": "Product",
      "IsConfigurable__c": true,
      "PricingFormula__c": "basePremium + premGenlLiab",
      "Term__c": "Annual",
      "productId": "01t6A000000FshIQAS",
      "Price": 1075,
      "childProducts": {
        ...
      },
      "attributeCategories": {
        ...
      }
    },
    {
      ...
    }
  }

filterAttrValues Key

includeFilterAttrValues 選項會將產品陣列放在 ratedProducts 節點中,並在其中新增 filterAttrValues 結果。

{
  "result": {
    "filterAttrValues": {
      "covType": {
        "listOfValues": [
          "Superior",
          "Economy"
        ],
        "valueDataType": "Text",
        "attributeName": "Type",
        "categoryName": "Policy Terms"
      },
      "covDeductible": {
        "listOfValues": [
          "1000",
          "250"
        ],
        "valueDataType": "Currency",
        "attributeName": "Deductible",
        "categoryName": "Policy Terms"
      }
    },
    "ratedProducts": {
      "totalSize": 2,
      "records": [{
          "displaySequence": -1,
          "CalculatedPriceData": {
            "ID": "1",
            "basePremium": 719,
            "premGenlLiab": "356"
          },
          "Id": "01t6A000000FshIQAS",
          "Name": "Economy Business",
          "Family": "Commercial Lines",
          "ProductCode": "bop-ECON",
          ...,
          "Price": 1075,
          "childProducts": {
            ...
          },
          "attributeCategories": {
            ...
          }
        },
        {
          ...
        }
      }
    }
  }

每個可篩選屬性會以金鑰設定為屬性程式碼,新增至物件。每個篩選屬性的值都是包含下列項目的物件:

關鍵字

值

attributeName

屬性的名稱。

categoryName

種類的名稱。

listOfValues

來自陣列中產品的可能值清單。

valueDataType

屬性的資料類型,例如文字或貨幣。

稅金與費用

如果稅金與費用使用服務,則計算的稅金與費用會以三種不同的方式顯示在 JSON 記錄上:

  1. 如果記錄已計算稅額和費用,則會將其儲存為 taxesAndFees 欄位上的清單。

    {
      "taxesAndFees": [{
        "Id": 1,
        "calculatedAmount": 10,
        "Type__c": "Tax"
      }, {
        "Id": 2,
        "calculatedAmount": 15,
        "Type__c": "Fee"
      }]
    }
  2. 如果記錄已計算自己或其子系的稅額,則會將自己和其子系的稅額總和儲存在 taxAmount 欄位上。

    {  "taxAmount”: 25 // 10 from self, 15 from children}
  3. 如果記錄已針對本身或其子系計算費用,則會在 feeAmount 欄位中儲存本身及其子系的計算費用總和。

    {  "feeAmount”: 30 // 15 from self, 15 from children}

含子系記錄以及根記錄的稅金與費用的範例 JSON 輸出會如下所示:

{
  "Id": 1,
  "productName": "Product",
  "taxesAndFees": [{
    "Id": 1,
    "calculatedAmount": 10,
    "Type__c": "Tax"
  }, {
    "Id": 2,
    "calculatedAmount": 15,
    "Type__c": "Fee"
  }],
  "taxAmount": 25
  "feeAmount": 30
  "childProducts": {
    "records": [{
      "Id": 2,
      "productName": "Insured Item",
      "taxesAndFees": [{
        "Id": 3,
        "calculatedAmount": 15,
        "Type__c": "Tax"
      }],
      "taxAmount": 15
    }, {
      "Id": 3,
      "productName": "Coverage",
      "taxesAndFees": [{
        "Id": 4,
        "calculatedAmount": 15,
        "Type__c": "Fee"
      }],
      "feeAmount": 15
    }]
  }
}

星號評分

您可以使用 attributeFilters 輸入,根據產品建模人員建立為屬性的等級來篩選產品。

 
正在載入
Salesforce Help | Article