Usted está aquí:
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
- 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
| 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 |
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 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". 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"
}
}