Loading
Seguro
InsProductAsyncRatingService:repriceProduct

InsProductAsyncRatingService:repriceProduct

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

Clase: InsProductAsyncRatingService

Método: repriceProduct

Este servicio está creado para casos de uso 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

Entrada 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 la de productIds.

selectedProduct

Obligatorio.

El producto cuyo precio se va a cambiar.

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".

Predeterminado es la fecha de hoy.

evalOptionalCoverageRelationship Determina si evaluar las 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 el atributo Establecer reglas de valor 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

Estas son las opciones de muestra JSON:


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