Olet tässä:
InsQuoteService:createUpdateQuote
Käytä tätä palvelua luodaksesi tarjouksen uudelle yritykselle, päivittääksesi olemassa olevan tarjouksen uusilla tiedoilla tai luodaksesi kannatustarjouksen. Päivityksiä varten päivitettävän tarjouksen quoteId täytyy sisältyä etäasetuksiin.
Ennen kuin tämä palvelu suoritetaan, järjestelmä suorittaa vieraskäyttäjän tarkastuksen.
Tämä palvelu voidaan käyttää vieraskäyttäjille. Vieraskäyttäjä, joka käyttää OmniScript-, Integration Procedure- tai UI-tehtävää, voi jatkaa, ja tämä palvelu suoritetaan. Näissä tapauksissa quoteId ja opportunityId on kuitenkin salattu, joten vieraskäyttäjät eivät näe näitä tunnuksia.
Käytä InsQuoteService:createUpdateQuote-palvelua päivittääksesi tarjouksen ja tarjouksen rivikohteet Omnistudio-datakartoituksen sijaan.
Miten se toimii?
-
Palvelu hakee syötettävää JSON-tiedostoa
inputKey.inputKey-noodi sisältää tiedot, joita palvelu tarvitsee tarjouksen luomiseen tai päivittämiseen. Palvelun vaatimiin tietoihin sisältyy:-
opportunityId -
endDate(valinnainen) -
effectiveDate -
productConfigurationDetail-tietueet -
instanceKeyVaaditaan saman määrityksen useiden esiintymien tunnistamiseksi
-
insuredItems-noodiPalvelu odottaa tässä noodissa luettelon vakuutetun kohteen ja vakuutetun osapuolen määrityksistä käyttämällä jokaisen määrityksen
productCodeavaimena. Term__cKäytä päivittääksesi Tarjouksen Term__c-kentän.
-
-
Käyttää syötetyn JSON-tiedoston tietoja tarjouksen luomiseen.
-
Palauttaa tuloksen JSON-tiedostossa olevan tarjouksen tunnuksen.
-
Luo Tarjous-objektin, joka sisältää nämä rivikohteet:
-
Käyttää
productConfigurationDetail-kohdassa määritettyjä juuritason tuotteita juuritason tarjouksen rivikohteiden luomiseen tai päivittämiseen. -
Kun päivität olemassa olevaa tarjousta, siihen sisältyvät tietueet lisätään
productConfigurationDetail, jotka eivät sisälly vielä tarjoukseen, ja tarjoukseen jo sisältyvät tietueet päivitetään. -
Käyttää tarjouksen rivikohteina vakuutetun kohteen määrityksiä, vakuutetun osapuolen määrityksiä ja kattavuuden määrityksiä:
ParentItemId__c = rootItem.Id. -
Ensisijaisen vakuutetun kohteen tarjouksen rivikohteella ja alitason vakuutetun osapuolen tarjouksen riveillä on many:many-suhde. Nämä suhteet tallennetaan Tarjouksen kohteen suhde -objektiin. Jos vakuutetun kohteen tarjouksen rivillä on suhteita useisiin vakuutettujen osapuolten tarjouslinjoihin,
PrimaryChildLineitemId__c-kenttää käytetään määrittämään, 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 -tarjouksen rivikohteessa on
PrimaryChildLineItemId__c, joka osoittaa Joan Smithin tarjouksen rivikohteeseen. Kaikki tarjouksen rivikohteidenParentItemId2__cosoittavatrootItem.Id.alitason vakuutustenSubParentItemId__cosoittavat ensisijaiseen vakuutettuun kohteeseen. Vakuutetun kohteen tarjouksen rivikohteen ja vakuutetun osapuolen tarjouksen rivikohteenItemName__c-kentät tallennetaan tämän kohteeninstanceKey-kenttiin. -
Ensisijaisen vakuutetun kohteen tarjouksen rivikohde sisältää hinnan.
-
-
Jos uusille tarjouksille
createOpportunityontrueeikä mitäänopportunityId-arvoa ole annettu, luo mahdollisuustietue käyttämälläinputKeyOpportunityDetailsJSON -noodia. -
Jos
calculateCommissionontrue, se kutsuuInsCommissionService.processQuoteCommission, joka valmistelee input-arvonInsCommissionService.calculate-palvelulle. Kun laskentapalvelu käsittelee input-arvon, se tallentaa lasketun palkkion arvonQuote.CommissionAmount__c-arvoon.
Kaikilla käyttäjillä, jotka kutsuvat InsQuoteService:createUpdateQuote, täytyy olla Tarjouksen lisätiedot -kenttäjoukon kaikkien kenttien lukuoikeus, jos kenttäjoukko lisätään Tarjouksen rivikohde -objektiin.
Jos Tarjouksen lisätiedot -kenttäjoukkoa ei ole lisätty Tarjouksen rivikohde -objektiin, kaikki kentät, mukaan lukien mukautetut kentät, ovat käyttäjien luettavissa.
Lisämaksut
Tämä palvelu toimii lisämaksujen (verojen ja palkkioiden) kanssa näin:
-
Jos JSON-tietueelle on määritetty
taxesAndFees-kenttä, vastaavaQuotePricingAdjustment__c-tietue säilyy jokaiselletaxesAndFees-luettelon kohteelle. -
Jos JSON-tietueelle on määritetty
taxAmount-kenttä,TaxAmount__c-kentän arvoksi määritetään luodunQuoteLineItemtaxAmount-kentän arvo. -
Jos JSON-tietueelle on määritetty
feeAmount-kenttä,FeeAmount__c-kentän arvoksi määritetään luodunQuoteLineItemfeeAmount-kentän arvo.
Lisäkenttien lisääminen tarjouksen rivikohteisiin
Jos tarvitset lisäkenttiä, jotka tämä palvelu kirjoittaa tarjouksen rivikohteeseen, sinun täytyy kutsua ensin InsProductJSONService:trimOffAttributeCategory -palvelu.
Kulku, jolla tämä toimii OmniScript- tai integraatiotoimenpiteessä, on:
-
Tuotekokoonpanon vaiheet
-
InsProductJSONService:trimOffAttributeCategory-palvelukutsu, jossa valectedValueAsObject on määritetty arvoon true
-
DataRaptor-transformaatio, joka voi sisältää attribuuttien ja Tarjouksen rivikohde -objektin lisäkenttien välisen kartoituksen
-
InsQuoteService:createUpdateQuote-palvelupuhelu
Etäasetukset
Vaihtoehto |
Kuvaus |
|---|---|
|
Jos tämä vaihtoehto on Tämä vaihtoehto tukee ylätason > alitason ja ylätason > alitason > lapsenlapsen vakuutettujen kohteiden suhteita. |
|
Pakollinen. JSON-avain, josta tämä palvelu noutaa tarvittavat tiedot tarjouksen luomiseksi tai päivittämiseksi. Älä käytä %-arvoa tämän avaimen arvon ympärille. Tämä avain edustaa JSON-noodia, ei muuttujaa. Koska tämä avain edustaa JSON-noodia eikä polkua, älä käytä ylätason:Childnode:Childnode-polun merkintää. Avaa oikea datapolku syöttämällä se Lähetä/vastaus-transformaatio -osion Lähetä JSON-polku -kenttään, kun lisäät tämän avain/arvo-parin OmniScript-vaiheeseen. |
|
Kun arvo on Käytä tätä vaihtoehtoa luodaksesi suuria usean esiintymän tarjouksia useiden palvelinkutsujen kautta, joissa instanssien tarjouksen rivikohteiden uusi joukko lisätään kunkin kutsun olemassa olevaan tarjoukseen. |
|
Valinnainen. Tämänhetkisen tarjouksen tunnus, jonka tämä palvelu päivittää uusien tai päivitettyjen tietojen perusteella. Käytetään, kun palvelun täytyy päivittää olemassa oleva tarjous. |
|
Valinnainen. Totuusarvo-merkintä, joka osoittaa, onko tarjous monijakoinen tarjous. Oletusarvo on |
|
Kun arvo on |
|
Kun arvo on |
|
Pakollinen. Tuotemääritykseen liitetyn hintakirjan nimi. Salesforce vaatii, että tarjouksen rivikohteissa käytetyillä tuotteilla on hintakirjamerkintä. |
|
Kun arvo on Kun arvo on Huomautus
Jos määrität tämän vaihtoehdon arvoksi false, sinun täytyy lisätä myös rivi
|
|
Kun arvo on |
|
Kun arvo on |
|
Kun arvo on Kun arvo on Huomautus
Jos määrität tämän vaihtoehdon arvoksi true, sinun täytyy myös syöttää vähintään yksi tuottajan tai tuotanto-koodin arvoista: |
|
Valinnainen. Käsittelyn tuottajan tunnus, eli tuottaja, jota käytettiin |
|
Valinnainen. Tuotantokoodin tunnus. |
|
Valinnainen. InsCommissionService.calculate-palveluun välitetty tuotantokoodin nimi. Jos et syötä tietoja |
runEligibilityRequiredDefaultSelectedRules
|
Valinnainen. Oletusarvot ovat Määrittää, suoritetaanko Eligibility- ja Default Selected -säännöt. |
runRelationshipRules
|
Valinnainen. Oletusarvot ovat Määrittää, suoritetaanko suhdesäännöt. |
runSelectedValivationRules
|
Valinnainen. Oletusarvot ovat Määrittää, suoritetaanko Valitse vahvistussäännöt. |
Syötetty JSON
Tämä palvelu etsii inputKey arvon. Siirry tuotemäärityksen API-välilehteen löytääksesi tämän palvelun tarvitsemasi syötetyn JSON-tiedoston.
Tässä esimerkissä 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"
}inputKey sisäinen JSON sisältää useita avain/arvo-paria, joita palvelu tarvitsee tarjouksen luomiseen tai päivittämiseen.
Avain |
Arvo |
|---|---|
|
Luodun mahdollisuuden tunnus. |
|
Luotu tilin tunnus. |
|
Valinnainen. Päivämäärä, jolloin käytäntö vanhenee. |
|
Päivämäärä, jolloin käytäntö astuu voimaan. |
|
Tietueiden taulukko, joka noudattaa tuotteen JSON-rakennemallia. Juuritason tarjouksen rivikohde luodaan tai sitä muokataan jokaiselle taulukon tuotetietueelle. Lisätietoja tuotteen rakenteesta ja sisällöstä on kohdassa Product JSON Structure Model. |
|
Valinnainen.
|
|
Avain/arvo-parit vakuutetuista kohteista, joita palvelu käyttää luodakseen tarjouksen rivikohteita vakuutetuille kohteille. |
Muotoile insuredItems-noodi tietueiden taulukkolla riippumatta siitä, sisältääkö tarjouksesi yhden tai useamman vakuutetun kohteen esiintymän.
"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": ""
}]
}Voit käyttää tässä esimerkissä olevaa muotoa yksittäiselle vakuutetun kohteen esiintymälle, joka on suoraan tuotehierarkian juurituotteen alla. Nämä insuredItems-tietueet sisältävät vakuutetut kohteet ja käyttäjän kullekin valitsemat arvot. Tuemme tätä syötettyä JSON-tiedostoa, mutta se on aiemmasta julkaisusta, emmekä suosittele sitä.
"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"Jos uusille tarjouksille createOpportunity on true eikä mitään opportunityId-arvoa ole annettu, palvelu luo uuden mahdollisuustietueen käyttämällä inputKey OpportunityDetails JSON -noodia. Käytä syöttömuotoa OpportunityDetails:FieldName. Alla on esimerkki OpportunityDetails-noodista.
"OpportunityDetails": {
"AccountId": "0015f00000DSFgqAAH",
"Name": "Auto Quote: Rachel Adams (2022-01-03)",
"StageName": "Qualification",
"CloseDate": "2022-01-03"
},preTransformBundle Alternative
Voit myös määrittää DataRaptor-transformaation, joka kartoittaa syötettyyn JSON-tiedostoon välitetyt tiedot palvelun tarvitsemaan muotoon. Tämän DataRaptorin output JSON on tuotenäkymän API-välilehdessä määritetty userInputs JSON. Määritä DataRaptor-arvon nimeksi preTransformBundle-vaihtoehto salliaksesi palvelun käyttää DataRaptoria.
Tulos-JSON
Palvelu palauttaa luodun tarjouksen tunnuksen. Se palauttaa myös tarjouksen lisätiedot, jos returnQuote-arvo on true, ja mahdollisuuden tunnuksen, jos createOpportunity on true eikä mitään opportunityId-arvoa ole annettu.
{
"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"
}