Loading
メールアドレスがデフォルトのログイン方式となります 続きを読む
Insurance
InsQuoteService:createUpdateQuoteFromExternal

InsQuoteService:createUpdateQuoteFromExternal

外部システムからの受信 API コールを使用して、見積を作成するか、既存の見積を新しい情報で更新します。

クラス:InsQuoteService

方法: createUpdateQuoteFromExternal

しくみ

  1. JSON オブジェクトを受け取ります。

  2. を使用して、既存の見積を作成するか更新するかをsourceSystemIdentifier決定します。

  3. PricebookId を使用します。これは、Standard という名前の価格表です。

  4. サービスは、指定された sourceSystemIdentifier を持つ Quote  を見つけると、quote  オブジェクトを更新します。

    1. で定義されたルート商品を使用してquoteLines、ルート見積品目を追加、更新、または削除します。サービスは、ルートの識別に sourceSystemIdentifier を使用します。

      見積に含まれていない quoteLines 内のレコードを追加します。見積に存在するquoteLinesのレコードを更新します。quoteLinesのレコードのうち、QuoteLines ではなく、QuoteLines に含まれているレコードを削除します。

    2. ルートごとに、サービスは で定義された補償範囲、被保険者項目、関係者を使用しchildLinesて、ルートの補償範囲、被保険者項目、関係者を追加、更新、または削除します。 サービスは、更新する回線の識別に をsourceSystemIdentifier使用します。

      見積に含まれていない childLines 内のレコードを追加します。見積に存在するchildLinesのレコードを更新します。childLines 内の Quote  には含まれるが in  には存在しないレコードを削除しますchildLines。

    3. ルート カバー率、被保険者項目、関係者ごとに、サービスはchildLines の補償範囲、被保険者項目、関係者を使用して、それぞれの補償範囲、被保険者項目、関係者を追加、更新、または削除します。 サービスは、更新する回線を識別するために sourceSystemIdentifier を使用します。

      見積に含まれていない childLines 内のレコードを追加します。見積に存在するchildLinesのレコードを更新します。childLines 内の Quote  には含まれるが in  には存在しないレコードを削除しますchildLines。

    4. 主被保険者項目QuoteLineItemと子QuoteLineItem被保険者レコードには多対多のリレーションがあります。これらのリレーションは、見積品目リレーション (QuoteItemRelationship__c) オブジェクトに保存されます。被保険者項目 に複数の被保険者 QuoteLineItem レコードとのQuoteLineItemリレーションがある場合、 サービスは PrimaryChildLineItemId__c 項目を使用して、それらのリレーションのうちどれが主リレーションであるかを判断します。

      たとえば、Joan Smith と John Smith はどちらもLexus 250のドライバーであり、Joan Smith はプライマリドライバーとして設定されます。LEXUS 250はJoan SmithのQuoteLineItemを参照しQuoteLineItemていますPrimaryChildLineItemId__c。

    5. 2 つの被保険者に同じ子被保険者がある場合、各被保険者の項目には子の被保険者に対応するエントリがそれぞれの childLines にある必要があります。両方のエントリで同じである必要があります sourceSystemIdentifier。

      たとえば、LEXUS 250 と Honda オデッセイのどちらも、Bob Jones をドライバーとして使用します。 LEXUS 250 には、BobJones を sourceSystemIdentifierBobJones とchildLinesして組み込んでいます。 Honda オデッセイには、BobJones sourceSystemIdentifierというchildLines名前の Bob Jones があります。

    6. childLines の ParentItemId__c  および ParentItemId2__c  はルートの ID を参照します。

    7. 子補償は、主保険品目をSubParentItemId__c指します。

  5. 指定された見積が見つからない場合sourceSystemIdentifier、次のように品目を含む見積オブジェクトが作成されます。

    1. で定義されたルート商品を使用しquoteLinesて、ルート見積品目を作成します。

    2. ルートごとに、 は で定義された補償範囲、被保険者項目、関係者をchildLines使用して、ルート 補償範囲、被保険者項目、関係者を作成します。

    3. 各 root coverage の被保険者項目と当事者は、その childLines で定義された補償範囲、被保険者項目、当事者を使用して、補償範囲、被保険者項目、当事者を作成します。

    4. 主被保険者項目QuoteLineItemと子QuoteLineItem被保険者レコードには多対多のリレーションがあります。これらのリレーションは、見積品目リレーション (QuoteItemRelationship__c) オブジェクトに保存されます。被保険者項目 に複数の被保険者 QuoteLineItem レコードとのリレーションQuoteLineItemがある場合、 サービスは PrimaryChildLineItemId__c 項目を使用して、それらのリレーションのうちどれが主リレーションであるかを判断します。

      たとえば、Joan Smith と John Smith はどちらもLexus 250のドライバーであり、Joan Smith はプライマリドライバーとして設定されます。LEXUS 250はJoan SmithのQuoteLineItemを参照しQuoteLineItemていますPrimaryChildLineItemId__c。

    5. 2 つの保険項目に同じ子被保険者が含まれる場合、各保険項目には子の被保険者に対応する childLines エントリが必要です。両方のエントリで同じである必要があります sourceSystemIdentifier。

      たとえば、LEXUS 250 と Honda オデッセイのどちらも、Bob Jones をドライバーとして使用します。 LEXUS 250にはBobJonessourceSystemIdentifierがBobJonesとして所属childLineしている。 Honda ODY には Bob Jones が含まれ、BobJones sourceSystemIdentifierという名前が付けられていますchildLines。

    6. ParentItemId__c およびParentItemId2__cchildLines はルートの ID を参照します。

    7. 子補償は、主保険項目をSubParentItemId__c指します。

  6. a Quote.Id  と、出力 JSON で発生したエラーのリストを返します。

入力:

入力

説明

quote

見積を作成するためのすべての情報が含まれます。キーと値のペアについての詳細は、「JSON ノード」の説明を参照してください。

JSON ノードの説明

quote

レコードのリスト。このサービスでは、一度に 1 つの見積のみが処理されます。

見積ノード

opportunityId

必須。

商談の ID。

sourceSystemIdentifier

必須。

更新する見積を識別するための、Salesforce 外のシステムの一意のレコード識別子。

type

見積レコードタイプの API 参照名。

additionalFields

入力する他の QuoteLineItem フィールドのキーと値のペア。

quoteLines

ルート商品のリスト。

quoteLines ノード

sourceSystemIdentifier

必須。

Salesforce で追加、更新、削除するルート QuoteLineItems を識別するための、Salesforce 外のシステムの一意のレコード識別子。

instanceKey

ItemName__cルート製品のインスタンス キー。

productCode

必須。

ルート商品コード。

lineRecordType

必須。

商品または仕様のレコードタイプ。

attributeCategories

選択した商品属性。

additionalFields

入力する他の QuoteLineItem フィールドのキーと値のペア。

childLines

ルート商品補償範囲、保険品目、被保険者。

childLines ノード

sourceSystemIdentifier

必須。

Salesforce で追加、更新、削除するルート補償、 被保険者、および被保険者を識別するための、Salesforce 外のシステムの一意のレコード識別子。

instanceKey

同じ仕様の複数のインスタンスを識別します。

ItemName__c保険品目、被保険者のインスタンス キー。

productCode

必須。

root coverages、 Insured Items、および被保険者の商品コード。

lineRecordType

必須。

商品または仕様のレコードタイプ。

attributeCategories

選択した商品属性。

additionalFields

入力する他の QuoteLineItem フィールドのキーと値のペア。

childLines

子補償、被保険者項目、被保険者。

childLines ノード

sourceSystemIdentifier

必須。

Salesforce で追加、更新、削除する子補償、 被保険者、および被保険者を識別するための、Salesforce 外のシステムの一意のレコード識別子。

2 つの保険項目に同じ子被保険者が含まれる場合、各保険項目には子の被保険者に対応する childLines エントリが必要です。両方のエントリで同じである必要があります sourceSystemIdentifier。「InsQuoteService:createUpdateQuote」を参照してください。

instanceKey

同じ仕様の複数のインスタンスを識別します。

ItemName__c保険品目、被保険者のインスタンス キー。

productCode

必須。

child coverages、 Insured Items、および被保険者 商品の商品コード。

lineRecordType

必須。

商品または仕様のレコードタイプ。

attributeCategories

選択した商品属性。

additionalFields

入力する他の QuoteLineItem フィールドのキーと値のペア。

Input 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