breadcrumbDescription
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
-
Modtager JSON-objektet.
-
Bruger
sourceSystemIdentifiertil at bestemme, om der skal oprettes eller opdateres et eksisterende tilbud. -
Bruger
PricebookId, som er en prisliste med navnet Standard. -
Hvis tjenesten finder et tilbud med den angivne
sourceSystemIdentifier, opdateres tilbudsobjektet:-
Bruger de rodprodukter, der er defineret i
quoteLines, til at tilføje, opdatere eller slette rodtilbudslinjevarer. Tjenesten brugersourceSystemIdentifiertil at identificere roden.Tilføjer de registreringer i
quoteLines, der ikke er i tilbuddet. Opdaterer de registreringer iquoteLines, der findes i tilbuddet. Sletter de registreringer iquoteLines, der er i Tilbud, men ikke i quoteLines. -
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 brugersourceSystemIdentifiertil at identificere den linje, der skal opdateres.Tilføjer de registreringer i
childLines, der ikke er i tilbuddet. Opdaterer de registreringer ichildLines, der findes i tilbuddet. Sletter de registreringer ichildLines, der er i Tilbud, men ikke ichildLines. -
For hver grundlæggende dækning, forsikrede elementer og parter bruger tjenesten dækningerne, forsikrede elementer og parter i
childLinestil at tilføje, opdatere eller slette de respektive dækninger, forsikrede elementer og parter. Tjenesten brugersourceSystemIdentifiertil at identificere den linje, der skal opdateres.Tilføjer de registreringer i
childLines, der ikke er i tilbuddet. Opdaterer de registreringer ichildLines, der findes i tilbuddet. Sletter de registreringer ichildLines, der er i Tilbud, men ikke ichildLines. -
Den primære forsikrede postes
QuoteLineItemog den underordnede forsikrede partsQuoteLineItemhar en mange:mange-relation. Disse relationer gemmes i objektet Tilbudselementrelation (QuoteItemRelationship__c). Hvis en forsikretQuoteLineItemhar relationer til flere forsikrede partersQuoteLineItem, bruger tjenestenPrimaryChildLineItemId__ctil 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
QuoteLineItemharPrimaryChildLineItemId__c, der peger på Joan SmithsQuoteLineItem. -
Hvis to forsikringsobjekter har samme barnforsikrede, skal hver forsikringsobjekt have en post i de respektive
childLinesfor den barnforsikrede. For begge poster skal de have sammesourceSystemIdentifier.F.eks. har både Lexus 250 og Honda Odyssey Bob Jones som chauffør. Lexus 250 har Bob Jones med
sourceSystemIdentifiersom BobJones i sitchildLines. Honda Odyssey har en Bob Jones medsourceSystemIdentifiersom BobJones i sinchildLines. -
ParentItemId__c og ParentItemId2__c i
childLinespeger på rodets id. -
Børneforsikringens
SubParentItemId__cpeger på den primære forsikrede vare.
-
-
Hvis tjenesten ikke finder et tilbud med den angivne
sourceSystemIdentifier, opretter den tilbudsobjektet, der inkluderer linjevarer som forklaret her:-
Bruger de rodprodukter, der er defineret i
quoteLines, til at oprette rodtilbudslinjevarer. -
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. -
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. -
Den primære forsikrede postes
QuoteLineItemog den underordnede forsikrede partsQuoteLineItemhar en mange:mange-relation. Disse relationer gemmes i objektet Tilbudselementrelation (QuoteItemRelationship__c). Hvis en forsikretQuoteLineItemhar relationer til flere forsikrede partsQuoteLineItem, bruger tjenestenPrimaryChildLineItemId__ctil 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
QuoteLineItemharPrimaryChildLineItemId__c, der peger på Joan SmithsQuoteLineItem. -
Hvis to forsikrede varer har den samme underordnede, skal hver forsikret vare være opført i den pågældende
childLinesfor den underordnede. For begge poster skal de have sammesourceSystemIdentifier.F.eks. har både Lexus 250 og Honda Odyssey Bob Jones som chauffør. Lexus 250 har Bob Jones med
sourceSystemIdentifiersom BobJones i sinechildLine. Honda Odyssey har Bob Jones medsourceSystemIdentifiersom BobJones i sinchildLines. -
ParentItemId__cogParentItemId2__cafchildLinespeger på rodets id. -
Børneforsikringens
SubParentItemId__cpeger på den primære forsikrede vare.
-
-
Returnerer en
Quote.Idog listen over fejl, der opstår i output-JSON.
Input
Input |
Beskrivelse |
|---|---|
|
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 |
|
|
En liste over registreringer. Tjenesten behandler kun et tilbud ad gangen. |
tilbudsnoder |
|
|
Påkrævet. Id'et for salgsmuligheden. |
|
Påkrævet. Entydigt registrerings-id fra et system uden for Salesforce til at identificere, hvilket tilbud der skal opdateres. |
|
API-navnet på tilbudsregistreringstypen. |
|
Nøgle-værdi-parret for andre |
|
Listen over rodprodukter. |
quoteLines-noder |
|
|
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. |
|
Forekomstnøgle i |
|
Påkrævet. Rodproduktkode. |
|
Påkrævet. Produktregistreringstype eller specifikationstype. |
|
De valgte produktattributter. |
|
Nøgle-værdi-parret for andre |
|
Rodproduktdækninger, forsikrede elementer og forsikrede parter. |
childLines-noder |
|
|
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. |
|
Identificerer flere forekomster af den samme specifikation. Forekomstnøgle i |
|
Påkrævet. Produktkoden for roddækninger, forsikrede elementer og forsikrede parter. |
|
Påkrævet. Produktregistreringstype eller specifikationstype. |
|
De valgte produktattributter. |
|
Nøgle-værdi-parret for andre |
|
Underordnede dækninger, forsikrede elementer og forsikrede parter. |
childLines-noder |
|
|
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 |
|
Identificerer flere forekomster af den samme specifikation. Forekomstnøgle i |
|
Påkrævet. Produktkoden for underordnede dækninger, forsikrede elementer og produkter for forsikrede. |
|
Påkrævet. Produktregistreringstype eller specifikationstype. |
|
De valgte produktattributter. |
|
Nøgle-værdi-parret for andre |
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"
}