U bent hier:
InsProductService:getRatedProducts
Gebruik deze service voor een array van een of meer producten, geprijsd met behulp van beoordelingsprocedures die aan die producten zijn gekoppeld. Deze service omvat ook extra voorzieningen zoals berekeningen van belasting en kosten, filteren en prestatieoptimalisering.
Geef voor het gebruik van deze service de set invoer door die de beoordelingsprocedure nodig heeft om producten te prijzen. De service retourneert een gefilterde array van producten en een resultaat-JSON van de beoordelingsprocedure.
De manier waarop het werkt...
-
De service doorzoekt Salesforce om een set actieve producten op te halen die binnen de geldende begin- en einddatum vallen. Zie effectiveDate hieronder voor meer informatie.
Als onderdeel van de query gebruikt de service de criteria die zijn doorgegeven in de filteroptie om een eerste set producten te krijgen. De gegevens die worden opgehaald uit Salesforce, omvatten de aanspraakregels en beoordelingsprocedure van het product, specificaties van verzekerde items, specificaties van verzekerde partij, dekkingsspecificaties, specificaties van beoordelingsfeiten en alle kenmerken ervan.
-
Evalueert elk product in de initiële set op basis van de bijbehorende aanspraakregels, waardoor de productset verder wordt gereduceerd.
-
Zoekt in de invoer-JSON naar de
userInputsen haalt de waarde van de sleutel op.userInputsis de set invoergegevens die de beoordelingsprocedure gebruikt om de prijs van het product te achterhalen. De service evalueert dit object op basis van de invoertoewijzingen van de productbeoordeling om de invoer-JSON te maken die nodig is voor de beoordelingsprocedure.U maakt
userInputsanders op, afhankelijk van de productdefinitie en de configuratie van de beoordeling. Filter om fouten te voorkomen op producten die allemaal hetzelfde typeuserInputsgebruiken. -
Geeft een beoordeling aan elk product in de set die in stap 2 is gemaakt. De gekoppelde beoordelingsprocedure van het product wordt aangeroepen met de invoer-JSON uit stap 3.
-
Retourneert een array van productobjecten met de totale prijs van elk product en de totale verzekerde som.
Elk geretourneerd productobject omvat ook de uitvoer-JSON van de beoordelingsprocedure als de waarde van
CalculatedPriceData. De service stelt ookpriceentotalSumInsuredin als de formules voor het product zijn ingesteld.Houd rekening met het volgende:
-
Als één kenmerk is ingesteld met zowel een kenmerkregel Waarde instellen als een kenmerkregel Standaardwaarde instellen, past
getRatedProductsalleen de kenmerkregel Standaardwaarde instellen toe. -
Het is een best practice om bij het instellen van expressies voor kenmerkregels niet te verwijzen naar kenmerkwaarden in structuren op een lager niveau.
-
Externe opties
Optie |
Beschrijving |
|---|---|
|
Wanneer Zo vereist een autoverzekeringspolis die meerdere bestuurders heeft die voor meerdere auto's zijn verzekerd, dat |
|
Stel deze optie in op Laat deze optie weg voor producten die niet aan al deze criteria voldoen. Zie Eén beoordelingsprocedure per product voor getRatedProducts als u |
|
Een reeks met komma's gescheiden invoersleutels om op te nemen in het uitvoerproductobject, binnen het Alleen invoersleutels die door de berekeningsprocedure worden gebruikt, hebben een waarde in de resultaten. |
|
Gebruik deze optie voor beoordeling van kleine groepen. |
|
PartOfAProductName Als deze optie wordt gebruikt, krijgt de service alleen producten met namen die de door u opgegeven waarde bevatten. |
|
productField1, productField2. Sorteert de producten die de service krijgt in de door u opgegeven volgorde. U kunt Als u geen waarde voor deze optie opgeeft, sorteert de service producten die op naam worden geretourneerd in oplopende alfabetische volgorde. |
Optie |
Beschrijving |
|---|---|
|
Een kaart van Retourneert alleen producten die voldoen aan de kenmerkwaarden die in het filter zijn opgegeven. |
|
De standaardwaarde is de datum van vandaag. Service pullt producten met een De service gebruikt de |
|
Gebruik de API-naam met een dubbele punt gevolgd door een waarde of een variabele. In een OmniScript kan een variabele bijvoorbeeld een naam van een element zijn, zoals een invoerkeuzelijst. Scheid meerdere filterparameters met komma's:
Filters kunnen elk veld voor het |
|
De standaardwaarde is In de uitvoer-JSON wordt hiermee, samen met de array van producten, het object Onderliggende productkenmerken zijn niet inbegrepen. |
|
Geef een geldige Salesforce SOQL-instructie op als waarde voor deze optie. Gebruik deze wanneer u deze service nodig hebt om naar velden met meerdere keuzelijsten te kijken bij het zoeken naar producten. Zo Belangrijk
Verwijder elke verwijzing naar de velden in de Als u bijvoorbeeld |
Optie |
Beschrijving |
|---|---|
|
De standaardwaarde is Stel deze optie in op Als producten geen optionele dekkingen gebruiken, gebruikt u de standaardinstelling van |
|
De standaardwaarde is Omvat de volledige resultaten van de berekeningsprocedure in de |
|
Indien ingesteld op Indien ingesteld op Deze optie is handig wanneer er geen UI is die de resultaten van de service verbruikt. Bijvoorbeeld als u een integratieprocedure uitvoert in batchmodus die deze service bevat. |
|
De standaardwaarde is Optimaliseert beoordelingsaanroepen door beoordelingsprocedureaanroepen te groeperen op producten met behulp van dezelfde beoordelingsprocedure. Deze voert één beoordelingsaanroep uit met een array van invoerobjecten. Dit is handig bij het ophalen van een grote lijst producten. Meerdere beoordelingsaanroepen kunnen SQL-limieten bereiken. De architectuur van de beoordelingsprocedure is geoptimaliseerd om een reeks invoerobjecten te verwerken en het aantal benodigde SQL-query's te minimaliseren. |
|
Stel deze optie alleen in op true (waar) als u |
|
Indien true (waar), retourneert de service producten zonder prijsstelling. |
|
“ProductClassName1,ProductClassName2” Door komma's gescheiden lijst van namen van productklassen. Beperkt de lijst van producten tot deze productklassen. |
|
De standaardwaarde is Deze optie verbetert de prestaties door de heapgrootte te verkleinen. Als de beoordelingsprocedure die u gebruikt, alleen is gedefinieerd op rootproductniveau, kunt u deze optie instellen op |
Optie |
Beschrijving |
|---|---|
|
|
|
De standaardwaarde is Indien ingesteld op In plaats daarvan moet u een lijstproduct-ID opgeven onder de belangrijkste |
|
Indien ingesteld op Indien ingesteld op |
|
Stel dit in op |
Optie |
Beschrijving |
|---|---|
|
Geeft de laatste product-ID aan die de service in de UI heeft opgehaald. Gebruik deze optie met de optie |
|
Bepaal hoeveel producten de service in één aanroep retourneert naar de UI. |
Invoer-JSON
InsProductService: getRatedProducts zoekt naar een userInputs in de invoer-JSON. Gebruik de juiste userInputs, afhankelijk van de productdefinitie en de configuratie van de beoordeling. De service accepteert slechts één type userInputs-indeling tegelijk.
-
Eén beoordelingsprocedure per product voor getRatedProducts
Maak
userInputsop voor producten die één beoordelingsprocedure per rootproduct gebruiken. -
Maak
userInputsop voor producten die meerdere beoordelingsprocedures in de producthiërarchie of meerdere onderliggende specificaties op elk niveau van de hiërarchie gebruiken.
Uitvoer-JSON
De service retourneert een array van een of meer productobjecten. Zie Product-JSON-structuurmodel voor meer informatie over dit object.
Alle toegewezen userInputs uit de invoer-JSON worden toegevoegd aan het productobject als de userValues van het ene exemplaar van het kenmerk waaraan het is toegewezen.
Voor elk product wordt de uitvoer-JSON van de berekening van de beoordelingsprocedure aan het product toegevoegd met de CalculatedPriceData. Als de prijsstellingsformule is ingesteld voor het product, wordt de waarde van Price ingesteld op de berekende waarde ervan. Als de totale verzekerde formule voor het product is ingesteld, wordt de waarde van TotalInsured ingesteld op de berekende waarde ervan.
In dit voorbeeld is de prijsstellingsformule ingesteld voor het product, maar de totaal verzekerde formule niet. De CalculatedPriceData wordt toegevoegd aan de resultaten van de beoordelingsprocedure en vervolgens wordt de prijs berekend op basis van de formule. De totaal verzekerde formule wordt niet weergegeven in de gegevens en TotalInsured ook niet.
{
"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-sleutel
De optie includeFilterAttrValues plaatst de productarray in een ratedProducts en voegt er een filterAttrValues naast toe.
{
"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": {
...
}
},
{
...
}
}
}
}Elk filterbaar kenmerk wordt toegevoegd aan het object met de sleutel ingesteld op de kenmerkcode. De waarde van elk filterkenmerk is een object dat het volgende bevat:
Sleutel |
Waarde |
|---|---|
|
De naam van het kenmerk. |
|
De naam van de categorie. |
|
De lijst van mogelijke waarden van het product in de array. |
|
Het gegevenstype van het kenmerk, zoals Tekst of Valuta. |
Belastingen en toeslagen
Als belastingen en vergoedingen de service gebruiken, worden berekende belastingen en vergoedingen op drie verschillende manieren weergegeven op een JSON-record:
-
Als de record belastingen en vergoedingen heeft berekend, worden deze opgeslagen als een lijst in het veld
taxesAndFees.{ "taxesAndFees": [{ "Id": 1, "calculatedAmount": 10, "Type__c": "Tax" }, { "Id": 2, "calculatedAmount": 15, "Type__c": "Fee" }] } -
Als de record belastingen op zichzelf of op onderliggende waarden heeft berekend, wordt de som van de berekende belastingen op zichzelf en onderliggende waarden opgeslagen in het veld
taxAmount.{ "taxAmount”: 25 // 10 from self, 15 from children} -
Als de record berekende kosten voor zichzelf of voor onderliggende kosten heeft, wordt de som van de berekende kosten voor zichzelf en onderliggende kosten opgeslagen in het veld
feeAmount.{ "feeAmount”: 30 // 15 from self, 15 from children}
Een voorbeeld van een JSON-uitvoer, met belastingen en kosten voor zowel de onderliggende records als de root, ziet er ongeveer als volgt uit:
{
"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
}]
}
}
Sterbeoordeling
U kunt de attributeFilters gebruiken om producten te filteren op basis van beoordelingen, die als kenmerken zijn gemaakt door een productmodeler.
- Eén beoordelingsprocedure per product voor getRatedProducts
MaakInsProductService:getRatedProducts userInputsop voor producten die één beoordelingsprocedure per rootproduct gebruiken. - Meerdere beoordelingsprocedures per product of meerdere specificaties op elk niveau voor getRatedProducts
MaakInsProductService:getRatedProducts userInputsop voor producten die meerdere beoordelingsprocedures in de producthiërarchie of meerdere onderliggende specificaties op elk niveau van de hiërarchie gebruiken.
