Loading
Försäkring
InsProductAsyncRatingService:repriceProduct

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

  1. Denna tjänst tar selectedProduct JSON, userInput och censusId
  2. 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).
  3. Tjänsten anropar InsuranceRatingPtc.rateCensus kä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 ett asyncRequestId.

Indata

Indata Beskrivning
groupClassIds

Valfritt.

En lista över gruppklass-ID:n.

productCategories

Valfritt.

En lista över produktkategorier. Ordningen ska vara samma som productIds

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 productIds. Om vissa produkter inte har userInputett , lägg till ett {} i listan.

Att välja täckningar med CoverageProductCode.isSelected stöds inte, men det beaktas vid beräkning av prissättning.

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"
  }
}
 
Laddar
Salesforce Help | Article