Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article explique comment utiliser Microsoft Flow pour copier efficacement des éléments entre deux sources de données.
Par exemple, vous pouvez créer un flux pour copier tous les éléments d’une liste SharePoint d’un site vers un deuxième site SharePoint. Le processus de flux fonctionne également entre une liste SharePoint et une table SQL ou l’un des plus de 100 services pris en charge par Flow.
S’applique à : Power Automate
Numéro de base de connaissances d’origine : 4467880
Plus d’informations
Vous devez remplir toutes les colonnes requises. Il n’est pas nécessaire que les noms de toutes les colonnes de vos deux sources de données soient identiques, mais il doit y avoir au moins une colonne (de votre choix) qui sera en mesure d’identifier de manière unique les éléments entre les deux sources de données.
Dans l’exemple suivant, nous partons du principe que la colonne Title est la même dans les deux sources.
Configurer le déclencheur
La première étape consiste à configurer votre déclencheur dans la liste SharePoint source. Étant donné que vous souhaitez capturer toutes les modifications d’élément (pas seulement les nouveaux éléments), vous devez sélectionner SharePoint - Lorsqu’un élément existant est modifié déclencheur.
Note
Bien que le nom du déclencheur mentionne uniquement les modifications apportées aux éléments existants, le déclencheur réagit également aux nouveaux éléments ajoutés à la liste.
Rechercher l’élément dans la destination
Recherchez l’élément dans la liste de destination pour obtenir son ID et le mettre à jour. Bien que Flow ait une action de filtre , vous ne devez pas utiliser cette action dans ce scénario, car cette action télécharge tous les éléments de liste à partir de SharePoint. Le processus sera lent, utilisera votre quota et ne fonctionnera pas si la liste comporte plus de 256 éléments.
Au lieu de cela, vous devez utiliser le champ Filtrer la requête dans l’étape Obtenir des éléments dans SharePoint. Ajoutez l’action Obtenir les éléments , puis sélectionnez Afficher les options avancées pour afficher tous les champs. Si vous correspondez aux titres des lignes de la liste source, tapez ce qui suit dans le champ Filtrer la requête (assurez-vous d’inclure les guillemets simples) :
Titre eq '[select the title from dynamic content]'
Vous n’avez pas nécessairement besoin d’avoir un mappage de colonne 1:1 strict entre les deux sources de données. Par exemple, si vous avez des colonnes Prénom et Nom dans la liste source et une colonne Nom complet dans la liste de destination, vous pouvez taper FullName eq '[Prénom] [Nom]' dans le champ Nom de la liste.
Ajouter une condition pour vérifier si l’élément existe
Lorsque vous obtenez les éléments de la liste de destination, l’une des situations suivantes est vraie :
- L’élément n’existe pas encore dans la destination. Vous devez donc le créer.
- L’élément existe déjà dans la destination et vous devez le mettre à jour.
Utilisez une condition pour déterminer la situation réelle. Pour ce faire, procédez comme suit :
Sélectionnez Nouvelle étape, puis Ajouter une condition.
Sous la zone de texte de gauche de la carte Condition , sélectionnez Ajouter du contenu dynamique.
Note
La collection qui contient la liste de tous les éléments retournés par get est la valeur nommée. Veillez à sélectionner la valeur à partir d’éléments Get (et non à partir du déclencheur si un élément existant est modifié).
Dans la carte Condition , sélectionnez la valeur égale à celle de la zone Relation , puis tapez 0 dans la zone Valeur .
Ajoutez la fonction de longueur en mode Avancé. Cela est important, car le contenu de valeur dynamique retourne la liste des éléments. Vous devez déterminer si la longueur de la liste (et non la valeur) est égale à 0 (zéro).
En mode Avancé, tapez length() autour du corps('Get_items') ?[' expression value'] . Votre condition apparaît comme suit.
Créer l’élément
Dans la branche IF YES, vous allez ajouter une étape d’élément SharePoint Create.
Sélectionnez le site et la liste que vous avez utilisés dans les étapes Obtenir les éléments . Dans Créer un élément, vous devez remplir chaque colonne à l’aide de champs du déclencheur uniquement. Vous ne devez pas utiliser de données des étapes Obtenir des éléments , car elles proviennent de la liste de destination, et non de la liste source. Obtenir les éléments apparaît au-dessus du déclencheur. Assurez-vous que vous faites défiler jusqu’au bas pour le trouver.
Mettre à jour l’élément
Dans la branche IF NO, vous allez ajouter une étape d’élément de mise à jour SharePoint.
Sélectionnez le site et la liste. Sélectionnez ensuite l’ID retourné à partir des étapes Obtenir les éléments .
Lorsque vous ajoutez l’ID, une application à chaque conteneur est automatiquement ajoutée autour de l’étape d’élément de mise à jour. Ce comportement est normal. Si la requête que vous avez utilisée à l’étape Obtenir les éléments est exacte, le conteneur met à jour uniquement l’élément que vous souhaitez copier. Une fois les champs restants terminés (et assurez-vous que vous utilisez les sorties du déclencheur, et non à partir de l’appel d’éléments Get), votre bloc de condition doit ressembler à la capture d’écran suivante.
Limitations du processus de flux
Le processus de flux permet aux modifications apportées dans la première liste d’être reflétées dans la deuxième liste.
Les limitations suivantes s’appliquent au processus :
- Si les éléments sont supprimés de la première liste, les éléments ne seront pas supprimés de la deuxième liste. Cela est dû au fait qu’il n’existe aucun déclencheur pour quand un élément est supprimé. Dans ce cas, il n’existe aucun moyen d’avertir un flux lorsqu’une suppression se produit. Au lieu de cela, nous vous recommandons d’ajouter une colonne pour indiquer que l’élément n’est plus nécessaire ou pertinent au lieu de supprimer des éléments de listes SharePoint (ou tables SQL ou d’autres sources de données). Cette colonne se synchronise entre les deux listes.
- Si des modifications sont apportées au champ que vous utilisez pour synchroniser les éléments entre les deux listes, un nouvel élément est créé dans la liste de destination. Par exemple, si vous utilisez la colonne Nom d’une personne pour copier entre les deux listes et que la colonne Nom de cette personne change, le flux considère que cette modification est un nouvel élément, et non une mise à jour d’un élément existant. Si vous pouvez garantir que la colonne Name ne changera jamais, vous ne serez pas affecté par cette limitation. Toutefois, si la colonne Name change, vous devez ajouter à la liste de destination une colonne qui stocke l’ID de l’élément dans la première liste. Dans ce cas, au lieu d’utiliser Name pour rechercher des éléments, vous pouvez utiliser l’ID. (L’ID est garanti pour être toujours unique).
- Ce processus n’est pas une synchronisation bidirectionnelle. Cela signifie que si les éléments sont mis à jour dans la liste de destination, les modifications ne seront pas reflétées dans la liste source. Vous ne devez pas essayer de configurer la synchronisation bidirectionnelle dans le flux, car cela crée une boucle infinie sans modifications supplémentaires. Par exemple, la liste A met à jour la liste B, la liste B met à jour la liste A, la liste A met à jour à nouveau la liste B, et ainsi de suite.