詳細情報:
InsProductService:repriceProduct
このサービスを使用して、その商品に添付されている評価手順を使用して 1 つの商品の価格を設定します。通常、このサービスはユーザーが商品を選択し、その対象範囲をカスタマイズするときにコールされます。
方法: repriceProduct
サービスは、入力 JSON で 1 つの商品オブジェクトを取得し、合計価格と合計保険金額を含む商品を返します。また、評価手順から完全な結果 JSON を返します。
このサービスは 1 人以上の被保険者 (保険契約商品でカバーされる人) と 1 人以上の被保険者項目 (自動車保険契約の複数の車など) で機能します。
このサービスでは、見積を変更するときに [対象資格]、[必須]、[デフォルトの補償範囲] オプションルールは実行されません。
操作手順
-
サービスは、選択したプロダクトキーの入力 JSON を検索し、その値を取得します。このオブジェクトには 1 つの商品オブジェクトが含まれます。
-
商品データを使用して Salesforce を検索し、サービスが商品を見つけて評価手順を取得します。
-
このサービスは、商品 JSON 構造を使用して商品を評価します。
-
このサービスは、合計金額と合計保険金額を含む商品オブジェクトを返します。出力 JSON には、評価手順の解析結果 JSON が
CalculatedPriceDataの値として含まれます。商品で数式が設定されている場合は、価格とtotalSumInsuredも設定されます。
リモートオプション
オプション |
説明 |
|---|---|
|
たとえば、自動車保険の見積または保険契約には、各被保険者自動車保険に複数の運転者が関連付けられています。自動車保険の被保険者には、Auto+Driver インスタンスごとに個別の |
|
階層の特定のレベルに複数の子仕様があり、孫仕様がなく、ルートレベルで評価手順が 1 つのみの製品に対して、このオプションを [ これらの条件をすべて満たしていない商品については、このオプションを省略します。 この種別の商品の |
|
または %OmniScriptDataElement% デフォルトは今日の日付です。 |
|
このオプションが |
|
このサービスでポリシー (アセット) 情報を取得するために使用する OmniStudio データマッパーの名前。 Salesforce FSC を使用している場合は、このオプションまたは |
|
このサービスがポリシー (納入商品) 情報を取得するために使用するカスタムクラスの名前。 Salesforce FSC を使用している場合は、このオプションまたは |
|
サービスが計算手順に渡す、または計算手順から渡すキー/値ペアのカンマ区切り文字列。 これらのキー/値のペアは、 結果に値が含まれるのは、計算手順で使用される入力キーのみです。 |
|
デフォルトは 計算手順の結果全体を |
|
省略可能な補償範囲入力規則を使用する場合は、[ |
|
省略可能
対象商品の税金と手数料を計算するには、 Salesforce FSC を使用していて、このオプションを |
|
ID の文字列リスト
指定された管轄区域に関連する税金と手数料のみを計算します。 |
taxAndFeeEffectiveDate
|
このサービスが税金と手数料の計算に使用する発効日。このオプションは、製品の価格設定に使用される 値を指定した場合、サービスはその値を使用します。 値が指定されておらず、商品 JSON がポリシーではない場合、サービスはデフォルトで今日の日付に設定されます。 値が指定されておらず、商品 JSON がポリシーの場合、サービスは元のポリシーバージョンの発効日を使用します。 |
withTaxFeeRounding
|
省略可能 true の場合、計算された税金と手数料の金額は、半偶数丸め方法を使用して小数点以下 2 桁に丸められます。 デフォルト値は false です。 |
Input JSON
InsProductService: repriceProduct は、入力 JSON の selectedProduct キーで商品オブジェクトを検索します。このオブジェクトには、関連付けられた補償範囲仕様、保険項目仕様、被保険者仕様、評価結果仕様など、商品の属性に対応付けられた評価手順に必要な入力が含まれます。このオブジェクトは、getRatedProducts などの他のサービスによって作成できます。ルート商品、子商品、孫商品が含まれます。サービスは商品構造を解析し、データを式セットまたは計算手順に渡します。評価に対応付けられた属性がオブジェクトに含まれていない場合、サービスでは商品管理者が設定したデフォルトが使用されます。
このサービスでは、入力 JSON 内のuserInputsキーも検索されるため、selectedProductノードに含まれていない評価要素も検出できます。商品定義と評価設定に応じて適切なuserInputs形式を使用します。このサービスでは、一度に 1 つのタイプのuserInputs形式のみを使用できます。
出力 JSON
サービスは、更新された価格設定情報を使用して、selectedProduct ノードと同じ JSON 構造を返します。このオブジェクトの内容と構造についての詳細は、「Product JSON Structure Model (製品 JSON 構造モデル)」を参照してください。
税金および手数料サービスを使用している場合、getRatedProductsが JSON に書き込む方法と同様に、JSON 出力が 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 の商品ごとに 1 つの評価手順
ルート商品ごとに 1 つの評価手順を使用する商品の形式InsProductService:repriceProduct userInputs。 - 商品ごとの複数の評価手順または repriceProduct の任意のレベルの複数の仕様
商品階層で複数の評価手順を使用する商品、または階層の任意のレベルで複数の子仕様を使用する商品の書式InsProductService:repriceProduct userInputs。
