Loading
Forsikring
InsProductAsyncRatingService:repriceProduct

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

  1. Denne tjenesten tar selectedProduct JSON, userInput og censusId
  2. 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).
  3. Tjenesten ringer InsuranceRatingPtc.rateCensus Core-tjenesten for å beregne prisen for alle produktene. InsuranceRatingPtc.rateCensus er en asynkron tjeneste, så den returnerer ikke prisen umiddelbart. I stedet returneres det en asyncRequestId.

Inndata

Inndata Beskrivelse
groupClassIds

Valgfritt.

En liste over gruppeklasse-ID-er.

productCategories

Valgfritt.

En liste over produktkategorier. Sekvensen skal være den samme som productIds

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å productIds. Hvis noen produkter ikke har en userInput, legger du til en {} i listen.

Valg av dekning med CoverageProductCode.isSelected støttes ikke, men det tas hensyn til ved beregning av pris.

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