Loading
Verzekering
InsQuoteService:createUpdateQuoteFromExternal

InsQuoteService:createUpdateQuoteFromExternal

Maakt een offerte of werkt een bestaande offerte bij met nieuwe informatie via een inkomende API-aanroep vanuit een extern systeem.

Klasse:InsQuoteService

Methode: createUpdateQuoteFromExternal

Hoe het werkt

  1. Ontvangt het JSON-object.

  2. Gebruikt de sourceSystemIdentifier om te bepalen of een bestaande offerte moet worden gemaakt of bijgewerkt.

  3. Gebruikt de PricebookId, een prijslijst met de naam Standaard.

  4. Als de service een offerte vindt met de opgegeven sourceSystemIdentifier, werkt deze het offerteobject bij:

    1. Gebruikt de rootproducten die in quoteLines zijn gedefinieerd om de rootofferteregelitems toe te voegen, bij te werken of te verwijderen. De service gebruikt de sourceSystemIdentifier voor het identificeren van de root.

      Voegt de records toe in quoteLines die niet voorkomen in de offerte. Werkt de records in quoteLines bij die bestaan in de offerte. Verwijdert de records in quoteLines die wel voorkomen in de offerte, maar niet in de offerteregels.

    2. Voor elke root gebruikt de service de dekkingen, verzekerde items en partijen die zijn gedefinieerd in childLines om de rootdekkingen, verzekerde items en partijen toe te voegen, bij te werken of te verwijderen. De service gebruikt de sourceSystemIdentifier voor het identificeren van de bij te werken regel.

      Voegt de records toe in childLines die niet voorkomen in de offerte. Werkt de records in childLines bij die bestaan in de offerte. Verwijdert de records in childLines die wel voorkomen in de offerte, maar niet in childLines.

    3. Voor elke rootdekking, verzekerde items en partijen gebruikt de service de dekkingen, verzekerde items en partijen in de childLines om de respectieve dekkingen, verzekerde items en partijen toe te voegen, bij te werken of te verwijderen. De service gebruikt sourceSystemIdentifier voor het identificeren van de bij te werken regel.

      Voegt de records toe in childLines die niet voorkomen in de offerte. Werkt de records in childLines bij die bestaan in de offerte. Verwijdert de records in childLines die wel voorkomen in de offerte, maar niet in childLines.

    4. De QuoteLineItem en onderliggende QuoteLineItem van het primaire verzekerde item hebben een veel:veel-relatie. Deze relaties worden opgeslagen in het object Offerte-itemrelatie (QuoteItemRelationship__c). Als een QuoteLineItem van een verzekerd item relaties heeft met meerdere QuoteLineItem van een verzekerde, gebruikt de service het veld PrimaryChildLineItemId__c om te bepalen welke van die relaties de primaire is.

      Zo zijn zowel Joan Smith als John Smith drivers van Lexus 250; Joan Smith is ingesteld als primaire driver. De Lexus 250 QuoteLineItem heeft PrimaryChildLineItemId__c die verwijzen naar Joan Smith's QuoteLineItem.

    5. Als twee verzekerde voorwerpen dezelfde onderliggende verzekerde hebben, moet elk verzekerd voorwerp een vermelding in de respectieve childLines voor de onderliggende verzekerde hebben. Voor beide items geldt dat ze dezelfde sourceSystemIdentifier moeten hebben.

      Zo hebben zowel de Lexus 250 als Honda Odyssey Bob Jones als coureur. Lexus 250 heeft Bob Jones met sourceSystemIdentifier als BobJones in zijn childLines. Honda Odyssey heeft een Bob Jones met sourceSystemIdentifier als BobJones in de childLines.

    6. ParentItemId__c en ParentItemId2__c van childLines verwijzen naar de root-ID.

    7. De SubParentItemId__c van onderliggende dekkingen wijst naar het primaire verzekerde item.

  5. Als de service geen offerte vindt met de opgegeven sourceSystemIdentifier, wordt het offerteobject gemaakt dat regelitems bevat, zoals hier wordt uitgelegd:

    1. Gebruikt de rootproducten die in quoteLines zijn gedefinieerd om de rootofferteregelitems te maken.

    2. Gebruikt voor elke root de dekkingen, verzekerde items en partijen die in childLines zijn gedefinieerd om de rootdekkingen, verzekerde items en partijen te maken.

    3. Voor elke rootdekking gebruikt verzekerde items en partijen de dekkingen, verzekerde items en partijen die in hun childLines zijn gedefinieerd om hun dekkingen, verzekerde items en partijen te maken.

    4. De QuoteLineItem en onderliggende QuoteLineItem van het primaire verzekerde item hebben een veel:veel-relatie. Deze relaties worden opgeslagen in het object Offerte-itemrelatie (QuoteItemRelationship__c). Als een QuoteLineItem van een verzekerd item relaties heeft met meerdere QuoteLineItem van een verzekerde, gebruikt de service het veld PrimaryChildLineItemId__c om te bepalen welke van die relaties de primaire is.

      Zo zijn zowel Joan Smith als John Smith drivers van Lexus 250; Joan Smith is ingesteld als primaire driver. De Lexus 250 QuoteLineItem heeft PrimaryChildLineItemId__c die verwijzen naar Joan Smith's QuoteLineItem.

    5. Als twee verzekerde voorwerpen dezelfde onderliggende verzekerde hebben, moet elk verzekerd voorwerp worden vermeld in de respectieve childLines voor de onderliggende verzekerde. Voor beide items geldt dat ze dezelfde sourceSystemIdentifier moeten hebben.

      Zo hebben zowel de Lexus 250 als Honda Odyssey Bob Jones als coureur. Lexus 250 heeft Bob Jones met sourceSystemIdentifier als BobJones in de childLine. Honda Odyssey heeft Bob Jones met sourceSystemIdentifier als BobJones in zijn childLines.

    6. ParentItemId__c en ParentItemId2__c childLines verwijzen naar de root-ID.

    7. De SubParentItemId__c van onderliggende dekkingen verwijzen naar het primaire verzekerde item.

  6. Retourneert een Quote.Id en de lijst van fouten die zijn opgetreden in de uitvoer-JSON.

Invoer

Invoer

Beschrijving

quote

Bevat alle informatie voor het maken van de offerte. Zie de beschrijving van JSON-knooppunten voor meer informatie over de sleutel-waardeparen.

Beschrijving van JSON-knooppunten

quote

Een lijst van records. De service verwerkt slechts één offerte tegelijk.

offerteknooppunten

opportunityId

Verplicht.

De ID van de opportunity.

sourceSystemIdentifier

Verplicht.

Unieke record-ID van een systeem buiten Salesforce om aan te geven welke offerte moet worden bijgewerkt.

type

De API-naam van het offerterecordtype.

additionalFields

Het sleutel-waardepaar van andere QuoteLineItem die u wilt invullen.

quoteLines

De lijst van rootproducten.

quoteLines-knooppunten

sourceSystemIdentifier

Verplicht.

Unieke record-ID van een systeem buiten Salesforce om aan te geven welke root QuoteLineItems moeten worden toegevoegd, bijgewerkt of verwijderd in Salesforce.

instanceKey

Instantiesleutel in ItemName__c van rootproducten.

productCode

Verplicht.

Rootproductcode.

lineRecordType

Verplicht.

Recordtype voor product of specificatie.

attributeCategories

De geselecteerde productkenmerken.

additionalFields

Het sleutel-waardepaar van andere QuoteLineItem die u wilt invullen.

childLines

Rootproductdekkingen, verzekerde items en verzekerden.

onderliggende lijnen-knooppunten

sourceSystemIdentifier

Verplicht.

Unieke record-ID van een systeem buiten Salesforce om te bepalen welke rootdekkingen, verzekerde items en verzekerden moeten worden toegevoegd, bijgewerkt of verwijderd in Salesforce.

instanceKey

Identificeert meerdere exemplaren van dezelfde specificatie.

Instantiesleutel in ItemName__c van verzekerde items en verzekerden.

productCode

Verplicht.

De productcode van rootdekkingen, verzekerde items en verzekerden.

lineRecordType

Verplicht.

Recordtype voor product of specificatie.

attributeCategories

De geselecteerde productkenmerken.

additionalFields

Het sleutel-waardepaar van andere QuoteLineItem die u wilt invullen.

childLines

Onderliggende dekkingen, verzekerde items en verzekerden.

onderliggende lijnen-knooppunten

sourceSystemIdentifier

Verplicht.

Unieke record-ID van een systeem buiten Salesforce om te bepalen welke onderliggende dekkingen, verzekerde items en verzekerden moeten worden toegevoegd, bijgewerkt of verwijderd in Salesforce.

Als twee verzekerde voorwerpen dezelfde onderliggende verzekerde hebben, moet elk verzekerd voorwerp worden vermeld in de respectieve childLines voor de onderliggende verzekerde. Voor beide items geldt dat ze dezelfde sourceSystemIdentifier moeten hebben. Zie InsQuoteService:createUpdateQuote.

instanceKey

Identificeert meerdere exemplaren van dezelfde specificatie.

Instantiesleutel in ItemName__c van verzekerde items en verzekerden.

productCode

Verplicht.

De productcode van onderliggende dekkingen, verzekerde items en product van verzekerden.

lineRecordType

Verplicht.

Recordtype voor product of specificatie.

attributeCategories

De geselecteerde productkenmerken.

additionalFields

Het sleutel-waardepaar van andere QuoteLineItem die u wilt invullen.

Invoer-JSON

Hier is de indeling van de invoer-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"
                                                      }
                                                   ]
                                                }
                                             }
                                          ]
                                       }
                                    }
                                 ]
                              }
                           }
                        ]
                     }
                  }
               ]
            }
         }
      ]
   }
}

Hier is een voorbeeld van de invoer-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
        }
      }
    ]
  }
}

Uitvoer-JSON

Retourneert de Quote.Id van de gemaakte of bijgewerkte offerte in de uitvoer-JSON en de lijst van aangetroffen fouten.

Hier is de indeling van de uitvoer-JSON:

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

Hier is een voorbeeld van de uitvoer-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"
}
 
Wordt geladen
Salesforce Help | Article