Loading
Forsikring
InsProductService:repriceProduct

InsProductService:repriceProduct

Brug denne tjeneste til at prissætte et produkt ved brug af den vurderingsprocedure, der er knyttet til det pågældende produkt. Denne tjeneste kaldes sædvanligvis, når en bruger vælger et produkt og tilpasser dets dækning.

Kategori: InsProductService

Metode: repriceProduct

Tjenesten tager et produktobjekt i dens input-JSON og returnerer produktet med den samlede prissætning og det samlede forsikrede beløb. Det returnerer også det komplette resultat JSON fra vurderingsproceduren.

Denne tjeneste fungerer for en eller flere forsikrede parter (personer, der er dækket af policeproduktet) og en eller flere forsikrede elementer (f.eks. flere biler på en automatisk police).

Denne tjeneste kører ikke valgfri dækningsregler for Berettigelse, Påkrævet og Standard, når du redigerer et tilbud.

Sådan fungerer det

  1. Tjenesten søger i input-JSON for den valgte produktnøgle og henter derefter dens værdi. Dette objekt indeholder et produktobjekt.

  2. Ved at bruge produktdata til at søge i Salesforce finder tjenesten produktet og henter vurderingsproceduren.

  3. Tjenesten vurderer produktet med produkt-JSON-strukturen.

  4. Tjenesten returnerer produktobjekterne med samlet pris og samlet forsikret beløb. Output JSON inkluderer det parsede resultat JSON fra vurderingsproceduren som værdien af CalculatedPriceData. Tjenesten angiver også pris og totalSumInsured, hvis formlerne er angivet på produktet.

Fjernindstillinger

Indstilling

Beskrivelse

aggByKey

PRODUCT.instanceKey

Når aggByKey er angivet, medtages dens værdi i beregningsprocedurens aggregationResult, hvis aggregationResult ikke er tomt. (aggregationResult udfyldes sædvanligvis, når en beregningsprocedure har konfigureret aggregeringstrin).

Et tilbud eller en police for automatisk forsikring har f.eks. flere chauffører tilknyttet hver forsikret bil. Den forsikrede auto har en separat instanceKey for hver auto+driver-forekomst. aggByKey tager alle instanceKeys for køretøjerne og skaber en række dækningspræmier pr. instanceKey og overfører dem til beregningsproceduren, så præmier kan beregnes korrekt.

alwaysCreateInstance

Indstil denne indstilling til true for produkter med flere underordnede specifikationer på et givet niveau af hierarkiet, ingen underordnede specifikationer og kun en vurderingsprocedure på rodniveau.

Udelad denne indstilling for produkter, der ikke opfylder alle disse kriterier.

Hvis du vil formatere userInputs for denne type produkt, kan du se En vurderingsprocedure pr. produkt for repriceProduct.

effectiveDate

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

eller

%OmniScriptDataElement%

Standard er dags dato.

evalOptionalCoverageRelationship

true eller false

Hvis denne indstilling = true, ringer tjenesten updateOptionalCovIsSelectedField først og ringer derefter repriceProduct.

getDataDRBundleName

Navnet på Omnistudio-datatilknytning, som denne tjeneste bruger til at hente politikoplysninger (aktivoplysninger).

Hvis du bruger Salesforce FSC, skal du angive enten denne indstilling eller getDataCustomClassName.

getDataCustomClassName

Navnet på den tilpassede klasse, denne tjeneste bruger til at hente politikoplysninger (aktiv).

Hvis du bruger Salesforce FSC, skal du angive enten denne indstilling eller getDataDRBundleName.

includeInputKeys

En streng af kommaseparerede nøgle-/værdipar, som tjenesten overfører ind og ud af beregningsproceduren.

Disse nøgle-/værdipar er inkluderet i outputproduktobjektet i CalculatedPriceData. De er der for at hjælpe dig med at parse beregningsresultaterne.

Det er kun inputnøgler, der bruges af beregningsproceduren, der har en værdi i resultaterne.

includeRawCalculationResult

true eller false

Standard er false.

Indeholder hele resultaterne af beregningsproceduren i RawPriceData-nøglen.

validateCoverageSelection

true eller false

Indstil til true, hvis du planlægger at bruge valgfri valideringsregler for dækning. Når denne indstilling er indstillet til true, ringer tjenesten til InsuranceSelectValidationService, før den ringer til reprice.

calculateTaxesAndFees

Valgfrit

true eller false

Indstil til true for at beregne moms og gebyrer på målproduktet.

Hvis du bruger Salesforce FSC, og du indstiller denne indstilling til true, skal du også angive indstillingen getDataDRBundleName eller getDataCustomClassName.

jurisdictionIds

Strengførte lister over id'er

Bruges i forbindelse med calculateTaxesAndFees mulighed.

Beregner kun de moms og gebyrer, der er knyttet til de angivne jurisdiktioner.

taxAndFeeEffectiveDate

Den ikrafttrædelsesdato, denne tjeneste bruger til at beregne moms og gebyrer. Denne indstilling er adskilt fra den effectiveDate, der bruges til at prissætte produktet.

Hvis der angives en værdi, bruger tjenesten denne værdi.

Hvis der ikke angives en værdi, og produkt-JSON ikke er en politik, er tjenesten som standard dags dato.

Hvis værdien ikke angives, og produkt-JSON er en politik, bruger tjenesten den oprindelige politikversions ikrafttrædelsesdato.

withTaxFeeRounding

Valgfrit

Hvis det er sandt, afrundes de beregnede moms- og gebyrbeløb til to decimaler ved at bruge metoden Halver lige afrunding. withTaxFeeRounding er kun effektiv, hvis calculateTaxesAndFees også er sand. Hvis det er falsk, inaktiveres afrunding.

Standardværdien er falsk.

Input JSON

InsProductService: repriceProduct søger efter et produktobjekt i selectedProduct i dens input-JSON. Dette objekt indeholder de input, der er nødvendige for vurderingsproceduren som tilknyttet i attributterne for produktet, herunder dets tilknyttede dækningsspecifikationer, specifikationer for forsikrede elementer, specifikationer for forsikrede parter og specifikationer for vurderingsfakta. Dette objekt kan oprettes af andre tjenester som f.eks. getRatedProducts. Det inkluderer rodproduktet, underordnede produkter og underunderordnede produkter. Tjenesten parser produktstrukturen og overfører data til udtrykssættet eller beregningsproceduren. Hvis attributter, der er tilknyttet til vurdering, ikke er inkluderet i objektet, bruger tjenesten standarder, der er angivet af produktadministratoren.

Denne tjeneste søger også efter en userInputs i input-JSON, så den kan finde alle vurderingsfaktorer, der ikke er inkluderet i selectedProduct. Brug det relevante userInputs afhængigt af produktdefinitionen og vurderingskonfigurationen. Tjenesten accepterer kun en type userInputs ad gangen.

Output JSON

Tjenesten returnerer den samme JSON-struktur som den i selectedProduct med opdaterede prisoplysninger. Se Produkt-JSON-strukturmodel for at få detaljer om indholdet og strukturen af dette objekt.

Bemærk
Bemærk

Hvis der bruges moms- og gebyrtjenester, bevares JSON-output på JSON-registreringen på samme måde som getRatedProducts skriver til JSON.

For hvert produkt føjes output-JSON fra beregningen af vurderingsproceduren til produktet med CaculatedPriceData-nøglen. Hvis prissætningsformlen er angivet på produktet, indstilles værdien af price til dens beregnede værdi. Hvis den samlede forsikrede formel er fastsat på produktet, indstilles værdien af TotalInsured til dens beregnede værdi.

Strukturen under CalculatedPriceData, inkluderer forekomstunderstøttelse. Prismetrikker er grupperet under forekomstniveau.

Output-JSON indeholder en priceDiff på rodniveau, der opsummerer priserne på forekomstniveau. Den indeholder også totalPremiumForTermDiff på rodniveau. Denne værdi er forskellen mellem den oprindelige samlede præmie for periode og summen mellem den samlede præmie for periode for den nye policeversion og den opdaterede præmie for periode for den gamle policeversion.

I dette eksempel angives prisformlen på produktet, men den samlede forsikrede formel er ikke. Tjenesten føjer CalculatedPriceData til resultaterne fra vurderingsproceduren. Tjenesten beregner prisen baseret på formlen. Den samlede forsikrede formel er ikke angivet på produktet og vises ikke i dataene (heller ikke 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": {
      ...
    }
 
Indlæser
Salesforce Help | Article