U bent hier:
InsQuoteService:createUpdateQuote
Gebruik deze service om een offerte te maken voor nieuwe klanten, een bestaande offerte bij te werken met nieuwe informatie of een bevestigingsofferte te maken. Voor updates moet de quoteId van de bij te werken offerte worden opgenomen in de externe opties.
Voordat deze service wordt uitgevoerd, voert het systeem een gastgebruikerscontrole uit.
Deze service kan worden gebruikt door gastgebruikers. Een gastgebruiker die een OmniScript-, integratieprocedure- of UI-taak uitvoert, kan doorgaan; deze service wordt uitgevoerd. De quoteId en opportunityId zijn echter versleuteld in deze gevallen, waardoor gastgebruikers deze ID's niet kunnen zien.
Gebruik de service InsQuoteService:createUpdateQuote om de offerte en offerteregelitems bij te werken, in plaats van de Omnistudio Data Mapper te gebruiken.
De manier waarop het werkt...
-
De service zoekt in de invoer-JSON naar de
inputKey. Het knooppuntinputKeybevat de informatie die de service nodig heeft om een offerte te maken of bij te werken. De informatie die deze service vereist, omvat:-
opportunityId -
endDate(optioneel) -
effectiveDate -
Records
productConfigurationDetail -
instanceKeyVereist voor het identificeren van meerdere exemplaren van dezelfde specificatie
-
insuredItemsknooppuntBinnen dit knooppunt verwacht de service een lijst van specificaties van verzekerde items en specificaties van verzekerde partijen, waarbij de
productCodevan elke specificatie als sleutel wordt gebruikt. Term__cGebruik dit om het veld Term__c van de offerte bij te werken.
-
-
Gebruikt de informatie uit de invoer-JSON om de offerte te maken.
-
Retourneert een offerte-ID in de uitvoer-JSON.
-
Maakt een offerteobject dat deze regelitems bevat:
-
Gebruikt de rootproducten die in
productConfigurationDetailzijn gedefinieerd om de rootofferteregelitems te maken of bij te werken. -
Bij het bijwerken van een bestaande offerte worden records in de
productConfigurationDetaildie nog niet in de offerte voorkomen, toegevoegd en worden die welke al in de offerte voorkomen, bijgewerkt. -
Gebruikt specificaties van verzekerde items, specificaties van verzekerde partij en dekkingsspecificaties als offerteregelitems:
ParentItemId__c = rootItem.Id. -
Het offerteregelitem van het primaire verzekerde item en de onderliggende offerteregels van de verzekerde partij hebben een veel:veel-relatie. Deze relaties worden opgeslagen in het object Offerte-itemrelatie. Als een offerteregel van een verzekerd item relaties heeft met meerdere offerteregels van een verzekerde partij, wordt het veld
PrimaryChildLineitemId__cgebruikt om te bepalen welke van die relaties de primaire is.Zo zijn zowel Joan Smith als John Smith drivers van Lexus 250; Joan Smith is ingesteld als primaire driver. Het offerteregelitem Lexus 250 heeft
PrimaryChildLineItemId__cdie verwijzen naar het offerteregelitem van Joan Smith. DeParentItemId2__cvan alle offerteregelitems verwijzen naar hetSubParentItemId__cvanrootItem.Id.onderliggende dekkingen naar het primaire verzekerde item. DeItemName__cvelden Offerteregelitem van verzekerd item en Offerteregelitem van verzekerde partij worden opgeslagen bij dit item.instanceKey -
Het offerteregelitem van het primaire verzekerde item omvat de prijs.
-
-
Voor nieuwe offertes maakt u, als
createOpportunitytrueis en er geenopportunityIdis opgegeven, een opportunityrecord met behulp van hetOpportunityDetailsJSON-knooppunt vanuit deinputKey. -
Als
calculateCommissiontrueis, roeptInsCommissionService.processQuoteCommissionaan, dat de invoer voorbereidt voor deInsCommissionService.calculate. Nadat de berekeningsservice de invoer heeft verwerkt, wordt de berekende commissiewaarde opgeslagen inQuote.CommissionAmount__c.
Alle gebruikers die InsQuoteService:createUpdateQuote aanroepen, moeten de machtiging Lezen hebben voor alle velden in de veldset Offertedetail als de veldset wordt toegevoegd aan het object Offerteregelitem.
Als de veldset Offertedetail niet wordt toegevoegd aan het object Offerteregelitem, zijn alle velden, inclusief aangepaste velden, leesbaar voor gebruikers.
Toeslagen
Deze service werkt als volgt met toeslagen (belastingen en kosten):
-
Als het veld
taxesAndFeesis opgegeven voor een JSON-record, blijft er een overeenkomendeQuotePricingAdjustment__cbestaan voor elk item in detaxesAndFees. -
Als het veld
taxAmountis opgegeven voor een JSON-record, wordt het veldTaxAmount__cingesteld op de waarde van het veldtaxAmountvoor de gemaakteQuoteLineItem. -
Als het veld
feeAmountis opgegeven voor een JSON-record, wordt het veldFeeAmount__cingesteld op de waarde van het veldfeeAmountvoor de gemaakteQuoteLineItem.
Extra velden toevoegen aan offerteregelitems
Als u extra velden nodig hebt die door deze service naar het offerteregelitem worden geschreven, moet u eerst de service InsProductJSONService:trimOffAttributeCategory aanroepen.
De stroom om dit te laten werken in een OmniScript- of integratieprocedure is:
-
Productconfiguratiestappen
-
InsProductJSONService:trimOffAttributeCategory-serviceaanroep met selectedValueAsObject ingesteld op true (waar)
-
DataRaptor-transformatie die toewijzing tussen kenmerken en uw extra velden in het object Offerteregelitem kan omvatten
-
InsQuoteService:createUpdateQuote serviceaanroep
Externe opties
Optie |
Beschrijving |
|---|---|
|
Als deze optie is ingesteld op Deze optie ondersteunt relaties tussen bovenliggend > onderliggend en bovenliggend > onderliggend > kleinkind verzekerd item. |
|
Verplicht. Een JSON-sleutel waaruit deze service de benodigde informatie ophaalt om een offerte te maken of bij te werken. Gebruik % niet om de waarde van deze sleutel te omringen. Deze sleutel vertegenwoordigt een JSON-knooppunt, geen variabele. Omdat deze sleutel een JSON-knooppunt vertegenwoordigt en geen pad, gebruikt u geen notatie voor het pad parent:childnode:childnode. Als u het juiste gegevenspad wilt bereiken, geeft u het op in het veld JSON-pad verzenden in de sectie Transformatie verzenden/reactie wanneer u dit sleutel-/waardepaar toevoegt aan een OmniScript-stap. |
|
Indien ingesteld op Gebruik deze optie om grote offertes voor meerdere exemplaren te maken via meerdere serveraanroepen, waarbij de nieuwe set offerteregelitems van de exemplaren in elke aanroep worden ingevoegd in de bestaande offerte. |
|
Optioneel. De ID van een bestaande offerte die deze service bijwerkt, op basis van nieuwe of bijgewerkte informatie. Gebruikt wanneer de service een bestaande offerte moet bijwerken. |
|
Optioneel. Een booleaanse vlag om aan te geven of de offerte een offerte met meerdere wortels is. Standaard is |
|
Indien ingesteld op |
|
Indien ingesteld op |
|
Verplicht. De naam van de prijslijst die is gekoppeld aan de productspecificatie. Salesforce vereist dat de producten die in offerteregelitems worden gebruikt, een prijslijstgegeven hebben. |
|
Indien ingesteld op Indien ingesteld op Opmerking
Als u deze optie instelt op false (onwaar), moet u ook een regel toevoegen aan de Geef |
|
Indien ingesteld op |
|
Indien ingesteld op |
|
Indien ingesteld op Indien ingesteld op Opmerking
Als u deze optie instelt op true (waar), moet u ook minstens één van de waarden van de producent- of productiecode invoeren: |
|
Optioneel. De ID van de verwerkende producent, dat wil zeggen de producent die is gebruikt om de |
|
Optioneel. De ID van de productiecode. |
|
Optioneel. De naam van de productiecode doorgegeven aan de service InsCommissionService.calculate. Als u geen |
runEligibilityRequiredDefaultSelectedRules
|
Optioneel. De standaardwaarden zijn Bepaalt of regels voor In aanmerking komen en Standaard geselecteerd worden uitgevoerd. |
runRelationshipRules
|
Optioneel. De standaardwaarden zijn Bepaalt of relatieregels worden uitgevoerd. |
runSelectedValivationRules
|
Optioneel. De standaardwaarden zijn Bepaalt of Validatieregels selecteren worden uitgevoerd. |
Invoer-JSON
Deze service zoekt naar de waarde van de inputKey. Ga naar het tabblad API in de productspecificatie om de invoer-JSON te vinden die u nodig hebt voor deze service.
In dit voorbeeld is inputKey = quotePolicyJSON.
"quotepolicyJson": {
"productConfigurationDetail": {
"records": [{
"rootProductId": "01t1I000002fuBoQAI",
"rootProductCode": "AUTOROOT",
"timestamp": 1534288040769,
"hasInstanceKeys": true,
"childProductsCount": 4,
"instanceKeyChildren": 2,
"pathFromChild": "[0]",
"pathFromRoot": "[0]",
"attributeCategories": {
"records": [{
"productAttributes": {
"records": [{
"parentProductId": "01t1I000002fuBoQAI",
"parentProductCode": "AUTOROOT",
"pathFromChild": "attributeCategories.records[0].productAttributes.records[0]",
"pathFromRoot": "attributeCategories.records[0].productAttributes.records[0]",
"userValues": "test",
"values": [{
"disabled": false,
"readonly": false
}]
"totalSize": 1
},
"id": "a1V1I0000007xJSUAY",
"Name": "Alan Health Attributes",
"Code__c": "AHA",
"displaySequence": 5
}
],
"totalSize": 1
},
"childProducts": {
"records": [{
"rootProductId": "a2f1I000000BI6JQAW",
"rootProductCode": "stolenProperty",
"customizeSectionsOpen": null,
"numberAttributes": 1,
"numberCategories": 1,
"originalIndex": 0,
"parentProductName": "Auto Root",
"pathFromRoot": "[0].childProducts.records[0]",
"attributeCategories": {
"records": [{
"productAttributes": {
"records": [{
"parentProductId": "a2f1I000000BI6JQAW",
"parentProductCode": "stolenProperty",
"originalAttributeIndex": 0,
"originalCategoryIndex": 0,
"originalProductIndex": 0,
"pathFromChild": "attributeCategories.records[0].productAttributes.records[0]",
"pathFromRoot": "childProducts.records[0].attributeCategories.records[0].productAttributes.records[0]",
"userValues": false,
"values": [...]
...
}]
"totalSize": 1
},
"id": "a1V1I0000007xJSUAY",
"Name": "Alan Health Attributes",
"Code__c": "AHA",
"displaySequence": 5
}],
"totalSize": 1
},
"childProducts": {
...
}
"Price": 80,
"productId": "01t1I000002fuBoQAI",
"Term__c": "Semi-Annual",
"PricingFormula__c": "SUM(AutoPremium__autoPremium + rentalTotal + medicalTotal + roadsideTotal + dedWaiverTotal + uninsuredMotoristPDTotal + uninsuredMotoristBITotal)",
"IsConfigurable__c": true,
"RecordTypeName__c": "Product",
"IsRecommended__c": false,
"ProductCode": "AUTOROOT",
"Name": "Auto Root",
"Id": "01t1I000002fuBoQAI",
"RawPriceData": [{
"aggregationResults": {},
"calculationResults": [{
"ID": "0",
"comprehensiveTotal": 500,
"rentalTotal": 40,
"medicalTotal": 10,
"roadsideTotal": 10,
"dedWaiverTotal": 10,
"uninsuredMotoristPDTotal": 0,
"uninsuredMotoristBITotal": 100,
"AUTO.instanceKey": "2015 Lexus LX250",
"DRIVER.FN": "Joan",
"DRIVER.LN": "Smith"
},
"ID": "1",
"comprehensiveTotal": 500,
"rentalTotal": 40,
"medicalTotal": 10,
"roadsideTotal": 10,
"dedWaiverTotal": 10,
"uninsuredMotoristPDTotal": 0,
"uninsuredMotoristBITotal": 100,
"AUTO.instanceKey": "2015 Lexus LX250",
"DRIVER.FN": "John",
"DRIVER.LN": "Smith"
},
...
]
},
{
"aggregationResults": {},
"calculationResults": [{
"ID": "4",
"comprehensiveTotal": 500,
"rentalTotal": 40,
"medicalTotal": 10,
"roadsideTotal": 10,
"dedWaiverTotal": 10,
"uninsuredMotoristPDTotal": 0,
"uninsuredMotoristBITotal": 100,
"AUTO.instanceKey": "2006 Honda Odyssey",
"DRIVER.FN": "Joan",
"DRIVER.LN": "Smith"
},
{
"ID": "5",
"comprehensiveTotal": 500,
"rentalTotal": 40,
"medicalTotal": 10,
"roadsideTotal": 10,
"dedWaiverTotal": 10,
"uninsuredMotoristPDTotal": 0,
"uninsuredMotoristBITotal": 100,
"AUTO.instanceKey": "2006 Honda Odyssey",
"DRIVER.FN": "John",
"DRIVER.LN": "Smith"
},
...
]
}
],
"CalculatedPriceData": {
"2006 Honda Odyssey": {
"ID": "4",
"comprehensiveTotal": 500,
"rentalTotal": 40,
"medicalTotal": 10,
"roadsideTotal": 10,
"dedWaiverTotal": 10,
"uninsuredMotoristPDTotal": 0,
"uninsuredMotoristBITotal": 100,
"AUTO.instanceKey": "2006 Honda Odyssey",
"DRIVER.FN": "Joan",
"DRIVER.LN": "Smith"
},
"2015 Lexus LX250": {
"ID": "0",
"comprehensiveTotal": 500,
"rentalTotal": 40,
"medicalTotal": 10,
"roadsideTotal": 10,
"dedWaiverTotal": 10,
"uninsuredMotoristPDTotal": 0,
"uninsuredMotoristBITotal": 100,
"AUTO.instanceKey": "2015 Lexus LX250",
"DRIVER.FN": "Joan",
"DRIVER.LN": "Smith"
}
},
"displaySequence": -1
}
]
},
"insuredItems": {
"DRIVER": [{
"isPrimary": false,
"instanceKey": "Joan Smith",
"LN": "Smith",
"AGE": 20,
"FN": "Joan",
"GENDER": "Female",
"FirstName": "Joan",
"LastName": "Smith",
"partyId": "a0q1I000001emNeQAI"
},
{
"isPrimary": false,
"instanceKey": "John Smith",
"LN": "Smith",
"AGE": 30,
"FN": "John",
"GENDER": "Male",
"FirstName": "John",
"LastName": "Smith",
"partyId": "a0q1I000001emNfQAI"
},
],
"AUTO": [{
"autoLicNum": "Lexus",
"autoModel": "LX250",
"autoYear": 2015,
"instanceKey": "2015 Lexus LX250",
"BodyClass": "Sedan/Saloon",
"VehicleType": "PASSENGER CAR",
"isPrimary": true
},
{
"autoLicNum": "Honda",
"autoModel": "Odyssey",
"autoYear": 2006,
"instanceKey": "2006 Honda Odyssey",
"BodyClass": "Minivan",
"VehicleType": "MULTIPURPOSE PASSENGER VEHICLE (MPV)",
"isPrimary": true
}
]
},
"accountId": "0011I00000QknfjQAB",
"opportunityId": "0061I00000AV8gBQAT"
}De JSON binnen de inputKey omvat diverse sleutel-/waardeparen die de service nodig heeft om een offerte te maken of bij te werken.
Sleutel |
Waarde |
|---|---|
|
De gegenereerde opportunity-ID. |
|
De gegenereerde account-ID. |
|
Optioneel. De datum waarop de polis komt te vervallen. |
|
De datum waarop de polis van kracht wordt. |
|
Een array van records die het product-JSON-structuurmodel volgen. Er wordt een rootofferteregelitem gemaakt of gewijzigd voor elke productrecord in de array. Zie voor meer informatie over de structuur en inhoud van een product het Product-JSON-structuurmodel. |
|
Optioneel. De |
|
De sleutel-/waardeparen van de verzekerde items die de service gebruikt om de offerteregelitems voor verzekerde items te maken. |
Of uw offerte nu één exemplaar van een verzekerd item of meerdere verzekerde items bevat, maak het insuredItems op met een array van records.
"insuredItems": {
"DRIVER": [{
"isPrimary": false,
"instanceKey": null,
"additionalFields": {},
"productCode": "DRIVER",
"productId": "01t1I000002fuByQAI",
"FN": null,
"GENDER": null,
"LN": null,
"partyId": null
}],
"AUTO": [{
"isPrimary": true,
"instanceKey": null,
"additionalFields": {},
"productCode": "AUTO",
"productId": "01t1I000002fuBtQAI",
"autoBrakes": false,
"est_annual_mileage": "10001-20000",
"autoLicNum": null,
"autoModel": null,
"autoStyle": null,
"autoVIN": null,
"autoYear": ""
}]
}Voor één exemplaar van een verzekerd item dat zich direct onder het rootproduct in de producthiërarchie bevindt, kunt u de indeling in dit voorbeeld gebruiken. De insuredItems hier omvatten de verzekerde items en de waarden die de gebruiker voor elk item heeft geselecteerd. We ondersteunen deze invoer-JSON, maar het is van een eerdere release en we raden het niet aan.
"insuredItems": {
"smallBusiness": {
"protectionClass": 3,
"yearBuilding": 2000,
"yearWiring": 2000,
"yearRoof": 2003,
"yearPlumbing": 2000,
"yearBusiness": 2002,
"businessParkingLot": "no",
"legalForm": "sole",
"busLocation": "standalone",
"busHours": 8,
"busEmployees": 24,
"bldgSprinker": "Y",
"bldgFrame": "frame",
"bldgAlarm": "none",
"ageWiring": 18,
"ageRoof": 15,
"agePlumbing": 18,
"ageBusiness": 16,
"ageBuilding": 18,
"SIC": "5451",
"SICCategory": "Food Stores"Voor nieuwe offertes, als createOpportunity true is en er geen opportunityId is opgegeven, maakt de service een nieuwe opportunityrecord met behulp van het OpportunityDetails JSON-knooppunt vanuit de inputKey. Gebruik de invoerindeling OpportunityDetails:FieldName. Hier is een voorbeeld van een OpportunityDetails.
"OpportunityDetails": {
"AccountId": "0015f00000DSFgqAAH",
"Name": "Auto Quote: Rachel Adams (2022-01-03)",
"StageName": "Qualification",
"CloseDate": "2022-01-03"
},alternatief voor preTransformBundle
U kunt ook een DataRaptor-transformatie definiëren die de gegevens toewijst die zijn doorgegeven aan de invoer-JSON in de vorm die de service nodig heeft. De uitvoer-JSON van deze DataRaptor is de userInputs JSON die is gedefinieerd op het API-tabblad van de productweergave. Stel de optie preTransformBundle in op de naam van de DataRaptor om de service de DataRaptor te laten gebruiken.
Uitvoer-JSON
De service retourneert de offerte-ID van de zojuist gemaakte offerte. Het retourneert ook offertedetails als de returnQuote true is en de opportunity-ID als createOpportunity true is en er geen opportunityId is opgegeven.
{
"quoteDetail": {
"stmpbhins04__PrimaryRootItemId__c": "0QLR00000000e3NOAQ",
"stmpbhins04__TotalPremiumforTerm__c": 2000,
"stmpbhins04__MonthlyPremium__c": 166.66666666666666,
"stmpbhins04__StandardPremium__c": 2000,
"Id": "0Q0R00000000WplKAE",
"stmpbhins04__EndDate__c": "2022-05-04",
"stmpbhins04__EffectiveDate__c": "2021-05-05",
"stmpbhins04__Term__c": "Annual",
"Name": "Auto Root",
"OpportunityId": "006R0000002xk8QIAQ",
"Pricebook2Id": "01sR0000001GULqIAO"
},
"quoteId": "0Q0R00000000WplKAE",
"opportunityId": "006R0000002xk8QIAQ",
"error": "OK"
}