Vous êtes ici :
InsProductService:getRatedProducts
Utilisez ce service pour obtenir une sélection d'un ou de plusieurs produits, dont le prix est calculé en utilisant les procédures de tarification jointes à ces produits. Ce service inclut également des fonctionnalités supplémentaires telles que les calculs de taxe et de frais, le filtrage et l'optimisation des performances.
Pour utiliser ce service, transmettez-lui l'ensemble d'entrées dont la procédure de tarification a besoin pour calculer le prix des produits. Le service renvoie un tableau filtré de produits et un JSON de résultat de la procédure de tarification.
Fonctionnement
-
Le service recherche dans Salesforce pour récupérer une série de produits actifs compris entre les dates de début et de fin effectives. Pour plus d'informations, consultez effectiveDate ci-dessous.
Dans le cadre de la requête, les services utilisent les critères passés dans l'option de filtrage pour obtenir une série initiale de produits. Les données extraites de Salesforce comprennent les règles d'éligibilité et la procédure de tarification du produit, les spécifications des articles assurés, les spécifications des parties assurées, les spécifications de couverture, les spécifications de fait de tarification et tous ses attributs.
-
Évalue chaque produit de l'ensemble initial en fonction de ses règles d'éligibilité, ce qui réduit davantage l'ensemble de produits.
-
Recherche la clé de
userInputsdans le JSON d'entrée et récupère la valeur de la clé.userInputsest l'ensemble de données d'entrée que la procédure de tarification utilise pour obtenir le prix du produit. Le service évalue cet objet sur la base des mappages d'entrées de tarification du produit afin de créer le JSON d'entrée requis par la procédure de tarification.Vous mettez en forme les
userInputsdifféremment selon la définition du produit et la configuration de la tarification. Pour éviter les erreurs, filtrez les produits qui utilisent tous le même type de format deuserInputs. -
Note chaque produit de l'ensemble créé à l'étape 2. Il appelle la procédure de tarification associée au produit avec le JSON d'entrée de l'étape 3.
-
Renvoie un tableau d'objets produit avec le prix total de chaque produit et la somme totale assurée.
Chaque objet produit renvoyé inclut également le JSON de sortie de la procédure de tarification en tant que valeur de
CalculatedPriceData. Le service définit également despriceet destotalSumInsuredsi les formules sont définies sur le produit.Notez les points suivants :
-
Si un seul attribut est configuré avec une règle d'attribut Définir la valeur et une règle d'attribut Définir la valeur par défaut,
getRatedProductsapplique uniquement la règle d'attribut Définir la valeur par défaut. -
La meilleure pratique recommande de ne pas référencer les valeurs d'attribut dans les structures de niveau inférieur lorsque vous configurez des expressions de règle d'attribut.
-
Options distantes
Option |
Description |
|---|---|
|
Lorsque Par exemple, une police d'assurance automobile qui a plusieurs conducteurs assurés pour plusieurs voitures nécessite une |
|
Définissez cette option sur Oubliez cette option pour les produits qui ne remplissent pas tous ces critères. Pour mettre en forme les |
|
Une chaîne de clés d'entrée séparées par une virgule à inclure dans l'objet produit de sortie, dans l'objet Seules les clés d'entrée utilisées par la procédure de calcul ont une valeur dans les résultats. |
|
Utilisez cette option pour l'évaluation des petits groupes. |
|
PartOfAProductName Si cette option est utilisée, le service récupère uniquement les produits dont le nom contient la valeur que vous avez fournie. |
|
productField1, productField2. Trie les produits que le service reçoit dans l'ordre que vous spécifiez. Vous pouvez utiliser Si vous ne spécifiez pas de valeur pour cette option, le service trie les produits renvoyés par leur nom par ordre alphabétique croissant. |
Option |
Description |
|---|---|
|
Une carte de Renvoie uniquement les produits qui satisfont aux valeurs d'attribut fournies dans le filtre. |
|
Valeur par défaut de la date du jour. Service extrait les produits avec un Le service utilise également le |
|
Utilisez le nom d'API avec deux points suivis d'une valeur ou d'une variable. Par exemple, dans un OmniScript, une variable peut être le nom d'un élément, par exemple une liste de sélection d'entrée. Séparez plusieurs paramètres de filtrage par des virgules :
Les filtres peuvent inclure n'importe quel champ de l'objet |
|
Par défaut Dans le JSON de sortie, avec le groupe de produits, cela ajoute l'objet Les attributs de produits enfants ne sont pas inclus. |
|
Saisissez n'importe quelle instruction SOQL Salesforce valide en tant que valeur de cette option. Utilisez-le lorsque vous avez besoin de ce service pour examiner les champs de liste à sélection multiple en recherchant des produits. Par exemple, l'instruction Important
Retirez de votre clé de filtrage toute référence aux champs du Par exemple, si vous avez des |
Option |
Description |
|---|---|
|
Par défaut Définissez cette option sur Si les produits n'utilisent pas de couverture facultative, utilisez le paramètre par défaut de |
|
Par défaut Inclut les résultats complets de la procédure de calcul dans la clé de |
|
Lorsqu'il est défini sur Lorsqu'il est défini sur Cette option est utile lorsque l'interface utilisateur ne consomme pas les résultats du service. Par exemple, si vous exécutez une procédure d'intégration en mode batch qui contient ce service. |
|
Par défaut Optimise les appels de tarification en regroupant les appels de procédure de tarification par produits en utilisant la même procédure de tarification. Il passe un appel de tarification avec un groupe d'objets d'entrée. Ceci est utile pour extraire une grande liste de produits. Plusieurs appels d'évaluation peuvent atteindre les limites en SQL. L'architecture de la procédure de tarification est optimisée pour gérer un ensemble d'objets d'entrée et minimiser le nombre de requêtes SQL nécessaires. |
|
Définissez cette option sur true uniquement si vous définissez également |
|
Si true, le service renvoie des produits sans tarification. |
|
“ProductClassName1,ProductClassName2” Liste de noms de classe de produits séparés par une virgule. Limite la liste des produits à ces classes de produits. |
|
Par défaut Cette option améliore les performances en réduisant la taille des tas. Si la procédure de tarification que vous utilisez est définie uniquement au niveau du produit racine, vous pouvez définir cette option sur |
Option |
Description |
|---|---|
|
|
|
Par défaut Lorsqu'il est défini sur À la place, vous devez saisir un ID de produit de liste sous la |
|
Lorsqu'il est défini sur Lorsqu'il est défini sur |
|
Définissez sur |
Option |
Description |
|---|---|
|
Spécifie le dernier ID de produit extrait par le service dans l'interface utilisateur. Utilisez cette option avec l'option |
|
Déterminez le nombre de produits que le service renvoie à l'interface utilisateur en un seul appel. |
JSON d'entrée
InsProductService: getRatedProducts recherche une clé de userInputs dans le JSON d'entrée. Utilisez le format de userInputs approprié en fonction de la définition du produit et de la configuration du prix. Le service accepte un seul type de format userInputs à la fois.
-
Une procédure de tarification par produit pour getRatedProducts
Mettre en forme les
userInputsdes produits qui utilisent une procédure de tarification unique par produit racine. -
Mettre en forme les
userInputsde produits qui utilisent plusieurs procédures de tarification dans la hiérarchie des produits ou plusieurs spécifications enfants à n'importe quel niveau de la hiérarchie.
JSON de sortie
Le service renvoie un groupe d'un ou plusieurs objets produit. Pour plus d'informations sur cet objet, consultez Modèle de structure JSON Produit.
Tous les userInputs mappés du JSON d'entrée sont ajoutés à l'objet produit en tant que clé de userValues de l'instance unique de l'attribut avec lequel ils ont été mappés.
Pour chaque produit, le JSON de sortie du calcul de la procédure de tarification est ajouté au produit avec la clé de CalculatedPriceData. Si la formule de tarification est définie sur le produit, la valeur de Price est définie sur sa valeur calculée. Si la formule totale assurée est définie sur le produit, la valeur de TotalInsured est définie sur sa valeur calculée.
Dans cet exemple, la formule de tarification est définie sur le produit, mais pas la formule totale assurée. Le CalculatedPriceData est ajouté aux résultats de la procédure de tarification, puis le prix est calculé sur la base de la formule. La formule Total assuré n'est pas affichée dans les données, pas plus que 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": {
...
}
},
{
...
}
}Clé filterAttrValues
L'option de includeFilterAttrValues place le tableau de produits dans un nœud ratedProducts et ajoute un résultat de filterAttrValues en parallèle.
{
"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": {
...
}
},
{
...
}
}
}
}Chaque attribut filtrable est ajouté à l'objet avec la clé définie dans le code de l'attribut. La valeur de chaque attribut filter est un objet qui contient les éléments suivants :
Clé |
Valeur |
|---|---|
|
Le nom de l'attribut. |
|
Le nom de la catégorie. |
|
La liste des valeurs possibles du produit du tableau. |
|
Le type de données de l'attribut, par exemple Texte ou Devise. |
Taxes et frais
Si les taxes et frais utilisent le service, les taxes et frais calculés sont affichés dans un enregistrement JSON de trois façons distinctes :
-
Si l'enregistrement contient des taxes et des frais calculés, ils sont stockés sous forme de liste dans le champ
taxesAndFees.{ "taxesAndFees": [{ "Id": 1, "calculatedAmount": 10, "Type__c": "Tax" }, { "Id": 2, "calculatedAmount": 15, "Type__c": "Fee" }] } -
Si l'enregistrement a calculé les taxes pour lui-même ou ses enfants, la somme des taxes calculées pour lui-même et ses enfants est stockée dans le champ
taxAmount.{ "taxAmount”: 25 // 10 from self, 15 from children} -
Si l'enregistrement a calculé des frais pour lui-même ou ses enfants, la somme des frais calculés pour lui-même et ses enfants est stockée dans le champ
feeAmount.{ "feeAmount”: 30 // 15 from self, 15 from children}
Un exemple de sortie JSON, avec les taxes et les frais dans les enregistrements enfants ainsi que la racine, se présente comme suit :
{
"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
}]
}
}
Classement par étoiles
Vous pouvez utiliser l'entrée attributeFilters pour filtrer les produits par évaluation, créés sous forme d'attributs par un modélisateur de produit.
- Une procédure de tarification par produit pour getRatedProducts
Mettre en forme lesInsProductService:getRatedProducts userInputsdes produits qui utilisent une procédure de tarification unique par produit racine. - Procédures de tarification multiples par produit ou spécifications multiples à n'importe quel niveau pour getRatedProducts
Mettre en forme lesInsProductService:getRatedProducts userInputsde produits qui utilisent plusieurs procédures de tarification dans la hiérarchie des produits ou plusieurs spécifications enfants à n'importe quel niveau de la hiérarchie.
