Loading
保险
InsQuoteService:createUpdateQuoteFromExternal

InsQuoteService:createUpdateQuoteFromExternal

通过外部系统的入站 API 调用,创建报价或使用新信息更新现有报价。

类:InsQuoteService

方法:createUpdateQuoteFromExternal

工作原理

  1. 接收 JSON 对象。

  2. 使用原始sourceSystemIdentifier报价单确定是否创建或更新现有报价。

  3. 使用PricebookId,即名为 ⁇ Standard 的价格手册。

  4. 如果服务找到具有给定报价的报价sourceSystemIdentifier,它会更新报价对象:

    1. 使用 ⁇ quoteLines中定义的根产品添加、更新或删除根报价行项目。该服务使用标准sourceSystemIdentifier识别根。

      添加未在报价中的quoteLines记录。更新报价中存在的quoteLines记录。删除在报价单中但未在报价行中的quoteLines记录。

    2. 对于每个根,服务使用在“根childLines”中定义的覆盖范围、保险项目和当事人来添加、更新或删除根覆盖范围、保险项目和当事人。 该服务使用sourceSystemIdentifier标准识别要更新的行。

      添加未在报价中的childLines记录。更新报价中存在的childLines记录。删除在报价单中但未在报价单childLines中的childLines记录。

    3. 对于每个根承保范围、受保项目和当事人,服务使用承保范围、受保项目和childLines当事人来添加、更新或删除各自的承保范围、受保项目和当事人。  ⁇ 服务使用sourceSystemIdentifier来标识要更新的行。

      添加未在报价中的childLines记录。更新报价中存在的childLines记录。删除在报价单中但未在报价单childLines中的childLines记录。

    4. 主被保项目的投保QuoteLineItem人和儿童被保方投保QuoteLineItem人记录有很多很多的关系。这些关系存储在报价项目关系 (QuoteItemRelationship__c) 对象中。如果受保项目 ⁇ QuoteLineItem ⁇ 与多个受保方 ⁇ QuoteLineItem记录存在关系,则 ⁇ 服务会使用该PrimaryChildLineItemId__c ⁇ 字段来确定其中哪个关系是主要关系。

      例如,Joan Smith 和 John Smith 都是 Lexus 250 的驾驶员;Joan Smith 被设置为主要驾驶员。凌志250QuoteLineItem已经PrimaryChildLineItemId__c指向了Joan Smith的凌志QuoteLineItem

    5. 如果两个被保险项目具有相同的儿童被保险方,每个被保险项目必须在各自的保险childLines项目中包含儿童被保险方的条目。对于两个条目,它们必须具有相同的标号sourceSystemIdentifier。

      例如,雷克萨斯 250 和本田奥德赛都有 Bob Jones 作为驾驶员。 雷克萨斯 250 在它childLines的车型中包含 Bob Jones 和sourceSystemIdentifier BobJones。 本田奥德赛有一辆鲍勃·琼斯(Bob Jones), sourceSystemIdentifier 其外观为 BobJones childLines。

    6. ParentItemId__c ⁇ and ⁇ ParentItemId2__c ⁇ of childLines 指向根的 ID。

    7. 子承保范围的“ ⁇ SubParentItemId__c”指向主要承保项目。

  5. 如果服务未找到包含给定项目的报价单sourceSystemIdentifier,则会创建包含行项目的报价单对象,如下所述:

    1. 使用 ⁇ quoteLines中定义的根产品创建根报价行项目。

    2. 对于每个根,使用 ⁇ childLines中定义的承保范围、承保项目和当事人来创建根承保范围、承保项目和当事人。

    3. 对于每个根承保范围、受保项目和当事人,使用其承保范围、受保项目和当事人中定义的承保childLines范围、受保项目和当事人来创建其承保范围、受保项目和当事人。

    4. 主被保项目的投保QuoteLineItem人和儿童被保方投保QuoteLineItem人记录有很多很多的关系。这些关系存储在报价项目关系 (QuoteItemRelationship__c) 对象中。如果受保项目 ⁇ QuoteLineItem ⁇ 与多个受保方 ⁇ QuoteLineItem记录有关系,则 ⁇ 服务会使用 PrimaryChildLineItemId__c ⁇ 字段来确定其中哪个关系是主要关系。

      例如,Joan Smith 和 John Smith 都是 Lexus 250 的驾驶员;Joan Smith 被设置为主要驾驶员。凌志250QuoteLineItem已经PrimaryChildLineItemId__c指向了Joan Smith的凌志QuoteLineItem

    5. 如果两个被保险项目具有相同的儿童被保险方,每个被保险项目必须在相应的保险childLines项目中包含儿童被保险方的条目。对于两个条目,它们必须具有相同的标号sourceSystemIdentifier。

      例如,雷克萨斯 250 和本田奥德赛都有 Bob Jones 作为驾驶员。 雷克萨斯 250 拥有 Bob Jones 和sourceSystemIdentifier BobJones 在它childLine的时代。 本田奥德赛有鲍勃·琼斯与sourceSystemIdentifier ⁇ 作为鲍勃·琼斯在其 ⁇ childLines。

    6. ParentItemId__c 和 ParentItemId2__c ⁇ of childLines 指向根的 ID。

    7. 子承保范围的“SubParentItemId__c承保范围”指向主要承保项目。

  6. 返回输出 JSON 中遇到的错误列表Quote.Id。

输入

输入

描述

quote

包含创建报价的所有信息。有关键值对的更多信息,请查看 ⁇ JSON 节点描述。

JSON 节点描述

quote

记录列表。该服务在指定时间仅处理一个报价。

报价节点

opportunityId

必需。

业务机会的 ID。

sourceSystemIdentifier

必需。

来自 Salesforce 外部系统的唯一记录标识符,用于识别要更新的报价。

type

报价记录类型的 ⁇ API 名称。

additionalFields

您要填充的其他 ⁇ QuoteLineItem ⁇ 字段的键值对。

quoteLines

根产品的列表。

quoteLines nodes

sourceSystemIdentifier

必需。

来自 Salesforce 外部系统的唯一记录标识符,用于标识在 Salesforce 中添加、更新或删除哪个 root ⁇ QuoteLineItems ⁇ 。

instanceKey

根产品的 ⁇ ItemName__c ⁇ 中的实例密钥。

productCode

必需。

根产品代码。

lineRecordType

必需。

产品或规格记录类型。

attributeCategories

选定的产品属性。

additionalFields

您要填充的其他 ⁇ QuoteLineItem ⁇ 字段的键值对。

childLines

根产品范围、保险项目和保险方。

childLines nodes

sourceSystemIdentifier

必需。

来自 Salesforce 外部系统的唯一记录标识符,用于标识在 Salesforce 中添加、更新或删除哪些根承保范围、被保险人项目和被保险人。

instanceKey

标识相同规格的多个实例。

保险项目和保险方ItemName__c的索赔中的实例密钥。

productCode

必需。

根承保范围、被保险人项目和被保险人的产品代码。

lineRecordType

必需。

产品或规格记录类型。

attributeCategories

选定的产品属性。

additionalFields

您要填充的其他 ⁇ QuoteLineItem ⁇ 字段的键值对。

childLines

子范围、保险项目和保险方。

childLines nodes

sourceSystemIdentifier

必需。

来自 Salesforce 外部系统的唯一记录标识符,用于标识在 Salesforce 中添加、更新或删除哪些子承保范围、被保险人项目和被保险人。

如果两个被保险项目具有相同的儿童被保险方,每个被保险项目必须在相应的保险childLines项目中包含儿童被保险方的条目。对于两个条目,它们必须具有相同的标号sourceSystemIdentifier。请参阅 ⁇ InsQuoteService:createUpdateQuote。

instanceKey

标识相同规格的多个实例。

保险项目和保险方ItemName__c的索赔中的实例密钥。

productCode

必需。

子承保范围、被保险人项目和被保险人的产品代码。

lineRecordType

必需。

产品或规格记录类型。

attributeCategories

选定的产品属性。

additionalFields

您要填充的其他 ⁇ QuoteLineItem ⁇ 字段的键值对。

输入 JSON

以下是输入 JSON 的格式:

{
   "quote":{
      "records":[
         {
            "opportunityId":"Opportunity.Id",
            "sourceSystemIdentifier":"Id",
            "sourceSystem":"Name of system quote was created",
            "Name":"Quote Name",
            "type":"Quote.RecordType.DeveloperName",
            "effectiveDate":"Quote.EffectiveDate__c",
            "endDate":"Quote.EndDate__c",
            "price":Quote.StandardPremium__c,
            "term":"Quote.Term__c",
            "status":"Quote.Status",
            "additionalFields":{
               "Quote.fieldAPIName":"value"
            },
            "quoteLines":{
               "records":[
                  {
                     "sourceSystemIdentifier":"Id",
					 "lineRecordType":"Product2",
                     "instanceKey":"name",
                     "productCode":"Product2.ProductCode",
                     "productName":"Product2.Name",
                     "attributeCategories":{
                        "records":[
                           {
                              "productAttributes":{
                                 "records":[
                                    {
                                       "code":"attribute code",
                                       "userValues":"selected value"
                                    }
                                 ]
                              }
                           }
                        ]
                     },
                     "additionalFields":{
                        "QuoteLineItem.fieldAPIName":"value"
                     },
                     "childLines":{
                        "records":[
                           {
                              "sourceSystemIdentifier":"Id",
                              "lineRecordType":"Product2.RecordType.DeveloperName",
                              "productCode":"Product2.ProductCode",
                              "productName":"Product2.Name",
                              "instanceKey":"instance name",
                              "price":QuoteLineItem.UnitPrice,
                              "taxAmount":QuoteLineItem.TaxAmount__c,
                              "feeAmount":QuoteLineItem.FeeAmount__c,
                              "additionalFields":{
                                 "QuoteLineItem.fieldAPIName":"value"
                              },
                              "attributeCategories":{
                                 "records":[
                                    {
                                       "productAttributes":{
                                          "records":[
                                             {
                                                "code":"attribute code",
                                                "userValues":"selected value"
                                             }
                                          ]
                                       }
                                    }
                                 ]
                              },
                              "childLines":{
                                 "records":[
                                    {
                                       "sourceSystemIdentifier":"Id",7e54f959544f",
                                       "lineRecordType":"InsuredPartySpec",
                                       "productCode":"Product2.ProductCode",
                                       "productName":"Product2.Name",
                                       "instanceKey":"instance name",
                                       "price":QuoteLineItem.UnitPrice,
                                       "taxAmount":QuoteLineItem.TaxAmount__c,
                                       "feeAmount":QuoteLineItem.FeeAmount__c,
                                       "isPrimaryChild":true,
                                       "additionalFields":{
                                          "QuoteLineItem.fieldAPIName":"value"
                                       },
                                       "attributeCategories":{
                                          "records":[
                                             {
                                                "productAttributes":{
                                                   "records":[
                                                      {
                                                         "code":"attribute code",
                                                         "userValues":"selected value"
                                                      }
                                                   ]
                                                }
                                             }
                                          ]
                                       }
                                    }
                                 ]
                              }
                           }
                        ]
                     }
                  }
               ]
            }
         }
      ]
   }
}

以下是输入 JSON 的示例:

{
  "quote": {
    "records": [
      {
        "opportunityId": "0065w0000286hhNAAQ",
        "sourceSystemIdentifier": "af3c0072-9018-43df-83d3-3a5f254d5b1e",
        "sourceSystem": "Salesforce",
        "Name": "Auto Root (External)",
        "type": "LargeGroupQuote",
        "effectiveDate": "06/01/2021",
        "endDate": "12/01/2021",
        "price": 10000,
        "term": "Semi-Annual",
        "status": "Submitted",
        "quoteLines": {
          "records": [
            {
              "sourceSystemIdentifier": "49553393-120a-4777-b65a-8167c386a0fb",
              "instanceKey": "Auto Root",
              "productCode": "AUTOROOT",
              "productName": "Auto Root",
              "attributeCategories": {
                "records": [
                  {
                    "productAttributes": {
                      "records": [
                        {
                          "code": "atLimitUM",
                          "userValues": 200
                        }
                      ]
                    }
                  }
                ]
              },
              "additionalFields": {
                "instest12__AdjustmentComments__c": "test comment"
              },
              "childLines": {
                "records": [
                  {
                    "sourceSystemIdentifier": "5a8d1b04-c34c-6a48-42c8-ab08be9868e1",
                    "lineRecordType": "InsuredItemSpec",
                    "Name": "Auto",
                    "productName": "Auto",
                    "productCode": "AUTO",
                    "instanceKey": "2010 Honda Odyssey",
                    "price": 111,
                    "taxAmount": 5,
                    "feeAmount": 21,
                    "additionalFields": {
                      "instest12__AdjustmentComments__c": "test comment"
                    },
                    "attributeCategories": {
                      "records": [
                        {
                          "productAttributes": {
                            "records": [
                              {
                                "code": "autoYear",
                                "userValues": 2010
                              },
                              {
                                "code": "carValue",
                                "userValues": 55000
                              },
                              {
                                "code": "est_annual_mileage",
                                "userValues": 2000
                              },
                              {
                                "code": "autoMake",
                                "userValues": "Honda"
                              },
                              {
                                "code": "autoModel",
                                "userValues": "Odyssey"
                              }
                            ]
                          }
                        }
                      ]
                    },
                    "childLines": {
                      "records": [
                        {
                          "sourceSystemIdentifier": "6400140b-3e97-32c4-bdfd-7e54f959544f",
                          "lineRecordType": "InsuredPartySpec",
                          "Name": "Driver",
                          "productName": "Driver",
                          "productCode": "DRIVER",
                          "instanceKey": "Bob Jones",
                          "price": 112,
                          "taxAmount": 6,
                          "feeAmount": 22,
                          "isPrimaryChild": true,
                          "additionalFields": {
                            "instest12__AdjustmentComments__c": "test comment"
                          },
                          "attributeCategories": {
                            "records": [
                              {
                                "productAttributes": {
                                  "records": [
                                    {
                                      "code": "AGE",
                                      "userValues": 24
                                    },
                                    {
                                      "code": "FN",
                                      "userValues": "Bob"
                                    },
                                    {
                                      "code": "LN",
                                      "userValues": "Jones"
                                    },
                                    {
                                      "code": "GENDER",
                                      "userValues": "Male"
                                    }
                                  ]
                                }
                              }
                            ]
                          }
                        },
                        {
                          "sourceSystemIdentifier": "38c4fe27-7b85-77ce-c9e2-1f7f22889982",
                          "lineRecordType": "InsuredPartySpec",
                          "Name": "Driver",
                          "productName": "Driver",
                          "productCode": "DRIVER",
                          "instanceKey": "Joan Smith",
                          "price": 113,
                          "taxAmount": 7,
                          "feeAmount": 23,
                          "attributeCategories": {
                            "records": [
                              {
                                "productAttributes": {
                                  "records": [
                                    {
                                      "code": "AGE",
                                      "userValues": 25
                                    },
                                    {
                                      "code": "FN",
                                      "userValues": "Joan"
                                    },
                                    {
                                      "code": "LN",
                                      "userValues": "Smith"
                                    },
                                    {
                                      "code": "GENDER",
                                      "userValues": "Female"
                                    }
                                  ]
                                }
                              }
                            ]
                          }
                        },
                        {
                          "sourceSystemIdentifier": "33b74fa2-fba5-44b4-317f-021dae689a9f",
                          "lineRecordType": "CoverageSpec",
                          "Name": "Collision Deductible Waiver",
                          "productName": "Collision Deductible Waiver",
                          "productCode": "COL_WAIVER",
                          "instanceKey": "2010 Honda Odyssey_COL_WAIVER",
                          "price": 114,
                          "taxAmount": 8,
                          "feeAmount": 24
                        },
                        {
                          "sourceSystemIdentifier": "c4d5ac35-99b1-047d-cebe-05b74861463e",
                          "lineRecordType": "CoverageSpec",
                          "Name": "Uninsured/Underinsured Motorist BI",
                          "productName": "Uninsured/Underinsured Motorist BI",
                          "productCode": "UNINSURED_COVERAGE",
                          "instanceKey": "2010 Honda Odyssey_UNINSURED_COVERAGE",
                          "price": 115,
                          "taxAmount": 9,
                          "feeAmount": 25,
                          "attributeCategories": {
                            "records": [
                              {
                                "productAttributes": {
                                  "records": [
                                    {
                                      "code": "AbaThrpyOutptInst_covered_inn",
                                      "userValues": 1.3
                                    },
                                    {
                                      "code": "UNINSURED",
                                      "userValues": "No coverage"
                                    }
                                  ]
                                }
                              }
                            ]
                          }
                        }
                      ]
                    }
                  },
                  {
                    "sourceSystemIdentifier": "60699eaf-956a-4381-8ef2-5a704c85517f",
                    "lineRecordType": "InsuredItemSpec",
                    "Name": "Auto",
                    "productName": "Auto",
                    "productCode": "AUTO",
                    "instanceKey": "2011 Toyota Camry",
                    "price": 116,
                    "taxAmount": 10,
                    "feeAmount": 26,
                    "attributeCategories": {
                      "records": [
                        {
                          "productAttributes": {
                            "records": [
                              {
                                "code": "autoYear",
                                "userValues": 2011
                              },
                              {
                                "code": "carValue",
                                "userValues": 55500
                              },
                              {
                                "code": "est_annual_mileage",
                                "userValues": 2200
                              },
                              {
                                "code": "autoMake",
                                "userValues": "Toyota"
                              },
                              {
                                "code": "autoModel",
                                "userValues": "Camry"
                              }
                            ]
                          }
                        }
                      ]
                    },
                    "childLines": {
                      "records": [
                        {
                          "sourceSystemIdentifier": "6400140b-3e97-32c4-bdfd-7e54f959544f",
                          "lineRecordType": "InsuredPartySpec",
                          "Name": "Driver",
                          "productName": "Driver",
                          "productCode": "DRIVER",
                          "instanceKey": "Bob Jones",
                          "price": 112,
                          "taxAmount": 6,
                          "feeAmount": 22,
                          "isPrimaryChild": true,
                          "attributeCategories": {
                            "records": [
                              {
                                "productAttributes": {
                                  "records": [
                                    {
                                      "code": "AGE",
                                      "userValues": 24
                                    },
                                    {
                                      "code": "FN",
                                      "userValues": "Bob"
                                    },
                                    {
                                      "code": "LN",
                                      "userValues": "Jones"
                                    },
                                    {
                                      "code": "GENDER",
                                      "userValues": "Male"
                                    }
                                  ]
                                }
                              }
                            ]
                          }
                        },
                        {
                          "sourceSystemIdentifier": "8c450354-2053-444c-9c9e-36a66e6f5582",
                          "lineRecordType": "CoverageSpec",
                          "Name": "Collision Deductible Waiver",
                          "productName": "Collision Deductible Waiver",
                          "productCode": "COL_WAIVER",
                          "instanceKey": "2011 Toyota Camry_COL_WAIVER",
                          "price": 117,
                          "taxAmount": 11,
                          "feeAmount": 27
                        },
                        {
                          "sourceSystemIdentifier": "7aaeee37-05ce-4926-accb-dff2ee85587f",
                          "lineRecordType": "CoverageSpec",
                          "Name": "Roadside",
                          "productName": "Roadside",
                          "productCode": "ROADSIDE_COVERAGE",
                          "instanceKey": "2011 Toyota Camry_ROADSIDE_COVERAGE",
                          "price": 118,
                          "taxAmount": 12,
                          "feeAmount": 28,
                          "attributeCategories": {
                            "records": [
                              {
                                "productAttributes": {
                                  "records": [
                                    {
                                      "code": "ROADSIDE",
                                      "userValues": 1
                                    }
                                  ]
                                }
                              }
                            ]
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        },
        "additionalFields": {
          "instest12__MonthlyPremium__c": 222
        }
      }
    ]
  }
}

输出 JSON

返回输出 JSON 中已创建或更新报价的Quote.Id以及遇到的错误列表。

以下是输出 JSON 的格式:

{
   "errors":[
      "error1",
      "error2",
      "error3"
   ],
   "quoteId":"Quote.Id"
}

以下是输出 JSON 的示例:

{
   "errors":[
      "Failed to create/update QuoteLineItem Honda Odyssey.Required fields are missing: [PricebookEntryId, Product2Id]; ",
      "Failed to create/update QuoteLineItem Toyota Camry.Required fields are missing: [PricebookEntryId, Product2Id]; ",
      "Failed to create/update QuoteLineItem Patty Desc.Required fields are missing: [PricebookEntryId, Product2Id]; "
   ],
   "quoteId":"0Q05w0000027aH5CAI"
}
 
正在加载
Salesforce Help | Article