Du är här:
InsProductAsyncRatingService:repriceProduct
Omberäkna asynkront priset på en produkt baserat på selectedProduct JSON och userInput.
Klass: InsProductAsyncRatingService
Metod: repriceProduct
Denna tjänst är byggd för användningsfall för Group Benefit Large Volume Product Rating.
Så här fungerar det
- Denna tjänst tar
selectedProductJSON,userInputochcensusId - Sedan tittar tjänsten på produkten för att avgöra om den är konfigurerad för Census Based Rating eller Summary Based Rating (baserat på fältet
PricingStrategyType__c). - Tjänsten anropar
InsuranceRatingPtc.rateCensuskärntjänst för att beräkna priset för alla produkter.InsuranceRatingPtc.rateCensusär en asynkron tjänst så den returnerar inte priset direkt. Istället returneras ettasyncRequestId.
Indata
| Indata | Beskrivning |
|---|---|
groupClassIds
|
Valfritt. En lista över gruppklass-ID:n. |
productCategories
|
Valfritt. En lista över produktkategorier. Ordningen ska vara samma som |
selectedProduct
|
Obligatoriskt. Produkten som ska prissättas igen. |
userInputs
|
Obligatoriskt. Uppsättningen indata som värderingsförfarandet använder för att få fram priset på produkten. För en karta <Sträng, objekt> används samma uppsättning indata för alla produkter. För en List<Map<Sträng, Objekt>> ska Listan ha samma storlek som Att välja täckningar med |
Fjärralternativ
| Alternativ | Beskrivning |
|---|---|
censusId
|
Obligatoriskt. ID för gruppräkningen. |
effectiveDate
|
Det giltighetsdatum som används för värdering. Använder formatet "ÅÅÅÅ-MM-DD TT:MM:SS". Standard är dagens datum. |
evalOptionalCoverageRelationship
|
Avgör om valfria täckningar ska utvärderas för en deltagare baserat på deras relation till den primära folkräkningsmedlemmen. Om detta alternativ är inställt till true anropar tjänsten först updateOptionalCovIsSelectedField och anropar sedan repriceProduct. |
ruleAttributeSetValues
|
Avgör om regler för Ange värde ska köras. Om detta alternativ är inställt till true kör tjänsten attributet Ställ in värderegler innan prissättningsmotorn anropas. |
validateCoverageSelection
|
Avgör om valideringsregler för täckning ska köras för de valda täckningarna. När detta alternativ är inställt till true anropar tjänsten InsuranceSelectValidationService innan repriceProduct anropas. |
Indata-JSON
Här är exempel-JSON för indata:
{
"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"
}
]
}
}
]
}
}
]
}
}
]
}
}Alternativ JSON
Här är exempelalternativen JSON:
{
"censusId": "0rfRO00000009WTYAY",
"effectiveDate": "2023-06-22 00:00:00"
}JSON för utdata
Här är exempelutdata-JSON:
{
"asyncRequestId": {
"01tRO000000k6RyYAI": "8zk9f00000Q5jUEHNS"
}
}