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

InsProductService:repriceProduct

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

Класс: InsProductService

Метод: repriceProduct

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

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

Эта служба не выполняет дополнительные правила покрытия «Право на участие», «Обязательно» и «По умолчанию» при изменении сметы.

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

  1. Служба ищет выбранный ключ продукта в JSON, а потом извлекает его значение. Данный объект содержит один объект продукта.

  2. Используя данные продукта для поиска в Salesforce, служба находит продукт и извлекает процедуру оценки.

  3. Служба оценивает продукт со структурой JSON продукта.

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

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

Параметр

Описание

aggByKey

PRODUCT.instanceKey

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

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

alwaysCreateInstance

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

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

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

effectiveDate

“YYYY-MM-DD HH:MM:SS”

или

%OmniScriptDataElement%

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

evalOptionalCoverageRelationship

true или false

Если этот параметр = true, служба звонит updateOptionalCovIsSelectedField сначала, потом вызывает repriceProduct.

getDataDRBundleName

Имя Omnistudio Data Mapper, используемое службой для извлечения сведений о политике (активе).

Если вы используете Salesforce FSC, укажите этот параметр или getDataCustomClassName.

getDataCustomClassName

Имя настраиваемого класса, используемого службой для извлечения сведений о политике (активе).

Если вы используете Salesforce FSC, укажите этот параметр или getDataDRBundleName.

includeInputKeys

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

Эти пары ключ/значение добавлены в объект выводного продукта в объекте CalculatedPriceData. Они помогут вам проанализировать результаты расчета.

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

includeRawCalculationResult

true или false

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

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

validateCoverageSelection

true или false

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

calculateTaxesAndFees

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

true или false

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

Если вы используете Salesforce FSC и устанавливаете этот параметр на true, необходимо также указать параметр getDataDRBundleName или getDataCustomClassName.

jurisdictionIds

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

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

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

taxAndFeeEffectiveDate

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

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

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

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

withTaxFeeRounding

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

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

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

JSON ввода

InsProductService: repriceProduct ищет объект продукта в ключе selectedProduct в JSON ввода. Этот объект содержит вводные данные, необходимые процедуре рейтинга, соотнесенные в атрибутах продукта, включая связанные характеристики покрытия, характеристики застрахованных элементов, характеристики застрахованной стороны и характеристики фактов рейтинга. Данный объект может быть создан другими службами (например, getRatedProducts). Она содержит корневой продукт, дочерние продукты и внучатые продукты. Служба анализирует структуру продукта и передает данные в набор выражений или процедуру расчета. Если атрибуты, соотнесенные для рейтинга, не включены в объект, служба использует стандартные параметры, установленные администратором продукта.

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

Вывод JSON

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

Примечание
Примечание

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

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

Структура CalculatedPriceData содержит поддержку экземпляров. Показатели цены сгруппированы на уровне экземпляра.

Вывод JSON содержит узел priceDiff на корневом уровне, суммирующий цены уровня экземпляра. Она также содержит поле totalPremiumForTermDiff на корневом уровне. Это значение является разницей между исходной общей премией за срок и суммой между общей премией за срок новой версии полиса и обновленной премией за срок старой версии полиса.

В данном примере формула ценообразования установлена для продукта, а общая формула страховки - нет. Служба добавляет CalculatedPriceData к результатам из процедуры рейтинга. Сервис рассчитывает цену на основе формулы. Общая застрахованная формула не установлена в продукте и не отображается в данных (как и TotalInsured).

"totalSize": null,
"records": [{
    "displaySequence": -1,
    "rootProductId": "01t1I000002fuBoQAI",
    "rootProductCode": "AUTOROOT",
    "timestamp": 1533948385704,
    "hasInstanceKeys": true,
    "childProductsCount": 8,
    "instanceKeyChildren": 2,
    "pathFromChild": "[0]",
    "pathFromRoot": "[0]",
    "Price": 80,
    "productId": "01t1I000002fuBoQAI",
    "Term__c": "Semi-Annual",
    "PricingFormula__c": "SUM(AutoPremium__autoPremium + rentalTotal + medicalTotal + roadsideTotal + dedWaiverTotal + uninsuredMotoristPDTotal + uninsuredMotoristBITotal)",
    "IsConfigurable__c": true,
    "RecordTypeName__c": "Product",
    "IsRecommended__c": false,
    "ProductCode": "AUTOROOT",
    "Name": "Auto Root",
    "Id": "01t1I000002fuBoQAI",
    "RawPriceData": [{
        "calculationResults": [{
          "DRIVER.LN": null,
          "DRIVER.FN": null,
          "AUTO.instanceKey": "2015 Lexus LX250",
          "uninsuredMotoristBITotal": 100,
          "uninsuredMotoristPDTotal": 0,
          "dedWaiverTotal": 10,
          "roadsideTotal": 10,
          "medicalTotal": 10,
          "rentalTotal": 40,
          "comprehensiveTotal": 500,
          "ID": "0"
        }],
        "aggregationResults": {}
      },
      {
        "calculationResults": [{
          "DRIVER.LN": null,
          "DRIVER.FN": null,
          "AUTO.instanceKey": "2006 Honda Odyssey",
          "uninsuredMotoristBITotal": 100,
          "uninsuredMotoristPDTotal": 0,
          "dedWaiverTotal": 10,
          "roadsideTotal": 10,
          "medicalTotal": 10,
          "rentalTotal": 40,
          "comprehensiveTotal": 500,
          "ID": "1"
        }],
        "aggregationResults": {}
      }
    ],
    "CalculatedPriceData": {
      "2015 Lexus LX250": {
        "DRIVER.LN": null,
        "DRIVER.FN": null,
        "AUTO.instanceKey": "2015 Lexus LX250",
        "uninsuredMotoristBITotal": 100,
        "uninsuredMotoristPDTotal": 0,
        "dedWaiverTotal": 10,
        "roadsideTotal": 10,
        "medicalTotal": 10,
        "rentalTotal": 40,
        "comprehensiveTotal": 500,
        "ID": "0"
      },
      "2006 Honda Odyssey": {
        "DRIVER.LN": null,
        "DRIVER.FN": null,
        "AUTO.instanceKey": "2006 Honda Odyssey",
        "uninsuredMotoristBITotal": 100,
        "uninsuredMotoristPDTotal": 0,
        "dedWaiverTotal": 10,
        "roadsideTotal": 10,
        "medicalTotal": 10,
        "rentalTotal": 40,
        "comprehensiveTotal": 500,
        "ID": "1"
      }
    },
    "priceDiff": 0,
    "totalPremiumForTermDiff": 0,
    "attributeCategories": {
      "totalSize": 1,
      "records": [{
        "displaySequence": 5,
        "id": "a1V1I0000007xJSUAY",
        "Name": "Alan Health Attributes",
        "Code__c": "AHA",
        "productAttributes": {
          "totalSize": 1,
          "records": [{
            "code": "ALANDEDUCTIBLE",
            "dataType": "text",
            "inputType": "text",
            "required": false,
            "readonly": false,
            "disabled": false,
            "filterable": true,
            "attributeId": "a1W1I000000Bu1jUAC",
            "label": "Deductible",
            "displaySequence": 2,
            "hasRules": false,
            "hidden": false,
            "values": [{
              "readonly": false,
              "disabled": false
            }],
            "userValues": "test",
            "parentProductId": "01t1I000002fuBoQAI",
            "parentProductCode": "AUTOROOT",
            "pathFromChild": "attributeCategories.records[0].productAttributes.records[0]",
            "pathFromRoot": "attributeCategories.records[0].productAttributes.records[0]"
          }]
        }
      }]
    },
    "childProducts": {
      ...
    }
 
Загрузка
Salesforce Help | Article