Plug-ins automatisés

Effectué

Les plug-ins automatisés low-code permettent à votre logique Power Fx de s’exécuter en réponse à des événements de table Microsoft Dataverse. Lors de la création de votre plug-in, vous pouvez choisir une table Dataverse et l’événement que vous souhaitez gérer.

Vous pouvez choisir d’exécuter la logique de votre plug-in sur un ou plusieurs des événements suivants :

  • Créé : lorsque quelqu’un crée une ligne de table Dataverse.

  • Mis à jour : lorsque quelqu’un modifie une ligne de table Dataverse, y compris des colonnes.

  • Supprimé : lorsque quelqu’un supprime une ligne de table Dataverse.

Si vous souhaitez que la même logique s’exécute sur plusieurs tables, vous devez créer des plug-ins distincts pour chaque table.

Lorsque votre plug-in s’exécute

Par défaut, la logique de votre plug-in s’exécute après que l’événement se soit produit en post-opération. Par exemple, si vous choisissez l’événement Créé, la logique s’exécute après la création de la ligne Dataverse. Cet événement est utile si vous souhaitez créer des lignes de données associées dans votre plug-in. Par exemple, si votre plug-in s’exécute lors de la création de lignes dans la table Projet, votre logique peut ajouter automatiquement le créateur de la ligne en tant que membre de l’équipe Projet.

Si vous exécutez le plug-in après avoir créé la ligne, vous ne pouvez pas vérifier si la ligne est valide, puis arrêter la création. Dans la section Options avancées, vous pouvez modifier l’option Quand cet élément doit s’exécuter afin que l’exécution se produise en pré-opération et non en post-opération. Ce paramètre entraîne l’exécution de la logique de votre plug-in avant de créer la ligne, afin que vous puissiez arrêter la création en renvoyant une fonction Error(). Dans l’exemple suivant, vous souhaitez interdire la suppression d’une ligne de la table Contact si le Statut est Actif. Pour accomplir cette tâche, vous devez enregistrer votre plug-in en pré-opération de l’événement Supprimé dans la table Contact. La logique vérifierait si la ligne de données est inactive et, dans le cas contraire, indiquerait à l’utilisateur qu’il doit d’abord désactiver la ligne. L’exemple suivant illustre l’expression pour le plug-in :

If (ThisRecord.Status = 'Status (Contacts)'.Active,Error("You must deactivate the row first"))

Un autre cas d’utilisation pour configurer votre plug-in afin qu’il s’exécute en pré-opération est si la logique de votre plug-in doit modifier la ligne avant de la créer. En choisissant de mettre à jour une ligne avant de la créer, vous pouvez éviter la surcharge d’une mise à jour supplémentaire, car le système met à jour la ligne avant que vous ne l’enregistriez dans Dataverse. Par exemple, vous souhaitez marquer toute ligne Contact que vous créez avec (Test Data) comme suffixe pour la colonne Last Name. Vous pouvez accomplir cette tâche en configurant un plug-in sur la table Contact pour l’événement Créé et la phase de pré-opération. La formule ressemblerait à l’exemple de logique suivant :

Set('Last Name',Concatenate(ThisRecord.'Last Name',"(Test Data)"))

Prenons un autre exemple d’implémentation d’une logique métier à l’aide de plug-ins automatisés, dans lequel vous souhaitez créer la logique automatisée suivante sur une table Projet :

  • Valider des colonnes spécifiques sur la ligne Projet avant sa création

  • Dériver un code projet à partir d’autres données sur la ligne, puis stocker le code projet sur la ligne lors de la création de la ligne

  • Créer automatiquement une ligne Équipe de projet que la logique associe à la ligne de projet créée, en ajoutant l’utilisateur créateur en tant que membre initial de l’équipe

Capture d’écran du composant de code personnalisé hello PCF. Le visuel précédent vous propose d’implémenter trois plug-ins low-code pour répondre aux besoins. Les trois plug-ins s’exécutent sur l’événement Crée de la table Projet. La liste suivante décrit pourquoi chaque plug-in est configuré pour une phase spécifique :

  • Valider le projet : ce plug-in s’exécute en pré-opération, car vous souhaitez arrêter la création de la ligne Projet en cas de données non valides.

  • Mettre à jour le code projet : ce plug-in s’exécute en pré-opération, afin de pouvoir modifier la ligne Projet pour ajouter le code projet avant que quelqu’un ne crée la ligne de données dans Dataverse. Bien que vous puissiez combiner cette logique dans le plug-in Valider le projet, les garder séparés pourrait être plus facile à gérer.

  • Ajouter un créateur à la table Équipe du projet : ce plug-in doit s’exécuter en post-opération, car il a besoin que la ligne Projet se trouve dans Dataverse afin de pouvoir associer cette ligne à la ligne Équipe du projet qu’il crée.

Plusieurs automatisations sur le même événement

Lorsque vous créez des plug-ins low-code à exécuter sur un événement, veillez à prendre en compte d’autres automatisations qui se déclenchent également sur le même événement pour la même table. Dataverse permet aux flux Power Automate et aux plug-ins de code traditionnel de s’exécuter sur les mêmes événements. Vous pouvez exécuter simultanément un plug-in low-code, un plug-in de code traditionnel et un flux Power Automate sur la même combinaison table/événement. Avant d’ajouter une automatisation, vous devez toujours évaluer l’automatisation existante, puis vous assurer qu’il n’y a pas de conflits.

Vous devez également prendre en compte l’impact de la logique que vous insérez dans vos plug-ins et qui peut entraîner l’exécution d’autres plug-ins ou flux. Par exemple, si vous mettez à jour la ligne de données en post-opération dans la logique de votre plug-in, cela peut déclencher d’autres automatisations. Veillez à spécifier uniquement les colonnes dont vous devez modifier les valeurs.

Éviter les boucles infinies

Les plug-ins low-code s’exécutent sur le déclencheur d’événement Mis à jour si les valeurs de la ligne de données changent. Si votre plug-in s’exécute en post-opération et que la logique met à jour la même ligne qui a déclenché le plug-in, vous provoquez une boucle infinie et l’opération échoue. Si nécessaire, vous devez mettre à jour la ligne qui a déclenché l’événement plutôt à l’aide d’un plug-in lors de la phase de pré-opération.