Loading
Страхование
InsProductAsyncRatingService:repriceProduct

InsProductAsyncRatingService:repriceProduct

Асинхронный пересчет цены продукта на основе selectedProduct JSON и userInput.

Класс: InsProductAsyncRatingService

Метод: repriceProduct

Эта служба создана для сценариев использования «Рейтинг продуктов больших объемов групповой выгоды».

Принцип работы

  1. Данная служба использует selectedProduct JSON, userInput и censusId
  2. Далее служба рассматривает продукт, чтобы определить, настроен ли он для рейтинга на основе переписи или рейтинга на основе резюмирования (на основе поля PricingStrategyType__c).
  3. Служба вызывает базовую службу InsuranceRatingPtc.rateCensus для расчета цены на все продукты. Служба InsuranceRatingPtc.rateCensus является асинхронной службой, поэтому не возвращает цену немедленно. Вместо этого возвращается asyncRequestId.

Вводные данные

Ввод Описание
groupClassIds

Дополнительно.

Список кодов классов группы.

productCategories

Дополнительно.

Список категорий продуктов. Последовательность должна соответствовать последовательности productIds

selectedProduct

Обязательно.

Продукт для повторной цены.

userInputs

Обязательно.

Набор вводных данных, используемый процедурой рейтинга для получения цены продукта.

Для соотнесения <Строка, объект> используется одинаковый набор вводных данных для всех продуктов.

Размер поля «Список<Карта<Строка», «Объект>>» должен соответствовать размеру productIds. Если у некоторых продуктов нет userInput, добавьте {} в список.

Выбор покрытий с CoverageProductCode.isSelected не поддерживается, но учитывается при расчете цен.

Удаленные параметры

Параметр Описание
censusId

Обязательно.

Код групповой переписи.

effectiveDate

Дата вступления в силу, используемая для оценки.

Использует формат "ГГГГ-ММ-ДД ЧЧ:ММ:СС".

Значение по умолчанию - сегодняшняя дата.

evalOptionalCoverageRelationship Определяет необходимость оценки дополнительных покрытий, доступных участнику на основе его взаимосвязи с основным участником переписи. Если этот параметр установлен на true, служба сначала вызывает updateOptionalCovIsSelectedField, а потом repriceProduct.
ruleAttributeSetValues Определяет необходимость выполнения правил установки значения. Если этот параметр установлен на true, служба выполняет атрибут «Задать правила значения» перед вызовом механизма ценообразования.
validateCoverageSelection Определяет необходимость выполнения правил проверки покрытия для выбранных покрытий. Если этот параметр установлен на true, служба звонит InsuranceSelectValidationService перед вызовом repriceProduct.

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"
  }
}
 
Загрузка
Salesforce Help | Article