Loading
Försäkring
InsProductService:repriceProduct

InsProductService:repriceProduct

Använd denna tjänst för att prissätta en produkt med hjälp av värderingsförfarandet som är kopplat till produkten. Denna tjänst anropas vanligtvis när en användare väljer en produkt och anpassar dess täckning.

Klass: InsProductService

Metod: repriceProduct

Tjänsten tar ett produktobjekt i sin indata-JSON och returnerar produkten med total prissättning och total försäkrad summa. Den returnerar även det fullständiga resultatet JSON från värderingsförfarandet.

Denna tjänst fungerar för en eller flera försäkrade (personer som omfattas av policyprodukten) och en eller flera försäkrade objekt (till exempel flera bilar i en autopolicy).

Denna tjänst kör inte valfria täckningsregler för Behörighet, Obligatoriskt eller Standard vid ändring av en offert.

Så här fungerar det

  1. Tjänsten söker JSON för indata efter den valda produktnyckeln och hämtar sedan dess värde. Detta objekt innehåller ett produktobjekt.

  2. Med hjälp av produktdata för att söka i Salesforce hittar tjänsten produkten och hämtar värderingsförfarandet.

  3. Tjänsten betygsätter produkten med produktens JSON-struktur.

  4. Tjänsten returnerar produktobjekten med totalt pris och total försäkrad summa. JSON för utdata inkluderar det tolkade resultatet JSON från värderingsförfarandet som värdet på CalculatedPriceData. Tjänsten anger även pris och totalSumInsured om formler har angetts för produkten.

Fjärralternativ

Alternativ

Beskrivning

aggByKey

PRODUCT.instanceKey

När aggByKey anges inkluderas dess värde i aggregationResult av beräkningsförfarandet, om aggregationResult inte är tomt. (aggregationResult fylls vanligtvis i när ett beräkningsförfarande har konfigurerat aggregeringssteg).

Anta till exempel att en offert eller policy för automatisk försäkring har flera förare kopplade till varje försäkrad bil. Den försäkrade bilen har en separat instanceKey för varje auto+driverinstans. aggByKey tar alla instanceKeys för fordonen och skapar en matris av täckningspremier per instanceKey och skickar dem till beräkningsförfarandet så att premierna kan beräknas korrekt.

alwaysCreateInstance

Sätt detta alternativ till true för produkter med flera underordnade specifikationer på en given nivå i hierarkin, inga underordnade specifikationer och endast en värderingsprocess på rotnivå.

Uteslut detta alternativ för produkter som inte uppfyller alla dessa kriterier.

För att formatera userInputs för denna typ av produkt, se En värderingsprocess per produkt för repriceProduct.

effectiveDate

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

eller

%OmniScriptDataElement%

Dagens datum blir som standard.

evalOptionalCoverageRelationship

true eller false

Om detta alternativ = true anropar tjänsten updateOptionalCovIsSelectedField först och anropar sedan repriceProduct.

getDataDRBundleName

Namnet på Omnistudio Data Mapper som denna tjänst använder för att hämta policyinformation (tillgångsinformation).

Om du använder Salesforce FSC måste du specificera antingen detta alternativ eller getDataCustomClassName.

getDataCustomClassName

Namnet på den egna klass som denna tjänst använder för att hämta policyinformation (tillgångsinformation).

Om du använder Salesforce FSC måste du specificera antingen detta alternativ eller getDataDRBundleName.

includeInputKeys

En sträng av kommaavgränsade nyckel-/värdepar som tjänsten skickar in i och ut ur beräkningsförfarandet.

Dessa nyckel-/värdepar inkluderas i utdataproduktobjektet inom CalculatedPriceData. De är till för att hjälpa dig tolka beräkningsresultaten.

Endast indatanycklar som används av beräkningsförfarandet har ett värde i resultaten.

includeRawCalculationResult

true eller false

false som standard.

Inkluderar hela resultatet av beräkningsprocessen i RawPriceData.

validateCoverageSelection

true eller false

Sätt till true om du planerar att använda valfria valideringsregler för täckning. När detta alternativ är inställt till true anropar tjänsten InsuranceSelectValidationService innan samtalets repris.

calculateTaxesAndFees

Valfri

true eller false

Sätt till true för att beräkna skatter och avgifter för målprodukten.

Om du använder Salesforce FSC och ställer in detta alternativ till true måste du även specificera getDataDRBundleName eller getDataCustomClassName.

jurisdictionIds

Stränglista över ID:n

Används tillsammans med calculateTaxesAndFees.

Beräknar endast de skatter och avgifter som är associerade med de jurisdiktioner som tillhandahålls.

taxAndFeeEffectiveDate

Det giltighetsdatum som denna tjänst använder för att beräkna skatter och avgifter. Detta alternativ är separat från effectiveDate som används för att Prissätta produkten.

Om ett värde tillhandahålls använder tjänsten detta värde.

Om inget värde anges och produktens JSON inte är en policy blir tjänsten som standard dagens datum.

Om inget värde anges och produktens JSON är en policy använder tjänsten den ursprungliga policyversionens giltighetsdatum.

withTaxFeeRounding

Valfri

Om sant avrundas de beräknade skatte- och avgiftsbeloppen till två decimaler med hjälp av halvjämn avrundning. withTaxFeeRounding gäller endast om calculateTaxesAndFees också är sant. Om falskt inaktiveras avrundning.

Standardvärdet är falskt.

Indata-JSON

InsProductService: repriceProduct letar efter ett produktobjekt i selectedProduct i sin indata-JSON. Detta objekt innehåller de inmatningar som behövs av värderingsförfarandet enligt mappning i produktens attribut, inklusive dess associerade täckningsspecifikationer, specifikationer för försäkrade objekt, specifikationer för försäkrade parter och specifikationer för värderingsfakta. Detta objekt kan skapas av andra tjänster som getRatedProducts. Det inkluderar rotprodukten, underordnade produkter och barnbarnsprodukter. Tjänsten tolkar produktstrukturen och skickar data till uttrycksuppsättningen eller beräkningsförfarandet. Om attribut mappade för värdering inte inkluderas i objektet använder tjänsten standarder som angetts av produktadministratören.

Denna tjänst letar även efter en userInputs i indata-JSON så att den kan hitta alla värderingsfaktorer som inte ingår i selectedProduct. Använd lämpligt userInputs beroende på produktdefinitionen och betygskonfigurationen. Tjänsten accepterar endast en typ av userInputs åt gången.

JSON för utdata

Tjänsten returnerar samma JSON-struktur som den i selectedProduct med uppdaterad prisinformation. Se Product JSON-strukturmodell för mer information om innehållet och strukturen för detta objekt.

Anteckning
Anteckning

Om skatter och avgifter används behålls JSON-utdata i JSON-posten, på samma sätt som getRatedProducts skriver till JSON.

För varje produkt läggs JSON för utdata från värderingsförfarandet till i produkten med CaculatedPriceData. Om prissättningsformeln är inställd på produkten blir värdet på price dess beräknade värde. Om den totala försäkrade formeln är inställd på produkten blir värdet på TotalInsured dess beräknade värde.

Strukturen som CalculatedPriceData inkluderar instanssupport. Prismått grupperas under instansnivå.

JSON för utdata inkluderar en priceDiff på rotnivå som sammanfattar priser på instansnivå. Det inkluderar även fältet totalPremiumForTermDiff på rotnivå. Detta värde är skillnaden mellan den ursprungliga totala premien för löptid och summan mellan den totala premien för löptid för den nya policyversionen och den uppdaterade premien för löptid för den gamla policyversionen.

I detta exempel är prissättningsformeln inställd på produkten, men inte den totala försäkrade formeln. Tjänsten lägger till CalculatedPriceData i resultaten från värderingsförfarandet. Tjänsten beräknar priset baserat på formeln. Den totala försäkrade formeln anges inte för produkten och visas inte i data (inte heller 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": {
      ...
    }
 
Laddar
Salesforce Help | Article