Loading
Forsikring
InsQuoteService:createUpdateQuoteFromExternal

InsQuoteService:createUpdateQuoteFromExternal

Opretter et tilbud eller opdaterer et eksisterende tilbud med nye oplysninger gennem et indgående API-kald fra et eksternt system.

Klasse:InsQuoteService

Metode: createUpdateQuoteFromExternal

Sådan fungerer det

  1. Modtager JSON-objektet.

  2. Bruger sourceSystemIdentifier til at bestemme, om der skal oprettes eller opdateres et eksisterende tilbud.

  3. Bruger PricebookId, som er en prisliste med navnet Standard.

  4. Hvis tjenesten finder et tilbud med den angivne sourceSystemIdentifier, opdateres tilbudsobjektet:

    1. Bruger de rodprodukter, der er defineret i quoteLines, til at tilføje, opdatere eller slette rodtilbudslinjevarer. Tjenesten bruger sourceSystemIdentifier til at identificere roden.

      Tilføjer de registreringer i quoteLines, der ikke er i tilbuddet. Opdaterer de registreringer i quoteLines, der findes i tilbuddet. Sletter de registreringer i quoteLines, der er i Tilbud, men ikke i quoteLines.

    2. For hver roddækning bruger tjenesten de dækninger, forsikrede elementer og parter, der er defineret i childLines, til at tilføje, opdatere eller slette roddækningerne, forsikrede elementer og parter. Tjenesten bruger sourceSystemIdentifier til at identificere den linje, der skal opdateres.

      Tilføjer de registreringer i childLines, der ikke er i tilbuddet. Opdaterer de registreringer i childLines, der findes i tilbuddet. Sletter de registreringer i childLines, der er i Tilbud, men ikke i childLines.

    3. For hver grundlæggende dækning, forsikrede elementer og parter bruger tjenesten dækningerne, forsikrede elementer og parter i childLines til at tilføje, opdatere eller slette de respektive dækninger, forsikrede elementer og parter. Tjenesten bruger sourceSystemIdentifier til at identificere den linje, der skal opdateres.

      Tilføjer de registreringer i childLines, der ikke er i tilbuddet. Opdaterer de registreringer i childLines, der findes i tilbuddet. Sletter de registreringer i childLines, der er i Tilbud, men ikke i childLines.

    4. Den primære forsikrede postes QuoteLineItem og den underordnede forsikrede parts QuoteLineItem har en mange:mange-relation. Disse relationer gemmes i objektet Tilbudselementrelation (QuoteItemRelationship__c). Hvis en forsikret QuoteLineItem har relationer til flere forsikrede parters QuoteLineItem, bruger tjenesten PrimaryChildLineItemId__c til at bestemme, hvilken af disse relationer der er den primære.

      F.eks. er både Joan Smith og John Smith drivere af Lexus 250. Joan Smith er angivet som den primære driver. Lexus 250 QuoteLineItem har PrimaryChildLineItemId__c, der peger på Joan Smiths QuoteLineItem.

    5. Hvis to forsikringsobjekter har samme barnforsikrede, skal hver forsikringsobjekt have en post i de respektive childLines for den barnforsikrede. For begge poster skal de have samme sourceSystemIdentifier.

      F.eks. har både Lexus 250 og Honda Odyssey Bob Jones som chauffør. Lexus 250 har Bob Jones med sourceSystemIdentifier som BobJones i sit childLines. Honda Odyssey har en Bob Jones med sourceSystemIdentifier som BobJones i sin childLines.

    6. ParentItemId__c og ParentItemId2__c i childLines peger på rodets id.

    7. Børneforsikringens SubParentItemId__c peger på den primære forsikrede vare.

  5. Hvis tjenesten ikke finder et tilbud med den angivne sourceSystemIdentifier, opretter den tilbudsobjektet, der inkluderer linjevarer som forklaret her:

    1. Bruger de rodprodukter, der er defineret i quoteLines, til at oprette rodtilbudslinjevarer.

    2. For hver rod skal du bruge de dækninger, forsikrede elementer og parter, der er defineret i childLines, til at oprette roddækningerne, forsikrede elementer og parter.

    3. For hver grunddækning bruger forsikrede elementer og parter dækninger, forsikrede elementer og parter, der er defineret i deres childLines, til at oprette deres dækninger, forsikrede elementer og parter.

    4. Den primære forsikrede postes QuoteLineItem og den underordnede forsikrede parts QuoteLineItem har en mange:mange-relation. Disse relationer gemmes i objektet Tilbudselementrelation (QuoteItemRelationship__c). Hvis en forsikret QuoteLineItem har relationer til flere forsikrede parts QuoteLineItem, bruger tjenesten PrimaryChildLineItemId__c til at bestemme, hvilken af disse relationer der er den primære.

      F.eks. er både Joan Smith og John Smith drivere af Lexus 250. Joan Smith er angivet som den primære driver. Lexus 250 QuoteLineItem har PrimaryChildLineItemId__c, der peger på Joan Smiths QuoteLineItem.

    5. Hvis to forsikrede varer har den samme underordnede, skal hver forsikret vare være opført i den pågældende childLines for den underordnede. For begge poster skal de have samme sourceSystemIdentifier.

      F.eks. har både Lexus 250 og Honda Odyssey Bob Jones som chauffør. Lexus 250 har Bob Jones med sourceSystemIdentifier som BobJones i sine childLine. Honda Odyssey har Bob Jones med sourceSystemIdentifier som BobJones i sin childLines.

    6. ParentItemId__c og ParentItemId2__c af childLines peger på rodets id.

    7. Børneforsikringens SubParentItemId__c peger på den primære forsikrede vare.

  6. Returnerer en Quote.Id og listen over fejl, der opstår i output-JSON.

Input

Input

Beskrivelse

quote

Indeholder alle oplysninger for oprettelse af tilbuddet. Hvis du ønsker flere oplysninger om nøgle-værdi-par, kan du se Beskrivelse af JSON-noder.

Beskrivelse af JSON-noder

quote

En liste over registreringer. Tjenesten behandler kun et tilbud ad gangen.

tilbudsnoder

opportunityId

Påkrævet.

Id'et for salgsmuligheden.

sourceSystemIdentifier

Påkrævet.

Entydigt registrerings-id fra et system uden for Salesforce til at identificere, hvilket tilbud der skal opdateres.

type

API-navnet på tilbudsregistreringstypen.

additionalFields

Nøgle-værdi-parret for andre QuoteLineItem, som du vil udfylde.

quoteLines

Listen over rodprodukter.

quoteLines-noder

sourceSystemIdentifier

Påkrævet.

Entydigt registrerings-id fra et system uden for Salesforce til at identificere, hvilke root QuoteLineItems der skal tilføjes, opdateres eller slettes i Salesforce.

instanceKey

Forekomstnøgle i ItemName__c af rodprodukter.

productCode

Påkrævet.

Rodproduktkode.

lineRecordType

Påkrævet.

Produktregistreringstype eller specifikationstype.

attributeCategories

De valgte produktattributter.

additionalFields

Nøgle-værdi-parret for andre QuoteLineItem, som du vil udfylde.

childLines

Rodproduktdækninger, forsikrede elementer og forsikrede parter.

childLines-noder

sourceSystemIdentifier

Påkrævet.

Entydigt registrerings-id fra et system uden for Salesforce til at identificere, hvilke roddækninger, forsikrede elementer og forsikrede parter der skal tilføjes, opdateres eller slettes i Salesforce.

instanceKey

Identificerer flere forekomster af den samme specifikation.

Forekomstnøgle i ItemName__c af forsikrede elementer og forsikrede parter.

productCode

Påkrævet.

Produktkoden for roddækninger, forsikrede elementer og forsikrede parter.

lineRecordType

Påkrævet.

Produktregistreringstype eller specifikationstype.

attributeCategories

De valgte produktattributter.

additionalFields

Nøgle-værdi-parret for andre QuoteLineItem, som du vil udfylde.

childLines

Underordnede dækninger, forsikrede elementer og forsikrede parter.

childLines-noder

sourceSystemIdentifier

Påkrævet.

Entydigt registrerings-id fra et system uden for Salesforce til at identificere, hvilke underordnede dækninger, forsikrede elementer og forsikrede parter der skal tilføjes, opdateres eller slettes i Salesforce.

Hvis to forsikrede varer har den samme underordnede, skal hver forsikret vare være opført i den pågældende childLines for den underordnede. For begge poster skal de have samme sourceSystemIdentifier. Se InsQuoteService:createUpdateQuote.

instanceKey

Identificerer flere forekomster af den samme specifikation.

Forekomstnøgle i ItemName__c af forsikrede elementer og forsikrede parter.

productCode

Påkrævet.

Produktkoden for underordnede dækninger, forsikrede elementer og produkter for forsikrede.

lineRecordType

Påkrævet.

Produktregistreringstype eller specifikationstype.

attributeCategories

De valgte produktattributter.

additionalFields

Nøgle-værdi-parret for andre QuoteLineItem, som du vil udfylde.

Input JSON

Her er formatet på input-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"
                                                      }
                                                   ]
                                                }
                                             }
                                          ]
                                       }
                                    }
                                 ]
                              }
                           }
                        ]
                     }
                  }
               ]
            }
         }
      ]
   }
}

Her er et eksempel på input-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
        }
      }
    ]
  }
}

Output JSON

Returnerer Quote.Id for det oprettede eller opdaterede tilbud i output-JSON og listen over fejl.

Her er formatet på output-JSON:

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

Her er et eksempel på output-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"
}
 
Indlæser
Salesforce Help | Article