您位於此處:
InsProductService:getRatedProducts
使用此服務可取得一或多個產品陣列,並使用附加至這些產品的評分程序進行定價。此服務也包含額外功能,例如稅額和費用計算、篩選和效能最佳化。
運作方式
-
此服務會搜尋 Salesforce 以在生效開始與結束日期之內的已啟用產品集。如需詳細資訊,請參閱下方 effectiveDate。
作為查詢的一部分,服務會使用在篩選選項中傳遞的條件來取得初始產品集。從 Salesforce 提取的資料包含產品的資格規則和等級程序、受保項目規格、受保者規格、涵蓋範圍規格、等級實情規格及其所有屬性。
-
根據其資格規則評估初始集中的每個產品,進一步減少產品集。
-
在「輸入 JSON」中搜尋
userInputs金鑰,並取回金鑰的值。userInputs是評等程序用來取得產品價格的輸入資料集。服務會根據產品評分輸入對應評估此物件,以建立評分程序所需的輸入 JSON。您會根據產品定義和等級組態,以不同的格式設定
userInputs。若要避免發生錯誤,請篩選所有使用相同類型userInputs格式的產品。 -
將在步驟 2 中建立之集合中的每個產品評分。其會透過步驟 3 的輸入 JSON 呼叫產品的相關聯評分程序。
-
傳回包含每個產品總價與總投保總金額的產品物件陣列。
每個退貨的產品物件也會從等級程序中包含輸出 JSON 作為
CalculatedPriceData的值。如果公式在產品上設定,則服務也會設定price和totalSumInsured。請記住:
-
如果單一屬性同時設定「設定值」屬性規則和「設定預設值」屬性規則,則
getRatedProducts只會套用「設定預設值」屬性規則。 -
最佳作法是,當您設定屬性規則運算式時,請勿參照較低層級結構中的屬性值。
-
遠端選項
選項 |
描述 |
|---|---|
|
設定 例如,若車保單有多名駕駛人為多輛車投保,則需要將 |
|
針對在指定階層層級中具有多個子系規格、無孫系規格,且僅根層級有一個評分程序的產品,將此選項設定為 針對不符合這些條件的產品省略此選項。 若要設定此類型產品的 |
|
要在 只有計算程序使用的輸入索引鍵在結果中具有值。 |
|
將此選項用於小群組評分。 |
|
PartOfAProductName 如果使用此選項,則服務只會取得名稱包含您所提供值的產品。 |
|
productField1、productField2。 依照您指定的順序排序服務取得的產品。 您可以使用具有此選項的 如果您未指定此選項的值,則服務會依名稱的遞增英文字母順序排序傳回的產品。 |
選項 |
描述 |
|---|---|
|
僅傳回滿足篩選中所提供屬性值的產品。 |
|
預設為今天日期。 服務會提取在 服務也會使用 |
|
使用 API 名稱加上冒號加上值或變數。例如,在 OmniScript 中,變數可以是元素的名稱,例如輸入選項清單。 使用逗號分隔多個篩選參數:
篩選條件可包含 |
|
預設為 在輸出 JSON 中,這會連同產品陣列一起新增 不包含子系產品屬性。 |
|
輸入任何有效的 Salesforce SOQL 陳述式作為此選項的值。 當您需要此服務來在搜尋產品時查看多重選項清單欄位時,請使用此功能。 例如,陳述式會在多重選擇選項清單中 重要
從您的篩選索引鍵中移除 例如,如果篩選條件中有 |
選項 |
描述 |
|---|---|
|
預設為 將此選項設定為 如果產品未使用選用涵蓋範圍,請使用預設設定為 |
|
預設為 在 |
|
設定為 設定為 當沒有使用者介面耗用服務結果時,此選項很有用。例如,如果您在批次模式中執行包含此服務的整合程序。 |
|
預設為 使用相同的評分程序,依產品將評分程序呼叫分組,以最佳化評分呼叫。它會使用輸入物件陣列進行一個等級呼叫。 當提取大量產品清單時,這相當有用。多個等級呼叫可以達到 SQL 限制。評分程序結構已最佳化,以處理輸入物件陣列,並將所需的 SQL 查詢數目最小化。 |
|
只有在您將 |
|
如果為 true,則服務會不含定價退回產品。 |
|
“ProductClassName1,ProductClassName2” 產品類別名稱的逗號分隔清單。將產品清單限制為以下產品類別。 |
|
預設為 此選項透過減少堆疊大小來改善效能。 如果您使用的等級程序僅在根產品層級定義,您可以將此選項設定為 |
選項 |
描述 |
|---|---|
|
|
|
預設為 設定為 您必須改為在輸入地圖或選項地圖的主要 |
|
設定為 設定為 |
|
如果您有需要服務執行的驗證規則,則設定為 |
選項 |
描述 |
|---|---|
|
指定服務提取至 UI 的最後產品識別碼。 將此選項搭配 |
|
決定服務在一個通話中將多少產品退回到 UI。 |
輸入 JSON
InsProductService: getRatedProducts 會在輸入 JSON 中尋找 userInputs 金鑰。根據產品定義和等級組態,使用適當的 userInputs 格式。服務一次只能接受一種 userInputs 格式。
-
針對使用每個根產品單一評分程序的產品格式化
userInputs。 -
getRatedProducts 的每個產品或任何層級的多個評分程序
在產品階層中使用多個等級程序的產品其格式化
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": {
...
}
},
{
...
}
}
}
}每個可篩選屬性會以金鑰設定為屬性程式碼,新增至物件。每個篩選屬性的值都是包含下列項目的物件:
關鍵字 |
值 |
|---|---|
|
屬性的名稱。 |
|
種類的名稱。 |
|
來自陣列中產品的可能值清單。 |
|
屬性的資料類型,例如文字或貨幣。 |
稅金與費用
如果稅金與費用使用服務,則計算的稅金與費用會以三種不同的方式顯示在 JSON 記錄上:
-
如果記錄已計算稅額和費用,則會將其儲存為
taxesAndFees欄位上的清單。{ "taxesAndFees": [{ "Id": 1, "calculatedAmount": 10, "Type__c": "Tax" }, { "Id": 2, "calculatedAmount": 15, "Type__c": "Fee" }] } -
如果記錄已計算自己或其子系的稅額,則會將自己和其子系的稅額總和儲存在
taxAmount欄位上。{ "taxAmount”: 25 // 10 from self, 15 from children} -
如果記錄已針對本身或其子系計算費用,則會在
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
}]
}
}
- 每個產品一個 getRatedProducts 的評分程序
針對使用每個根產品單一評分程序的產品格式化InsProductService:getRatedProducts userInputs。 - 每個產品的多個評分程序,或 getRatedProducts 的多個任何層級規格
在產品階層中使用多個等級程序的產品其格式化InsProductService:getRatedProducts userInputs,或在階層的任何層級中使用多個子系規格的產品。
