Loading
保险
InsProductService:getRatedProducts

InsProductService:getRatedProducts

使用此服务获取一个或多个产品的阵列,使用附加到这些产品的评级程序定价。此服务还包括额外的功能,例如税费计算、筛选和性能优化。

类:InsProductService

方法:getRatedProducts

要使用此服务,请向其传递评级程序为产品定价所需的一组输入。该服务返回经过筛选的产品阵列,以及来自评级程序的结果 JSON。

工作原理

  1. 该服务搜索 Salesforce,以检索有效开始和结束日期内的一组有效产品。有关更多信息,请查看下面的 effectiveDate。

    作为查询的一部分,服务使用在筛选器选项中传递的条件来获取一组初始产品。从 Salesforce 中提取的数据包括产品的资格规则和评级程序、保险项目规格、保险方规格、承保范围规格、评级事实规格及其所有属性。

  2. 根据资格规则评估初始集中的每个产品,进一步减少产品集。

  3. 在输入 JSON 中搜索userInputs密钥并检索密钥值。userInputs 是评级程序用于获取产品价格的输入数据集。服务根据产品评级输入映射评估此对象,以创建评级程序所需的输入 JSON。

    根据产品定义和评级配置,您可以以不同方式格式化userInputs。为了防止错误,请筛选所有使用相同类型userInputs格式的产品。

  4. 对步骤 2 中创建的集中的每个产品进行评级。它使用步骤 3 中的输入 JSON 调用产品的关联评级程序。

  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对象。此对象包含标记为可筛选的根产品属性,以及可能的值列表。一些 UI 模板使用此列表来筛选大型产品集。

不包括子产品属性。

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。

当没有 UI 使用服务的结果时,此选项非常有用。例如,如果您在批处理模式下运行包含此服务的集成程序。

mergeList

true 或 false

默认为 false。

通过使用相同的评级程序按产品分组评级程序呼叫,优化评级呼叫。它使用输入对象数组进行一次评级调用。

这在提取大量产品列表时非常有用。多个评级调用可以达到 SQL 限制。评级程序架构已优化,以处理一系列输入对象,并最大限度地减少所需的 SQL 查询数量。

omitChildren

true 或 false

仅当您也将 omitRating 设置为 true 时,才将此选项设置为真。这将返回没有定价的产品。

omitRating

true 或 false

如果为真,服务将返回没有定价的产品。

productClasses

“ProductClassName1,ProductClassName2”

产品类名称的逗号分隔列表。将产品列表限制为这些产品类。

rootPricingOnly

true 或 false

默认为 false。

此选项通过减少堆大小来提高性能。

如果您使用的评级程序仅在根产品级别定义,您可以将此选项设置为true,以提高性能。

规则选项

选项

说明

evalOptionalCoverageRelationship

true 或false如果设置为 true,服务将运行可选的承保范围关系规则。

omitEligibility

true 或 false

默认为 false。

在设置为true时,服务不会查询合格产品。

相反,您必须在输入映射或选项映射的关键products下提供列表产品 ID。产品 ID 列表或逗号分隔的产品 ID 字符串都是products可接受的值。

ruleAttributeSetValues

true 或 false

在设置为 false 时,服务不会运行属性集值规则。

在设置为 true 时,服务会运行属性集值规则。

validateCoverageSelection

true 或 false

如果您有需要服务运行的验证规则,设置为 true。

加载项函数选项

选项

说明

calculateTaxesAndFees

可选

true 或 false

在设置为true时,计算目标产品的税费。

includeFullProductJson

true 或 false

此选项根据输入的 JSON 控制响应 API 的其他孙节点的存在。当设置为真时,输出 JSON 中有两个变化:

  • 如果孙子类型是被保险方,则父 JSON 节点包含两个额外的子节点:主要方和其他方。这两个新节点会根据是否为孙节点设置isPrimary 标志进行填充。

  • 如果孙项的类型是保险项目,则响应 API 中不会出现这两个节点(主要当事人和其他当事人)。输入 JSON 中包含的孙子节点链接到 API 的输出 JSON 中的正确父节点。

对于向后兼容性,默认值是 false。

jurisdictionIds

类型:字符串化 ID 列表

与 calculateTaxesAndFees 选项一起使用。

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

taxAndFeeEffectiveDate

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

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

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

withTaxFeeRounding

可选

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

默认值为 false。

UI 选项

选项

说明

lastRecordId

指定服务提取到 UI 中的最后一个产品 ID。

将此选项与pageSize选项一起使用。

pageSize

确定服务在一次调用中返回到 UI 的产品数量。

输入 JSON

InsProductService: getRatedProducts 在输入 JSON 中查找userInputs键。根据产品定义和评级配置,使用适当的userInputs格式。该服务一次仅接受一种 userInputs 格式。

输出 JSON

该服务返回一个或多个产品对象的数组。有关此对象的更多信息,请查看产品 JSON 结构模型。

来自输入 JSON 的任何映射userInputs会作为映射属性的单个实例的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