Du är här:
Arbeta med data och listor
Använd integreringsprocesser för att läsa, skriva och transformera komplexa, hierarkiska data från Salesforce-objekt och andra källor. Använd åtgärder för att arbeta med data och block för att bearbeta dem.
Använd en extraheringsåtgärd för datamappning med ett extraheringsextrakt för datamappning i Omnistudio för att komma åt komplexa, hierarkiska data som du kan använda med andra åtgärder. Om du till exempel skapar ett Datamappningsextrakt för objektet Kontakt där AccountId = id kan du sedan mappa fält i objektet till utdatafält (till exempel contact:FirstName till contact:firstName). För att komma åt resultaten, skapa en extraheringsåtgärd för datamappning och specificera namnet på datamappningen. Du kan sedan använda den extraherade listan i ett Loop-block eller ett Listblock och adressera den med namnet på Extraheringsåtgärd för datamappning och utdataobjektet (till exempel DMExtractAddresses:contact).
Upprepa över en lista genom att använda ett loopblock
Ett Loop Block upprepas över objekten i en lista, vilket gör att åtgärderna i den kan upprepas för varje objekt. I parametern Looplista placerar du en JSON-nod som innehåller en lista. Loopblocket bearbetar ett objekt i listan åt gången. Anta till exempel att listan ser ut så här:
{
"Products": {
"Ids": [
{
"Id": 1
},
{
"Id": 2
}
]
}
}
Varje upprepning av Loop Block får ett enskilt element, kapslat i listans struktur:
{
"Products": {
"Ids": {
"Id": 1
}
}
} Åtgärder inom Loop Block har åtkomst till ett element åt gången.
För ett Loop Block som anropar en Omnistudio Data Mapper-transformation försämrar en lista med mer än 1000 objekt prestandan. Du kan använda en personsökningsstrategi för att dela upp långa listor.
stepResultFinal överskrider storleken 1 och resulterar i ett fel:Cannot Write Array to Root
Du kan använda ett Loop Block för att söka efter flera poster i ett Salesforce-objekt. Låt säga att du ville söka efter Kontakter med namnet "Miller" eller Torres. Du kan placera en åtgärd för extrahering av datamappning i ett loopblock och sedan skicka in en lista över namn i indataparametrarna.
Överväg följande JSON:
{
"names": [
{
"Name": "Miller"
},
{
"Name": "Torres"
}
]
}För att söka efter dessa namn i ett Loop Block:
- Skapa ett extraherat datamappningsextrakt som väljer poster med
Contact.LastName LIKE NameFilter. - Skapa en extraheringsåtgärd för datamappning i loopblocket med
names:NameDatakälla ochNameFiltervärde. Ange Datamappningsnamnet till namnet på Datamappningsextraktet.
När Loop Block körs använder Extrahering av datamappning varje Name från listan names i indata-JSON för att söka i Contact.LastName.
Koppla listor genom att använda en liståtgärd
Liståtgärden kopplar flera listor genom att matcha värden för specificerade JSON-noder för listobjekt. En grundläggande koppling matchar nodnamn exakt. En avancerad koppling matchar noder som har olika namn eller finns på olika nivåer i de inkommande listorna.
Indata till en liståtgärd måste båda vara i listformat även om listan endast innehåller ett objekt. Extraheringar av Omnistudio Data Mapper som returnerar en lista med ett objekt konverterar den ofta till ett enskilt objekt. För att konvertera ett enskilt objekt tillbaka till en lista kan du använda det första exemplet i Exempel på transformation i Omnistudio Data Mapper.
För fler alternativ för listbearbetning, se Listinmatning för Omnistudio Data Mappers och funktionerna AVG, FILTER, IF, LIST, LISTMERGE, LISTMERGEPRIMARY, LISTSIZE, MAX, MIN, SORTBY och SUM i funktionsreferensen.
För att matcha noder som har olika namn eller finns på olika nivåer i inkommande listor, klicka på Avancerad koppling och specificera inställningar för noderna som ska matchas, enligt följande:
- Listnyckel: Ange namnet på JSON-listnoden där noden som ska matchas finns.
- Matchande väg: Ange sökvägen i listan till noden som ska matchas.
- Matchande grupp: Specificera samma nummer för alla noder som du vill matcha.
Till exempel visar denna figur hur man matchar för- och efternamn från två inkommande listor där noderna har olika namn.
- Sammanlänka listobjekt
Detta exempel på integreringsprocess sammanlänkar värden från en matris till en enskild kommaavgränsad sträng genom att använda en åtgärd för att ange värden inuti ett loopblock och sedan trimma och returnera utdata. - Skapa kontakter genom att använda ett loopblock
Använd ett Loop Block för att upprepa en lista som tillhandahålls i indata-JSON och lägg till ett kontaktobjekt för varje element i listan. - Ange värden i en lista genom att använda villkor
I detta exempel lägger en integreringsprocess till ett dynamiskt värde till varje objekt i en lista med hjälp av villkor. Även om de är dynamiska i listan är värdena hårdkodade i integreringsprocessen. Använd denna metod om du har en specifik uppsättning möjliga värden. - Lägg till värden i listobjekt genom att använda VALUELOOKUP
I detta exempel lägger en integreringsprocess till ett dynamiskt värde till varje objekt i en lista med hjälp av funktionen VALUELOOKUP. Värdena är inte hårdkodade i integreringsprocessen. Använd denna metod om du inte känner till uppsättningen möjliga värden i indata. - Matcha poster med hjälp av avancerad koppling
Avancerad koppling matchar noder med olika namn eller på olika nivåer i inkommande listor. Till exempel, istället för att använda en primär nyckel som finns i båda listorna kan du matcha poster baserat på för- och efternamn.
