Loading
Seguro
InsProductAsyncRatingService:repriceProduct

InsProductAsyncRatingService:repriceProduct

Vuelva a calcular de forma asíncrona el precio de un producto en base a selectedProduct JSON y userInput.

Clase: InsProductAsyncRatingService

Método: repriceProduct

Este servicio está creado para casos de uso de Valoración de producto de gran volumen de Beneficio de grupo.

Funcionamiento

  1. Este servicio toma selectedProduct JSON, userInput y el censusId
  2. A continuación, el servicio busca el producto para determinar si está configurado para Valoración basada en censo o Valoración basada en resumen (basándose en el campo PricingStrategyType__c).
  3. El servicio llama al servicio InsuranceRatingPtc.rateCensus Core para calcular el precio de todos los productos. El servicio de InsuranceRatingPtc.rateCensus es un servicio asíncrono de modo que no devuelve el precio inmediatamente. En su lugar, devuelve un asyncRequestId.

Entradas

Ingreso Descripción
groupClassIds

Opcional.

Una lista de identificadores de clase de grupo.

productCategories

Opcional.

Una lista de categorías de productos. La secuencia debe ser la misma que productIds

selectedProduct

Obligatorio.

El producto que se va a cambiar de precio.

userInputs

Obligatorio.

Conjunto de datos de entrada que el procedimiento de valoración utiliza para obtener el precio del producto.

Para un <Cadena, Objeto> de mapa, se utiliza el mismo conjunto de datos de entrada para todos los productos.

Para una Lista<Mapa<Cadena, Objeto>>, el tamaño de la Lista debe ser el mismo que el tamaño de la productIds. Si algunos productos no tienen un userInput, agregue un {} en la Lista.

No se admite la selección de coberturas con CoverageProductCode.isSelected, pero se tiene en cuenta al calcular los precios.

Opciones remotas

Opción Descripción
censusId

Obligatorio.

El Id. del censo de grupo.

effectiveDate

La fecha efectiva utilizada para la valoración.

Utiliza el formato "AAAA-MM-DD HH:MM:SS".

El valor predeterminado es la fecha de hoy.

evalOptionalCoverageRelationship Determina si evaluar coberturas opcionales disponibles para un participante basándose en su relación con el miembro del censo principal. Si esta opción está establecida como true, el servicio llama primero a updateOptionalCovIsSelectedField y luego llama a repriceProduct.
ruleAttributeSetValues Determina si ejecutar reglas Establecer valor. Si esta opción está establecida como true, el servicio ejecuta reglas de Establecer valor de atributo antes de llamar al motor de precios.
validateCoverageSelection Determina si ejecutar reglas de validación de cobertura en las coberturas seleccionadas. Cuando esta opción está establecida como true, el servicio llama a InsuranceSelectValidationService antes de llamar a repriceProduct.

JSON de entrada

Este es el JSON de entrada de muestra:

{
 "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 de opciones

Este es el JSON de opciones de muestra:


{     
  "censusId": "0rfRO00000009WTYAY",
  "effectiveDate": "2023-06-22 00:00:00"
}

JSON de salida

Este es el JSON de salida de muestra:

{
  "asyncRequestId": {
    "01tRO000000k6RyYAI": "8zk9f00000Q5jUEHNS"
  }
}
 
Cargando
Salesforce Help | Article