SDK
Plus récente (Latest)
False
Image de fond de la bannière
Guide du développeur
Dernière mise à jour 23 mars 2024

Création d'activités avec du code (héritage)

Attention : Les informations de cette page font référence à des activités qui ciblent le .NET Framework obsolète. Pour plus d'informations sur la création d'activités ciblant .NET pour les dernières versions de Studio, consultez Créer des activités avec du code.
An activity is the building block of a process automation. UiPath Studio comes with various built-in dedicated activities (such as PDF, mail, Excel, SAP, and more) you can install through the Package Manager, depending on your needs. You can read The UiPath Activities Guide for more details and examples, as well as how to Manage Activities Packages . Additionally, you can create custom activities to better automate processes based on your needs.

Deux grandes étapes sont requises pour créer une activité personnalisée :

  1. Écriture du code de l'activité personnalisée.
  2. Ajout de l'assembly externe (.dll) dans UiPath.
Remarque :

Les composants suivants sont requis pour créer une activité personnalisée :

Écriture du code d'activité personnalisé

Pour mieux comprendre comment écrire le code d'une activité personnalisée, nous allons créer une activité simple qui demande à l'utilisateur deux nombres, puis génère le carré de leur somme.

  1. Lancer Microsoft Visual Studio.
  2. Cliquer sur Fichier > Nouveau > Projet (File > New >Project) (raccourci : Ctrl + Maj + N). La fenêtre Nouveau Projet (New Project) apparaît.
  3. Sélectionnez C# dans le menu déroulant Langues . La liste de toutes les dépendances utilisant C# s'affiche.
  4. Sélectionnez Bibliothèque de classes (.NET Framework). Cela nous aide à exporter l'activité personnalisée sous forme de fichier .dll . Cliquez sur Suivant ( Next ) pour accéder à la fenêtre Configurer votre nouveau projet (Configure your new project) .


  5. Remplissez le champ Nom du projet (Project name ) avec le nom de l'activité souhaitée. Dans notre cas, nous pouvons utiliser « MathSquareOfSum ».
  6. Sélectionnez .NET Framework 4.6.1 dans le menu déroulant Framework . Cela garantit que la bibliothèque est compatible avec UiPath Studio.
Attention : dans les projets hérités depuis Windows, UiPath Studio prend en charge les activités créées avec .NET Framework 4.5.2 à 4.6.1. Pour plus d'informations sur la migration des activités vers .NET pour une utilisation dans des projets avec la compatibilité Windows, voir Migration des activités vers .NET 6.


  1. Cliquez sur Créer ( Create ) pour accéder au concepteur de code et commencer à écrire le code de l'activité.
  2. Dans le panneau Explorateur de solutions , cliquez avec le bouton droit sur la branche Références et sélectionnez Ajouter une référence... (Add Reference...). La fenêtre Gestionnaire de références ( Reference Manager) s'affiche.


  3. Recherchez les références System.Activities et System.ComponentModel.Composition et ajoutez-les. Assurez-vous de cocher la case devant chacun d'eux et cliquez sur OK. Cela nous permet d’utiliser les classes des références susmentionnées.




  4. Maintenant, nous devons nous assurer que notre code utilise les références nouvellement ajoutées. Cela se fait en ajoutant les lignes suivantes dans le concepteur de code :

    using System.Activities;
    using System.ComponentModel;using System.Activities;
    using System.ComponentModel;

    Notre projet devrait maintenant ressembler à ceci :



  5. Ajoutez les paramètres d'entrée et de sortie. Dans notre cas, le code devrait ressembler à ceci :

    //Note that these attributes are localized so you need to localize this attribute for Studio languages other than English
     
    //Dots allow for hierarchy. App Integration.Excel is where Excel activities are.
    [Category("Category.Where.Your.Activity.Appears.In.Toolbox")]
    [DisplayName("Human readable name instead of class name")]
    [Description("The text of the tooltip")]
     public class MathSqSum : CodeActivity
    {
     
        //Note that these attributes are localized so you need to localize this attribute for Studio languages other than English
                 [Category("Input")]
            [DisplayName("First Number")]
            [Description("Enter the first number")]
            [RequiredArgument]
            public InArgument<int> FirstNumber { get; set; }
            [Category("Input")]
            [DisplayName("Second Number")]
            [Description("Enter the second number")]
            [RequiredArgument]
            public InArgument<int> SecondNumber { get; set; }
            [Category("Output")]
            public OutArgument<int> ResultNumber { get; set; }
            protected override void Execute(CodeActivityContext context)
            {
            }//Note that these attributes are localized so you need to localize this attribute for Studio languages other than English
     
    //Dots allow for hierarchy. App Integration.Excel is where Excel activities are.
    [Category("Category.Where.Your.Activity.Appears.In.Toolbox")]
    [DisplayName("Human readable name instead of class name")]
    [Description("The text of the tooltip")]
     public class MathSqSum : CodeActivity
    {
     
        //Note that these attributes are localized so you need to localize this attribute for Studio languages other than English
                 [Category("Input")]
            [DisplayName("First Number")]
            [Description("Enter the first number")]
            [RequiredArgument]
            public InArgument<int> FirstNumber { get; set; }
            [Category("Input")]
            [DisplayName("Second Number")]
            [Description("Enter the second number")]
            [RequiredArgument]
            public InArgument<int> SecondNumber { get; set; }
            [Category("Output")]
            public OutArgument<int> ResultNumber { get; set; }
            protected override void Execute(CodeActivityContext context)
            {
            }
L'attribut <DisplayName(" ")> est le libellé qui s'affiche avant le champ de saisie dans le panneau Propriétés (Properties) de Studio. L'attribut <Description(" ")> est le texte de l'info-bulle affichée au survol de la souris.


L'attribut <ReguiredArgument> est nécessaire si vous souhaitez qu'un élément déclaré soit obligatoire pour l'entrée. Si elle n'est pas renseignée, une icône d'avertissement bleue apparaît dans la barre de titre de l'activité.


12. Ajoutez la fonctionnalité dans la fonction remplacée <Execute( )> . Dans notre cas, cela ressemble à ceci :
protected override void Execute(CodeActivityContext context)
{
    var firstNumber = FirstNumber.Get(context);
  var secondNumber = SecondNumber.Get(context);
  
  var result = (int)Math.Pow(firstNumber + secondNumber, 2);
  ResultNumber.Set(context, result);
}protected override void Execute(CodeActivityContext context)
{
    var firstNumber = FirstNumber.Get(context);
  var secondNumber = SecondNumber.Get(context);
  
  var result = (int)Math.Pow(firstNumber + secondNumber, 2);
  ResultNumber.Set(context, result);
}

Création d'une interface de concepteur (facultatif)

Si vous ne souhaitez pas que votre activité ait une interface de concepteur, vous pouvez passer à la section construction de la bibliothèque.

Important :

Pour créer une interface de concepteur, le composant Windows Workflow Foundation doit être installé dans Visual Studio. Si vous n'avez pas sélectionné le composant dans le programme d'installation Visual Studio, vous pouvez l'ajouter comme suit :

  • Dans Visual Studio, cliquez sur le menu Outils et sélectionnez Obtenir les outils et fonctionnalités.... La fenêtre Visual Studio Installer s'affiche.
  • Basculez sur l'onglet Composants individuels ( Individual Components ) et recherchez le composant Windows Workflow Foundation . Il se trouve sous la section Activités de développement (Development activities ).
  • Cochez la case devant le composant Windows Workflow Foundation et cliquez sur Modifier ( Modify). Le composant requis est installé.


13. Cliquez avec le bouton droit sur le projet dans le panneau Propriétés (Properties) (dans notre cas, le projet est MathSquareOfSum). Le menu contextuel s'affiche.



14. Dans Ajouter un élément (Add item), sélectionnez Nouvel élément... ( New Item...). La fenêtre Ajouter un nouvel élément (Add New Item ) s'affiche.

15. Cliquez sur Workflow (Workflow) dans la catégorie Installé (Installed) dans le panneau de gauche. Tous les éléments associés sont affichés.

16. Sélectionnez Concepteur d'activités et cliquez sur Ajouter ( Add ) pour inclure l'élément dans le projet.



L'élément Concepteur d'activités est ajouté et le fichier .xaml correspondant est immédiatement ouvert. Il devrait ressembler à ceci :


17. Remplacez le code du concepteur d'activités existant par le suivant :

<sap:ActivityDesigner x:Class="MathSquareOfSum.MathSqSumDesigner"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:s="clr-namespace:System;assembly=mscorlib"
    xmlns:sap="clr-namespace:System.Activities.Presentation;assembly=System.Activities.Presentation"
    xmlns:sapc="clr-namespace:System.Activities.Presentation.Converters;assembly=System.Activities.Presentation"
    xmlns:sapv="clr-namespace:System.Activities.Presentation.View;assembly=System.Activities.Presentation">
    <a href="sap:ActivityDesigner.Resources">sap:ActivityDesigner.Resources</a>
        <ResourceDictionary>
            <sapc:ArgumentToExpressionConverter x:Key="ArgumentToExpressionConverter" />
        </ResourceDictionary>
    </sap:ActivityDesigner.Resources>
    <DockPanel Width="300">
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="90"></ColumnDefinition>
                <ColumnDefinition Width="210"></ColumnDefinition>
            </Grid.ColumnDefinitions>
            <Grid.RowDefinitions>
                <RowDefinition></RowDefinition>
                <RowDefinition></RowDefinition>
                <RowDefinition></RowDefinition>
            </Grid.RowDefinitions>
            <TextBlock Grid.Row="0" Grid.Column="0" Text="First Number"></TextBlock>
            <sapv:ExpressionTextBox Grid.Row="0" Grid.Column="1"  OwnerActivity="{Binding Path=ModelItem}" ExpressionType="s:Int32" HintText="Enter first number" Expression="{Binding Path=ModelItem.FirstNumber, Converter={StaticResource ArgumentToExpressionConverter},ConverterParameter=In, Mode=TwoWay}" />
            <TextBlock Grid.Row="1" Grid.Column="0" Text="Second Number"></TextBlock>
            <sapv:ExpressionTextBox Grid.Row="1" Grid.Column="1"  OwnerActivity="{Binding Path=ModelItem}" ExpressionType="s:Int32" HintText="Enter second number" Expression="{Binding Path=ModelItem.SecondNumber, Converter={StaticResource ArgumentToExpressionConverter},ConverterParameter=In, Mode=TwoWay}" />
            <TextBlock Grid.Row="2" Grid.Column="0" Text="Result"></TextBlock>
            <sapv:ExpressionTextBox Grid.Row="2" Grid.Column="1"  OwnerActivity="{Binding Path=ModelItem}" ExpressionType="s:Int32" HintText="The sum of the numbers" UseLocationExpression="True" Expression="{Binding Path=ModelItem.ResultNumber, Converter={StaticResource ArgumentToExpressionConverter},ConverterParameter=Out, Mode=TwoWay}" />
        </Grid>
    </DockPanel>
</sap:ActivityDesigner><sap:ActivityDesigner x:Class="MathSquareOfSum.MathSqSumDesigner"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:s="clr-namespace:System;assembly=mscorlib"
    xmlns:sap="clr-namespace:System.Activities.Presentation;assembly=System.Activities.Presentation"
    xmlns:sapc="clr-namespace:System.Activities.Presentation.Converters;assembly=System.Activities.Presentation"
    xmlns:sapv="clr-namespace:System.Activities.Presentation.View;assembly=System.Activities.Presentation">
    <a href="sap:ActivityDesigner.Resources">sap:ActivityDesigner.Resources</a>
        <ResourceDictionary>
            <sapc:ArgumentToExpressionConverter x:Key="ArgumentToExpressionConverter" />
        </ResourceDictionary>
    </sap:ActivityDesigner.Resources>
    <DockPanel Width="300">
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="90"></ColumnDefinition>
                <ColumnDefinition Width="210"></ColumnDefinition>
            </Grid.ColumnDefinitions>
            <Grid.RowDefinitions>
                <RowDefinition></RowDefinition>
                <RowDefinition></RowDefinition>
                <RowDefinition></RowDefinition>
            </Grid.RowDefinitions>
            <TextBlock Grid.Row="0" Grid.Column="0" Text="First Number"></TextBlock>
            <sapv:ExpressionTextBox Grid.Row="0" Grid.Column="1"  OwnerActivity="{Binding Path=ModelItem}" ExpressionType="s:Int32" HintText="Enter first number" Expression="{Binding Path=ModelItem.FirstNumber, Converter={StaticResource ArgumentToExpressionConverter},ConverterParameter=In, Mode=TwoWay}" />
            <TextBlock Grid.Row="1" Grid.Column="0" Text="Second Number"></TextBlock>
            <sapv:ExpressionTextBox Grid.Row="1" Grid.Column="1"  OwnerActivity="{Binding Path=ModelItem}" ExpressionType="s:Int32" HintText="Enter second number" Expression="{Binding Path=ModelItem.SecondNumber, Converter={StaticResource ArgumentToExpressionConverter},ConverterParameter=In, Mode=TwoWay}" />
            <TextBlock Grid.Row="2" Grid.Column="0" Text="Result"></TextBlock>
            <sapv:ExpressionTextBox Grid.Row="2" Grid.Column="1"  OwnerActivity="{Binding Path=ModelItem}" ExpressionType="s:Int32" HintText="The sum of the numbers" UseLocationExpression="True" Expression="{Binding Path=ModelItem.ResultNumber, Converter={StaticResource ArgumentToExpressionConverter},ConverterParameter=Out, Mode=TwoWay}" />
        </Grid>
    </DockPanel>
</sap:ActivityDesigner>

La nouvelle mise en page définie pour l'activité devrait maintenant ressembler à ceci :



18. Cliquez avec le bouton droit sur l'activité (dans notre cas, ActMathSquareOfSum), et dans le menu Ajouter (Add), sélectionnez Classe...(Class...). La fenêtre Ajouter un nouvel élément (Add New Item ) s'affiche.

19. L’élément Classe est déjà sélectionné. Il suffit maintenant de le renommer DesignerMetadata.cs et de cliquer sur Ajouter. La nouvelle classe est maintenant ajoutée à l’activité et s’ouvre dans un nouvel onglet.


20. Ajoutez le contenu suivant dans la classe Métadonnées Concepteur (DesignerMetadata) créée :

using MathSquareOfSum;
using System.Activities.Presentation.Metadata;
using System.ComponentModel;
namespace ActMathSquareOfSum
{
    public class DesignerMetadata : IRegisterMetadata
    {
        public void Register()
        {
            AttributeTableBuilder attributeTableBuilder = new AttributeTableBuilder();
            attributeTableBuilder.AddCustomAttributes(typeof(MathSqSum), new DesignerAttribute(typeof(MathSqSumDesigner)));
            MetadataStore.AddAttributeTable(attributeTableBuilder.CreateTable());
        }
    }
}using MathSquareOfSum;
using System.Activities.Presentation.Metadata;
using System.ComponentModel;
namespace ActMathSquareOfSum
{
    public class DesignerMetadata : IRegisterMetadata
    {
        public void Register()
        {
            AttributeTableBuilder attributeTableBuilder = new AttributeTableBuilder();
            attributeTableBuilder.AddCustomAttributes(typeof(MathSqSum), new DesignerAttribute(typeof(MathSqSumDesigner)));
            MetadataStore.AddAttributeTable(attributeTableBuilder.CreateTable());
        }
    }
}

Création de la bibliothèque

Assurez-vous de tester le projet pour les erreurs avant d'essayer de le générer.

Dans le menu Générer (Build), sélectionnez Générer la solution ( Build Solution). La bibliothèque MathSquareOfSum.dll est maintenant créée et enregistrée à l'emplacement suivant :
%UserProfile%\source\repos\MathSquareOfSum\MathSquareOfSum\bin\Debug

Une fois la bibliothèque créée, le panneau Sortie (Output) doit afficher un message, comme illustré ci-dessous :



Création du package NuGet

  1. Lancez NuGet Package Explorer et cliquez sur Créer un nouveau package (Create a new package) (Ctrl + N). Une fenêtre divisée s'affiche, affichant les Métadonnées du package ( Package metadata) et le Contenu du package ( Package contents). Nous devons ajouter toutes les dépendances dans la dernière section.
  2. Cliquez avec le bouton droit dans la section Contenu du package ( Package contents ). Un menu contextuel s'affiche.
  3. Cliquez sur Ajouter un dossier lib (Add lib folder). Notez qu'un nouvel élément lib (lib) est créé dans la section Contenu du package (Package contents).


  4. Cliquer sur lib (lib) avec le bouton droit de la souris et sélectionner Ajouter un fichier existant... (Add Existing File...).



  5. Chargez l'assembly externe (.dll) créé ci-dessus. Dans notre cas, le fichier MathSquareOfSum.dll est situé dans le dossier %UserProfile%\source\repos\MathSquareOfSum\MathSquareOfSum\bin\Debug .
  6. Une fois le fichier sélectionné, accédez au menu Modifier (Edit) et sélectionnez Modifier les métadonnées ( Edit Metadata). Le panneau de gauche est désormais équipé de champs de métadonnées modifiables.


  7. Renseigner les champs comme il vous convient pour décrire plus précisément votre activité personnalisée.
  8. Remplissez le champ ID . Dans notre cas, il peut s’agir de UiPath.MathSquare.Activities, où la première valeur, UiPath, représente l’équipe qui a créé le package. Si aucune équipe particulière n'était impliquée, la première valeur peut être laissée vide.



  9. Cliquez sur la coche verte dans le coin supérieur gauche de la section Métadonnées du package ( Package metadata ) pour enregistrer toutes les modifications.
  10. Dans le menu Fichier (File), sélectionnez Enregistrer sous... ( Save As...). Une fenêtre d'explorateur apparaît, vous permettant de choisir l'emplacement du nouveau fichier.
  11. Enregistrez le fichier dans le dossier dans lequel les packages locaux sont stockés par UiPath (C:\Program Files (x86)\UiPath\Studio\Packages dans les versions antérieures à 2021.4 ou C:\Program Files\UiPath\Studio\Packages à partir de la version 2021.4). Le fichier UiPath.MathSquare.Activities.1.0.0.nupkg est maintenant créé dans le dossier UiPath.MathSquare.Activities à l’intérieur du dossier packages.

Chargement du package NuGet dans Studio

  1. Accédez au Gestionnaire de paquets (Package Manager) depuis Studio.
  2. Étant donné que nous avons enregistré le package NuGet dans le dossier des packages locaux, l’activité doit être disponible dans le flux local .


  3. Recherchez l'activité et cliquez sur Installer ( Install ), puis sur Enregistrer ( Save). La nouvelle activité est maintenant installée et peut être utilisée dans vos projets d’automatisation.

Cette page vous a-t-elle été utile ?

Obtenez l'aide dont vous avez besoin
Formation RPA - Cours d'automatisation
Forum de la communauté UiPath
Logo Uipath blanc
Confiance et sécurité
© 2005-2024 UiPath. All rights reserved.