詳細情報:
InsProductAsyncRatingService:repriceProduct
selectedProduct JSON と userInput に基づいて商品の価格を非同期で再計算します。
クラス: InsProductAsyncRatingService
方法: repriceProduct
このサービスは、グループ特典の大規模商品評価の使用事例向けに構築されています。
操作手順
- このサービスは、JSON、
userInput、およびcensusIdをselectedProductします。 - 次に、サービスは商品を参照して、([
PricingStrategyType__c] 項目に基づいて) 国勢調査ベースの評価とサマリーベースの評価のどちらに設定されているかを判断します。 - サービスは
InsuranceRatingPtc.rateCensusCore サービスをコールして、すべての商品の価格を計算します。InsuranceRatingPtc.rateCensusサービスは非同期サービスであるため、すぐに価格が返されるわけではありません。代わりに、asyncRequestIdを返します。
入力:
| 入力 | 説明 |
|---|---|
groupClassIds
|
省略可能。 グループクラス ID のリスト。 |
productCategories
|
省略可能。 商品カテゴリのリスト。順序は |
selectedProduct
|
必須。 再価格設定する商品。 |
userInputs
|
必須。 評価手順で商品の価格を取得するために使用する入力データのセット。 Map <String, Object> では、すべての商品で同じ入力データセットが使用されます。 List<Map<String, Object>> の場合、リストのサイズは
|
リモートオプション
| オプション | 説明 |
|---|---|
censusId
|
必須。 グループ国勢調査の ID。 |
effectiveDate
|
評価に使用される発効日。 「YYYY-MM-DD HH:MM:SS」形式を使用します。 デフォルトは今日の日付です。 |
evalOptionalCoverageRelationship
|
国勢調査のプライマリメンバーとの関係に基づいて、参加者が利用できる省略可能な補償を評価するかどうかを決定します。このオプションが [true] に設定されている場合、サービスは最初に updateOptionalCovIsSelectedField をコールしてから、repriceProduct をコールします。 |
ruleAttributeSetValues
|
[値を設定] ルールを実行するかどうかを決定します。このオプションを [true] に設定すると、サービスは価格設定エンジンをコールする前に属性の [値の設定] ルールを実行します。 |
validateCoverageSelection
|
選択した補償範囲に対して補償範囲入力規則を実行するかどうかを決定します。このオプションを [true] に設定すると、サービスは repriceProduct をコールする前に InsuranceSelectValidationService をコールします。 |
Input JSON
入力 JSON の例を次に示します。
{
"userInputs": {"DentalCoverage.copay": 100},
"groupClassIds": ["0rEDI0000000IEe2AM", "0rEDI0000000IEe4Hr"],
"productCategories": ["Dental"],
"selectedProduct": {
"records": [
{
"displaySequence": -1,
"CalculatedPriceData": {
"2015 Lexus LX250": {
" DRIVER.FN": null,
"AUTO.instanceKey": "2015 Lexus LX250",
"totalPrice": 1650,
"comprehensiveTotal": 500,
"collisionTotal": 500,
"liabilityTotal": 650,
"totalTotal": 400,
"perAccidentTotal": 150,
"perPersonTotal": 100,
"ID": "1"
}
},
"Id": "01tB0000001qc4JIAQ",
"Name": "Auto Root",
"ProductCode": "AUTOROOT",
"IsRecommended__c": false,
"RecordTypeName__c": "Product",
"IsConfigurable__c": false,
"PricingFormula__c": "SUM(liabilityTotal + comprehensiveTotal + collisionTotal + stateTotal)",
"Term__c": "Annual",
"TotalInsuredFormula__c": "SUM(AUTO.carValue)",
"productId": "01tB0000001qc4JIAQ",
"currencyCode": "USD",
"currencySymbol": "$",
"Price": 1000,
"totalSumInsured": 0,
"taxesAndFees": [
{
"calculatedAmount": 100,
"currencySymbol": "$",
"currencyCode": "USD",
"Type__c": "Fee",
"RatingType__c": "Amount",
"ProcedureSource__c": null,
"ProcedureName__c": null,
"ProcedureFormula__c": null,
"Percent__c": null,
"JurisdictionId__c": null,
"IsRefundable__c": false,
"Condition__c": null,
"Amount__c": 100,
"Name": "acaf9c93-67b1-5a94-c98f-e7a1387361f1",
"Id": "a4OB0000000ErbeMAC"
},
{
"calculatedAmount": 50,
"currencySymbol": "$",
"currencyCode": "USD",
"Type__c": "Tax",
"RatingType__c": "Percent",
"ProcedureSource__c": null,
"ProcedureName__c": null,
"ProcedureFormula__c": null,
"Percent__c": 5,
"JurisdictionId__c": null,
"IsRefundable__c": true,
"Condition__c": null,
"Amount__c": null,
"Name": "c4b50dd7-7b28-27c0-8b9f-87cd68e6a478",
"Id": "a4OB0000000ErbfMAC"
}
],
"taxAmount": 160,
"feeAmount": 145,
"totalTaxFeeAmount": 305,
"childProducts": {
"totalSize": 2,
"records": [
{
"displaySequence": 1,
"Id": "01tB0000001qc5lIAA",
"Name": "Collision Deductible Waiver",
"Description": "We waive your Collision deductible when you're in an accident caused by a driver who has no insurance.",
"ProductCode": "COL_WAIVER",
"IsRecommended__c": false,
"RecordTypeName__c": "CoverageSpec",
"IsConfigurable__c": true,
"productId": "01tB0000001qc5lIAA",
"pciId": "a4bB0000000CzkzIAC",
"isOptional": false,
"isSelected": true,
"attributeCategories": {
"totalSize": 1,
"records": [
{
"displaySequence": 1981,
"Code__c": "AUTO_COVERAGE",
"Name": "Auto Coverage",
"productAttributes": {
"totalSize": 1,
"records": [
{
"code": "DED_WAIVER",
"dataType": "text",
"inputType": "dropdown",
"multiselect": false,
"required": false,
"readonly": false,
"disabled": false,
"filterable": true,
"label": "Collision Deductible Waiver",
"displaySequence": 3,
"hasRules": false,
"hidden": false,
"values": [
{
"id": "0",
"label": "No coverage",
"readonly": false,
"disabled": false,
"value": "No coverage"
},
{
"id": "1",
"label": "$1,000 deductible",
"readonly": false,
"disabled": false,
"value": "1000"
}
],
"userValues": "No coverage"
}
]
}
}
]
}
}
]
}
}
]
}
}オプション JSON
オプション JSON のサンプルを次に示します。
{
"censusId": "0rfRO00000009WTYAY",
"effectiveDate": "2023-06-22 00:00:00"
}出力 JSON
出力 JSON の例を次に示します。
{
"asyncRequestId": {
"01tRO000000k6RyYAI": "8zk9f00000Q5jUEHNS"
}
}