Didacticiel : Créer une extension de workflow

Ce didacticiel décrit le processus d’extension du concepteur de workflow pour ajouter des activités personnalisées et une logique à l’aide d’un assembly de workflow, parfois appelé une activité de workflow. Les extensions ainsi créées peuvent être utilisées dans un workflow, une action personnalisée ou un dialogue.

Ce didacticiel utilise un exemple très simple pour se focaliser sur la configuration requise et les processus pour :

  • Créer un projet de bibliothèque de classes Visual Studio
  • Ajouter une classe CodeActivity
  • Définir les paramètres d’entrée et de sortie
  • Ajoutez votre logique métier
  • Signer et générer l’assembly
  • Enregistrer votre assembly
  • Testez votre assembly
  • Ajouter votre assembly à une solution

Configuration requise

  • Instance Microsoft Dataverse et privilèges d’administrateur
  • Comprendre la procédure de configuration de workflows. Informations complémentaires : Workflows Dataverse classiques
  • Une application basée sur un modèle qui vous permet de modifier des comptes.

Objectif

L’exemple ci-dessous créera une activité de workflow personnalisée simple qui peut être utilisée dans un processus de workflow, de dialogue ou d’action. Pour plus d’informations, voir : Configurer les phases et les étapes du workflow

Cette activité de workflow personnalisée répondra aux exigences suivantes :

  1. Accepter un paramètre d’entrée décimale
  2. Générer une valeur égale au paramètre d’entrée plus 10.

Dans un workflow pour l’entité Compte, elle peut être utilisée de la manière suivante pour incrémenter la valeur Limite de crédit en utilisant deux étapes :

Objectif de ce didacticiel.

L’étape 1 utilise l’activité de workflow personnalisée Exemple : Incrémenter de 10 pour accepter la valeur Limite de crédit du compte et l’incrémenter de 10. L’étape 2 utilise l’action Mettre à jour l’enregistrement pour mettre à jour la valeur Limite de crédit du compte avec la valeur incrémentée.

Étape 1 : Incrémenter la limite de crédit du compte

Lorsque la première étape est ajoutée, l’activité de workflow personnalisée sera disponible dans un groupe Exemple et aura pour nom Incrémenter de 10.

Étape Incrémenter de 10.

Lorsque vous configurez la première étape en cliquant sur le bouton Définir les propriétés, la propriété Decimal input sera requise et acceptera uniquement une valeur décimale, par exemple l’attribut Limite de crédit de l’entité Compte.

Définition de l’entrée décimale.

Étape 2 : Définir la nouvelle limite de crédit du compte

Dans la deuxième étape, une action Mettre à jour l’enregistrement attribuera la sortie de l’étape Incrémenter la limite de crédit du compte pour mettre à jour la valeur Limite de crédit du compte avec la valeur incrémentée.

Mettre à jour la limite de crédit.

Créer un projet de bibliothèque de classes Visual Studio

Ce projet créera un assembly de workflow simple qui incrémentera une valeur décimale de 10.

  1. Démarrez Visual Studio.

  2. Dans le menu Fichier, cliquez sur Nouveau, puis cliquez sur Projet.

  3. Recherchez Bibliothèque de classes et sélectionnez Bibliothèque de classes (.NET Framework).

    Recherche de la bibliothèque de classes (.NET Framework).

  4. Cliquez sur Suivant.

  5. Spécifiez le nom et l’emplacement de la solution.

    Configurez la boîte de dialogue de votre nouveau projet dans Visual Studio 2019.

    Notes

    Choisissez un nom de projet approprié pour votre projet. Dans cet exemple, nous utiliserons SampleWorkflowActivity.

  6. Cliquez sur Créer.

  7. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le projet, puis sélectionnez Propriétés. Sous l’onglet Application, vérifiez que .NET framework 4.6.2 est défini comme l’infrastructure cible.

    définir les propriétés du projet.

  8. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le projet et sélectionnez Gérer les packages NuGet... .

    gérer les packages nuget.

  9. Recherchez le package Microsoft.CrmSdk.Workflow NuGet et installez-le.

    Installez le package NuGet de workflow Microsoft.CrmSdk.Workflow.

    Notes

    Vérifiez que le package que vous installez appartient à crmsdk. Ce package contiendra le fichier Microsoft.Xrm.Workflow.dll avec une dépendance sur le package Microsoft.CrmSdk.CoreAssemblies afin que l’assembly Microsoft.Xrm.Sdk.dll requis soit également inclus.

  10. Vous devez cliquer sur J’accepte dans la boîte de dialogue Acceptation de la licence.

    Acceptez le contrat de licence.

Renommez le fichier de classe

  1. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le fichier par défaut Class1.cs et sélectionnez Renommer.

    Renommez le fichier Class1.cs.

    Notes

    Choisissez un nom de classe approprié pour votre activité. Dans cet exemple, nous nommerons la classe IncrementByTen.

  2. Sélectionnez Oui dans la boîte de dialogue qui demande si vous souhaitez renommer la classe également.

    Sélectionnez Oui pour renommer la classe également.

  3. Ouvrez le fichier IncrementByTen.cs et ajoutez ce qui suit à l’aide des instructions :

    using System.Activities;
    using Microsoft.Xrm.Sdk;
    using Microsoft.Xrm.Sdk.Workflow;
    
  4. Faites en sorte que la classe hérite de la classe CodeActivity et donnez-lui un modificateur d’accès public comme indiqué ici :

    public class IncrementByTen: CodeActivity
        {
    
        }
    
  5. Ajoutez la méthode Execute à partir de la classe CodeActivity à l’aide des actions rapides Visual Studio ou manuellement :

    implémenter l’interface CodeActivity.

  6. La classe se présente désormais comme suit :

    public class IncrementByTen : CodeActivity
    {
        protected override void Execute(CodeActivityContext context)
        {
            throw new NotImplementedException();
        }
    }
    

Définir les paramètres d’entrée et de sortie

  1. Ajoutez un ensemble de paramètres d’entrée et de sortie où la valeur du paramètre de sortie sera égale à la valeur du paramètre d’entrée incrémentée de 10.

    public class IncrementByTen : CodeActivity
    {
        [RequiredArgument]
        [Input("Decimal input")]
        public InArgument<decimal> DecInput { get; set; }
    
        [Output("Decimal output")]
        public OutArgument<decimal> DecOutput { get; set; }
    
        protected override void Execute(CodeActivityContext context)
        {
    
        }
    }
    

    Notes

    Notez comment les attributs .NET sont utilisés pour fournir des métadonnées sur les paramètres de l’assembly. Pour plus d’informations, voir : Ajouter des paramètres

Ajoutez votre logique métier

Ajoutez la logique dans la méthode Execute pour incrémenter la valeur d’entrée de 10.

    protected override void Execute(CodeActivityContext context)
    {
      decimal input = DecInput.Get(context);
      DecOutput.Set(context, input + 10);
    }

Signer et générer l’assembly

  1. Les assemblys d’activité de workflow personnalisées (et les plug-ins) doivent être signés. Dans les propriétés du projet, sous l’onglet Signature, sélectionnez Signer l’assembly. Sous Choisir un fichier de clé de nom fort, sélectionnez l’option <Nouveau...>. Il n’est pas nécessaire de définir un mot de passe pour les besoins de ce didacticiel. Pour cet exemple, nous avons créé un fichier de clé de nom fort nommé SampleWorkflowActivity.snk

    signer l’assembly.

  2. Générez la solution en mode Débogage et vérifiez que l’assembly SampleWorkflowActivity.dll se trouve dans le dossier /bin/Debug.

Notes

Lorsque vous développez un assembly, n’hésitez pas à utiliser la configuration de build Débogage. Lorsque vous déployez votre assembly sur un serveur de production ou dans une solution, utilisez la configuration de build Suspendre.

Enregistrer votre assembly

Des assemblys d’activités de workflow personnalisées sont inscrites à l’aide de l’outil Plug-in Registration. L’outil fournit une interface graphique et prend en charge l’inscription d’assemblys qui contiennent des plug-ins ou des activités de workflow personnalisées. Pour obtenir l’outil Plug-in Registration Tool, voir Outils de développement Dataverse

Connexion à l’aide de Plug-in Registration Tool

  1. Après avoir téléchargé Plug-in Registration Tool, cliquez sur le fichier PluginRegistration.exe pour l’ouvrir.

  2. Cliquez sur Créer une nouvelle connexion pour vous connecter à votre instance.

  3. Vérifiez que Office 365 est sélectionné.

  4. Si vous vous connectez à l’aide d’un compte Microsoft autre que celui que vous utilisez actuellement, cliquez sur Afficher les paramètres avancés et saisissez vos informations d’identification. Sinon, laissez Connectez-vous en tant qu’utilisateur actuel sélectionné.

  5. Si votre compte Microsoft donne accès à plusieurs environnements, sélectionnez Afficher la liste des organisations disponibles.

    Connexion avec Plug-in Registration Tool.

  6. Cliquez sur Connexion.

  7. Si vous avec sélectionné Afficher la liste des organisations disponibles, sélectionnez l’organisation à laquelle se connecter et cliquez sur Connexion.

  8. Une fois connecté, vous verrez tous les plug-ins enregistrés existants, les activités de workflow personnalisées et les fournisseurs de données.

    Afficher les plug-ins existants et les activités de workflow personnalisées.

Enregistrer votre assembly

  1. Sélectionnez Inscrire > Inscrire un nouvel assembly

    commande Inscrire un assembly.

  2. Dans la boîte de dialogue Inscrire un nouvel assembly, cliquez sur les points de suspension () et accédez à SampleWorkflowActivity.dll dans le dosser /bin/Debug.

    boîte de dialogue Inscrire un assembly.

    Notes

    Remarque : Avec Dataverse, les seules options valides pour les étapes 3 et 4 sont sélectionnées et les options non valides sont désactivées.

  3. Cliquez sur Inscrire les plug-ins sélectionnés. Une boîte de dialogue de confirmation devrait s’afficher.

    boîte de dialogue Plug-in inscrit.

  4. Cliquez sur OK pour fermer la boîte de dialogue Inscrire un nouvel assembly.

Configurer les noms d’activité

  1. Dans la liste des Plug-ins inscrits et activités de workflow personnalisées localisez l’assembly (Assembly) SampleWorkflowActivity et développez-le pour afficher l’activité de workflow (Activité de workflow) SampleWorkflow.Activity.IncrementByTen - Isolable.

  2. Sélectionnez l’activité de workflow (Activité de workflow) SampleWorkflow.Activity.IncrementByTen - Isolable et dans la zone Propriétés, modifiez les Propriétés modifiables à l’aide des valeurs du tableau suivant :

    Champ modifiable Valeur d’origine Nouvelle valeur Description
    Description Renvoie la valeur du paramètre d’entrée plus 10. Non visible dans l’interface utilisateur du concepteur de processus, mais peut être utile pour générer la documentation à partir des données issues de l’entité PluginType qui stocke ces informations.
    FriendlyName valeur GUID IncrementByTen Nom de plug-in convivial.
    Nom SampleWorkflowActivity.IncrementByTen Incrémenter de 10 Nom du menu représenté
    WorkflowActivityGroupName SampleWorkflowActivity (1.0.0.0) Échantillon Nom du sous-menu ajouté au menu principal du concepteur de procédure Dataverse.

    Notes

    Si les propriétés Name et WorkflowActivityGroupName sont définies sur null, l’activité personnalisée ne sera pas visible dans le concepteur de processus.

  3. Cliquez sur Enregistrer (icône) pour enregistrer les modifications.

    Enregistrez les propriétés de l’activité de workflow.

Testez votre assembly

Vous pouvez tester votre nouvelle activité de workflow en créant un processus qui l’utilisera. Utilisez les étapes suivantes pour créer le processus de workflow décrit dans la section Objectif ci-dessous :

  1. Ouvrez Power Apps

  2. Sélectionner Solutions.

  3. Ouvrez la solution par défaut Éditeur par défaut de CDS.

  4. Dans le menu, développez ... et Basculer vers l’affichage classique.

    Basculez vers l’interface utilisateur classique.

  5. Sélectionnez Processus dans la liste Composants

  6. Sélectionnez Nouveau et dans la boîte de dialogue Créer un processus, entrez ce qui suit :

    Champ Value
    Nom de processus Test de SampleWorkflowActivity.IncrementByTen
    Catégorie Workflow
    Entité Compte
    Exécuter ce workflow en arrière-plan (recommandé) désélectionné

    Notes

    L’option pour Exécuter ce workflow en arrière-plan a été désélectionnée pour créer un workflow en temps réel (synchrone). Cela simplifiera le test.

    Création d’un processus.

  7. Cliquez sur OK.

  8. Appliquez les modifications suivantes :

    Champ valeur
    Scope Organisation
    Démarrer quand : Champs d’enregistrement modifiés sélectionnée, et champ name spécifié dans la boîte de dialogue.

    configuration d’un workflow de test.

    Notes

    La définition de l’étendue sur Organisation crée un workflow qui peut être appliqué à tout membre de l’organisation.

  9. Ajoutez l’Étape suivante :

    Ajouter l’étape SampleWorkflowActivity.IncrementByTen.

  10. Définissez l’étape Description sur Incrémenter la limite de crédit du compte et cliquez sur Définir les propriétés.

  11. Définissez la valeur de la propriété Decimal input sur la limite de crédit du compte avec la valeur par défaut 0.

    Définissez la propriété d’entrée décimale.

  12. Cliquez sur Enregistrer et fermer.

  13. Ajoutez une étape Mettre à jour l’enregistrement :

    Ajoutez une étape Mettre à jour l’enregistrement.

  14. Cliquez sur Définir les propriétés et définissez la valeur de la Limite de crédit sur la valeur de l’étape Incrémenter la limite de crédit du compte.

    Définissez la valeur de la limite de crédit.

    Les étapes de workflow doivent se présenter comme suit :

    Workflow terminé.

  15. Cliquez sur Enregistrer et fermer.

  16. Activez le workflow en cliquant sur Activer dans le menu...

    commande Activer le workflow.

  17. Et cliquez sur Activer dans la boîte de dialogue Confirmation d’activation de processus.

    Boîte de dialogue Confirmation d’activation de processus.

  18. Accédez à une application basée sur un modèle et affichez la liste des comptes.

  19. Sélectionnez un compte.

  20. Modifiez la valeur du champ Nom du compte.

  21. Enregistrez l’enregistrement de compte.

  22. Vérifiez que la valeur Limite de crédit du compte que vous avez modifié a augmenté de 10.

    vérifier que la limite de crédit du compte est incrémentée.

Ajouter votre assembly à une solution

Pour distribuer une activité de workflow personnalisée dans une solution, vous devez ajouter l’assembly enregistré qui la contient à une solution non gérée.

  1. Ouvrez la solution non gérée à laquelle vous souhaitez ajouter l’assembly à l’aide de Power Apps

  2. Sélectionnez Ajouter existant > Autre > Assembly du plug-in

    Ajoutez l’assembly de plug-in existant.

  3. Recherchez l’assembly de plug-in par son nom, c’est-à-dire « SampleWorkflowActivity ».

  4. Sélectionnez l’assembly de plug-in et sélectionnez Ajouter.

Voir aussi

Extensions de workflow
Exemple : créer une activité de workflow personnalisée
Exemple : Mettre à jour l’anniversaire suivant à l’aide d’une activité de workflow personnalisée
Exemple : calculer un score de crédit avec une activité de workflow personnalisée

Notes

Pouvez-vous nous indiquer vos préférences de langue pour la documentation ? Répondez à un court questionnaire. (veuillez noter que ce questionnaire est en anglais)

Le questionnaire vous prendra environ sept minutes. Aucune donnée personnelle n’est collectée (déclaration de confidentialité).