breadcrumbDescription
InsProductAsyncRatingService:repriceProduct
Genberegn asynkront prisen på et produkt baseret på selectedProduct JSON og userInput.
Kategori: InsProductAsyncRatingService
Metode: repriceProduct
Denne tjeneste er opbygget til anvendelsessituationer med Group Benefit - Storvolumen Produktvurdering.
Sådan fungerer det
- Denne tjeneste bruger
selectedProductJSON,userInputogcensusId - Derefter ser tjenesten på produktet for at bestemme, om det er konfigureret til optællingsbaseret vurdering eller sammendragsbaseret vurdering (baseret på feltet
PricingStrategyType__c). - Tjenesten ringer til
InsuranceRatingPtc.rateCensusCore-tjenesten for at beregne prisen for alle produkterne.InsuranceRatingPtc.rateCensuser en asynkron tjeneste, så den returnerer ikke prisen med det samme. I stedet returnerer den enasyncRequestId.
Input
| Input | Beskrivelse |
|---|---|
groupClassIds
|
Valgfrit. En liste over gruppe-klasse-id'er. |
productCategories
|
Valgfrit. En liste over produktkategorier. Sekvensen skal være den samme som |
selectedProduct
|
Påkrævet. Det produkt, der skal prissættes igen. |
userInputs
|
Påkrævet. Det sæt inputdata, som vurderingsproceduren bruger til at hente prisen på produktet. For et Tilknyt <Streng, Objekt> bruges det samme sæt af inputdata til alle produkterne. For en List<Map<string, Object>>, skal størrelsen på listen være den samme som størrelsen på Valg af dækning med |
Fjernindstillinger
| Indstilling | Beskrivelse |
|---|---|
censusId
|
Påkrævet. Id'et for gruppetællingen. |
effectiveDate
|
Den ikrafttrædelsesdato, der bruges til vurdering. Bruger formatet "ÅÅÅÅ-MM-DD TT:MM:SS". Standard er dags dato. |
evalOptionalCoverageRelationship
|
Bestemmer, om valgfri dækninger, der er tilgængelige for en deltager, skal evalueres baseret på vedkommendes relation til det primære optællingsmedlem. Hvis denne indstilling er indstillet til true, ringer tjenesten først til updateOptionalCovIsSelectedField og ringer derefter til repriceProduct. |
ruleAttributeSetValues
|
Bestemmer, om der skal køres Angiv værdi-regler. Hvis denne indstilling er indstillet til true, kører tjenesten attributten Angiv værdi-regler, før prissætningssystemet kaldes. |
validateCoverageSelection
|
Bestemmer, om der skal køres valideringsregler for dækning på de valgte dækninger. Når denne indstilling er indstillet til true, ringer tjenesten til InsuranceSelectValidationService, før den ringer til repriceProduct. |
Input JSON
Her er eksempel på input-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"
}
]
}
}
]
}
}
]
}
}
]
}
}Options JSON
Her er eksempelindstillingerne JSON:
{
"censusId": "0rfRO00000009WTYAY",
"effectiveDate": "2023-06-22 00:00:00"
}Output JSON
Her er eksempelresultat-JSON:
{
"asyncRequestId": {
"01tRO000000k6RyYAI": "8zk9f00000Q5jUEHNS"
}
}