Loading
Vakuutus
InsQuoteService:createUpdateQuoteFromExternal

InsQuoteService:createUpdateQuoteFromExternal

Luo tarjouksen tai päivittää olemassa olevan tarjouksen uusilla tiedoilla ulkoisesta järjestelmästä saapuvan API-kutsun kautta.

Luokka:InsQuoteService

Metodi: createUpdateQuoteFromExternal

Miten se toimii

  1. Vastaanottaa JSON-objektin.

  2. Käyttää sourceSystemIdentifier-arvoa määrittääkseen, luodaanko olemassa oleva tarjous vai päivitetäänkö se.

  3. Käyttää PricebookId-arvoa, joka on Hintakirja nimeltään Standard.

  4. Jos palvelu löytää tarjouksen, jolla on määritetty sourceSystemIdentifier, se päivittää tarjousobjektin:

    1. Käyttää quoteLines-osiossa määritettyjä juuritason tuotteita lisätäkseen, päivittääkseen tai poistaakseen juuritason tarjouksen rivikohteita. Palvelu käyttää juuritason tunnistamiseen sourceSystemIdentifier-arvoa.

      Lisää quoteLines-tietueet, jotka eivät sisälly tarjoukseen. Päivittää tarjouksessa olevat tietueet tarjouksessa olevassa quoteLines:ssä. Poistaa quoteLines-tietueet, jotka sisältyvät tarjoukseen, mutta eivät quoteLines-luetteloon.

    2. Palvelu käyttää jokaiselle juuritasolle childLines-kentässä määritettyjä kattavuuksia, vakuutettuja kohteita ja osapuolia lisätäkseen, päivittääkseen tai poistaakseen juuritason kattavuudet, vakuutetut kohteet ja osapuolet. Palvelu käyttää tätä sourceSystemIdentifier-arvoa tunnistaakseen päivitettävän linjan.

      Lisää childLines-tietueet, jotka eivät sisälly tarjoukseen. Päivittää tarjouksessa olevat tietueet tarjouksessa olevassa childLines:ssä. Poistaa childLines-tietueet, jotka sisältyvät tarjoukseen, mutta eivät childLines-tietueeseen.

    3. Palvelu käyttää jokaisen juuritason kattavuuden, vakuutettujen kohteiden ja osapuolten osalta childLines kattavuuksia, vakuutettuja kohteita ja osapuolia lisätäkseen, päivittääkseen tai poistaakseen vastaavat kattavuudet, vakuutetut kohteet ja osapuolet. Palvelu käyttää päivitettävän linjan tunnistamiseen sourceSystemIdentifier-funktiota.

      Lisää childLines-tietueet, jotka eivät sisälly tarjoukseen. Päivittää tarjouksessa olevat tietueet tarjouksessa olevassa childLines:ssä. Poistaa childLines-tietueet, jotka sisältyvät tarjoukseen, mutta eivät childLines-tietueeseen.

    4. Ensisijaisen vakuutetun kohteen QuoteLineItem- ja alitason vakuutettujen osapuolten QuoteLineItem-tietueilla on many:many-suhde. Nämä suhteet tallennetaan Tarjouksen kohteen suhde (QuoteItemRelationship__c) -objektiin. Jos vakuutetun kohteen QuoteLineItem-objektilla on suhteita useisiin vakuutetun osapuolen QuoteLineItem-tietueisiin, palvelu käyttää PrimaryChildLineItemId__c-kenttää määrittääkseen, kumpi näistä suhteista on ensisijainen.

      Esimerkiksi Joan Smith ja John Smith ovat molemmat Lexus 250 -auton kuljettajia; Joan Smith on määritetty ensisijaiseksi kuljettajaksi. Lexus 250 QuoteLineItem PrimaryChildLineItemId__c osoittaa Joan Smithin .QuoteLineItem

    5. Jos kahdella vakuutetulla kohteella on sama alitason vakuutettu osapuoli, jokaisella vakuutetulla kohteella täytyy olla merkintä alitason vakuutetun osapuolen vastaavassa childLines. Niillä täytyy olla molemmilla merkinnöillä sama sourceSystemIdentifier.

      Esimerkiksi sekä Lexus 250 että Honda Odyssey ovat Bob Jonesin kuljettajia. Lexus 250 sisältää Bob Jonesin ja sen childLines on sourceSystemIdentifier BobJones. Honda Odyssey sisältää Bob Jonesin, jonka sourceSystemIdentifier on BobJones childLines.

    6. childLines ParentItemId__c ja ParentItemId2__c osoittavat juuritason tunnukseen.

    7. Alitason vakuutusten SubParentItemId__c osoittaa ensisijaiseen vakuutettuun kohteeseen.

  5. Jos palvelu ei löydä tarjousta, jolla on annettu sourceSystemIdentifier, se luo tarjousobjektin, joka sisältää rivikohteita alla kuvatulla tavalla:

    1. Käyttää quoteLines-kohdassa määritettyjä juuritason tuotteita juuritason tarjouksen rivikohteiden luomiseen.

    2. Käytä jokaiselle juuritasolle childLines-kentässä määritettyjä kattavuuksia, vakuutettuja kohteita ja osapuolia luodaksesi juuritason kattavuudet, vakuutetut kohteet ja osapuolet.

    3. Käyttää jokaiselle juuritason kattavuudelle, vakuutetuille kohteille ja osapuolille niiden childLines määritettyjä vakuutuksia, vakuutettuja kohteita ja osapuolia luodakseen niiden vakuutukset, vakuutetut kohteet ja osapuolet.

    4. Ensisijaisen vakuutetun kohteen QuoteLineItem- ja alitason vakuutettujen osapuolten QuoteLineItem-tietueilla on many:many-suhde. Nämä suhteet tallennetaan Tarjouksen kohteen suhde (QuoteItemRelationship__c) -objektiin. Jos vakuutetun kohteen QuoteLineItem-objektilla on suhteita useisiin vakuutetun osapuolen QuoteLineItem-tietueisiin, palvelu käyttää PrimaryChildLineItemId__c-kenttää määrittääkseen, kumpi näistä suhteista on ensisijainen.

      Esimerkiksi Joan Smith ja John Smith ovat molemmat Lexus 250 -auton kuljettajia; Joan Smith on määritetty ensisijaiseksi kuljettajaksi. Lexus 250 QuoteLineItem PrimaryChildLineItemId__c osoittaa Joan Smithin .QuoteLineItem

    5. Jos kahdella vakuutetulla kohteella on sama alitason vakuutettu osapuoli, jokaisella vakuutetulla kohteella täytyy olla merkintä alitason vakuutetun osapuolen vastaavassa childLines. Niillä täytyy olla molemmilla merkinnöillä sama sourceSystemIdentifier.

      Esimerkiksi sekä Lexus 250 että Honda Odyssey ovat Bob Jonesin kuljettajia. Lexus 250 sisältää Bob Jonesin, jonka sourceSystemIdentifier on BobJones childLines. Honda Odyssey sisältää Bob Jonesin, jonka sourceSystemIdentifier on BobJones childLines.

    6. childLines ParentItemId__c ja ParentItemId2__c osoittavat juuritason tunnukseen.

    7. Alitason vakuutusten SubParentItemId__c osoittaa ensisijaiseen vakuutettuun kohteeseen.

  6. Palauttaa Quote.Id ja luettelon virheistä tuloksen JSON-tiedostossa.

Syötteet

Input

Kuvaus

quote

Sisältää kaikki tiedot tarjouksen luomiseksi. Lisätietoja avain/arvo-parista on kohdassa JSON-noodien kuvaus.

JSON-noodien kuvaus

quote

Tietueiden luettelo. Palvelu käsittelee vain yhden tarjouksen tiettynä aikana.

tarjousnoodit

opportunityId

Pakollinen.

Mahdollisuuden tunnus.

sourceSystemIdentifier

Pakollinen.

Salesforcen ulkopuolisesta järjestelmästä saatu yksilöllinen tietuetunnus, joka osoittaa päivitettävän tarjouksen.

type

Tarjouksen tietuetyypin API-nimi.

additionalFields

Muiden täytettävien QuoteLineItem-kenttien avain-arvojen pari.

quoteLines

Juurituotteiden luettelo.

quoteLines-noodit

sourceSystemIdentifier

Pakollinen.

Salesforcen ulkopuolisesta järjestelmästä saatu yksilöllinen tietuetunnus, joka osoittaa, mitkä juuritason QuoteLineItems-objektit lisätään, päivitetään tai poistetaan Salesforcessa.

instanceKey

Instanssiavain juurituotteiden ItemName__c.

productCode

Pakollinen.

Juuritason tuotteen koodi.

lineRecordType

Pakollinen.

Tuotteen tai määrityksen tietuetyyppi.

attributeCategories

Valitut tuoteattribuutit.

additionalFields

Muiden täytettävien QuoteLineItem-kenttien avain-arvojen pari.

childLines

Juuritason tuotteiden kattavuudet, vakuutetut kohteet ja vakuutetut osapuolet.

childLines-noodit

sourceSystemIdentifier

Pakollinen.

Salesforcen ulkopuolisesta järjestelmästä saatu yksilöllinen tietuetunnus, joka osoittaa, mitkä juuritason kattavuudet, vakuutetut kohteet ja vakuutetut osapuolet lisätään, päivitetään tai poistetaan Salesforcessa.

instanceKey

Tunnistaa useita esiintymiä, joilla on sama määritelmä.

Instanssiavain vakuutettujen tuotteiden ja vakuutettujen osapuolten ItemName__c.

productCode

Pakollinen.

Juuritason kattavuuksien, vakuutettujen tuotteiden ja vakuutettujen osapuolten tuotekoodi.

lineRecordType

Pakollinen.

Tuotteen tai määrityksen tietuetyyppi.

attributeCategories

Valitut tuoteattribuutit.

additionalFields

Muiden täytettävien QuoteLineItem-kenttien avain-arvojen pari.

childLines

Alitason vakuutukset, vakuutetut kohteet ja vakuutetut osapuolet.

childLines-noodit

sourceSystemIdentifier

Pakollinen.

Salesforcen ulkopuolisesta järjestelmästä saatu yksilöllinen tietuetunnus, joka osoittaa, mitkä alitason vakuutukset, vakuutetut kohteet ja vakuutetut osapuolet lisätään, päivitetään tai poistetaan Salesforcessa.

Jos kahdella vakuutetulla kohteella on sama alitason vakuutettu osapuoli, jokaisella vakuutetulla kohteella täytyy olla merkintä alitason vakuutetun osapuolen vastaavassa childLines. Niillä täytyy olla molemmilla merkinnöillä sama sourceSystemIdentifier. Lisätietoja on kohdassa InsQuoteService:createUpdateQuote.

instanceKey

Tunnistaa useita esiintymiä, joilla on sama määritelmä.

Instanssiavain vakuutettujen tuotteiden ja vakuutettujen osapuolten ItemName__c.

productCode

Pakollinen.

Alitason vakuutusten, vakuutettujen tuotteiden ja vakuutettujen osapuolten tuotteiden tuotekoodi.

lineRecordType

Pakollinen.

Tuotteen tai määrityksen tietuetyyppi.

attributeCategories

Valitut tuoteattribuutit.

additionalFields

Muiden täytettävien QuoteLineItem-kenttien avain-arvojen pari.

Syötetty JSON

Alla on syötetyn JSON-tiedoston muoto:

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

Alla on esimerkki syötetystä JSON-tiedostosta:

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

Tulos-JSON

Palauttaa luodun tai päivitetyn tarjouksen Quote.Id tuloksen JSON-tiedostossa ja havaittujen virheiden luettelon.

Alla on tuloksen JSON-tiedoston muoto:

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

Alla on esimerkki tuloksen JSON-tiedostosta:

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