Loading
Forsikring
InsQuoteService:createUpdateQuoteFromExternal

InsQuoteService:createUpdateQuoteFromExternal

Oppretter et tilbud eller oppdaterer et eksisterende tilbud med ny informasjon via et innkommende API-kall fra et eksternt system.

Klasse:InsQuoteService

Metode: createUpdateQuoteFromExternal

Slik fungerer det

  1. Mottar JSON-objektet.

  2. Bruker sourceSystemIdentifier til å bestemme om et eksisterende tilbud skal opprettes eller oppdateres.

  3. Bruker PricebookId, som er en Prisliste med navnet Standard.

  4. Hvis tjenesten finner et tilbud med den gitte sourceSystemIdentifier, oppdateres tilbudsobjektet:

    1. Bruker rotproduktene som er definert i quoteLines, til å legge til, oppdatere eller slette rottilbudslinjeelementene. Tjenesten bruker sourceSystemIdentifier til å identifisere roten.

      Legger til postene i quoteLines som ikke er i Tilbud. Oppdaterer postene i quoteLines som finnes i Tilbud. Sletter postene i quoteLines som er i Tilbud, men ikke i quoteLines.

    2. For hver rot bruker tjenesten dekningene, forsikrede elementer og parter som er definert i childLines, til å legge til, oppdatere eller slette rotdekningene, forsikrede elementer og parter. Tjenesten bruker sourceSystemIdentifier til å identifisere linjen som skal oppdateres.

      Legger til postene i childLines som ikke er i Tilbud. Oppdaterer postene i childLines som finnes i Tilbud. Sletter postene i childLines som er i Tilbud, men ikke i childLines.

    3. For hver rotdekning, forsikrede artikler og parter bruker tjenesten dekningene, forsikrede artikler og parter i childLines til å legge til, oppdatere eller slette de respektive dekningene, forsikrede artikler og parter. Tjenesten bruker sourceSystemIdentifier til å identifisere linjen som skal oppdateres.

      Legger til postene i childLines som ikke er i Tilbud. Oppdaterer postene i childLines som finnes i Tilbud. Sletter postene i childLines som er i Tilbud, men ikke i childLines.

    4. Den primære forsikringsartikkelens QuoteLineItem og underordnede forsikringspartens QuoteLineItem har en mange: mange-relasjon. Disse relasjonene lagres i objektet Tilbudselementrelasjon (QuoteItemRelationship__c). Hvis en QuoteLineItem for forsikringselementer har relasjoner til flere QuoteLineItem for forsikringsdeltakere, bruker tjenesten PrimaryChildLineItemId__c-feltet til å bestemme hvilken av disse relasjonene som er den primære.

      Både Joan Smith og John Smith er for eksempel drivere av Lexus 250. Joan Smith er angitt som primærdriver. Lexus 250 QuoteLineItem har PrimaryChildLineItemId__c som peker til Joan Smiths QuoteLineItem.

    5. Dersom to forsikringselementer har samme underordnede, må hvert forsikringselement ha en oppføring i de respektive childLines for den underordnede. For begge oppføringene må de ha samme sourceSystemIdentifier.

      Både Lexus 250 og Honda Odyssey har for eksempel Bob Jones som fører. Lexus 250 har Bob Jones med sourceSystemIdentifier som BobJones i sin childLines. Honda Odyssey har en Bob Jones med sourceSystemIdentifier som BobJones i sin childLines.

    6. ParentItemId__c og ParentItemId2__c for childLines peker til rotens Id.

    7. Barnesikringens SubParentItemId__c peker til den primære forsikringsartikkelen.

  5. Hvis tjenesten ikke finner et tilbud med den gitte sourceSystemIdentifier, oppretter den tilbudsobjektet som inkluderer linjer, som forklart her:

    1. Bruker rotproduktene som er definert i quoteLines, til å opprette rottilbudslinjeelementene.

    2. For hver rot bruker du dekningene, forsikrede elementer og parter som er definert i childLines, til å opprette rotdekningene, forsikrede elementer og parter.

    3. For hver rotdekning, forsikrede artikler og parter bruker de dekninger, forsikrede artikler og parter som er definert i deres childLines, til å opprette sine dekninger, forsikrede artikler og parter.

    4. Den primære forsikringsartikkelens QuoteLineItem og underordnede forsikringspartens QuoteLineItem har en mange: mange-relasjon. Disse relasjonene lagres i objektet Tilbudselementrelasjon (QuoteItemRelationship__c). Hvis en forsikret artikkel-QuoteLineItem har relasjoner til flere forsikrede parts QuoteLineItem-poster, bruker tjenesten PrimaryChildLineItemId__c-feltet til å bestemme hvilken av disse relasjonene som er den primære.

      Både Joan Smith og John Smith er for eksempel drivere av Lexus 250. Joan Smith er angitt som primærdriver. Lexus 250 QuoteLineItem har PrimaryChildLineItemId__c som peker til Joan Smiths QuoteLineItem.

    5. Dersom to forsikringselementer har samme underordnede, må hver forsikringselement være oppført i den respektive childLines for den underordnede. For begge oppføringene må de ha samme sourceSystemIdentifier.

      Både Lexus 250 og Honda Odyssey har for eksempel Bob Jones som fører. Lexus 250 har Bob Jones med sourceSystemIdentifier som BobJones i childLines. Honda Odyssey har Bob Jones med sourceSystemIdentifier som BobJones i sin childLines.

    6. ParentItemId__c og ParentItemId2__c av childLines peker til rotens ID.

    7. Barnesikringens SubParentItemId__c peker til den primære forsikringsartikkelen.

  6. Returnerer en Quote.Id og listen over feil som oppstår i JSON-koden.

Inndata

Inndata

Beskrivelse

quote

Inneholder all informasjon om opprettelse av tilbudet. Hvis du vil ha mer informasjon om nøkkel-verdi-parene, kan du se JSON-nodebeskrivelse.

Beskrivelse av JSON-noder

quote

En liste over poster. Tjenesten behandler bare ett tilbud på et gitt tidspunkt.

tilbudsnoder

opportunityId

Obligatorisk.

Id'et for salgsmuligheden.

sourceSystemIdentifier

Obligatorisk.

Unik postidentifikator fra et system utenfor Salesforce for å identifisere hvilket tilbud som skal oppdateres.

type

API-navnet på tilbudsposttypen.

additionalFields

Nøkkel-verdi-paret for andre QuoteLineItem-felt som du vil fylle ut.

quoteLines

Listen over rotprodukter.

quoteLines-noder

sourceSystemIdentifier

Obligatorisk.

Unik postidentifikator fra et system utenfor Salesforce for å identifisere hvilke rot QuoteLineItems som skal legges til, oppdateres eller slettes i Salesforce.

instanceKey

Forekomstnøkkel i ItemName__c av rotprodukter.

productCode

Obligatorisk.

Rotproduktkode.

lineRecordType

Obligatorisk.

Produkt- eller spesifikasjonsposttype.

attributeCategories

De valgte produktattributtene.

additionalFields

Nøkkel-verdi-paret for andre QuoteLineItem-felt som du vil fylle ut.

childLines

Rotproduktdekninger, forsikrede artikler og forsikrede parter.

childLines-noder

sourceSystemIdentifier

Obligatorisk.

Unik postidentifikator fra et system utenfor Salesforce for å identifisere hvilke rotdekninger, forsikrede artikler og forsikrede parter som skal legges til, oppdateres eller slettes i Salesforce.

instanceKey

Identifiserer flere forekomster av samme spesifikasjon.

Forekomstnøkkel i ItemName__c av forsikrede artikler og forsikrede parter.

productCode

Obligatorisk.

Produktkoden for rotdekninger, forsikrede artikler og forsikrede parter.

lineRecordType

Obligatorisk.

Produkt- eller spesifikasjonsposttype.

attributeCategories

De valgte produktattributtene.

additionalFields

Nøkkel-verdi-paret for andre QuoteLineItem-felt som du vil fylle ut.

childLines

Underordnede dekninger, forsikrede artikler og forsikrede parter.

childLines-noder

sourceSystemIdentifier

Obligatorisk.

Unik postidentifikator fra et system utenfor Salesforce for å identifisere hvilke underordnede dekninger, forsikrede artikler og forsikrede parter som skal legges til, oppdateres eller slettes i Salesforce.

Dersom to forsikringselementer har samme underordnede, må hver forsikringselement være oppført i den respektive childLines for den underordnede. For begge oppføringene må de ha samme sourceSystemIdentifier. Se InsQuoteService:createUpdateQuote.

instanceKey

Identifiserer flere forekomster av samme spesifikasjon.

Forekomstnøkkel i ItemName__c av forsikrede artikler og forsikrede parter.

productCode

Obligatorisk.

Produktkoden for underordnede dekninger, forsikrede artikler og produkter fra forsikrede parter.

lineRecordType

Obligatorisk.

Produkt- eller spesifikasjonsposttype.

attributeCategories

De valgte produktattributtene.

additionalFields

Nøkkel-verdi-paret for andre QuoteLineItem-felt som du vil fylle ut.

Inndata-JSON

Her er formatet på JSON-koden for inndata:

{
   "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å JSON-koden for inndata:

{
  "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
        }
      }
    ]
  }
}

Utdata-JSON

Returnerer Quote.Id av opprettet eller oppdatert tilbud i utdata JSON og listen over feil som oppstår.

Her er formatet på JSON-koden for utdata:

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

Her er et eksempel på JSON-koden for utdata:

{
   "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"
}
 
Laster
Salesforce Help | Article