Loading
Forsikring
InsProductService:getRatedProducts

InsProductService:getRatedProducts

Bruk denne tjenesten til å få en matrise med ett eller flere produkter, priset med rangeringsprosedyrer knyttet til disse produktene. Denne tjenesten inkluderer også ekstra funksjoner som avgifts- og godtgjørelsesberegninger, filtrering og ytelsesoptimalisering.

Klasse: InsProductService

Metode: getRatedProducts

For å bruke denne tjenesten overfører du det settet inndata rangeringsprosedyren trenger for å prisere produkter. Tjenesten returnerer en filtrert matrise av produkter og et resultat-JSON-kode fra rangeringsprosedyren.

Slik virker det

  1. Tjenesten søker i Salesforce for å hente et sett med aktive produkter som er innenfor gyldighetsdatoen for start og sluttdato. Se effectiveDate nedenfor for å få mer informasjon.

    Som en del av spørringen bruker tjenestene kriteriene som er overført i filteralternativet, til å få et første sett med produkter. Dataene som trekkes ut fra Salesforce, inkluderer produktets berettigelsesregler og rangeringsprocedure, spesifikasjoner for forsikrede artikler, spesifikasjoner for forsikrede parter, spesifikasjoner for dekning, spesifikasjoner for rangeringsfakta og alle tilhørende attributter.

  2. Evaluerer hvert produkt i det indledende sæt baseret på dets berettigelsesregler, hvilket yderligere reducerer produktsættet.

  3. Søker i inndata-JSON-koden etter userInputs-nøkkelen og henter nøkkelens verdi. userInputs er inndatasettet som rangeringsprosedyren bruker til å finne prisen på produktet. Tjenesten evaluerer dette objektet basert på produktrangeringsinndatatilordningene for å opprette JSON-koden for inndata som er nødvendig for rangeringsprosedyren.

    Du formaterer userInputs forskjellig avhengig av produktdefinisjonen og rangeringskonfigurasjonen. For å unngå feil filtrerer du etter produkter som alle bruker samme type userInputs.

  4. Rangerer hvert produkt i settet som opprettes i trinn 2. Det kaller opp produktets tilknyttede rangeringsprosedyre med inndata-JSON-koden fra trinn 3.

  5. Returnerer en matrise med produktobjekter med hvert produkts totale pris og den totale forsikrede summen.

    Hvert returnerte produktobjekt inkluderer også JSON-utdata fra rangeringsprosedyren som verdien for CalculatedPriceData. Tjenesten angir også price og totalSumInsured hvis formlene angis på produktet.

    Vær oppmerksom på følgende:

    • Hvis et enkelt attributt er konfigurert med både en Angi verdi-attributtregel og en Angi standardverdi-attributtregel, bruker getRatedProducts bare attributtregelen Angi standardverdi.

    • En god fremgangsmåte er å ikke referere til attributtverdier i strukturer på lavere nivå når du konfigurerer attributtregeluttrykk.

Eksterne alternativer

Alternativer for rangering

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

En bilforsikringspolise som har flere førere forsikret for flere biler, krever for eksempel at aggByKey overføres til beregningsprosedyren.

alwaysCreateInstance

Angi dette alternativet til true for produkter med flere underordnede spesifikasjoner på et gitt nivå i hierarkiet, ingen underordnede spesifikasjoner 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 getRatedProducts.

includeInputKeys

En streng med kommadelte inndatastaster som skal inkluderes i utdataproduktobjektet, i CalculatedPriceData-objektet.

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

rateType

Age eller Composite

Bruk dette alternativet til rangering av små grupper.

searchText

PartOfAProductName

Hvis dette alternativet brukes, får tjenesten bare produkter med navn som inneholder verdien du oppga.

sortBy

productField1, productField2.

Sorterer produktene som tjenesten får i den rekkefølgen du angir.

Du kan bruke DESC med dette alternativet til å sortere produkter i synkende rekkefølge. Du kan angi det første elementet som skal synke fra. Hvis du ikke angir et sted å starte, bruker DESC som standard alfabetisk rekkefølge.

Hvis du ikke angir noen verdi for dette alternativet, sorterer tjenesten produktene som returneres etter navn, i stigende alfabetisk rekkefølge.

Filteralternativer

Alternativ

Beskrivelse

attributeFilters

Et kart over attributeCode og verdier

Returnerer bare produkter som tilfredsstiller attributtverdiene i filteret.

effectiveDate

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

Standardverdien er dagens dato.

Service trekker produkter med en effectiveDate mellom EffectiveDate__c og EndDate__c og IsActive.

Tjenesten bruker også effectiveDate til å velge riktig versjon av beregningsprosedyren som brukes til å rangere produktet.

filters

Product2FieldName:Value

Product2FieldName:%ElementName%

Bruk API-navnet med et kolon fulgt av en verdi eller en variabel. I et OmniScript kan en variabel for eksempel være et navn på et element, for eksempel en inndatavalgliste.

Skill flere filterparametere med kommaer:

ProductCode:Value,ProductCode:%ElementName%

Filtre kan inkludere hvilket som helst felt i Product2-objektet.

includeFilterAttrValues

true eller false

Standardverdien er false.

I utdata-JSON, sammen med matrisen av produkter, legger dette til filterAttrValues-objektet. Dette objektet inneholder rotproduktattributtene som er merket filtrerbart, med den mulige listen over verdier. Denne listen brukes av enkelte brukergrensesnittmaler til å filtrere store sett med produkter.

Underordnede produktattributter inkluderes ikke.

whereClause

Skriv inn en gyldig Salesforce SOQL-setning som verdi for dette alternativet.

Bruk denne når du trenger denne tjenesten til å se på flervalglistefelt når du søker etter produkter.

Utskriften vlocity_ins_marketsegment_c includes ('Small Group') tar for eksempel opp produkter som har Markedssegmenter "Small Group" og enten flere eller ingen flere markedssegmenter i flervalglisten.

Viktig
Viktig

Fjern eventuelle referanser til feltene i whereClause fra filternøkkelen.

Hvis du for eksempel har vlocity_ins_marketsegment_c:Small Group i filteret og en whereClause som inneholder en referanse til det samme feltet, vil de kollidere og kollidere, noe som gir uforutsigbare resultater.

Optimaliseringsalternativer

Alternativ

Beskrivelse

includeOptionalCovSelectFlag

true eller false

Standardverdien er false.

Angi dette alternativet til true at tjenesten skal evaluere valgfrie dekningsregler før vurderingsinndata overføres til beregningsprosedyrer.

Hvis produkter ikke bruker valgfrie dekninger, bruker du standardinnstillingen false. Henting og å legge til valgfrie dekningsdata i rangeringsinndata krever ekstra behandling og kan redusere hastigheten på denne tjenesten.

includeRawCalculationResult

true eller false

Standardverdien er false.

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

isBatchMode

true eller false

Når det angis til true, returnerer tjenesten en forenklet produkt-JSON-fil som ikke inkluderer attributtkategorier, men som inneholder attributtvalgte verdier og regler.

Når det angis til false, returnerer tjenesten hele produkt-JSON-koden.

Dette alternativet er nyttig når det ikke er noe brukergrensesnitt som bruker resultatet av tjenesten. Anta for eksempel at du kjører en integrasjonsprosedyre i gruppemodus som inneholder denne tjenesten.

mergeList

true eller false

Standardverdien er false.

Optimaliserer rangeringskall ved å gruppere rangeringsprosedyrekall etter produkter ved bruk av den samme rangeringsprosedyren. Den starter ett rangeringskall med en matrise med inndataobjekter.

Dette er nyttig når du trekker ut en stor liste med produkter. Flere rangeringskall kan nå SQL-grenser. Rangeringsprosedyrearkitekturen er optimalisert for å håndtere en matrise med inndataobjekter og minimere antall SQL-spørringer som er nødvendige.

omitChildren

true eller false

Angi dette alternativet til true bare hvis du også angir omitRating til true. Dette returnerer produkter uten pris.

omitRating

true eller false

Hvis true, returnerer tjenesten produkter uten pris.

productClasses

“ProductClassName1,ProductClassName2”

Kommadelt liste med produktklassenavn. Begrenser listen over produkter til disse produktklassene.

rootPricingOnly

true eller false

Standardverdien er false.

Dette alternativet forbedrer ytelsen ved å redusere heap-størrelser.

Hvis rangeringsprosedyren du bruker, bare er definert på rotproduktnivå, kan du angi dette alternativet til true for å forbedre ytelsen.

Alternativer for regler

Alternativ

Beskrivelse

evalOptionalCoverageRelationship

true eller falseHvis angitt til true, kjører tjenesten valgfrie dekningsrelasjonsregler.

omitEligibility

true eller false

Standardverdien er false.

Når det angis til true, spør ikke tjenesten etter kvalifiserte produkter.

I stedet må du oppgi en listeprodukt-ID under nøkkel products i inndatakartet eller alternativkartet. Både en liste over produkt-IDer eller en streng med kommadelte produkt-IDer er akseptable verdier for products.

ruleAttributeSetValues

true eller false

Når det angis til false, kjører ikke tjenesten verdiregler for attributtsett.

Når det angis til true, kjører tjenesten attributtsettreglene.

validateCoverageSelection

true eller false

Angi til true hvis du har valideringsregler som du trenger tjenesten til å kjøre.

Alternativer for tilleggsfunksjoner

Alternativ

Beskrivelse

calculateTaxesAndFees

Valgfritt

true eller false

Når det angis til true, beregnes avgifter og gebyrer for målproduktet.

includeFullProductJson

true eller false

Dette alternativet kontrollerer tilstedeværelsen av flere barnebarnoder som svar på API-et basert på JSON-koden for inndata. Når det angis til true, er det to endringer i JSON-koden for utdata:

  • Hvis barnebarnets type er Forsikret part, inneholder den overordnede JSON-noden to ekstra underordnede noder; primærpart og andre parter. Disse to nye nodene fylles ut basert på om isPrimary flagget er angitt for den underordnede noden.

  • Hvis barnebarnets type er Assured Item, finnes ikke disse to nodene (primærpart og andre parter) i svar-APIen. De underordnede som finnes i JSON-koden for inndata, kobles til den riktige overordnede noden i JSON-koden for API-utdata.

For bakoverkompatibilitet er standardverdien false.

jurisdictionIds

Type: Strenget liste over ID-er

Brukes sammen med calculateTaxesAndFees alternativet.

Beregner bare de avgiftene og gebyrene som er knyttet til de gitte 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.

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.

Grensesnittalternativer

Alternativ

Beskrivelse

lastRecordId

Angir den siste produkt-IDen som tjenesten hentet inn i brukergrensesnittet.

Bruk dette alternativet sammen med pageSize-alternativet.

pageSize

Bestem hvor mange produkter tjenesten returnerer til grensesnittet i ett kall.

Inndata-JSON

InsProductService: getRatedProducts ser etter en userInputs-nøkkel i inndata-JSON-filen. Bruk det riktige userInputs-formatet avhengig av produktdefinisjonen og rangeringskonfigurasjonen. Tjenesten godtar bare én type userInputs-format om gangen.

Utdata-JSON

Tjenesten returnerer en matrise med ett eller flere produktobjekter. Se Produkt-JSON-strukturmodellen for å få mer informasjon om dette objektet.

Eventuelle tilordnede userInputs fra inndata-JSON-filen blir lagt til i produktobjektet som userValues-nøkkelen til den ene forekomsten av attributtet den ble tilordnet til.

For hvert produkt blir JSON-data fra beregningen av rangeringsprosedyren lagt til i produktet med CalculatedPriceData-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.

I dette eksemplet angis prisformelen for produktet, men den totale formelen for forsikring er ikke det. CalculatedPriceData legges til resultatene fra rangeringsprosedyren, og deretter beregnes prisen basert på formelen. Den totale formelen for forsikring vises ikke i dataene, og det er heller ikke 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-nøkkel

Alternativet includeFilterAttrValues plasserer produktmatrisen i en ratedProducts-node og legger til et filterAttrValues-resultat ved siden av.

{
  "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": {
            ...
          }
        },
        {
          ...
        }
      }
    }
  }

Hvert filtrerbart attributt legges til i objektet med nøkkelen angitt til attributtkoden. Verdien til hvert filterattributt er et objekt som inneholder følgende:

Nøkkel

Verdi

attributeName

Navnet på attributtet.

categoryName

Navnet på kategorien.

listOfValues

Listen over mulige verdier fra produktet i matrisen.

valueDataType

Datatypen til attributtet, som Tekst eller Valuta.

Skatt og gebyrer

Hvis avgifter og gebyrer bruker tjenesten, vises beregnede avgifter og gebyrer på tre forskjellige måter i en JSON-post:

  1. Hvis posten har beregnet avgifter og gebyrer, lagres de som en liste i taxesAndFees-feltet.

    {
      "taxesAndFees": [{
        "Id": 1,
        "calculatedAmount": 10,
        "Type__c": "Tax"
      }, {
        "Id": 2,
        "calculatedAmount": 15,
        "Type__c": "Fee"
      }]
    }
  2. Hvis posten har beregnet avgifter på seg selv eller sine barn, lagres summen av de beregnede avgiftene på seg selv og sine barn i taxAmount.

    {  "taxAmount”: 25 // 10 from self, 15 from children}
  3. Hvis posten har beregnet gebyrer for seg selv eller sine underordnede, lagres summen av de beregnede gebyrene for seg selv og sine underordnede i feeAmount-feltet.

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

Et eksempel på JSON-utdata, med avgifter og gebyrer på de underordnede postene i tillegg til roten, vil se litt slik ut:

{
  "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
    }]
  }
}

Stjernerangering

Du kan bruke attributeFilters-inndata til å filtrere produkter basert på rangeringer, opprettet som attributter av en produktmodeller.

 
Laster
Salesforce Help | Article