Loading
Arbeta med data och listor

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.

Anteckning
Anteckning

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.

Anteckning
Anteckning När Omnistudios standardruntime är inaktiverad och RollbackIPChanges är inställt till sant kan loopblock i en integreringsprocess resultera i att loopar körs inom andra loopar. För att lösa detta, se till att du har en integreringsprocess som innehåller en loop som åberopar en andra integreringsprocess med en inre loop, RollbackIPChanges är inställt till falskt eller Omnistudio standardruntime är aktiverat.
Anteckning
Anteckning När du aktiverar inställningen Inkludera alla åtgärder som svar för en integreringsprocess kan ett loopblock i integreringsprocessen inte bearbeta en matris av poster. Detta inträffar eftersom 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:

  1. Skapa ett extraherat datamappningsextrakt som väljer poster med Contact.LastName LIKE Name Filter.
  2. Skapa en extraheringsåtgärd för datamappning i loopblocket med names:Name Datakälla och Name Filtervä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.

I kontaktlistan DrExtractAddresses:contact är sökvägen firstName i matchningsgrupp 1. I kontaktlistan DrExtractBirthdates:contact är sökvägen FN i matchningsgrupp 1. I kontaktlistan DrExtractAddresses:contact är sökvägen lastName i matchningsgrupp 2. I kontaktlistan DrExtractBirthdates: är sökvägen LN i matchningsgrupp 2.
  • 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.
 
Laddar
Salesforce Help | Article