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)。

例如,汽车保险报价或保单包含多个附加到每个保险汽车的司机。对于每个 auto+driver 实例,保险汽车有单独的instanceKey。该aggByKey获取车辆的所有instanceKeys,并为每个instanceKey创建一系列保费,然后将其传递给计算程序,以便正确计算保费。

alwaysCreateInstance

将此选项设置为在层次结构的给定级别中具有多个子规格、没有孙规格且只有一个根级别评级程序的产品的true。

对于不符合所有这些条件的产品,省略此选项。

要格式化此类型产品的userInputs,请参阅 RepriceProduct 每个产品的评级程序。

effectiveDate

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

或

%OmniScriptDataElement%

默认为今天的日期。

evalOptionalCoverageRelationship

true 或 false

如果此选项 = true,服务会updateOptionalCovIsSelectedField 首先调用,然后调用 repriceProduct。

getDataDRBundleName

此服务用于检索保单(资产)信息的 Omnistudio 数据映射器的名称。

如果您正在使用 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

字符串化 ID 列表

与 calculateTaxesAndFees 选项一起使用。

仅计算与提供的管辖区相关的税费。

taxAndFeeEffectiveDate

此服务用于计算税费的生效日期。此选项与用于为产品定价的 ⁇ effectiveDate ⁇ 选项不同。

如果提供了值,服务会使用该值。

如果未提供值,并且产品 JSON 不是策略,服务将默认设置为今天的日期。

如果未提供值,并且产品 JSON 是策略,服务将使用原始策略版本的生效日期。

withTaxFeeRounding

可选

如果为真,使用半偶数舍入方法将计算的税费金额舍入到小数点后两位。withTaxFeeRounding仅在calculateTaxesAndFees选项也为真时有效。如果为假,禁用舍入。

默认值为 false。

输入 JSON

InsProductService: repriceProduct 在其输入 JSON 的 selectedProduct 键中查找产品对象。此对象包含产品属性中映射的评级程序所需的输入,包括其关联的承保范围规格、被保项目规格、被保方规格和评级事实规格。此对象可由其他服务创建,例如 getRatedProducts。它包括根产品、子产品和孙产品。该服务解析产品结构,并将数据传递到表达式集或计算程序中。如果对象中不包含为评级映射的属性,服务将使用产品管理员设置的默认值。

此服务也会在输入 JSON 中查找userInputs密钥,因此可以找到未包含在selectedProduct节点中的任何评级因素。根据产品定义和评级配置,使用适当的userInputs格式。该服务一次仅接受一种类型的userInputs格式。

输出 JSON

服务返回与具有更新定价信息的selectedProduct节点相同的 JSON 结构。有关此对象的内容和结构的详细信息,请参阅产品 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