Flow gebruiken om items tussen twee gegevensbronnen te kopiëren
In dit artikel wordt beschreven hoe u Microsoft Flow gebruikt om items efficiënt tussen twee gegevensbronnen te kopiëren.
U kunt bijvoorbeeld een stroom maken om alle items van een SharePoint-lijst op de ene site naar een tweede SharePoint-site te kopiëren. Het stroomproces werkt ook tussen een SharePoint-lijst en een SQL-tabel of een van de meer dan 100 services die door Flow worden ondersteund.
Van toepassing op: Power Automate
Origineel KB-nummer: 4467880
Meer informatie
U moet alle vereiste kolommen invullen. Het is niet vereist dat de namen van alle kolommen in uw twee gegevensbronnen hetzelfde zijn, maar er moet ten minste één kolom (naar keuze) zijn waarmee items tussen de twee gegevensbronnen uniek kunnen worden geïdentificeerd.
In het volgende voorbeeld wordt ervan uitgegaan dat de kolom Titel in beide bronnen hetzelfde is.
De trigger instellen
De eerste stap is het instellen van uw trigger in de SharePoint-bronlijst. Omdat u alle itemwijzigingen wilt vastleggen (niet alleen nieuwe items), moet u de trigger SharePoint - Wanneer een bestaand item wordt gewijzigd selecteren.
Opmerking
Hoewel de triggernaam alleen wijzigingen in bestaande items vermeldt, reageert de trigger ook op nieuwe items die aan de lijst worden toegevoegd.
Het item in de bestemming zoeken
Zoek het item in de doellijst om de id op te halen en werk het bij. Hoewel Flow een filteractie heeft, moet u deze actie niet gebruiken in dit scenario, omdat met deze actie alle lijstitems uit SharePoint worden gedownload. Het proces is traag, gebruikt uw quotum en werkt niet als de lijst meer dan 256 items bevat.
Gebruik in plaats daarvan het veld Filterquery in de stap Items ophalen in SharePoint. Voeg de actie Items ophalen toe en selecteer geavanceerde opties weergeven om alle velden weer te geven. Als u overeenkomt met de titels van de rijen van de bronlijst, typt u het volgende in het veld Filterquery (zorg ervoor dat u de enkele aanhalingstekens opneemt):
Title eq '[select the title from dynamic content]'
U hoeft niet per se een strikte kolomtoewijzing van 1:1 te hebben tussen de twee gegevensbronnen. Als u bijvoorbeeld de kolommen Voornaam en Achternaam in de bronlijst hebt en de kolom Volledige naam in de doellijst, kunt u FullName eq [Voornaam] [Achternaam] typen in het veld Lijstnaam .
Een voorwaarde toevoegen om te controleren of het item bestaat
Wanneer u de items uit de doellijst opneemt, is een van de volgende situaties waar:
- Het item bestaat nog niet in de bestemming, dus u moet het maken.
- Het item bestaat al in de bestemming en u moet het bijwerken.
Gebruik een voorwaarde om de werkelijke situatie te bepalen. Ga hiervoor als volgt te werk:
Selecteer Nieuwe stap en selecteer vervolgens Een voorwaarde toevoegen.
Selecteer dynamische inhoud toevoegen onder het linker tekstvak op de kaart Voorwaarde.
Opmerking
De verzameling die de lijst bevat met alle items die worden geretourneerd door Items ophalen , heeft een naamwaarde. Zorg ervoor dat u de waarde selecteert in Items ophalen (niet vanuit de trigger als een bestaand item wordt gewijzigd).
Selecteer op de kaart Voorwaardede optie is gelijk aan in het vak Relatie en typ 0 in het vak Waarde .
Voeg de lengtefunctie toe in de geavanceerde modus. Dit is belangrijk omdat de inhoud van de dynamische waarde de lijst met items retourneert. U moet bepalen of de lengte van de lijst (niet de waarde) gelijk is aan 0 (nul).
Typ in de geavanceerde modus lengte() rond de hoofdtekst('Get_items')?[' waarde'] expressie. Uw voorwaarde wordt als volgt weergegeven.
Het item maken
In de vertakking INDIEN JA voegt u een sharePoint-stap Item maken toe.
Selecteer de site en lijst die u hebt gebruikt in de stappen items ophalen . In Item maken moet u elke kolom vullen met behulp van alleen velden uit de trigger. Gebruik geen gegevens uit de stappen Items ophalen , omdat deze afkomstig zijn uit de doellijst, niet uit de bronlijst. Items ophalen wordt weergegeven boven de trigger. Zorg ervoor dat u naar beneden schuift om deze te vinden.
Het item bijwerken
In de vertakking ALS ER GEEN is, voegt u een sharePoint Update-itemstap toe.
Selecteer de site en lijst. Selecteer vervolgens de id die wordt geretourneerd in de stappen Items ophalen .
Wanneer u de id toevoegt, wordt er automatisch een toepassen op elke container toegevoegd rond de stap Item bijwerken . Dit is te verwachten gedrag. Als de query die u hebt gebruikt in de stap Items ophalen juist is, werkt de container alleen het item bij dat u wilt kopiëren. Nadat u de resterende velden hebt voltooid (en ervoor hebt gezorgd dat u de uitvoer van de trigger gebruikt, niet van de aanroep Items ophalen ), moet het voorwaardeblok eruitzien als de volgende schermopname.
Beperkingen van het stroomproces
Met het stroomproces kunnen wijzigingen die zijn aangebracht in de eerste lijst, worden doorgevoerd in de tweede lijst.
De volgende beperkingen zijn van toepassing op het proces:
- Als items uit de eerste lijst worden verwijderd, worden de items niet uit de tweede lijst verwijderd. Dit komt doordat er geen trigger is voor Wanneer een item wordt verwijderd. In dit geval kan een stroom niet worden gewaarschuwd wanneer er een verwijdering plaatsvindt. In plaats daarvan raden we u aan een kolom toe te voegen om aan te geven dat het item niet meer nodig of relevant is in plaats van items uit SharePoint-lijsten (of SQL-tabellen of een andere gegevensbron) te verwijderen. Deze kolom wordt gesynchroniseerd tussen de twee lijsten.
- Als er wijzigingen worden aangebracht in het veld dat u gebruikt om items gesynchroniseerd te houden tussen de twee lijsten, wordt er een nieuw item gemaakt in de doellijst. Als u bijvoorbeeld de kolom Naam van een persoon gebruikt om tussen de twee lijsten te kopiëren en de kolom Naam van die persoon verandert, beschouwt de stroom die wijziging als een nieuw item, niet als een update van een bestaand item. Als u kunt garanderen dat de kolom Naam nooit wordt gewijzigd, wordt deze beperking niet beïnvloed. Als de kolom Naam echter verandert, moet u aan de doellijst een kolom toevoegen waarin de id van het item in de eerste lijst wordt opgeslagen. In dit geval kunt u in plaats van Naam te gebruiken om items te zoeken, id gebruiken. (De id is gegarandeerd altijd uniek).
- Dit proces is geen synchronisatie in twee richtingen. Dit betekent dat als items worden bijgewerkt in de doellijst, de wijzigingen niet worden doorgevoerd in de bronlijst. U moet niet proberen om synchronisatie in twee richtingen in de stroom in te stellen, omdat hierdoor een oneindige lus wordt gemaakt zonder extra wijzigingen. Lijst A werkt bijvoorbeeld lijst B bij, lijst B werkt lijst A bij, lijst A werkt lijst B opnieuw bij, enzovoort.