Loading
Страхование
InsProductService:getRatedProducts

InsProductService:getRatedProducts

Используйте эту службу для получения массива одного или нескольких продуктов по цене посредством процедур рейтинга, вложенных в эти продукты. Эта служба также содержит дополнительные функции, например, расчет налога и платежа, фильтрацию и оптимизацию производительности.

Класс: InsProductService

Метод: getRatedProducts

Чтобы использовать эту службу, передайте ей набор вводных данных, необходимых процедуре рейтинга для ценообразования продуктов. Служба возвращает отфильтрованный массив продуктов и результат JSON из процедуры рейтинга.

Принцип работы

  1. Служба выполняет поиск в Salesforce для извлечения набора активных продуктов, относящихся к датам начала и окончания действия. Дополнительную информацию см. в разделе effectiveDate ниже.

    В качестве части запроса службы используют критерии, переданные в параметре фильтра, чтобы получить начальный набор продуктов. Данные, извлеченные из Salesforce, включают правила права на получение продукта и процедуру рейтинга, характеристики застрахованных элементов, характеристики застрахованной стороны, характеристики покрытия, характеристики фактов рейтинга и все его атрибуты.

  2. Оценивает каждый продукт в начальном наборе на основе его правил доступа, дополнительно сокращая набор продуктов.

  3. Поиск ключа userInputs по JSON ввода и извлечение значения ключа. userInputs - это набор вводных данных, используемый процедурой рейтинга для получения цены продукта. Служба оценивает этот объект на основе соотнесений ввода рейтинга продукта для создания вводного JSON, необходимого процедуре рейтинга.

    Вы форматируете userInputs по-разному, в зависимости от определения продукта и конфигурации рейтинга. Во избежание ошибок, отфильтруйте продукты, использующие одинаковый формат userInputs.

  4. Оценивает каждый продукт в наборе, созданном в шаге 2. Он вызывает связанную процедуру рейтинга продукта с вводом JSON из шага 3.

  5. Возвращает массив объектов продукта с общей ценой каждого продукта и общей страховой суммой.

    Каждый возвращенный объект продукта также содержит вывод JSON из процедуры рейтинга в качестве значения CalculatedPriceData. Служба также устанавливает price и totalSumInsured, если формулы установлены для продукта.

    Помните, что:

    • Если один атрибут настроен с правилом атрибута «Задать значение» и правилом атрибута «Задать стандартное значение», getRatedProducts применяет только правило атрибута «Задать стандартное значение».

    • Рекомендуем при настройке выражений правил атрибута не ссылаться на значения атрибутов в структурах нижнего уровня.

Удаленные параметры

Параметры рейтинга

Параметр

Описание

aggByKey

PRODUCT.instanceKey

При установке aggByKey его значение добавляется в aggregationResult процедуры вычисления, если aggregationResult не пустое. (aggregationResult обычно заполняется, когда процедура расчета содержит настроенные этапы агрегации).

Например, полис страхования автомобиля, в котором несколько водителей застрахованы для нескольких автомобилей, требует передачи aggByKey процедуре расчета.

alwaysCreateInstance

Установите этот параметр на true для продуктов с несколькими дочерними характеристиками на данном уровне иерархии, без характеристик внука и только с одной процедурой оценки на корневом уровне.

Пропустите этот параметр для продуктов, не соответствующих всем этим критериям.

Чтобы отформатировать userInputs для этого типа продукта, см. Одну процедуру оценки для продукта для getRatedProducts.

includeInputKeys

Строка ключей ввода через запятую для добавления в объект выводного продукта в объекте CalculatedPriceData.

Только ключи ввода, используемые процедурой расчета, имеют значение в результатах.

rateType

Age или Composite

Используйте этот параметр для рейтинга малых групп.

searchText

PartOfAProductName

Если этот параметр используется, служба получает только продукты с именами, содержащими предоставленное значение.

sortBy

productField1, productField2.

Сортирует продукты, получаемые службой в указанном порядке.

Вы можете использовать DESC с этим параметром для сортировки продуктов по убыванию. Вы можете указать первый элемент для спуска. Если вы не укажете место начала, DESC по умолчанию будет отображаться в алфавитном порядке.

Если вы не укажете значение для этого параметра, служба отсортирует продукты, возвращенные по имени, в возрастающем алфавитном порядке.

Параметры фильтрации

Параметр

Описание

attributeFilters

Карта attributeCode и значений

Возвращает только продукты, соответствующие значениям атрибутов, предоставленным в фильтре.

effectiveDate

“YYYY-MM-DD HH:MM:SS” или %OmniScriptDataElement%

По умолчанию до сегодняшней даты.

Служба извлекает продукты с effectiveDate между EffectiveDate__c и EndDate__c и IsActive.

Служба также использует effectiveDate для выбора правильной версии процедуры расчета, используемой для оценки продукта.

filters

Product2FieldName:Value

Product2FieldName:%ElementName%

Используйте имя API с двоеточием, за которым следует значение или переменная. Например, в OmniScript переменной может быть имя элемента, например, раскрывающийся список ввода.

Разделите несколько параметров фильтра запятыми:

ProductCode:Value,ProductCode:%ElementName%

Фильтры могут содержать любое поле объекта Product2.

includeFilterAttrValues

true или false

По умолчанию — false.

В выводном JSON вместе с массивом продуктов добавляется объект filterAttrValues. Этот объект содержит атрибуты корневого продукта, обозначенные фильтруемыми, с возможным списком значений. Данный список используется некоторыми шаблонами пользовательского интерфейса для фильтрации больших наборов продуктов.

Атрибуты дочерних продуктов не добавляются.

whereClause

Введите любое действительное оператор Salesforce SOQL в качестве значения для этого параметра.

Рекомендуем использовать данную функцию для просмотра полей раскрывающегося списка при поиске продуктов.

Например, оператор vlocity_ins_marketsegment_c includes ('Small Group') подбирает продукты, имеющие сегменты рынка «Малая группа» и больше или больше сегментов рынка в раскрывающемся списке со множественным выбором.

Важно!
Важно!

Удалите все ссылки на поля в whereClause из ключа фильтра.

Например, при наличии vlocity_ins_marketsegment_c:Small Group в фильтре и whereClause, содержащего ссылку на одно поле, они столкнутся и конфликтуют, что приведет к непредсказуемым результатам.

Параметры оптимизации

Параметр

Описание

includeOptionalCovSelectFlag

true или false

По умолчанию — false.

Установите этот параметр на true, чтобы служба оценила дополнительные правила покрытия перед передачей вводных данных рейтинга в процедуры расчета.

Если продукты не используют дополнительные покрытия, используйте стандартный параметр false. Получение и добавление дополнительных данных покрытия к вводу рейтинга требует дополнительной обработки и может замедлить эту службу.

includeRawCalculationResult

true или false

По умолчанию — false.

Содержит все результаты процедуры расчета в ключе RawPriceData.

isBatchMode

true или false

При установке на true служба возвращает упрощенный продукт JSON, который не содержит категорий атрибутов, но содержит значения и правила, выбранные атрибутами.

При установке на false служба возвращает полный продукт JSON.

Этот параметр полезен, если пользовательский интерфейс не использует результаты службы. Например, при выполнении процедуры интеграции в пакетном режиме, содержащем данную службу.

mergeList

true или false

По умолчанию — false.

Оптимизирует вызовы рейтинга, группируя вызовы процедур рейтинга по продуктам, использующим одну процедуру рейтинга. Он выполняет один вызов рейтинга с массивом объектов ввода.

Это полезно при извлечении большого списка продуктов. Несколько вызовов рейтинга могут достичь ограничений SQL. Архитектура процедуры рейтинга оптимизирована для обработки массива объектов ввода и минимизации количества необходимых запросов SQL.

omitChildren

true или false

Установите этот параметр на значение true, только если вы также установите omitRating на true. Данная функция возвращает продукты без ценообразования.

omitRating

true или false

Если значение true, то служба возвращает продукты без ценообразования.

productClasses

“ProductClassName1,ProductClassName2”

Разделенный запятыми список имен классов продуктов. Ограничивает список продуктов следующими классами продуктов.

rootPricingOnly

true или false

По умолчанию — false.

Этот параметр повышает производительность, уменьшая размеры кучи.

Если используемая процедура рейтинга определяется только на уровне корневого продукта, вы можете установить этот параметр на true для повышения производительности.

Параметры правил

Параметр

Описание

evalOptionalCoverageRelationship

true или falseЕсли установлено значение «true», служба выполняет дополнительные правила взаимосвязи покрытия.

omitEligibility

true или false

По умолчанию — false.

При установке значения true служба не запрашивает соответствующие продукты.

Вместо этого необходимо ввести код продукта списка под ключевым products в карте ввода или карте параметров. Список кодов продуктов или строка кодов продуктов, разделенных запятыми, являются приемлемыми значениями для products.

ruleAttributeSetValues

true или false

При установке на false служба не выполняет правила значений набора атрибутов.

При установке на true служба выполняет правила значений набора атрибутов.

validateCoverageSelection

true или false

Установите true, если у вас есть правила проверки, необходимые для выполнения службы.

Параметры дополнительных функций

Параметр

Описание

calculateTaxesAndFees

Дополнительно

true или false

При установке значения «true» вычисляет налоги и платежи для целевого продукта.

includeFullProductJson

true или false

Этот параметр управляет наличием дополнительных внучатых узлов в ответ на API на основе ввода JSON. При установке значения true в выводном JSON есть два изменения:

  • Если типом внучки является «Застрахованная сторона», родительский узел JSON содержит два дополнительных дочерних узла: основной и другие стороны. Эти два новых узла заполняются в зависимости от того, установлен ли isPrimary флажок для внучатого узла.

  • Если типом внучки является «Застрахованный элемент», эти два узла (основная сторона и другие стороны) не присутствуют в API ответа. Внуки, содержащиеся во вводе JSON, связаны с корректным родительским узлом в выводе JSON API.

Для обратной совместимости по умолчанию используется false.

jurisdictionIds

Тип: Строгий список кодов

Используется совместно с параметром calculateTaxesAndFees.

Рассчитывает только те налоги и платежи, которые связаны с предоставленными юрисдикциями.

taxAndFeeEffectiveDate

Дата вступления в силу, используемая службой для расчета налогов и платежей. Данный параметр отличается от параметра effectiveDate, используемого для определения цены продукта.

Если значение предоставлено, служба использует это значение.

Если значение не предоставлено, а продукт JSON не является полисом, служба по умолчанию использует текущую дату.

withTaxFeeRounding

Дополнительно

Если значение true, то вычисленные суммы налога и платежа округляются до двух знаков после запятой посредством метода округления пополам. withTaxFeeRounding действует, только если параметр calculateTaxesAndFees также является истинным. Если значение false, округление выключено.

Значение по умолчанию является ложным.

Параметры пользовательского интерфейса

Параметр

Описание

lastRecordId

Указывает последний код продукта, извлеченный службой в пользовательский интерфейс.

Используйте этот параметр с параметром pageSize.

pageSize

Определите, сколько продуктов служба возвращает в пользовательский интерфейс за один вызов.

JSON ввода

InsProductService: getRatedProducts ищет ключ userInputs в JSON ввода. Используйте соответствующий формат userInputs, в зависимости от определения продукта и конфигурации рейтинга. Одновременно служба принимает только один тип формата userInputs.

Вывод JSON

Служба возвращает массив одного или нескольких объектов продукта. Дополнительную информацию об этом объекте см. в разделе «Модель структуры JSON продукта».

Любые соотнесенные userInputs из ввода JSON добавляются в объект продукта в качестве ключа userValues единственного экземпляра атрибута, с которым они были соотнесены.

Для каждого продукта вывод JSON из расчета процедуры рейтинга добавляется к продукту с ключом CalculatedPriceData. Если формула ценообразования установлена для продукта, значение Price будет установлено на его вычисленное значение. Если формула общего страхования установлена для продукта, значение TotalInsured устанавливается на его вычисленное значение.

В данном примере формула ценообразования установлена для продукта, а общая формула страховки нет. CalculatedPriceData добавляется к результатам процедуры определения рейтинга, затем цена рассчитывается на основе формулы. Общая застрахованная формула не отображается в данных, как и 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

Параметр includeFilterAttrValues помещает массив продуктов в узел ratedProducts и добавляет результат 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": {
            ...
          }
        },
        {
          ...
        }
      }
    }
  }

Каждый фильтруемый атрибут добавляется к объекту с набором ключей к коду атрибута. Значением каждого атрибута фильтра является объект, содержащий следующее:

Клавиша

Значение

attributeName

Имя атрибута.

categoryName

Имя категории.

listOfValues

Список возможных значений из продукта в массиве.

valueDataType

Тип данных атрибута, например, Текст или Валюта.

Налоги и сборы

Если налоги и платежи используют службу, вычисленные налоги и платежи отображаются в записи JSON тремя разными способами:

  1. Если запись вычисляет налоги и платежи, они сохраняются в виде списка в поле taxesAndFees.

    {
      "taxesAndFees": [{
        "Id": 1,
        "calculatedAmount": 10,
        "Type__c": "Tax"
      }, {
        "Id": 2,
        "calculatedAmount": 15,
        "Type__c": "Fee"
      }]
    }
  2. Если запись вычислила налоги для себя или своих дочерних компаний, сумма вычисленных налогов для себя и своих дочерних компаний сохраняется в поле taxAmount.

    {  "taxAmount”: 25 // 10 from self, 15 from children}
  3. Если запись вычислила платежи для себя или своих дочерних компаний, сумма вычисленных платежей для себя и своих дочерних компаний сохраняется в поле feeAmount.

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

Образец вывода JSON с налогами и платежами по дочерним записям, а также корневым, будет выглядеть примерно следующим образом:

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

Рейтинг звезд

Вы можете использовать вводные данные attributeFilters для фильтрации продуктов на основе рейтингов, созданных в качестве атрибутов разработчиком модели продуктов.

 
Загрузка
Salesforce Help | Article