Loading
Forsikring
InsProductService:repriceProduct

InsProductService:repriceProduct

Bruk denne tjenesten til å prissette ett produkt ved bruk av rangeringsprosedyren som er knyttet til dette produktet. Denne tjenesten kalles vanligvis opp når en bruker velger et produkt og tilpasser dekningen.

Klasse: InsProductService

Metode: repriceProduct

Tjenesten tar ett produktobjekt i inndata-JSON-filen og returnerer produktet med total pris og total forsikret sum. Den returnerer også det fullstendige JSON-filen for resultatet fra rangeringsprosedyren.

Denne tjenesten fungerer for én eller flere forsikrede parter (personer som dekkes av poliseproduktet) og én eller flere forsikrede artikler (for eksempel flere biler med en automatisk polise).

Denne tjenesten kjører ikke valgfrie dekningsregler for berettigelse, obligatorisk og standard når et tilbud endres.

Slik virker det

  1. Tjenesten søker i inndata-JSON-koden etter den valgte produktnøkkelen, og henter deretter verdien. Dette objektet inneholder ett produktobjekt.

  2. Ved å bruke produktdataene til å søke i Salesforce finner tjenesten produktet og henter rangeringsprosedyren.

  3. Tjenesten rangerer produktet med JSON-strukturen for produktet.

  4. Tjenesten returnerer produktobjektene med totalpris og total forsikret sum. Utdata-JSON-koden inkluderer det analyserte resultat-JSON-koden fra rangeringsprosedyren som verdien av CalculatedPriceData. Tjenesten angir også pris og totalSumInsured hvis formlene er angitt på produktet.

Eksterne alternativer

Alternativ

Beskrivelse

aggByKey

PRODUCT.instanceKey

Når aggByKey er angitt, inkluderes verdien i aggregationResult for beregningsprosedyren hvis aggregationResult ikke er tom. (aggregationResult fylles vanligvis ut når en beregningsprosedyre har konfigurert aggregeringstrinn).

Et tilbud eller en polis for automatisk forsikring kan for eksempel ha flere førere knyttet til hver forsikret bil. Den forsikrede autoen har en egen instanceKey for hver auto+driver-forekomst. aggByKey tar alle instanceKeys for kjøretøyene og oppretter en rekke deknings premier per instanceKey, og overfører dem til beregningsprosedyren slik at premiene kan beregnes riktig.

alwaysCreateInstance

Angi dette alternativet til true for produkter med flere underordnede spesifikasjoner på et gitt nivå i hierarkiet, ingen barnebarnspesifikasjoner og bare én rangeringsprosedyre på rotnivå.

Utelate dette alternativet for produkter som ikke oppfyller alle disse kriteriene.

Hvis du vil formatere userInputs for denne typen produkt, kan du se One Rating Procedure per Product for repriceProduct.

effectiveDate

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

eller

%OmniScriptDataElement%

Standardverdien er dagens dato.

evalOptionalCoverageRelationship

true eller false

Hvis dette alternativet = true, ringer tjenesten updateOptionalCovIsSelectedField først og deretter repriceProduct.

getDataDRBundleName

Navnet på Omnistudio-datatilordneren som tjenesten bruker til å hente policyinformasjon (aktivum).

Hvis du bruker Salesforce FSC, må du angi dette alternativet eller getDataCustomClassName.

getDataCustomClassName

Navnet på den tilpassede klassen denne tjenesten bruker til å hente policyinformasjon (aktivuminformasjon).

Hvis du bruker Salesforce FSC, må du angi dette alternativet eller getDataDRBundleName.

includeInputKeys

En streng med kommadelte nøkkel/verdi-par som tjenesten sender inn og ut av beregningsprosedyren.

Disse nøkkel/verdi-parene inkluderes i utdataproduktobjektet i CalculatedPriceData-objektet. De er der for å hjelpe deg å analysere beregningsresultatene.

Bare inndataverdier som brukes av beregningsprosedyren, har en verdi i resultatet.

includeRawCalculationResult

true eller false

Standardverdien er false.

Inkluderer hele resultatet av beregningsprosedyren i RawPriceData-nøkkelen.

validateCoverageSelection

true eller false

Angi til true hvis du planlegger å bruke valgfrie valideringsregler for dekning. Når dette alternativet er satt til true, ringer tjenesten InsuranceSelectValidationService før tilbakekalling.

calculateTaxesAndFees

Valgfritt

true eller false

Sett til true for å beregne avgifter og avgifter for målproduktet.

Hvis du bruker Salesforce FSC og du angir dette alternativet til true, må du også angi alternativet getDataDRBundleName eller getDataCustomClassName.

jurisdictionIds

Strenget liste over ID-er

Brukes sammen med calculateTaxesAndFees alternativet.

Beregner bare avgifter og gebyrer knyttet til de angitte jurisdiksjonene.

taxAndFeeEffectiveDate

Gyldighetsdatoen denne tjenesten bruker til å beregne avgifter og gebyrer. Dette alternativet er atskilt fra effectiveDate-alternativet som brukes til å prissette produktet.

Hvis en verdi oppgis, bruker tjenesten denne verdien.

Hvis en verdi ikke oppgis og produkt-JSON-koden ikke er en policy, bruker tjenesten som standard dagens dato.

Hvis det ikke oppgis noen verdi og produkt-JSON-koden er en policy, bruker tjenesten den opprinnelige policyversjonens gyldighetsdato.

withTaxFeeRounding

Valgfritt

Hvis verdien er sann, avrundes de beregnede avgifts- og godtgjørelsesbeløpene til to desimalplasser ved å bruke avrundingsmetoden halv lik. withTaxFeeRounding er effektiv bare når calculateTaxesAndFees-alternativet også er sant. Hvis false, er avrunding deaktivert.

Standardverdien er false.

Inndata-JSON

InsProductService: repriceProduct ser etter et produktobjekt i selectedProduct-nøkkelen i sin inndata-JSON. Dette objektet inneholder inndataene som er nødvendige for rangeringsprosedyren slik den er tilordnet i attributtene til produktet, inkludert dets tilknyttede dekningsspesifikasjoner, spesifikasjoner for forsikrede artikler, spesifikasjoner for forsikrede parter og spesifikasjoner for rangeringsfakta. Dette objektet kan opprettes av andre tjenester som getRatedProducts. Den inkluderer rotproduktet, underordnede produkter og barnebarnprodukter. Tjenesten analyserer produktstrukturen og overfører data til uttrykkssettet eller beregningsprosedyren. Hvis attributter som er tilordnet for rangering, ikke er inkludert i objektet, bruker tjenesten standardinnstillinger som er angitt av produktadministratoren.

Denne tjenesten ser også etter en userInputs-nøkkel i inndata-JSON-filen, slik at den kan finne eventuelle rangeringsfaktorer som ikke er inkludert i selectedProduct-noden. Bruk det riktige userInputs-formatet avhengig av produktdefinisjonen og rangeringskonfigurasjonen. Tjenesten godtar bare én type userInputs-format om gangen.

Utdata-JSON

Tjenesten returnerer samme JSON-struktur som i selectedProduct-noden med oppdatert prisinformasjon. Se Produkt-JSON-strukturmodell for å få detaljer om innholdet og strukturen til dette objektet.

Merk
Merk

Hvis avgifter og gebyrtjenester brukes, beholdes JSON-utdata på JSON-posten, på samme måte som getRatedProducts skriver til JSON-filen.

For hvert produkt legges utdata-JSON-koden fra beregningen av rangeringsprosedyren til produktet med CaculatedPriceData-nøkkelen. Hvis prisformelen angis for produktet, settes verdien av price til dens beregnede verdi. Hvis den totale formelen for forsikring er angitt for produktet, settes verdien av TotalInsured til dens beregnede verdi.

Strukturen under CalculatedPriceData, inkluderer forekomststøtte. Prismålinger grupperes under forekomstnivå.

Utdata-JSON-filen inkluderer en priceDiff-node på rotnivå som oppsummerer priser på forekomstnivå. Den inkluderer også totalPremiumForTermDiff-feltet på rotnivå. Denne verdien er forskjellen mellom den opprinnelige totale premien for perioden og summen mellom den totale premien for perioden i den nye policyversjonen og den oppdaterte premien for perioden i den gamle policyversjonen.

I dette eksemplet angis prisformelen for produktet, men ikke den totale formelen for forsikring. Tjenesten legger til CalculatedPriceData i resultatene fra rangeringsprosedyren. Tjenesten beregner prisen basert på formelen. Den totale formelen for forsikring er ikke angitt på produktet og vises ikke i dataene (ikke TotalInsured heller).

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