Olet tässä:
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
-
Vastaanottaa JSON-objektin.
-
Käyttää
sourceSystemIdentifier-arvoa määrittääkseen, luodaanko olemassa oleva tarjous vai päivitetäänkö se. -
Käyttää
PricebookId-arvoa, joka on Hintakirja nimeltään Standard. -
Jos palvelu löytää tarjouksen, jolla on määritetty
sourceSystemIdentifier, se päivittää tarjousobjektin:-
Käyttää
quoteLines-osiossa määritettyjä juuritason tuotteita lisätäkseen, päivittääkseen tai poistaakseen juuritason tarjouksen rivikohteita. Palvelu käyttää juuritason tunnistamiseensourceSystemIdentifier-arvoa.Lisää
quoteLines-tietueet, jotka eivät sisälly tarjoukseen. Päivittää tarjouksessa olevat tietueet tarjouksessa olevassaquoteLines:ssä. PoistaaquoteLines-tietueet, jotka sisältyvät tarjoukseen, mutta eivät quoteLines-luetteloon. -
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 olevassachildLines:ssä. PoistaachildLines-tietueet, jotka sisältyvät tarjoukseen, mutta eivätchildLines-tietueeseen. -
Palvelu käyttää jokaisen juuritason kattavuuden, vakuutettujen kohteiden ja osapuolten osalta
childLineskattavuuksia, 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 tunnistamiseensourceSystemIdentifier-funktiota.Lisää
childLines-tietueet, jotka eivät sisälly tarjoukseen. Päivittää tarjouksessa olevat tietueet tarjouksessa olevassachildLines:ssä. PoistaachildLines-tietueet, jotka sisältyvät tarjoukseen, mutta eivätchildLines-tietueeseen. -
Ensisijaisen vakuutetun kohteen
QuoteLineItem- ja alitason vakuutettujen osapuoltenQuoteLineItem-tietueilla on many:many-suhde. Nämä suhteet tallennetaan Tarjouksen kohteen suhde (QuoteItemRelationship__c) -objektiin. Jos vakuutetun kohteenQuoteLineItem-objektilla on suhteita useisiin vakuutetun osapuolenQuoteLineItem-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
QuoteLineItemPrimaryChildLineItemId__cosoittaa Joan Smithin .QuoteLineItem -
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ä samasourceSystemIdentifier.Esimerkiksi sekä Lexus 250 että Honda Odyssey ovat Bob Jonesin kuljettajia. Lexus 250 sisältää Bob Jonesin ja sen
childLinesonsourceSystemIdentifierBobJones. Honda Odyssey sisältää Bob Jonesin, jonkasourceSystemIdentifieron BobJoneschildLines. -
childLinesParentItemId__c ja ParentItemId2__c osoittavat juuritason tunnukseen. -
Alitason vakuutusten
SubParentItemId__cosoittaa ensisijaiseen vakuutettuun kohteeseen.
-
-
Jos palvelu ei löydä tarjousta, jolla on annettu
sourceSystemIdentifier, se luo tarjousobjektin, joka sisältää rivikohteita alla kuvatulla tavalla:-
Käyttää
quoteLines-kohdassa määritettyjä juuritason tuotteita juuritason tarjouksen rivikohteiden luomiseen. -
Käytä jokaiselle juuritasolle
childLines-kentässä määritettyjä kattavuuksia, vakuutettuja kohteita ja osapuolia luodaksesi juuritason kattavuudet, vakuutetut kohteet ja osapuolet. -
Käyttää jokaiselle juuritason kattavuudelle, vakuutetuille kohteille ja osapuolille niiden
childLinesmääritettyjä vakuutuksia, vakuutettuja kohteita ja osapuolia luodakseen niiden vakuutukset, vakuutetut kohteet ja osapuolet. -
Ensisijaisen vakuutetun kohteen
QuoteLineItem- ja alitason vakuutettujen osapuoltenQuoteLineItem-tietueilla on many:many-suhde. Nämä suhteet tallennetaan Tarjouksen kohteen suhde (QuoteItemRelationship__c) -objektiin. Jos vakuutetun kohteenQuoteLineItem-objektilla on suhteita useisiin vakuutetun osapuolenQuoteLineItem-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
QuoteLineItemPrimaryChildLineItemId__cosoittaa Joan Smithin .QuoteLineItem -
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ä samasourceSystemIdentifier.Esimerkiksi sekä Lexus 250 että Honda Odyssey ovat Bob Jonesin kuljettajia. Lexus 250 sisältää Bob Jonesin, jonka
sourceSystemIdentifieron BobJoneschildLines. Honda Odyssey sisältää Bob Jonesin, jonkasourceSystemIdentifieron BobJoneschildLines. -
childLinesParentItemId__cjaParentItemId2__cosoittavat juuritason tunnukseen. -
Alitason vakuutusten
SubParentItemId__cosoittaa ensisijaiseen vakuutettuun kohteeseen.
-
-
Palauttaa
Quote.Idja luettelon virheistä tuloksen JSON-tiedostossa.
Syötteet
Input |
Kuvaus |
|---|---|
|
Sisältää kaikki tiedot tarjouksen luomiseksi. Lisätietoja avain/arvo-parista on kohdassa JSON-noodien kuvaus. |
JSON-noodien kuvaus |
|
|
Tietueiden luettelo. Palvelu käsittelee vain yhden tarjouksen tiettynä aikana. |
tarjousnoodit |
|
|
Pakollinen. Mahdollisuuden tunnus. |
|
Pakollinen. Salesforcen ulkopuolisesta järjestelmästä saatu yksilöllinen tietuetunnus, joka osoittaa päivitettävän tarjouksen. |
|
Tarjouksen tietuetyypin API-nimi. |
|
Muiden täytettävien |
|
Juurituotteiden luettelo. |
quoteLines-noodit |
|
|
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. |
|
Instanssiavain juurituotteiden |
|
Pakollinen. Juuritason tuotteen koodi. |
|
Pakollinen. Tuotteen tai määrityksen tietuetyyppi. |
|
Valitut tuoteattribuutit. |
|
Muiden täytettävien |
|
Juuritason tuotteiden kattavuudet, vakuutetut kohteet ja vakuutetut osapuolet. |
childLines-noodit |
|
|
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. |
|
Tunnistaa useita esiintymiä, joilla on sama määritelmä. Instanssiavain vakuutettujen tuotteiden ja vakuutettujen osapuolten |
|
Pakollinen. Juuritason kattavuuksien, vakuutettujen tuotteiden ja vakuutettujen osapuolten tuotekoodi. |
|
Pakollinen. Tuotteen tai määrityksen tietuetyyppi. |
|
Valitut tuoteattribuutit. |
|
Muiden täytettävien |
|
Alitason vakuutukset, vakuutetut kohteet ja vakuutetut osapuolet. |
childLines-noodit |
|
|
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 |
|
Tunnistaa useita esiintymiä, joilla on sama määritelmä. Instanssiavain vakuutettujen tuotteiden ja vakuutettujen osapuolten |
|
Pakollinen. Alitason vakuutusten, vakuutettujen tuotteiden ja vakuutettujen osapuolten tuotteiden tuotekoodi. |
|
Pakollinen. Tuotteen tai määrityksen tietuetyyppi. |
|
Valitut tuoteattribuutit. |
|
Muiden täytettävien |
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"
}