Loading
Försäkring
InsProductService:getRatedProducts

InsProductService:getRatedProducts

Använd denna tjänst för att få en matris av en eller flera produkter, prissatta med hjälp av värderingsprocesser bifogade till dessa produkter. Denna tjänst innehåller även extra funktioner som skatte- och avgiftsberäkningar, filtrering och prestandaoptimering.

Klass: InsProductService

Metod: getRatedProducts

För att använda denna tjänst, skicka den den uppsättning indata som värderingsförfarandet behöver för att prissätta produkter. Tjänsten returnerar en filtrerad matris av produkter och ett JSON-resultat från värderingsförfarandet.

Så här fungerar det

  1. Tjänsten söker i Salesforce för att hämta en uppsättning aktiva produkter som faller inom de gällande start- och slutdatumen. Se effectiveDate nedan för mer information.

    Som en del av sökfrågan använder tjänsterna kriterierna som skickas i filteralternativet för att få en inledande uppsättning produkter. Data som hämtas från Salesforce inkluderar produktens regler och värderingsförfarande, specifikationer för försäkrade objekt, specifikationer för försäkrade parter, täckningsspecifikationer, specifikationer för värderingsfakta och alla dess attribut.

  2. Utvärderar varje produkt i den ursprungliga uppsättningen baserat på dess regler för rätt till stöd, vilket ytterligare minskar produktuppsättningen.

  3. Söker i JSON för indata efter userInputs och hämtar nyckelns värde. userInputs är den uppsättning indata som värderingsförfarandet använder för att få fram produktens pris. Tjänsten utvärderar detta objekt baserat på mappningarna av produktvärderingsindata för att skapa den JSON för indata som behövs för värderingsförfarandet.

    Du formaterar userInputs olika beroende på produktdefinitionen och betygskonfigurationen. För att förhindra fel, filtrera efter produkter som alla använder samma typ av userInputs.

  4. Betygsätter varje produkt i uppsättningen som skapades i steg 2. Den anropar produktens associerade värderingsprocess med indata-JSON från steg 3.

  5. Returnerar en matris av produktobjekt med varje produkts totala pris och den totala försäkrade summan.

    Varje returnerat produktobjekt inkluderar även JSON för utdata från värderingsförfarandet som värde för CalculatedPriceData. Tjänsten anger även price och totalSumInsured om formler har angetts för produkten.

    Kom ihåg att:

    • Om ett enskilt attribut har konfigurerats med både en attributregel för Ange värde och en attributregel för Ange standardvärde tillämpar getRatedProducts endast attributregeln Ange standardvärde.

    • Vi rekommenderar att du inte refererar attributvärden i strukturer på lägre nivå när du konfigurerar attributregeluttryck.

Fjärralternativ

Värderingsalternativ

Alternativ

Beskrivning

aggByKey

PRODUCT.instanceKey

När aggByKey har angetts 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).

Till exempel kräver en bilförsäkring som har flera förare försäkrade för flera bilar att aggByKey skickas till beräkningsförfarandet.

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 getRatedProducts.

includeInputKeys

En sträng av kommaavgränsade indatanycklar som ska inkluderas i utdataproduktobjektet, inom CalculatedPriceData.

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

rateType

Age eller Composite

Använd detta alternativ för värdering av små grupper.

searchText

PartOfAProductName

Om detta alternativ används får tjänsten endast produkter med namn som innehåller det värde du angett.

sortBy

productField1, productField2.

Sorterar produkterna som tjänsten får i den ordning du specificerar.

Du kan använda DESC med detta alternativ för att sortera produkter i sjunkande ordning. Du kan specificera det första objektet att härstamma från. Om du inte anger en plats att börja på blir DESC som standard alfabetisk ordning.

Om du inte anger ett värde för detta alternativ sorterar tjänsten produkter som returneras efter namn i stigande alfabetisk ordning.

Filteralternativ

Alternativ

Beskrivning

attributeFilters

En karta över attributeCode och värden

Returnerar endast produkter som uppfyller attributvärdena i filtret.

effectiveDate

“YYYY-MM-DD HH:MM:SS” eller %OmniScriptDataElement%

Dagens datum blir som standard.

Service hämtar produkter med en effectiveDate mellan EffectiveDate__c och EndDate__c och IsActive.

Tjänsten använder även effectiveDate för att välja rätt version av beräkningsförfarandet som används för att betygsätta produkten.

filters

Product2FieldName:Value

Product2FieldName:%ElementName%

Använd API-namnet med ett kolon följt av antingen ett värde eller en variabel. Till exempel, i ett OmniScript kan en variabel vara ett namn på ett element, som en kombinationsruta för indata.

Separera flera filterparametrar med kommatecken:

ProductCode:Value,ProductCode:%ElementName%

Filter kan inkludera alla fält i objektet Product2.

includeFilterAttrValues

true eller false

false som standard.

I JSON för utdata, tillsammans med matrisen av produkter, läggs objektet filterAttrValues till. Detta objekt innehåller rotproduktattributen markerade som filtrerbara, med den möjliga listan över värden. Denna lista används av vissa användargränssnittmallar för att filtrera stora uppsättningar produkter.

Underordnade produktattribut inkluderas inte.

whereClause

Ange ett giltigt Salesforce SOQL-uttryck som värde för detta alternativ.

Använd denna när du behöver denna tjänst för att titta på fält med flera kombinationsrutor när du söker efter produkter.

Till exempel vlocity_ins_marketsegment_c includes ('Small Group') plockar kontoutdraget upp produkter som har marknadssegmenten 'Liten grupp' och antingen fler eller inga fler marknadssegment i kombinationsrutan med flerval.

Viktig
Viktig

Ta bort referenser till fälten i whereClause från din filternyckel.

Om du till exempel har vlocity_ins_marketsegment_c:Small Group i filtret och en whereClause som innehåller en referens till samma fält kommer de att kollidera och stå i konflikt, vilket ger oförutsägbara resultat.

Optimeringsalternativ

Alternativ

Beskrivning

includeOptionalCovSelectFlag

true eller false

false som standard.

Sätt detta alternativ till true för att låta tjänsten utvärdera valfria täckningsregler innan de skickar värderingsinmatningar till beräkningsprocesser.

Om produkter inte använder valfria täckningar, använd standardinställningen för false. Att hämta och lägga till valfria täckningsdata till betygsinmatning kräver extra bearbetning och kan göra denna tjänst långsammare.

includeRawCalculationResult

true eller false

false som standard.

Inkluderar hela resultatet av beräkningsprocessen i RawPriceData.

isBatchMode

true eller false

När satt till true returnerar tjänsten en förenklad produkt-JSON som inte inkluderar attributkategorier, men innehåller attributvalda värden och regler.

När satt till false returnerar tjänsten hela produktens JSON.

Detta alternativ är användbart om det inte finns något användargränssnitt som konsumerar resultatet av tjänsten. Till exempel, om du kör en integreringsprocess i batch-läge som innehåller denna tjänst.

mergeList

true eller false

false som standard.

Optimerar värderingssamtal genom att gruppera värderingsförfarandesamtal efter produkter som använder samma värderingsförfarande. Den gör ett värderingsanrop med en matris av indataobjekt.

Detta är användbart när du hämtar en stor lista över produkter. Flera värderingsanrop kan uppnå SQL-gränser. Arkitekturen för värderingsförfarandet är optimerad för att hantera en matris av indataobjekt och minimera antalet SQL-frågor som behövs.

omitChildren

true eller false

Sätt detta alternativ till sant endast om du även sätter omitRating till true. Detta returnerar produkter utan prissättning.

omitRating

true eller false

Om sant returnerar tjänsten produkter utan prissättning.

productClasses

’ProductClassName1,ProductClassName2’

Kommaavgränsad lista över produktklassnamn. Begränsar listan över produkter till dessa produktklasser.

rootPricingOnly

true eller false

false som standard.

Detta alternativ förbättrar prestandan genom att minska heapstorlekar.

Om värderingsförfarandet du använder endast definieras på rotproduktnivå kan du ställa in detta alternativ till true för att förbättra prestandan.

Regelalternativ

Alternativ

Beskrivning

evalOptionalCoverageRelationship

true eller falseOm satt till true kör tjänsten valfria relationsregler för täckning.

omitEligibility

true eller false

false som standard.

När satt till true frågar inte tjänsten efter kvalificerade produkter.

Istället måste du ange ett listprodukt-ID under den viktigaste products i indatakartan eller alternativkartan. Både en lista över produkt-ID:n eller en sträng med kommaavgränsade produkt-ID:n är acceptabla värden för products.

ruleAttributeSetValues

true eller false

När satt till false kör inte tjänsten regler för attributuppsättningsvärden.

När satt till true kör tjänsten värdereglerna för attributuppsättningen.

validateCoverageSelection

true eller false

Sätt till true om du har valideringsregler som du vill att tjänsten ska köras.

Alternativ för tilläggsfunktioner

Alternativ

Beskrivning

calculateTaxesAndFees

Valfri

true eller false

När satt till true beräknas skatter och avgifter för målprodukten.

includeFullProductJson

true eller false

Detta alternativ styr närvaron av ytterligare underordnade noder som svar på API baserat på indata-JSON. När satt till sant finns två ändringar i JSON för utdata:

  • Om barnbarnets typ är Försäkrad part innehåller den överordnade JSON-noden två extra underordnade noder; primär part och andra parter. Dessa två nya noder fylls i baserat på om isPrimary flaggan är inställd för den underordnade noden.

  • Om barnbarnets typ är Försäkrat objekt finns inte dessa två noder (primär part och andra parter) i response API. De barnbarn som finns i indata-JSON länkas till rätt överordnad nod i utdata-JSON för API.

För bakåtkompatibilitet är standarden false.

jurisdictionIds

Typ: 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.

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.

Gränssnittsalternativ

Alternativ

Beskrivning

lastRecordId

Anger det senaste produkt-ID som tjänsten hämtade till användargränssnittet.

Använd detta alternativ med alternativet pageSize.

pageSize

Bestäm hur många produkter tjänsten returnerar till användargränssnittet i ett anrop.

Indata-JSON

InsProductService: getRatedProducts letar efter en userInputs i indata-JSON. Använd lämpligt userInputs beroende på produktdefinitionen och betygskonfigurationen. Tjänsten accepterar endast en typ av userInputs-format åt gången.

JSON för utdata

Tjänsten returnerar en matris av ett eller flera produktobjekt. Se Strukturmodell för produkt-JSON för mer information om detta objekt.

Alla mappade userInputs från indata-JSON läggs till i produktobjektet som userValues för den enskilda instansen av attributet som det mappades till.

För varje produkt läggs JSON för utdata från värderingsförfarandet till i produkten med CalculatedPriceData. Om prissättningsformeln är inställd på produkten kommer värdet på Price att ställas in till 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.

I detta exempel anges prissättningsformeln för produkten, men inte den totala försäkrade formeln. CalculatedPriceData läggs till i resultaten från värderingsförfarandet och priset beräknas sedan baserat på formeln. Den totala försäkrade formeln visas inte i datan, inte heller TotalInsured.

{
  "totalSize": 2,
  "records": [{
      "displaySequence": -1,
      "CalculatedPriceData": {
        "ID": "1",
        "basePremium": 719,
        "premGenlLiab": "356"
      },
      "Id": "01t6A000000FshIQAS",
      "Name": "Economy Business",
      "Family": "Commercial Lines",
      "ProductCode": "bop-ECON",
      "LineOfBusiness__c": "Property & Casualty",
      "Type__c": "BusinessOwners",
      "IsRecommended__c": false,
      "RecordTypeName__c": "Product",
      "IsConfigurable__c": true,
      "PricingFormula__c": "basePremium + premGenlLiab",
      "Term__c": "Annual",
      "productId": "01t6A000000FshIQAS",
      "Price": 1075,
      "childProducts": {
        ...
      },
      "attributeCategories": {
        ...
      }
    },
    {
      ...
    }
  }

filterAttrValues-nyckel

Alternativet includeFilterAttrValues placerar produktmatrisen i en ratedProducts och lägger till ett filterAttrValues bredvid.

{
  "result": {
    "filterAttrValues": {
      "covType": {
        "listOfValues": [
          "Superior",
          "Economy"
        ],
        "valueDataType": "Text",
        "attributeName": "Type",
        "categoryName": "Policy Terms"
      },
      "covDeductible": {
        "listOfValues": [
          "1000",
          "250"
        ],
        "valueDataType": "Currency",
        "attributeName": "Deductible",
        "categoryName": "Policy Terms"
      }
    },
    "ratedProducts": {
      "totalSize": 2,
      "records": [{
          "displaySequence": -1,
          "CalculatedPriceData": {
            "ID": "1",
            "basePremium": 719,
            "premGenlLiab": "356"
          },
          "Id": "01t6A000000FshIQAS",
          "Name": "Economy Business",
          "Family": "Commercial Lines",
          "ProductCode": "bop-ECON",
          ...,
          "Price": 1075,
          "childProducts": {
            ...
          },
          "attributeCategories": {
            ...
          }
        },
        {
          ...
        }
      }
    }
  }

Varje filtrerbart attribut läggs till i objektet med nyckeln inställd till attributkoden. Värdet för varje filterattribut är ett objekt som innehåller följande:

Nyckel

Värde

attributeName

Namnet på attributet.

categoryName

Kategorins namn.

listOfValues

Listan över möjliga värden från produkten i matrisen.

valueDataType

Attributets datatyp, som Text eller Valuta.

Skatter och avgifter

Om skatter och avgifter använder tjänsten visas beräknade skatter och avgifter i en JSON-post på tre olika sätt:

  1. Om posten har beräknat skatter och avgifter lagras de som en lista i fältet taxesAndFees.

    {
      "taxesAndFees": [{
        "Id": 1,
        "calculatedAmount": 10,
        "Type__c": "Tax"
      }, {
        "Id": 2,
        "calculatedAmount": 15,
        "Type__c": "Fee"
      }]
    }
  2. Om posten har beräknat skatter för sig själv eller sina underordnade lagras summan av de beräknade skatterna för sig själv och sina underordnade i fältet taxAmount.

    {  "taxAmount”: 25 // 10 from self, 15 from children}
  3. Om posten har beräknade avgifter för sig själv eller sina underordnade lagras summan av de beräknade avgifterna för sig själv och sina underordnade i fältet feeAmount.

    {  "feeAmount”: 30 // 15 from self, 15 from children}

Ett exempel på JSON-utdata, med skatter och avgifter för de underordnade posterna samt roten, kommer att se ut ungefär så här:

{
  "Id": 1,
  "productName": "Product",
  "taxesAndFees": [{
    "Id": 1,
    "calculatedAmount": 10,
    "Type__c": "Tax"
  }, {
    "Id": 2,
    "calculatedAmount": 15,
    "Type__c": "Fee"
  }],
  "taxAmount": 25
  "feeAmount": 30
  "childProducts": {
    "records": [{
      "Id": 2,
      "productName": "Insured Item",
      "taxesAndFees": [{
        "Id": 3,
        "calculatedAmount": 15,
        "Type__c": "Tax"
      }],
      "taxAmount": 15
    }, {
      "Id": 3,
      "productName": "Coverage",
      "taxesAndFees": [{
        "Id": 4,
        "calculatedAmount": 15,
        "Type__c": "Fee"
      }],
      "feeAmount": 15
    }]
  }
}

Stjärnklassificering

Du kan använda attributeFilters för att filtrera produkter baserat på betyg, skapade som attribut av en produktmodellerare.

 
Laddar
Salesforce Help | Article