Loading
Insurance
InsProductService:getRatedProducts

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.

Classe: InsProductService

Méthode : getRatedProducts

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

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

  2. Évalue chaque produit de l'ensemble initial en fonction de ses règles d'éligibilité, ce qui réduit davantage l'ensemble de produits.

  3. Recherche la clé de userInputs dans le JSON d'entrée et récupère la valeur de la clé. userInputs est 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 userInputs diffé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 de userInputs.

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

  5. 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 des price et des totalSumInsured si 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, getRatedProducts applique 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

Options de tarification

Option

Description

aggByKey

PRODUCT.instanceKey

Lorsque aggByKey est défini, sa valeur est incluse dans le aggregationResult de la procédure de calcul, si aggregationResult n'est pas vide. (le aggregationResult est généralement rempli lorsqu'une procédure de calcul a configuré des étapes d'agrégation).

Par exemple, une police d'assurance automobile qui a plusieurs conducteurs assurés pour plusieurs voitures nécessite une aggByKey à la procédure de calcul.

alwaysCreateInstance

Définissez cette option sur true pour les produits avec plusieurs spécifications enfants à un niveau donné de la hiérarchie, aucune spécification petit-enfant et une seule procédure de tarification au niveau racine.

Oubliez cette option pour les produits qui ne remplissent pas tous ces critères.

Pour mettre en forme les userInputs de ce type de produit, consultez Une procédure de tarification par produit pour getRatedProducts.

includeInputKeys

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

Seules les clés d'entrée utilisées par la procédure de calcul ont une valeur dans les résultats.

rateType

Age ou Composite

Utilisez cette option pour l'évaluation des petits groupes.

searchText

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.

sortBy

productField1, productField2.

Trie les produits que le service reçoit dans l'ordre que vous spécifiez.

Vous pouvez utiliser DESC avec cette option pour trier les produits par ordre décroissant. Vous pouvez spécifier le premier élément à partir duquel descendre. Si vous ne spécifiez pas l'endroit où commencer, DESC utilise par défaut l'ordre alphabétique.

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.

Options de filtrage

Option

Description

attributeFilters

Une carte de attributeCode et de valeurs

Renvoie uniquement les produits qui satisfont aux valeurs d'attribut fournies dans le filtre.

effectiveDate

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

Valeur par défaut de la date du jour.

Service extrait les produits avec un effectiveDate entre EffectiveDate__c et EndDate__c et IsActive.

Le service utilise également le effectiveDate pour sélectionner la version correcte de la procédure de calcul utilisée pour calculer le prix du produit.

filters

Product2FieldName:Value

Product2FieldName:%ElementName%

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 :

ProductCode:Value,ProductCode:%ElementName%

Les filtres peuvent inclure n'importe quel champ de l'objet Product2.

includeFilterAttrValues

true ou false

Par défaut false.

Dans le JSON de sortie, avec le groupe de produits, cela ajoute l'objet filterAttrValues. Cet objet contient les attributs de produit racine marqués filtrables, avec la liste des valeurs possibles. Cette liste est utilisée par certains modèles d'interface utilisateur pour filtrer de grands ensembles de produits.

Les attributs de produits enfants ne sont pas inclus.

whereClause

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 vlocity_ins_marketsegment_c includes ('Small Group') sélectionne les produits qui ont Segments de marché 'Petit groupe' et plus ou pas plus de segments de marché dans la liste à sélection multiple.

Important
Important

Retirez de votre clé de filtrage toute référence aux champs du whereClause.

Par exemple, si vous avez des vlocity_ins_marketsegment_c:Small Group dans le filtre et un whereClause contenant une référence au même champ, ils entrent en collision et entrent en conflit, produisant des résultats imprévisibles.

Options d'optimisation

Option

Description

includeOptionalCovSelectFlag

true ou false

Par défaut false.

Définissez cette option sur true pour permettre au service d'évaluer les règles de couverture facultatives avant de transmettre les entrées de tarification aux procédures de calcul.

Si les produits n'utilisent pas de couverture facultative, utilisez le paramètre par défaut de false. L'obtention et l'ajout de données de couverture facultatives à l'entrée de tarification nécessitent un traitement supplémentaire et peuvent ralentir ce service.

includeRawCalculationResult

true ou false

Par défaut false.

Inclut les résultats complets de la procédure de calcul dans la clé de RawPriceData.

isBatchMode

true ou false

Lorsqu'il est défini sur true, le service renvoie un JSON produit simplifié qui ne contient pas de catégories d'attributs, mais inclut des valeurs et des règles sélectionnées par l'attribut.

Lorsqu'il est défini sur false, le service renvoie le JSON complet du produit.

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.

mergeList

true ou false

Par défaut false.

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.

omitChildren

true ou false

Définissez cette option sur true uniquement si vous définissez également omitRating sur true. Cela renvoie des produits sans tarification.

omitRating

true ou false

Si true, le service renvoie des produits sans tarification.

productClasses

“ProductClassName1,ProductClassName2”

Liste de noms de classe de produits séparés par une virgule. Limite la liste des produits à ces classes de produits.

rootPricingOnly

true ou false

Par défaut false.

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 true pour améliorer les performances.

Options des règles

Option

Description

evalOptionalCoverageRelationship

true ou falseSi défini sur true, le service exécute des règles de relation de couverture facultatives.

omitEligibility

true ou false

Par défaut false.

Lorsqu'il est défini sur true, le service n'interroge pas les produits éligibles.

À la place, vous devez saisir un ID de produit de liste sous la products de clé dans la carte d'entrée ou la carte des options. Une liste d'ID de produit ou une chaîne d'ID de produit séparés par une virgule sont des valeurs acceptables pour la products.

ruleAttributeSetValues

true ou false

Lorsqu'il est défini sur false, le service n'exécute pas de règle de valeur d'ensemble d'attributs.

Lorsqu'il est défini sur true, le service exécute les règles de valeur d'ensemble d'attributs.

validateCoverageSelection

true ou false

Définissez sur true si vous avez des règles de validation que le service doit exécuter.

Options de fonction complémentaire

Option

Description

calculateTaxesAndFees

Facultatif

true ou false

Lorsqu'il est défini sur true, calcule les taxes et les frais sur le produit cible.

includeFullProductJson

true ou false

Cette option contrôle la présence de nœuds petits-enfants supplémentaires en réponse à l'API basée sur le JSON d'entrée. Lorsqu'il est défini sur true, deux modifications sont apportées au JSON de sortie :

  • Si le type du petit-enfant est Partie assurée, le nœud JSON parent contient deux nœuds enfants supplémentaires, partie principale et autres parties. Ces deux nouveaux nœuds sont remplis selon que l'isPrimary indicateur est défini pour le nœud petit-enfant.

  • Si le type du petit-enfant est Élément assuré, ces deux nœuds (partie principale et autres parties) ne sont pas présents dans l'API de réponse. Les petits-enfants contenus dans le JSON d'entrée sont liés au nœud parent correct dans le JSON de sortie de l'API.

Pour la rétrocompatibilité, la valeur par défaut est false.

jurisdictionIds

Type : Liste restreinte d'ID

Utilisé conjointement avec l'option calculateTaxesAndFees.

Calcule uniquement les taxes et les frais associés aux juridictions fournies.

taxAndFeeEffectiveDate

La date effective que ce service utilise pour calculer les taxes et les frais. Cette option est séparée de l'option effectiveDate utilisée pour calculer le prix du produit.

Si une valeur est fournie, le service utilise cette valeur.

Si aucune valeur n'est fournie et que le JSON du produit n'est pas une stratégie, le service applique par défaut la date du jour.

withTaxFeeRounding

Facultatif

Si vrai, les montants de taxe et de frais calculés sont arrondis à deux décimales en utilisant la méthode de l'arrondi à moitié pair. La withTaxFeeRounding est effective uniquement lorsque l'option de calculateTaxesAndFees est également vraie. Si false, l'arrondi est désactivé.

La valeur par défaut est false.

Options de l'interface utilisateur

Option

Description

lastRecordId

Spécifie le dernier ID de produit extrait par le service dans l'interface utilisateur.

Utilisez cette option avec l'option pageSize.

pageSize

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.

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

attributeName

Le nom de l'attribut.

categoryName

Le nom de la catégorie.

listOfValues

La liste des valeurs possibles du produit du tableau.

valueDataType

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 :

  1. 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"
      }]
    }
  2. 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}
  3. 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.

 
Chargement
Salesforce Help | Article