Вы находитесь здесь:
InsProductService:getRatedProducts
Используйте эту службу для получения массива одного или нескольких продуктов по цене посредством процедур рейтинга, вложенных в эти продукты. Эта служба также содержит дополнительные функции, например, расчет налога и платежа, фильтрацию и оптимизацию производительности.
Чтобы использовать эту службу, передайте ей набор вводных данных, необходимых процедуре рейтинга для ценообразования продуктов. Служба возвращает отфильтрованный массив продуктов и результат JSON из процедуры рейтинга.
Принцип работы
-
Служба выполняет поиск в Salesforce для извлечения набора активных продуктов, относящихся к датам начала и окончания действия. Дополнительную информацию см. в разделе effectiveDate ниже.
В качестве части запроса службы используют критерии, переданные в параметре фильтра, чтобы получить начальный набор продуктов. Данные, извлеченные из Salesforce, включают правила права на получение продукта и процедуру рейтинга, характеристики застрахованных элементов, характеристики застрахованной стороны, характеристики покрытия, характеристики фактов рейтинга и все его атрибуты.
-
Оценивает каждый продукт в начальном наборе на основе его правил доступа, дополнительно сокращая набор продуктов.
-
Поиск ключа
userInputsпо JSON ввода и извлечение значения ключа.userInputs- это набор вводных данных, используемый процедурой рейтинга для получения цены продукта. Служба оценивает этот объект на основе соотнесений ввода рейтинга продукта для создания вводного JSON, необходимого процедуре рейтинга.Вы форматируете
userInputsпо-разному, в зависимости от определения продукта и конфигурации рейтинга. Во избежание ошибок, отфильтруйте продукты, использующие одинаковый форматuserInputs. -
Оценивает каждый продукт в наборе, созданном в шаге 2. Он вызывает связанную процедуру рейтинга продукта с вводом JSON из шага 3.
-
Возвращает массив объектов продукта с общей ценой каждого продукта и общей страховой суммой.
Каждый возвращенный объект продукта также содержит вывод JSON из процедуры рейтинга в качестве значения
CalculatedPriceData. Служба также устанавливаетpriceиtotalSumInsured, если формулы установлены для продукта.Помните, что:
-
Если один атрибут настроен с правилом атрибута «Задать значение» и правилом атрибута «Задать стандартное значение»,
getRatedProductsприменяет только правило атрибута «Задать стандартное значение». -
Рекомендуем при настройке выражений правил атрибута не ссылаться на значения атрибутов в структурах нижнего уровня.
-
Удаленные параметры
Параметр |
Описание |
|---|---|
|
При установке Например, полис страхования автомобиля, в котором несколько водителей застрахованы для нескольких автомобилей, требует передачи |
|
Установите этот параметр на Пропустите этот параметр для продуктов, не соответствующих всем этим критериям. Чтобы отформатировать |
|
Строка ключей ввода через запятую для добавления в объект выводного продукта в объекте Только ключи ввода, используемые процедурой расчета, имеют значение в результатах. |
|
Используйте этот параметр для рейтинга малых групп. |
|
PartOfAProductName Если этот параметр используется, служба получает только продукты с именами, содержащими предоставленное значение. |
|
productField1, productField2. Сортирует продукты, получаемые службой в указанном порядке. Вы можете использовать Если вы не укажете значение для этого параметра, служба отсортирует продукты, возвращенные по имени, в возрастающем алфавитном порядке. |
Параметр |
Описание |
|---|---|
|
Карта Возвращает только продукты, соответствующие значениям атрибутов, предоставленным в фильтре. |
|
По умолчанию до сегодняшней даты. Служба извлекает продукты с Служба также использует |
|
Используйте имя API с двоеточием, за которым следует значение или переменная. Например, в OmniScript переменной может быть имя элемента, например, раскрывающийся список ввода. Разделите несколько параметров фильтра запятыми:
Фильтры могут содержать любое поле объекта |
|
По умолчанию — В выводном JSON вместе с массивом продуктов добавляется объект Атрибуты дочерних продуктов не добавляются. |
|
Введите любое действительное оператор Salesforce SOQL в качестве значения для этого параметра. Рекомендуем использовать данную функцию для просмотра полей раскрывающегося списка при поиске продуктов. Например, оператор Важно!
Удалите все ссылки на поля в Например, при наличии |
Параметр |
Описание |
|---|---|
|
По умолчанию — Установите этот параметр на Если продукты не используют дополнительные покрытия, используйте стандартный параметр |
|
По умолчанию — Содержит все результаты процедуры расчета в ключе |
|
При установке на При установке на Этот параметр полезен, если пользовательский интерфейс не использует результаты службы. Например, при выполнении процедуры интеграции в пакетном режиме, содержащем данную службу. |
|
По умолчанию — Оптимизирует вызовы рейтинга, группируя вызовы процедур рейтинга по продуктам, использующим одну процедуру рейтинга. Он выполняет один вызов рейтинга с массивом объектов ввода. Это полезно при извлечении большого списка продуктов. Несколько вызовов рейтинга могут достичь ограничений SQL. Архитектура процедуры рейтинга оптимизирована для обработки массива объектов ввода и минимизации количества необходимых запросов SQL. |
|
Установите этот параметр на значение true, только если вы также установите |
|
Если значение true, то служба возвращает продукты без ценообразования. |
|
“ProductClassName1,ProductClassName2” Разделенный запятыми список имен классов продуктов. Ограничивает список продуктов следующими классами продуктов. |
|
По умолчанию — Этот параметр повышает производительность, уменьшая размеры кучи. Если используемая процедура рейтинга определяется только на уровне корневого продукта, вы можете установить этот параметр на |
Параметр |
Описание |
|---|---|
|
|
|
По умолчанию — При установке значения Вместо этого необходимо ввести код продукта списка под ключевым |
|
При установке на При установке на |
|
Установите |
Параметр |
Описание |
|---|---|
|
Указывает последний код продукта, извлеченный службой в пользовательский интерфейс. Используйте этот параметр с параметром |
|
Определите, сколько продуктов служба возвращает в пользовательский интерфейс за один вызов. |
JSON ввода
InsProductService: getRatedProducts ищет ключ userInputs в JSON ввода. Используйте соответствующий формат userInputs, в зависимости от определения продукта и конфигурации рейтинга. Одновременно служба принимает только один тип формата userInputs.
-
Одна процедура оценки для каждого продукта для getRatedProducts
Форматируйте
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": {
...
}
},
{
...
}
}
}
}Каждый фильтруемый атрибут добавляется к объекту с набором ключей к коду атрибута. Значением каждого атрибута фильтра является объект, содержащий следующее:
Клавиша |
Значение |
|---|---|
|
Имя атрибута. |
|
Имя категории. |
|
Список возможных значений из продукта в массиве. |
|
Тип данных атрибута, например, Текст или Валюта. |
Налоги и сборы
Если налоги и платежи используют службу, вычисленные налоги и платежи отображаются в записи JSON тремя разными способами:
-
Если запись вычисляет налоги и платежи, они сохраняются в виде списка в поле
taxesAndFees.{ "taxesAndFees": [{ "Id": 1, "calculatedAmount": 10, "Type__c": "Tax" }, { "Id": 2, "calculatedAmount": 15, "Type__c": "Fee" }] } -
Если запись вычислила налоги для себя или своих дочерних компаний, сумма вычисленных налогов для себя и своих дочерних компаний сохраняется в поле
taxAmount.{ "taxAmount”: 25 // 10 from self, 15 from children} -
Если запись вычислила платежи для себя или своих дочерних компаний, сумма вычисленных платежей для себя и своих дочерних компаний сохраняется в поле
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 для фильтрации продуктов на основе рейтингов, созданных в качестве атрибутов разработчиком модели продуктов.
- Одна процедура оценки для каждого продукта для getRatedProducts
ФорматируйтеInsProductService:getRatedProducts userInputsдля продуктов, использующих единую процедуру оценки для каждого корневого продукта. - Несколько процедур оценки на продукт или несколько спецификаций на любом уровне для getRatedProducts
ФорматируйтеInsProductService:getRatedProducts userInputsдля продуктов, использующих несколько процедур рейтинга в иерархии продуктов или несколько дочерних характеристик на любом уровне иерархии.
