Usted está aquí:
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
- Este servicio toma
selectedProductJSON,userInputy elcensusId - 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). - El servicio llama al servicio
InsuranceRatingPtc.rateCensusCore para calcular el precio de todos los productos. El servicio deInsuranceRatingPtc.rateCensuses un servicio asíncrono de modo que no devuelve el precio inmediatamente. En su lugar, devuelve unasyncRequestId.
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 |
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 No se admite la selección de coberturas con |
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"
}
}