Inledning

I den här artikeln beskrivs hur du använder Microsoft Flow för att kopiera objekt mellan två datakällor effektivt.

Du kan till exempel skapa ett flöde för att kopiera alla objekt från en lista SharePoint en webbplats till en andra SharePoint webbplats. Flödesprocessen fungerar också mellan en lista SharePoint en tabell och en SQL eller någon av de fler än 100 tjänster som stöds av Flow.

Mer information

Du måste fylla i alla kolumner som krävs. Det finns inget krav att namnen på alla kolumner i dina två datakällor är desamma, men det måste finnas minst en kolumn (du väljer) som kan identifiera objekt mellan de två datakällorna unikt.

I följande exempel förutsätter vi att kolumnen Rubrik är densamma i båda källorna. 

Konfigurera utlösaren

Det första steget är att konfigurera din utlösare för SharePoint listan. Eftersom du vill spara alla objektändringar (inte bara nya objekt) bör du välja SharePoint – När ett befintligt objekt ändras

SharePoint – När ett befintligt objekt ändras, utlösare med webbplatsadress och listnamn

Obs! Även om utlösarnamnet bara nämner ändringar i befintliga objekt reagerar den även på nya objekt som läggs till i listan.

Hitta objektet i målet

Sök efter objektet i mållistan för att få dess ID och uppdatera det. Även Flow har en Filter-åtgärd bör du inte använda den åtgärden i det här scenariot eftersom den åtgärden laddar ned alla listobjekt från SharePoint. Processen går långsamt, tar upp kvoten och fungerar inte om listan innehåller fler än 256 objekt.

I stället bör du använda fältet Filterfråga i steget Hämta objekt i SharePoint. Lägg till åtgärden Hämta objekt och välj sedan Visa avancerade alternativ så att alla fält visas. Om du matchar rubrikerna för raderna i källlistan skriver du följande i fältet Filterfråga (se till att du tar med enkla citattecken):

Rubrik-ekv '[välj rubriken från dynamiskt innehåll]'

Skriv rubriken i fältet Filterfråga i steget Hämta objekt

Du behöver inte nödvändigtvis ha en endast 1:1-kolumn-mappning mellan de två datakällorna. Om du till exempel har kolumnerna Förnamn och Efternamn i källlistan och en kolumn med fullständigt namn i mållistan kan du skriva FullständigtNamn-eq '[Förnamn] [Efternamn]' i fältet Listnamn

Lägga till ett villkor för att kontrollera om objektet finns

När du får objekten från mållistan stämmer något av följande:

  • Objektet finns ännu inte i målet, så du måste skapa det.

  • Objektet finns redan i målet och du måste uppdatera det.

Använd ett villkor för att avgöra den faktiska situationen. Gör så här: 

  1. Välj Nytt steg och välj sedan Lägg till ett villkor.

  2. Under den vänstra textrutan på villkorskortet väljer du Lägg till dynamiskt innehåll.

    Obs! Samlingen som innehåller listan över alla objekt som returneras av Hämta objekt hetervärde. Se till att du väljer värdet från Hämta objekt (inte från utlösaren om ett befintligt objekt ändras).
     
    En värdesamling visas i Hämta objekt när du lägger till ett villkor

  3. villkorskortet väljer du är lika med i rutan Relation och skriver sedan 0 i rutan Värde.

  4. Lägg till längdfunktionen i avancerat läge. Detta är viktigt eftersom det dynamiska värdet i innehållet returnerar listan med objekt. Du måste avgöra om listans längd (inte värdet) är lika med 0 (noll).

  5. I avancerat läge skriver du length()runt brödtexten('Get_items')?[' värde'] uttryck. Villkoret visas på följande sätt. 

    Villkorsrutan visar längden på listan är lika med 0

Skapa objektet

I grenen OM JA lägger du till ett SharePoint i Skapa objekt.

Välj den webbplats och lista som du använde i stegen "Hämta objekt". I Skapa objekt ska du fylla i varje kolumn med hjälp av fält från utlösaren. Du bör inte använda data från stegen "Hämta objekt" eftersom det kommer från mållistan, inte källlistan. Hämta objekt visas ovanför utlösaren. Se till att du bläddrar längst ned för att hitta den.


Uppdatera objektet

I grenen OM NEJ lägger du till SharePoint objektets steg

Markera webbplatsen och listan. Välj sedan det ID som returneras från Hämta objektsteg

ID:t visas i Hämta objekt vid uppdatering av objekt

När du lägger till ID:t läggs en Använd på varje behållare automatiskt till runt steget Uppdatera objekt. Detta är normalt. Om frågan som du använde i steget Hämta objekt är korrekt uppdaterar behållaren bara det objekt som du vill kopiera. När du har slutfört de återstående fälten (och kontrollerar att du använder utdata från utlösaren, inte från samtal med Hämta objekt), bör villkorsblocket se ut som på följande skärmbild. 

"Om Ja" och "Om Nej" förgrenar sig med villkoret


Begränsningar i flödesprocessen

Med flödesprocessen kan ändringar som görs i den första listan återspeglas i den andra listan.

Följande begränsningar gäller för processen:

  • Om objekt tas bort från den första listan tas de inte bort från den andra listan. Det beror på att det inte finns någon utlösare för När ett objekt tas bort. I det här fallet går det inte att meddela flöde när borttagningen sker. I stället för att ta bort objekt från SharePoint-listor (eller SQL-tabeller eller någon annan datakälla) rekommenderar vi att du lägger till en kolumn för att visa att objektet inte längre behövs eller är relevant. Den kolumnen synkroniseras mellan de två listorna.

  • Om ändringar görs i det fält som du använder för att hålla objekt synkroniserade mellan de två listorna skapas ett nytt objekt i mållistan. Om du till exempel använder en persons Namn-kolumn för att kopiera mellan de två listorna och den personens Namn-kolumn ändras, anses ändringen vara ett nytt objekt, inte en uppdatering av ett befintligt objekt. Om du kan garantera att kolumnen Namn aldrig ändras påverkas du inte av den här begränsningen. Men om namnkolumnen ändras måste du lägga till en kolumn i mållistan där objektets ID lagras i den första listan. I det här fallet kan du använda ID istället för att använda Namn för att hitta objekt. (Det är garanterad att ID:t alltid är unikt).

  • Den här processen är inte en tvåvägssynkronisering. Det innebär att om objekten uppdateras i mållistan återspeglas inte ändringarna i källlistan. Du bör inte försöka konfigurera tvåvägssynkronisering i flödet eftersom det skapar en oändlig slinga utan ytterligare ändringar. Exempelvis kommer lista A uppdatera lista B, lista B kommer att uppdatera lista A, lista A kommer att uppdatera lista B igen och så vidare.

Behöver du mer hjälp?

Utöka dina kunskaper
Utforska utbildning
Få nya funktioner först
Anslut till Microsoft Insiders

Hade du nytta av den här informationen?

Hur nöjd är du med språkkvaliteten?
Vad påverkade din upplevelse?

Tack för din feedback!

×