Loading
Verzekering
InsProductService:repriceProduct

InsProductService:repriceProduct

Gebruik deze service om één product te prijzen met behulp van de beoordelingsprocedure die aan dat product is gekoppeld. Deze service wordt doorgaans aangeroepen wanneer een gebruiker een product selecteert en de dekking ervan aanpast.

Klasse: InsProductService

Methode: repriceProduct

De service neemt één productobject in de invoer-JSON en retourneert het product met de totale prijsstelling en de totale verzekerde som. Het retourneert ook het volledige resultaat-JSON van de beoordelingsprocedure.

Deze service werkt voor één of meer verzekerden (personen die onder het polisproduct vallen) en één of meer verzekerde zaken (bijvoorbeeld meerdere auto’s op een autopolis).

Deze service voert geen optionele dekkingsregels voor In aanmerking komen, Verplicht en Standaard uit bij het wijzigen van een offerte.

De manier waarop het werkt...

  1. De service zoekt in de invoer-JSON naar de geselecteerde productsleutel en haalt vervolgens de waarde ervan op. Dit object bevat één productobject.

  2. Met behulp van de productgegevens om in Salesforce te zoeken, zoekt de service het product en haalt de beoordelingsprocedure op.

  3. De service beoordeelt het product met de product-JSON-structuur.

  4. De service retourneert de productobjecten met de totale prijs en de totale verzekerde som. De uitvoer-JSON omvat de geparseerde resultaat-JSON van de beoordelingsprocedure als de waarde van CalculatedPriceData. De service stelt ook prijs en totalSumInsured in als de formules voor het product zijn ingesteld.

Externe opties

Optie

Beschrijving

aggByKey

PRODUCT.instanceKey

Wanneer aggByKey is ingesteld, wordt de waarde ervan opgenomen in de aggregationResult van de berekeningsprocedure, als aggregationResult niet leeg is. (De aggregationResult wordt doorgaans ingevuld wanneer voor een berekeningsprocedure aggregatiestappen zijn geconfigureerd).

Een offerte of polis van een autoverzekering heeft bijvoorbeeld meerdere bestuurders gekoppeld aan elke verzekerde auto. De verzekerde auto heeft een aparte instanceKey voor elk exemplaar van auto+bestuurder. De aggByKey neemt alle instanceKeys voor de voertuigen en maakt een reeks dekkingspremies per instanceKey, en geeft deze door aan de berekeningsprocedure zodat de premies correct kunnen worden berekend.

alwaysCreateInstance

Stel deze optie in op true voor producten met meerdere onderliggende specificaties in een bepaald niveau van de hiërarchie, geen kleinonderliggende specificaties en slechts één beoordelingsprocedure op rootniveau.

Laat deze optie weg voor producten die niet aan al deze criteria voldoen.

Zie Eén beoordelingsprocedure per product voor repriceProduct als u userInputs wilt opmaken voor dit type product.

effectiveDate

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

of

%OmniScriptDataElement%

De standaardwaarde is de datum van vandaag.

evalOptionalCoverageRelationship

true of false

Als deze optie = true is, roept de service updateOptionalCovIsSelectedField eerst repriceProduct aan.

getDataDRBundleName

De naam van de Omnistudio Data Mapper die deze service gebruikt voor het ophalen van polisgegevens (activa).

Als u Salesforce FSC gebruikt, moet u deze optie of getDataCustomClassName opgeven.

getDataCustomClassName

De naam van de aangepaste klasse die deze service gebruikt voor het ophalen van polisgegevens (activa).

Als u Salesforce FSC gebruikt, moet u deze optie of getDataDRBundleName opgeven.

includeInputKeys

Een reeks met komma's gescheiden sleutel-/waardeparen die de service in en uit de berekeningsprocedure doorgeeft.

Deze sleutel-/waardeparen worden opgenomen in het uitvoerproductobject binnen het CalculatedPriceData. Ze helpen u bij het parseren van de berekeningsresultaten.

Alleen invoersleutels die door de berekeningsprocedure worden gebruikt, hebben een waarde in de resultaten.

includeRawCalculationResult

true of false

De standaardwaarde is false.

Omvat de volledige resultaten van de berekeningsprocedure in de RawPriceData.

validateCoverageSelection

true of false

Stel dit in op true als u van plan bent om optionele regels voor dekkingsvalidatie te gebruiken. Wanneer deze optie is ingesteld op true, roept de service InsuranceSelectValidationService aan voordat er opnieuw wordt geprijsd.

calculateTaxesAndFees

Optioneel

true of false

Stel dit in op true om belastingen en vergoedingen voor het doelproduct te berekenen.

Als u Salesforce FSC gebruikt en deze optie instelt op true, moet u ook de optie getDataDRBundleName of getDataCustomClassName opgeven.

jurisdictionIds

Getekende lijst van ID's

Gebruikt in combinatie met de optie calculateTaxesAndFees.

Berekent alleen de belastingen en vergoedingen die zijn gekoppeld aan de opgegeven rechtsgebieden.

taxAndFeeEffectiveDate

De ingangsdatum die deze service gebruikt om belastingen en vergoedingen te berekenen. Deze optie staat los van de effectiveDate die wordt gebruikt om het product te prijzen.

Als er een waarde wordt opgegeven, gebruikt de service die waarde.

Als er geen waarde wordt opgegeven en het product-JSON geen beleid is, wordt de service standaard ingesteld op de datum van vandaag.

Als er geen waarde wordt opgegeven en de product-JSON een beleid is, gebruikt de service de ingangsdatum van de oorspronkelijke polisversie.

withTaxFeeRounding

Optioneel

Indien true (waar), worden de berekende bedragen aan belasting en kosten afgerond op twee decimalen met behulp van de methode voor halfeven afronden. withTaxFeeRounding is alleen van kracht wanneer de optie calculateTaxesAndFees ook true (waar) is. Indien false (onwaar), is afronden uitgeschakeld.

De standaardwaarde is false (onwaar).

Invoer-JSON

InsProductService: repriceProduct zoekt naar een productobject in de selectedProduct in de invoer-JSON ervan. Dit object bevat de invoer die nodig is voor de beoordelingsprocedure zoals toegewezen in de kenmerken van het product, inclusief de gekoppelde dekkingsspecificaties, specificaties van verzekerde items, specificaties van verzekerde partij en specificaties van beoordelingsfeiten. Dit object kan worden gemaakt door andere services zoals getRatedProducts. Het omvat het rootproduct, onderliggende producten en kleinonderliggende producten. De service parseert de productstructuur en geeft gegevens door aan de expressieset of berekeningsprocedure. Als kenmerken die zijn toegewezen voor beoordeling, niet zijn opgenomen in het object, gebruikt de service standaardinstellingen die zijn ingesteld door de productbeheerder.

Deze service zoekt ook naar een userInputs in de invoer-JSON, zodat deze alle beoordelingsfactoren kan vinden die niet zijn opgenomen in het selectedProduct. Gebruik de juiste userInputs, afhankelijk van de productdefinitie en de configuratie van de beoordeling. De service accepteert slechts één type userInputs tegelijk.

Uitvoer-JSON

De service retourneert dezelfde JSON-structuur als die in het selectedProduct met bijgewerkte prijsgegevens. Zie Product-JSON-structuurmodel voor details over de inhoud en structuur van dit object.

Opmerking
Opmerking

Als services voor belastingen en vergoedingen worden gebruikt, blijft JSON-uitvoer behouden in de JSON-record, op dezelfde manier als getRatedProducts naar de JSON schrijft.

Voor elk product wordt de uitvoer-JSON van de berekening van de beoordelingsprocedure aan het product toegevoegd met de CaculatedPriceData. Als de prijsstellingsformule is ingesteld voor het product, wordt de waarde van price ingesteld op de berekende waarde ervan. Als de totale verzekerde formule voor het product is ingesteld, wordt de waarde van TotalInsured ingesteld op de berekende waarde ervan.

De structuur onder CalculatedPriceData omvat instantieondersteuning. Prijsmeetgegevens worden gegroepeerd op instantieniveau.

De uitvoer-JSON bevat een priceDiff op rootniveau dat prijzen op instantieniveau samenvat. Het omvat ook het veld totalPremiumForTermDiff op rootniveau. Deze waarde is het verschil tussen de oorspronkelijke totale premie voor de looptijd en de som tussen de totale premie voor de looptijd van de nieuwe polisversie en de bijgewerkte premie voor de looptijd van de oude polisversie.

In dit voorbeeld is de prijsstellingsformule ingesteld voor het product, maar de totaal verzekerde formule niet. De service voegt de CalculatedPriceData toe aan de resultaten van de beoordelingsprocedure. De service berekent de prijs op basis van de formule. De totaal verzekerde formule is niet ingesteld voor het product en wordt niet weergegeven in de gegevens (TotalInsured ook niet).

"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": {
      ...
    }
 
Wordt geladen
Salesforce Help | Article