Loading
Assicurazioni
InsProductAsyncRatingService:repriceProduct

InsProductAsyncRatingService:repriceProduct

Ricalcolare in modo asincrono il prezzo di un prodotto in base a selectedProduct JSON e userInput.

Classe: InsProductAsyncRatingService

Metodo: repriceProduct

Questo servizio è stato creato per i casi d'uso Group Benefit Large Volume Product Rating.

Funzionamento

  1. Questo servizio richiede selectedProduct JSON, userInput e censusId
  2. Quindi, il servizio esamina il prodotto per determinare se è configurato per la valutazione basata sul censimento o la valutazione basata sul riepilogo (in base al campo PricingStrategyType__c).
  3. Il servizio chiama il servizio InsuranceRatingPtc.rateCensus Core per calcolare il prezzo di tutti i prodotti. Il servizio di InsuranceRatingPtc.rateCensus è un servizio asincrono e quindi non restituisce immediatamente il prezzo. Restituisce invece un asyncRequestId.

Input

Input Descrizione
groupClassIds

Facoltativo.

Elenco degli ID delle classi del gruppo.

productCategories

Facoltativo.

Elenco delle categorie di prodotti. La sequenza dovrebbe essere la stessa di productIds

selectedProduct

Obbligatorio.

Il prodotto da ricalcolare.

userInputs

Obbligatorio.

Insieme di dati di input utilizzati dalla procedura di valutazione per ottenere il prezzo del prodotto.

Per una Mappa <Stringa, Oggetto>, viene utilizzato lo stesso insieme di dati di input per tutti i prodotti.

Per un List<Map<String, Object>>, le dimensioni dell'Elenco devono corrispondere alle dimensioni dell'productIds. Se alcuni prodotti non hanno userInputun , aggiungere un {} nell'elenco.

La selezione delle coperture con CoverageProductCode.isSelected non è supportata, ma viene presa in considerazione durante il calcolo dei prezzi.

Opzioni remote

Opzione Descrizione
censusId

Obbligatorio.

ID del censimento del gruppo.

effectiveDate

Data effettiva utilizzata per la valutazione.

Utilizza il formato "AAAA-MM-GG HH:MM:SS".

Il valore predefinito è la data odierna.

evalOptionalCoverageRelationship Determina se valutare le coperture facoltative disponibili per un partecipante in base alla sua relazione con il membro principale del censimento. Se questa opzione è impostata su true, il servizio chiama prima updateOptionalCovIsSelectedField e poi repriceProduct.
ruleAttributeSetValues Determina se eseguire le regole Imposta valore. Se questa opzione è impostata su true, il servizio esegue l'attributo Imposta regole di valore prima di chiamare il motore di calcolo dei prezzi.
validateCoverageSelection Determina se eseguire le regole di convalida della copertura sulle coperture selezionate. Quando questa opzione è impostata su true, il servizio chiama InsuranceSelectValidationService prima di chiamare repriceProduct.

Input JSON

Di seguito è riportato il JSON di input di esempio:

{
 "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"
                      }
                    ]
                  }
                }
              ]
            }
          }
        ]
      }
    }
  ]
 }
}

Opzioni JSON

Di seguito sono riportati alcuni esempi di opzioni JSON:


{     
  "censusId": "0rfRO00000009WTYAY",
  "effectiveDate": "2023-06-22 00:00:00"
}

JSON di output

Di seguito è riportato il JSON di output di esempio:

{
  "asyncRequestId": {
    "01tRO000000k6RyYAI": "8zk9f00000Q5jUEHNS"
  }
}
 
Caricamento
Salesforce Help | Article