Sie befinden sich hier:
InsProductAsyncRatingService:repriceProduct
Berechnen Sie den Preis eines Produkts asynchron anhand der JSON- und userInput-selectedProduct neu.
Klasse: InsProductAsyncRatingService
Methode: repriceProduct
Dieser Service wurde für Anwendungsfälle der Produktbewertung mit großem Volumen für Gruppenvorteile entwickelt.
Funktionsweise
- Dieser Service verwendet die JSON-,
userInput- undcensusId-selectedProduct. - Als Nächstes untersucht der Service das Produkt, um zu ermitteln, ob es für "Zensusbasierte Bewertung" oder "Zusammenfassungsbasierte Bewertung" (basierend auf dem Feld "
PricingStrategyType__c") konfiguriert ist. - Der Service ruft den
InsuranceRatingPtc.rateCensusCore-Service auf, um den Preis für alle Produkte zu berechnen. DerInsuranceRatingPtc.rateCensus-Service ist ein asynchroner Service und gibt den Preis daher nicht sofort zurück. Stattdessen wird einasyncRequestIdzurückgegeben.
Eingaben
| Eingabe | Beschreibung |
|---|---|
groupClassIds
|
Optional. Eine Liste der Gruppenklassen-IDs. |
productCategories
|
Optional. Eine Liste der Produktkategorien. Die Sequenz sollte mit |
selectedProduct
|
Pflichtangabe. Das Produkt, das neu berechnet werden soll. |
userInputs
|
Pflichtangabe. Der Satz an Eingabedaten, den das Bewertungsverfahren verwendet, um den Preis des Produkts zu erhalten. Bei einer Zuordnung <Zeichenfolge, Objekt> wird für alle Produkte derselbe Satz an Eingabedaten verwendet. Bei einer Liste<Karte<Zeichenfolge, Objekt>> sollte die Größe der Liste mit der Größe von Die Auswahl von Abdeckungen mit |
Remote-Optionen
| Option | Beschreibung |
|---|---|
censusId
|
Pflichtangabe. Die ID der Gruppenzählung. |
effectiveDate
|
Das für die Bewertung verwendete Datum des Inkrafttretens. Verwendet das Format "JJJJ-MM-TT HH:MM:SS". Standard ist das heutige Datum. |
evalOptionalCoverageRelationship
|
Legt fest, ob optionale Abdeckungen, die für einen Teilnehmer verfügbar sind, anhand seiner Beziehung zum primären Zählungsmitglied ausgewertet werden sollen. Wenn diese Option auf true festgelegt ist, ruft der Service zunächst updateOptionalCovIsSelectedField und dann repriceProduct auf. |
ruleAttributeSetValues
|
Legt fest, ob Wertregeln ausgeführt werden sollen. Wenn diese Option auf true festgelegt ist, führt der Service Attributregeln vom Typ "Wert festlegen" aus, bevor das Preisgestaltungsmodul aufgerufen wird. |
validateCoverageSelection
|
Legt fest, ob Abdeckungsvalidierungsregeln für die ausgewählten Abdeckungen ausgeführt werden sollen. Wenn diese Option auf true festgelegt ist, ruft der Service InsuranceSelectValidationService auf, bevor er repriceProduct aufruft. |
Input JSON
Hier ist die Beispiel-Eingabe-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
Im Folgenden finden Sie die JSON-Beispieloptionen:
{
"censusId": "0rfRO00000009WTYAY",
"effectiveDate": "2023-06-22 00:00:00"
}Ausgabe-JSON
Hier ist die Beispielausgabe-JSON:
{
"asyncRequestId": {
"01tRO000000k6RyYAI": "8zk9f00000Q5jUEHNS"
}
}
