Você está aqui:
InsProductService:getRatedProducts
Use esse serviço para obter uma matriz de um ou mais produtos, precificados usando os procedimentos de classificação anexados a esses produtos. Esse serviço também inclui recursos extras, como cálculos de taxa e imposto, filtragem e otimização de desempenho.
Para usar esse serviço, passe o conjunto de entradas de que o procedimento de classificação precisa para precificar produtos. O serviço retorna uma matriz filtrada de produtos e um JSON de resultado do procedimento de classificação.
Como funciona
-
O serviço pesquisa o Salesforce para recuperar um conjunto de produtos ativos que estejam dentro das datas de início e término efetivas. Consulte effectiveDate abaixo para obter mais informações.
Como parte da consulta, os serviços usam os critérios passados na opção de filtro para obter um conjunto inicial de produtos. Os dados obtidos do Salesforce incluem as regras de elegibilidade do produto e o procedimento de classificação, especificações de item segurado, especificações de parte segurada, especificações de cobertura, especificações de fato de classificação e todos os seus atributos.
-
Avalia cada produto no conjunto inicial com base em suas regras de elegibilidade, reduzindo ainda mais o conjunto de produtos.
-
Pesquisa no JSON de entrada a chave
userInputse recupera o valor da chave.userInputsé o conjunto de dados de entrada que o procedimento de classificação usa para obter o preço do produto. O serviço avalia esse objeto com base nos mapeamentos de entrada de classificação de produto para criar o JSON de entrada necessário para o procedimento de classificação.Você formata os
userInputsde forma diferente dependendo da definição do produto e da configuração de classificação. Para evitar erros, filtre produtos que usam o mesmo tipo de formato deuserInputs. -
Classifica cada produto no conjunto criado na etapa 2. Ele chama o procedimento de classificação associado ao produto com o JSON de entrada da etapa 3.
-
Retorna uma matriz de objetos de produto com o preço total de cada produto e o valor total seguro.
Cada objeto de produto devolvido também inclui o JSON de saída do procedimento de classificação como o valor de
CalculatedPriceData. O serviço também definepriceetotalSumInsuredse as fórmulas forem definidas no produto.Tenha em mente que:
-
Se um único atributo for configurado com uma regra de atributo Definir valor e uma regra de atributo Definir valor padrão, a
getRatedProductsaplicará apenas a regra de atributo Definir valor padrão. -
Como prática recomendada, ao configurar expressões de regra de atributo, não faça referência a valores de atributo em estruturas de nível inferior.
-
Opções remotas
Opção |
Descrição |
|---|---|
|
Quando Por exemplo, uma apólice de seguro de carro que tem vários motoristas segurados para vários carros exige que as |
|
Defina essa opção como Omita essa opção para produtos que não atendem a todos esses critérios. Para formatar as |
|
Uma string de chaves de entrada separadas por vírgula para incluir no objeto de produto de saída, dentro do objeto Somente as chaves de entrada usadas pelo procedimento de cálculo têm um valor nos resultados. |
|
Use essa opção para classificação de grupo pequeno. |
|
PartOfAProductName Se essa opção for usada, o serviço receberá apenas produtos com nomes que contenham o valor fornecido. |
|
productField1, productField2. Classifica os produtos que o serviço recebe na ordem especificada. Você pode usar Se você não especificar um valor para essa opção, o serviço classificará os produtos retornados por nome em ordem alfabética crescente. |
Opção |
Descrição |
|---|---|
|
Um mapa de Retorna apenas produtos que cumprem os valores de atributo fornecidos no filtro. |
|
O padrão é a data de hoje. O serviço atrai produtos com uma O serviço também usa o |
|
Use o nome da API com uma vírgula seguida por um valor ou uma variável. Por exemplo, em um OmniScript, uma variável pode ser um nome de um elemento, como uma lista de opções de entrada. Separe vários parâmetros de filtro com vírgulas:
Os filtros podem incluir qualquer campo no objeto |
|
Padrão para No JSON de saída, junto com a matriz de produtos, isso adiciona o objeto Os atributos filho do produto não são incluídos. |
|
Insira qualquer instrução SOQL do Salesforce válida como o valor dessa opção. Use isso quando precisar desse serviço para procurar campos de várias listas de opções ao pesquisar produtos. Por exemplo, a declaração Importante
Remova qualquer referência aos campos na Por exemplo, se você tiver |
Opção |
Descrição |
|---|---|
|
Padrão para Defina essa opção para Se os produtos não usarem coberturas opcionais, use a configuração padrão de |
|
Padrão para Inclui todos os resultados do procedimento de cálculo na chave de |
|
Quando definido como Quando definido como Essa opção é útil quando não há UI que consuma os resultados do serviço. Por exemplo, se você estiver executando um procedimento de integração no modo em lote que contenha esse serviço. |
|
Padrão para Otimiza chamadas de classificação agrupando chamadas de procedimento de classificação por produtos usando o mesmo procedimento de classificação. Ele faz uma chamada de classificação com uma matriz de objetos de entrada. Isso é útil ao capturar uma grande lista de produtos. Várias chamadas de classificação podem atingir os limites de SQL. A arquitetura do procedimento de classificação é otimizada para lidar com uma matriz de objetos de entrada e minimizar o número de consultas SQL necessárias. |
|
Defina essa opção como true apenas se você também definir |
|
Se verdadeiro, o serviço devolverá produtos sem precificação. |
|
“ProductClassName1,ProductClassName2” Lista separada por vírgulas de nomes de classe de produto. Limita a lista de produtos a essas classes de produto. |
|
Padrão para Essa opção melhora o desempenho reduzindo os tamanhos de heap. Se o procedimento de classificação que você está usando for definido apenas no nível do produto raiz, você poderá definir essa opção como |
Opção |
Descrição |
|---|---|
|
|
|
Padrão para Quando definido como Em vez disso, você deve fornecer um ID de produto de lista sob o |
|
Quando definido como Quando definido como |
|
Defina como |
Opção |
Descrição |
|---|---|
|
Especifica o ID do último produto que o serviço capturou para a UI. Use essa opção com a opção |
|
Determine quantos produtos o serviço retorna à UI em uma chamada. |
JSON de entrada
O InsProductService: getRatedProducts procura uma chave userInputs no JSON de entrada. Use o formato de userInputs apropriado, dependendo da definição do produto e da configuração de classificação. O serviço aceita apenas um tipo de formato userInputs por vez.
-
Um procedimento de classificação por produto para getRatedProducts
Formatar
userInputspara produtos que usam um único procedimento de classificação por produto raiz. -
Formate
userInputspara produtos que usam vários procedimentos de classificação na hierarquia de produtos ou várias especificações filho em qualquer nível da hierarquia.
JSON de saída
O serviço retorna uma matriz de um ou mais objetos de produto. Consulte o Modelo de estrutura JSON do produto para obter mais informações sobre esse objeto.
Qualquer userInputs mapeado do JSON de entrada é adicionado ao objeto de produto como a chave de userValues da única instância do atributo para o qual ele foi mapeado.
Para cada produto, o JSON de saída do cálculo do procedimento de classificação é adicionado ao produto com a chave de CalculatedPriceData. Se a fórmula de precificação for definida no produto, o valor de Price será definido como seu valor calculado. Se a fórmula total do seguro for definida no produto, o valor de TotalInsured será definido como o valor calculado.
Neste exemplo, a fórmula de precificação é definida no produto, mas a fórmula de seguro total não é. O CalculatedPriceData é adicionado aos resultados do procedimento de classificação e o preço é calculado com base na fórmula. A fórmula total do seguro não aparece nos dados, nem 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 Key
A opção includeFilterAttrValues coloca a matriz de produtos em um nó de ratedProducts e adiciona um resultado de filterAttrValues.
{
"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": {
...
}
},
{
...
}
}
}
}Cada atributo filtrável é adicionado ao objeto com a chave definida para o código de atributo. O valor de cada atributo de filtro é um objeto que contém o seguinte:
Chave |
Valor |
|---|---|
|
O nome do atributo. |
|
O nome da categoria. |
|
A lista de valores possíveis do produto na matriz. |
|
O tipo de dados do atributo, como Texto ou Moeda. |
Impostos e taxas
Se impostos e tarifas usarem o serviço, os impostos e tarifas calculados aparecerão em um registro JSON de três maneiras distintas:
-
Se o registro tiver calculado impostos e taxas, eles serão armazenados como uma lista no campo
taxesAndFees.{ "taxesAndFees": [{ "Id": 1, "calculatedAmount": 10, "Type__c": "Tax" }, { "Id": 2, "calculatedAmount": 15, "Type__c": "Fee" }] } -
Se o registro tiver calculado impostos sobre si mesmo ou seus filhos, a soma dos impostos calculados sobre si mesmo e seus filhos será armazenada no campo de
taxAmount.{ "taxAmount”: 25 // 10 from self, 15 from children} -
Se o registro tiver calculado taxas sobre si mesmo ou seus filhos, a soma das taxas calculadas sobre si mesmo e seus filhos será armazenada no campo de
feeAmount.{ "feeAmount”: 30 // 15 from self, 15 from children}
Uma saída JSON de amostra, com impostos e taxas nos registros filhos, bem como na raiz, terá a seguinte aparência:
{
"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
}]
}
}
Classificação estrela
Você pode usar a entrada de attributeFilters para filtrar produtos com base em classificações, criadas como atributos por um modelador de produto.
- Um procedimento de classificação por produto para getRatedProducts
FormatarInsProductService:getRatedProducts userInputspara produtos que usam um único procedimento de classificação por produto raiz. - Vários procedimentos de classificação por produto ou várias especificações em qualquer nível para getRatedProducts
FormateInsProductService:getRatedProducts userInputspara produtos que usam vários procedimentos de classificação na hierarquia de produtos ou várias especificações filho em qualquer nível da hierarquia.

