U bent hier:
InsProductAsyncRatingService:repriceProduct
Bereken asynchroon de prijs van een product opnieuw op basis van selectedProduct JSON en userInput.
Klasse: InsProductAsyncRatingService
Methode: repriceProduct
Deze service is ontwikkeld voor gebruikscases van Productbeoordeling voor groot volume voor Groepsvoordeel.
De manier waarop het werkt...
- Deze service neemt
selectedProductJSON,userInputen decensusId - Vervolgens bekijkt de service het product om te bepalen of het is geconfigureerd voor Op telling gebaseerde beoordeling of Op overzicht gebaseerde beoordeling (op basis van het veld
PricingStrategyType__c). - De service roept de
InsuranceRatingPtc.rateCensusCore-service aan om de prijs voor alle producten te berekenen. DeInsuranceRatingPtc.rateCensusis een asynchrone service, dus de prijs wordt niet onmiddellijk geretourneerd. In plaats daarvan wordt eenasyncRequestIdgeretourneerd.
Invoer
| Invoer | Beschrijving |
|---|---|
groupClassIds
|
Optioneel. Een lijst van groepsklasse-ID's. |
productCategories
|
Optioneel. Een lijst van productcategorieën. De volgorde moet dezelfde zijn als |
selectedProduct
|
Verplicht. Het opnieuw te prijzen product. |
userInputs
|
Verplicht. De set invoergegevens die de beoordelingsprocedure gebruikt om de prijs van het product te bepalen. Voor een kaart <tekenreeks, object> wordt dezelfde set invoergegevens gebruikt voor alle producten. Voor een lijst<Map<String, Object>> moet de grootte van de lijst gelijk zijn aan de grootte van Het selecteren van dekkingen met |
Externe opties
| Optie | Beschrijving |
|---|---|
censusId
|
Verplicht. De ID van de groepstelling. |
effectiveDate
|
De ingangsdatum die wordt gebruikt voor beoordeling. Gebruikt de notatie "JJJJ-MM-DD UU:MM:SS". Standaard is de datum van vandaag. |
evalOptionalCoverageRelationship
|
Bepaalt of optionele dekkingen die beschikbaar zijn voor een deelnemer, moeten worden geëvalueerd op basis van diens relatie met het lid van de primaire telling. Als deze optie is ingesteld op true, roept de service eerst updateOptionalCovIsSelectedField aan en vervolgens repriceProduct. |
ruleAttributeSetValues
|
Bepaalt of regels voor Waarde instellen moeten worden uitgevoerd. Als deze optie is ingesteld op true, voert de service kenmerk Waarde instellen-regels uit voordat de prijsstellingsengine wordt aangeroepen. |
validateCoverageSelection
|
Bepaalt of validatieregels voor dekking moeten worden uitgevoerd voor de geselecteerde dekkingen. Wanneer deze optie is ingesteld op true, roept de service InsuranceSelectValidationService aan voordat repriceProduct wordt aangeroepen. |
Invoer-JSON
Hier is de voorbeeldinvoer-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"
}
]
}
}
]
}
}
]
}
}
]
}
}Opties JSON
Hier zijn de voorbeeldopties van JSON:
{
"censusId": "0rfRO00000009WTYAY",
"effectiveDate": "2023-06-22 00:00:00"
}Uitvoer-JSON
Hier is de voorbeelduitvoer-JSON:
{
"asyncRequestId": {
"01tRO000000k6RyYAI": "8zk9f00000Q5jUEHNS"
}
}