Exercice : créer un flux qui utilise SQL

Effectué

Cette unité montre comment créer un flux qui surveille une source afin de détecter les éléments nouveaux ou modifiés, et qui copie ensuite ces modifications vers une destination. Vous pouvez créer un flux de ce type si vos utilisateurs saisissent des données à un emplacement, mais que votre équipe a besoin de ces données dans un autre format ou à un autre emplacement.

Dans cette unité, vous allez copier des données d’une liste dans Listes Microsoft, la source, vers une table Microsoft Azure SQL Database, la destination.

Gardez à l’esprit que vous pouvez copier des données sur des centaines de services pris en charge par Power Automate.

Important

Les modifications que vous apportez dans la destination ne sont pas recopiées dans la source, car la synchronisation bidirectionnelle n’est pas prise en charge. Si vous essayez de configurer la synchronisation bidirectionnelle, vous créerez une boucle infinie dans laquelle les modifications seront échangées indéfiniment entre la source et la destination.

Conditions préalables

  • Accès à une source de données et à une destination. Cette unité ne présente pas les étapes nécessaires pour créer la source et la destination.

  • Accès à Power Automate.

  • Compréhension de base du stockage de vos données.

  • Connaissance des principes fondamentaux de la création de flux. Pour cette unité, nous partons du principe que vous savez comment effectuer ces actions.

Conseil

Il n’est pas obligatoire que les noms de colonnes dans la source et la destination correspondent (sauf si le type de données de la colonne est Choix), mais vous devez fournir des données pour toutes les colonnes requises quand vous insérez ou mettez à jour un élément. Power Automate identifie les champs obligatoires pour vous.

Aperçu rapide des étapes

Si vous connaissez bien Power Automate, copiez des données d’une source de données vers une autre à l’aide de ces étapes rapides.

  1. Identifiez la source à surveiller et la destination vers laquelle copier les données modifiées. Vérifiez que vous avez accès à la source et à la destination.

  2. Identifiez au moins une colonne qui identifie de façon unique les éléments dans la source et la destination. Dans l’exemple qui suit, nous utilisons la colonne Titre, mais vous pouvez utiliser toute colonne.

  3. Configurez un déclencheur qui surveille les modifications apportées à la source.

  4. Effectuez une recherche dans la destination pour vérifier l’existence de l’élément modifié.

  5. Utilisez une condition comme celle-ci :

    • Si l’élément nouveau ou modifié n’existe pas dans la destination, créez-le.

    • Si l’élément nouveau ou modifié existe dans la destination, mettez-le à jour.

  6. Déclenchez votre flux et vérifiez que les éléments nouveaux ou modifiés sont copiés de la source vers la destination.

Remarque

Si vous n’avez encore jamais créé de connexion à SharePoint ou SQL Database, suivez les instructions fournies quand vous êtes invité à vous connecter.

Voici les étapes détaillées pour créer le flux :

Surveiller les modifications apportées à la source

Premièrement, Copilot nous aide à créer la structure du flux.

  1. Lancez Power Automate et connectez-vous à l’aide de votre compte professionnel.

  2. Au milieu de la page d’accueil, tapez Lorsqu’un élément est créé ou modifié dans SharePoint, ajouter une action SQL Obtenir des lignes. Ajouter une condition et si l’élément existe, mettre à jour l’élément dans SQL, sinon créer un élément dans SQL. Appuyez ensuite sur Générer.

    Capture d’écran de la page d’accueil Power Automate et de la saisie de la description pour Copilot.

  3. Copilot s’efforce de créer un flux d’actions basé sur la description et permet d’examiner les actions générées. Dans cet exemple, vous pouvez voir les éléments suivants :

    1. La zone de description dans laquelle nous avons saisi notre invite. Vous pouvez continuer à affiner les actions du flux ici.

    2. Copilot a ajouté un déclencheur Lorsqu’un élément est créé ou modifié (SharePoint).

    3. Copilot a ajouté une action (SQL) Obtenir des lignes, une Condition et une action (SQL) Mettre à jour la ligne dans la branche True de la condition et une action (SQL) Insérer une ligne dans la branche False de la condition.

    4. Le bouton Suivant vous redirige vers le concepteur de flux.

    Capture d’écran de l’examen de l’automatisation que Copilot a générée.

  4. Une fois satisfait du flux, cliquez sur Suivant pour configurer les actions.

  5. Si vous n’avez pas encore créé de connexion à SQL Database ou SharePoint, Copilot vous demande d’en créer une. Sinon, vous voyez des coches vertes en regard de chaque connexion.

    Capture d’écran de Copilot affichant les services connectés pour ce flux.

  6. Une fois les connexions établies, cliquez sur Créer un flux.

  7. Sélectionnez le déclencheur Lorsqu’un élément est créé ou modifié pour ouvrir le volet des propriétés de l’action à gauche.

    Capture d’écran du déclencheur et de ses paramètres.

  8. Saisissez l’adresse du site, puis sélectionnez le nom de la liste dans Listes Microsoft dont votre flux surveille les éléments nouveaux ou mis à jour.

    Capture d’écran du déclencheur Lorsqu’un élément est créé ou modifié avec le champ Adresse du site défini sur une adresse de site d’équipe SharePoint et le champ Nom de la liste défini sur Liste de clients.

Rechercher la destination d’un élément existant

Ensuite, nous configurons l’action (SQL) Obtenir des lignes pour vérifier si un élément existe déjà dans la base de données SQL.

  1. Sélectionnez l’action Obtenir des lignes pour ouvrir le volet de ses propriétés à gauche.

  2. Définissez les champs Nom du serveur, Nom de la base de données et Nom de la table pour la table SQL que vous souhaitez surveiller.

    Capture d’écran de la configuration des champs Nom du serveur, Nom de la base de données et Nom de la table pour l’action SQL Obtenir des lignes.

  3. Cliquez sur Paramètres avancés et sélectionnez Requête de filtre.

    Capture d’écran de la configuration du paramètre avancé Requête de filtre pour l’action SQL Obtenir des lignes.

  4. Dans le champ Requête de filtre, saisissez CustomerID eq. Sélectionnez ensuite le jeton CustomerID dans la liste Contenu dynamique.

    Capture d’écran de la configuration du paramètre avancé Requête de filtre pour l’ID client SQL.

    Remarque

    Cette étape suppose que la liste Listes Microsoft et la table SQL correspondent dans la colonne CustomerID.

Vérifier s’il faut créer un élément ou mettre à jour un élément existant

Ensuite, nous configurons la condition pour vérifier si un élément existe. Si l’élément existe, mettez-le à jour, sinon créez une ligne.

  1. Sélectionnez la condition pour ouvrir le volet des propriétés de l’action à gauche. Cliquez sur Insérer une expression.

    Capture d’écran du bouton Insérer une expression.

  2. Recherchez length et sélectionnez length(collection).

    Capture d’écran de la carte Condition avec le volet Contenu dynamique affichant l’onglet Expression avec la fonction length(collection) mise en évidence.

  3. Sans quitter le volet de l’expression ouvert, cliquez sur l’onglet Contenu dynamique.

  4. Sous la catégorie Obtenir des lignes, sélectionnez body/value, puis cliquez sur Ajouter.

    Capture d’écran de la condition avec l’action SQL Obtenir des lignes et l’option body/value mises en évidence.

    Conseil

    Vérifiez que vous avez sélectionné value dans la catégorie Obtenir des lignes. Ne sélectionnez pas value dans la catégorie Lorsqu’un élément est créé ou modifié.

  5. Dans le champ au centre, sélectionnez est égal à.

  6. Dans le champ à droite, saisissez 1 (un).

    La carte Condition devrait maintenant ressembler à cette image :

    Capture d’écran de la carte Condition avec length et les valeurs « est égal à » et « 0 » mises en évidence.

    Conseil

    L’ajout de la fonction length() permet au flux de vérifier la liste de valeurs. La fonction length renvoie le nombre d’éléments dans la liste. Si la liste de valeurs comporte un élément, nous savons que l’élément existe dans SQL et doit être mis à jour.

Lorsque votre flux obtient les éléments de la destination, deux résultats sont possibles :

Résultat Étape suivante
L’élément existe. Mettez à jour l’élément.
L’élément n’existe pas. Créez un élément.

Créer l’élément dans la destination

La condition vérifie si l’élément de liste Listes Microsoft existe dans la destination SQL. Mais nous devons indiquer à Power Automate que faire une fois la condition vérifiée. Si l’élément de liste Listes Microsoft n’existe pas dans SQL, créez une ligne, sinon mettez à jour un élément existant.

  1. Sélectionnez l’action (SQL) Insérer une ligne du côté False de la condition pour ouvrir le volet de ses propriétés à gauche.

  2. Définissez les champs Nom du serveur, Nom de la base de données et Nom de la table pour la table dans laquelle insérer le nouvel élément (à savoir les mêmes informations que vous avez saisies ci-dessus).

    Capture d’écran de la sélection de l’action SQL Insérer une ligne et des propriétés associées.

    Remarque

    La carte Insérer une ligne se développe et affiche tous les champs de la table. Les champs marqués d’un astérisque (*) sont obligatoires et doivent être renseignés afin que la ligne soit valide.

  3. Sélectionnez chaque champ que vous souhaitez renseigner et saisissez les données.

    Vous pouvez saisir les données manuellement, sélectionner un ou plusieurs jetons dans le volet de contenu dynamique ou saisir une combinaison de texte et de jetons dans les champs.

Remarque

Les cartes Insérer une ligne et Mettre à jour la ligne affichent les noms des colonnes de la table SQL Database utilisée dans le flux. Par conséquent, les cartes illustrées dans les images de cette procédure risquent de ne pas être les mêmes que celles que vous voyez.

Mettre à jour l’élément dans la destination

Ensuite, nous configurons l’action permettant de mettre à jour l’élément SQL.

  1. Sélectionnez l’action (SQL) Mettre à jour la ligne du côté Vrai de la condition pour ouvrir le volet de ses propriétés à gauche.

    Capture d’écran de la sélection de l’action SQL Mettre à jour la ligne et des propriétés associées.

  2. Définissez les champs Nom du serveur, Nom de la base de données et Nom de la table.

  3. Pour le champ ID de ligne, nous devons récupérer la clé primaire de la base de données SQL. Dans cet exemple, il s’agit du champ CustomerID issu de la sortie de l’action (SQL) Obtenir des lignes.

    En général, lorsque nous utilisons une action Obtenir des lignes, puis que nous souhaitons accéder aux propriétés de la sortie dans les actions suivantes, Power Automate crée automatiquement une boucle For each pour gérer chaque élément de la liste. Cependant, dans ce cas particulier, nous savons que Power Automate renvoie toujours un enregistrement si une valeur CustomerID est trouvée, car CustomerID est la clé primaire de notre table SQL. Autrement dit, nous pouvons accéder à la propriété CustomerID du premier élément de la liste à l’aide de l’expression suivante :

    outputs('Get_Rows')?['body/value'][0]?['customerid']

  4. Sélectionnez le paramètre ID de ligne, puis tapez / et cliquez sur Insérer une expression. Placez le code ci-dessus dans la barre de formule de l’expression.

  5. Cliquez sur Paramètres avancés et sélectionnez les champs que vous souhaitez mettre à jour.

  6. Enregistrez et testez votre flux.

    Capture d’écran affichant l’action de mise à jour d’un élément dans SQL.

Maintenant, chaque fois qu’un élément de votre liste, la source, change, votre flux est déclenché. Il insère un nouvel élément ou met à jour un élément existant dans SQL Database, la destination.

Remarque

Votre flux n’est pas déclenché quand un élément est supprimé de la source. Si ce scénario est important pour vous, vous pouvez ajouter une colonne distincte qui indique quand un élément n’est plus nécessaire.