Loading
Assicurazioni
InsProductService:repriceProduct

InsProductService:repriceProduct

Utilizzare questo servizio per assegnare un prezzo a un prodotto utilizzando la procedura di valutazione associata a quel prodotto. Questo servizio viene in genere chiamato quando un utente seleziona un prodotto e ne personalizza la copertura.

Classe: InsProductService

Metodo: repriceProduct

Il servizio prende un oggetto prodotto nel suo JSON di input e restituisce il prodotto con il prezzo totale e la somma totale assicurata. Restituisce anche il JSON del risultato completo della procedura di valutazione.

Questo servizio funziona per uno o più assicurati (persone coperte dal prodotto della polizza) e uno o più articoli assicurati (più auto su una polizza auto, ad esempio).

Questo servizio non esegue le regole di copertura facoltative Idoneità, Obbligatorio e Predefinito quando si modifica un preventivo.

Funzionamento

  1. Il servizio cerca nel JSON di input la chiave prodotto selezionata, quindi ne recupera il valore. Questo oggetto contiene un oggetto prodotto.

  2. Utilizzando i dati del prodotto per cercare Salesforce, il servizio trova il prodotto e recupera la procedura di valutazione.

  3. Il servizio valuta il prodotto con la struttura JSON del prodotto.

  4. Il servizio restituisce gli oggetti prodotto con il prezzo totale e la somma totale assicurata. Il JSON di output include il JSON del risultato analizzato della procedura di valutazione come valore di CalculatedPriceData. Il servizio imposta anche prezzo e totalSumInsured se le formule sono impostate sul prodotto.

Opzioni remote

Opzione

Descrizione

aggByKey

PRODUCT.instanceKey

Quando aggByKey è impostato, il suo valore viene incluso nella aggregationResult della procedura di calcolo, se aggregationResult non è vuoto. (Il aggregationResult viene in genere compilato quando una procedura di calcolo ha fasi di aggregazione configurate).

Ad esempio, un preventivo o una polizza di assicurazione auto ha più conducenti collegati a ogni auto assicurata. L'auto assicurata ha un instanceKey separato per ogni istanza auto+conducente. Il aggByKey prende tutti i instanceKeys per i veicoli e crea una serie di premi di copertura per instanceKey e li passa alla procedura di calcolo in modo che i premi possano essere calcolati correttamente.

alwaysCreateInstance

Impostare questa opzione su true per i prodotti con più specifiche secondarie in un determinato livello della gerarchia, senza specifiche secondarie e una sola procedura di valutazione a livello principale.

Omettere questa opzione per i prodotti che non soddisfano tutti questi criteri.

Per formattare i userInputs per questo tipo di prodotto, vedere Una procedura di valutazione per prodotto per repriceProduct.

effectiveDate

“YYYY-MM-DD HH:MM:SS”

oppure

%OmniScriptDataElement%

Per impostazione predefinita, la data odierna.

evalOptionalCoverageRelationship

true o false

Se questa opzione = true, il servizio chiama updateOptionalCovIsSelectedField prima, quindi chiama repriceProduct.

getDataDRBundleName

Nome del Data Mapper Omnistudio utilizzato da questo servizio per recuperare le informazioni sulle policy (asset).

Se si utilizza Salesforce FSC, è necessario specificare questa opzione o getDataCustomClassName.

getDataCustomClassName

Nome della classe personalizzata utilizzata da questo servizio per recuperare le informazioni sulla policy (asset).

Se si utilizza Salesforce FSC, è necessario specificare questa opzione o getDataDRBundleName.

includeInputKeys

Stringa di coppie chiave/valore separate da virgole che il servizio trasmette all'interno e all'esterno della procedura di calcolo.

Queste coppie chiave/valore sono incluse nell'oggetto prodotto di output all'interno dell'oggetto CalculatedPriceData. Sono disponibili per facilitare l'analisi dei risultati dei calcoli.

Solo le chiavi di input utilizzate dalla procedura di calcolo hanno un valore nei risultati.

includeRawCalculationResult

true o false

Per impostazione predefinita, false.

Include tutti i risultati della procedura di calcolo nella chiave RawPriceData.

validateCoverageSelection

true o false

Impostare su true se si prevede di utilizzare regole di convalida della copertura facoltative. Quando questa opzione è impostata su true, il servizio chiama InsuranceSelectValidationService prima di effettuare una nuova chiamata.

calculateTaxesAndFees

Facoltativo

true o false

Impostare su true per calcolare le imposte e le spese sul prodotto di destinazione.

Se si utilizza Salesforce FSC e si imposta questa opzione su true, è necessario specificare anche l'opzione getDataDRBundleName o getDataCustomClassName.

jurisdictionIds

Elenco stringato di ID

Utilizzato in combinazione con l'opzione calculateTaxesAndFees.

Calcola solo le imposte e le spese associate alle giurisdizioni specificate.

taxAndFeeEffectiveDate

Data di validità utilizzata da questo servizio per calcolare le imposte e le spese. Questa opzione è separata dall'opzione effectiveDate utilizzata per calcolare il prezzo del prodotto.

Se viene fornito un valore, il servizio lo utilizza.

Se non viene fornito un valore e il JSON del prodotto non è una policy, il servizio viene impostato automaticamente sulla data odierna.

Se il valore non viene fornito e il JSON del prodotto è una policy, il servizio utilizza la data di validità della versione della policy originale.

withTaxFeeRounding

Facoltativo

Se true, gli importi calcolati delle imposte e delle spese vengono arrotondati alla seconda cifra decimale utilizzando il metodo di arrotondamento alla metà. La withTaxFeeRounding è effettiva solo quando è vera anche l'opzione calculateTaxesAndFees. Se false, l'arrotondamento è disabilitato.

Il valore predefinito è false.

Input JSON

InsProductService: repriceProduct cerca un oggetto prodotto nella chiave selectedProduct nel suo JSON di input. Questo oggetto contiene gli input necessari per la procedura di valutazione come mappato negli attributi del prodotto, incluse le specifiche di copertura associate, le specifiche dell'articolo assicurato, le specifiche dell'assicurato e le specifiche Fatto della valutazione. Questo oggetto può essere creato da altri servizi come getRatedProducts. Include il prodotto radice, i prodotti secondari e i prodotti secondari. Il servizio analizza la struttura del prodotto e passa i dati all'insieme di espressioni o alla procedura di calcolo. Se gli attributi mappati per la valutazione non sono inclusi nell'oggetto, il servizio utilizza le impostazioni predefinite impostate dall'amministratore del prodotto.

Questo servizio cerca anche una chiave userInputs nel JSON di input, in modo da trovare tutti i fattori di valutazione non inclusi nel nodo selectedProduct. Utilizzare il formato di userInputs appropriato a seconda della definizione del prodotto e della configurazione di valutazione. Il servizio accetta un solo tipo di formato di userInputs alla volta.

JSON di output

Il servizio restituisce la stessa struttura JSON del nodo selectedProduct con informazioni aggiornate sui prezzi. Vedere Modello struttura JSON del prodotto per informazioni dettagliate sui contenuti e la struttura di questo oggetto.

Nota
Nota

Se si utilizzano i servizi di imposte e commissioni, l'output JSON viene mantenuto nel record JSON, in modo simile al modo in cui getRatedProducts scrive nel JSON.

Per ogni prodotto, il JSON di output del calcolo della procedura di valutazione viene aggiunto al prodotto con la chiave CaculatedPriceData. Se la formula prezzi è impostata sul prodotto, il valore di price viene impostato sul valore calcolato. Se sul prodotto è impostata la formula totale assicurata, il valore di TotalInsured viene impostato sul valore calcolato.

La struttura in CalculatedPriceData include il supporto dell'istanza. Le metriche dei prezzi sono raggruppate a livello di istanza.

Il JSON di output include un nodo priceDiff a livello di radice che somma i prezzi a livello di istanza. Include anche il campo totalPremiumForTermDiff al livello principale. Questo valore è la differenza tra il premio totale originale per la durata e la somma tra il premio totale per la durata della nuova versione della polizza e il premio aggiornato per la durata della vecchia versione della polizza.

In questo esempio, la formula prezzi è impostata sul prodotto, ma la formula totale assicurata non lo è. Il servizio aggiunge il CalculatedPriceData ai risultati della procedura di valutazione. Il servizio calcola il prezzo in base alla formula. La formula totale assicurata non è impostata sul prodotto e non viene visualizzata nei dati (nemmeno TotalInsured).

"totalSize": null,
"records": [{
    "displaySequence": -1,
    "rootProductId": "01t1I000002fuBoQAI",
    "rootProductCode": "AUTOROOT",
    "timestamp": 1533948385704,
    "hasInstanceKeys": true,
    "childProductsCount": 8,
    "instanceKeyChildren": 2,
    "pathFromChild": "[0]",
    "pathFromRoot": "[0]",
    "Price": 80,
    "productId": "01t1I000002fuBoQAI",
    "Term__c": "Semi-Annual",
    "PricingFormula__c": "SUM(AutoPremium__autoPremium + rentalTotal + medicalTotal + roadsideTotal + dedWaiverTotal + uninsuredMotoristPDTotal + uninsuredMotoristBITotal)",
    "IsConfigurable__c": true,
    "RecordTypeName__c": "Product",
    "IsRecommended__c": false,
    "ProductCode": "AUTOROOT",
    "Name": "Auto Root",
    "Id": "01t1I000002fuBoQAI",
    "RawPriceData": [{
        "calculationResults": [{
          "DRIVER.LN": null,
          "DRIVER.FN": null,
          "AUTO.instanceKey": "2015 Lexus LX250",
          "uninsuredMotoristBITotal": 100,
          "uninsuredMotoristPDTotal": 0,
          "dedWaiverTotal": 10,
          "roadsideTotal": 10,
          "medicalTotal": 10,
          "rentalTotal": 40,
          "comprehensiveTotal": 500,
          "ID": "0"
        }],
        "aggregationResults": {}
      },
      {
        "calculationResults": [{
          "DRIVER.LN": null,
          "DRIVER.FN": null,
          "AUTO.instanceKey": "2006 Honda Odyssey",
          "uninsuredMotoristBITotal": 100,
          "uninsuredMotoristPDTotal": 0,
          "dedWaiverTotal": 10,
          "roadsideTotal": 10,
          "medicalTotal": 10,
          "rentalTotal": 40,
          "comprehensiveTotal": 500,
          "ID": "1"
        }],
        "aggregationResults": {}
      }
    ],
    "CalculatedPriceData": {
      "2015 Lexus LX250": {
        "DRIVER.LN": null,
        "DRIVER.FN": null,
        "AUTO.instanceKey": "2015 Lexus LX250",
        "uninsuredMotoristBITotal": 100,
        "uninsuredMotoristPDTotal": 0,
        "dedWaiverTotal": 10,
        "roadsideTotal": 10,
        "medicalTotal": 10,
        "rentalTotal": 40,
        "comprehensiveTotal": 500,
        "ID": "0"
      },
      "2006 Honda Odyssey": {
        "DRIVER.LN": null,
        "DRIVER.FN": null,
        "AUTO.instanceKey": "2006 Honda Odyssey",
        "uninsuredMotoristBITotal": 100,
        "uninsuredMotoristPDTotal": 0,
        "dedWaiverTotal": 10,
        "roadsideTotal": 10,
        "medicalTotal": 10,
        "rentalTotal": 40,
        "comprehensiveTotal": 500,
        "ID": "1"
      }
    },
    "priceDiff": 0,
    "totalPremiumForTermDiff": 0,
    "attributeCategories": {
      "totalSize": 1,
      "records": [{
        "displaySequence": 5,
        "id": "a1V1I0000007xJSUAY",
        "Name": "Alan Health Attributes",
        "Code__c": "AHA",
        "productAttributes": {
          "totalSize": 1,
          "records": [{
            "code": "ALANDEDUCTIBLE",
            "dataType": "text",
            "inputType": "text",
            "required": false,
            "readonly": false,
            "disabled": false,
            "filterable": true,
            "attributeId": "a1W1I000000Bu1jUAC",
            "label": "Deductible",
            "displaySequence": 2,
            "hasRules": false,
            "hidden": false,
            "values": [{
              "readonly": false,
              "disabled": false
            }],
            "userValues": "test",
            "parentProductId": "01t1I000002fuBoQAI",
            "parentProductCode": "AUTOROOT",
            "pathFromChild": "attributeCategories.records[0].productAttributes.records[0]",
            "pathFromRoot": "attributeCategories.records[0].productAttributes.records[0]"
          }]
        }
      }]
    },
    "childProducts": {
      ...
    }
 
Caricamento
Salesforce Help | Article