Du er her:
InsProductAsyncRatingService:repriceProduct
Beregn prisen på et produkt på nytt asynkront basert på selectedProduct JSON og userInput.
Klasse: InsProductAsyncRatingService
Metode: repriceProduct
Denne tjenesten er bygget for brukstilfeller med Group Benefit Large Volume Product Rating.
Slik virker det
- Denne tjenesten tar
selectedProductJSON,userInputogcensusId - Tjenesten ser deretter på produktet for å finne ut om det er konfigurert for Census Based Rating eller Summary Based Rating (basert på
PricingStrategyType__c-feltet). - Tjenesten ringer
InsuranceRatingPtc.rateCensusCore-tjenesten for å beregne prisen for alle produktene.InsuranceRatingPtc.rateCensuser en asynkron tjeneste, så den returnerer ikke prisen umiddelbart. I stedet returneres det enasyncRequestId.
Inndata
| Inndata | Beskrivelse |
|---|---|
groupClassIds
|
Valgfritt. En liste over gruppeklasse-ID-er. |
productCategories
|
Valgfritt. En liste over produktkategorier. Sekvensen skal være den samme som |
selectedProduct
|
Obligatorisk. Produktet som skal prises på nytt. |
userInputs
|
Obligatorisk. Inndatasettet som rangeringsprosedyren bruker til å hente prisen på produktet. For en Tilordning <Streng, Objekt> brukes det samme settet inndata for alle produktene. For en List<Map<Streng, Object>> skal størrelsen på listen være den samme som størrelsen på Valg av dekning med |
Eksterne alternativer
| Alternativ | Beskrivelse |
|---|---|
censusId
|
Obligatorisk. ID-en til gruppensummeringen. |
effectiveDate
|
Gyldighetsdatoen som brukes til rangering. Bruker formatet "ÅÅÅÅ-MM-DD HH:MM:SS". Standard er dagens dato. |
evalOptionalCoverageRelationship
|
Bestemmer om valgfrie dekninger som er tilgjengelig for en deltaker, skal evalueres, basert på deres relasjon til det primære folketellingsmedlemmet. Hvis dette alternativet er satt til true, ringer tjenesten først updateOptionalCovIsSelectedField og deretter repriceProduct. |
ruleAttributeSetValues
|
Bestemmer om Angi verdi-regler skal kjøres. Hvis dette alternativet angis til true, kjører tjenesten attributt Angi verdi-reglene før prismotoren kalles opp. |
validateCoverageSelection
|
Bestemmer om valideringsregler for dekning skal kjøres på de valgte dekningene. Når dette alternativet er satt til true, ringer tjenesten InsuranceSelectValidationService før repriceProduct ringer. |
Inndata-JSON
Her er et eksempel på JSON-koden for inndata:
{
"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"
}
]
}
}
]
}
}
]
}
}
]
}
}Alternativer-JSON
Her er et eksempel på JSON-filen for alternativer:
{
"censusId": "0rfRO00000009WTYAY",
"effectiveDate": "2023-06-22 00:00:00"
}Utdata-JSON
Her er et eksempel på JSON-koden for utdata:
{
"asyncRequestId": {
"01tRO000000k6RyYAI": "8zk9f00000Q5jUEHNS"
}
}