SDK
Mais recente
falso
Imagem de fundo do banner
Guia do desenvolvedor
Última atualização 23 de mar de 2024

Criando Atividades com Código (Legado)

Importante: as informações nesta página se referem às atividades que visam o .NET Framework descontinuado. Para obter informações sobre como criar atividades direcionadas para o .NET para as versões mais recentes do Studio, consulte Criando atividades com código.
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.

There are two major steps required to create a custom activity:

  1. Writing the custom activity code.
  2. Adding the external assembly (.dll) in UiPath.
Observação:

Os seguintes componentes são necessários para criar uma atividade personalizada:

Writing the Custom Activity Code

Para entender melhor como escrever o código de uma atividade personalizada, criaremos uma atividade simples que solicita dois números ao usuário e gera o quadrado da soma.

  1. Inicie o Microsoft Visual Studio.
  2. Clique em Arquivo > Novo > Projeto… (atalho: Ctrl + Shift + N). A janela Novo Projeto é exibida.
  3. Selecione C# no menu suspenso Idiomas . A lista de todas as dependências que usam C# é exibida.
  4. Selecione a Biblioteca de Classes (.NET Framework). Isso nos ajuda a exportar a atividade personalizada como um arquivo .dll . Clique em Avançar para acessar a janela Configurar seu novo projeto


  5. Preencha o campo Nome do projeto com o nome da atividade desejada. No nosso caso, podemos usar "MathSquareOfSum".
  6. Selecione .NET Framework 4.6.1 no menu suspenso Estrutura . Isso garante que a biblioteca é compatível com o UiPath Studio.
Importante: em projetos Windows - Legado, o UiPath Studio é compatível com atividades criadas com o .NET Framework 4.5.2 a 4.6.1. Para obter informações sobre como migrar atividades para o .NET para uso em projetos com a compatibilidade do Windows, consulte Migrando atividades para o .NET 6.


  1. Clique em Criar para acessar o designer de código e começar a escrever o código da atividade.
  2. No painel Explorador de Soluções , clique com o botão direito na ramificação Referências e selecione Adicionar Referência.... A janela Gerenciador de Referência é exibida.


  3. Procure as referências System.Activities e System.ComponentModel.Composition e adicione-as. Certifique-se de marcar a caixa em frente a cada um deles e clicar em OK. Fazer isso nos permite usar classes das referências mencionadas acima.




  4. Agora, precisamos garantir que nosso código use as referências recém-adicionadas. Isso é feito adicionando as seguintes linhas no designer de código:

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

    Nosso projeto agora deve ter a seguinte aparência:



  5. Adicione os parâmetros de entrada e saída. Em nosso caso, o código deve ser semelhante a este:

    //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)
            {
            }
O atributo <DisplayName(" ")> é o rótulo mostrado antes do campo de entrada no painel Propriedades no Studio. O atributo <Description(" ")> é o texto da dica de ferramenta exibida ao passar o mouse.


O atributo <ReguiredArgument> é necessário se você quiser que um elemento declarado seja obrigatório para entrada. Se não estiver preenchido, um ícone de alerta azul aparece na barra de título da atividade.


12. Adicione a funcionalidade na função substituída <Execute( )> . Em nosso caso, ele se parece com isto:
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);
}

Criação de uma interface de designer (opcional)

Se não quiser que sua atividade tenha uma interface de designer, pule para a seção “Construa a biblioteca”.

Importante:

Para construir uma interface de designer, você precisa ter o componente do Windows Workflow Foundation instalado no Visual Studio. Se você não tiver selecionado o componente do instalador do Visual Studio, poderá adicioná-lo da seguinte maneira:

  • No Visual Studio, clique no menu Ferramentas e selecione Obter Ferramentas e Funcionalidades.... A janela Instalador do Visual Studio é mostrada.
  • Mude para a guia Componentes individuais e pesquise o componente do Windows Workflow Foundation . Ela fica localizada na seção de atividades de Desenvolvimento .
  • Marque a caixa em frente ao componente do Windows Workflow Foundation e clique em Modificar. O componente necessário será instalado.


13. Clique com o botão direito do mouse no projeto no painel Propriedades (em nosso caso, o projeto é MathSquareOfSum). O menu de contexto é exibido.



14. Em Adicionar item, selecione Novo Item.... A janela Adicionar Novo Item será exibida.

15. Clique em Fluxo de trabalho na categoria Instalado no painel esquerdo. Todos os elementos relacionados são exibidos.

16. Selecione Designer de atividades e clique em Adicionar para incluir o item no projeto.



O item de Designer de atividade é adicionado e o arquivo .xaml correspondente é aberto imediatamente. Deve ser parecido com isto:


17. Substitua o código do Designer de atividades existente pelo seguinte:

<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>

O novo layout definido para a atividade agora deve ser semelhante a este:



18. Clique com o botão direito na atividade (em nosso caso, ActMathSquareOfSum) e, no menu Adicionar , selecione Classe.... A janela Adicionar Novo Item será exibida.

19. O item da Classe já está selecionado. Tudo o que é necessário agora é renomeá-lo para DesignerMetadata.cs e clicar em Adicionar. A nova classe agora é adicionada à atividade e é aberta em uma nova guia.


20. Adicione o seguinte conteúdo na classe DesignerMetadata recém-criada:

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());
        }
    }
}

Como criar a biblioteca

Certifique-se de testar se há erros no projeto antes de tentar criá-lo.

No menu Build , selecione Build Solution. A biblioteca MathSquareOfSum.dll agora é criada e salva no seguinte local:
%UserProfile%\source\repos\MathSquareOfSum\MathSquareOfSum\bin\Debug

Após a biblioteca ser criada, o painel Saída deve exibir uma mensagem conforme descrito abaixo:



Creating the NuGet Package

  1. Inicie o Explorador de Pacotes NuGet e clique em Criar um novo pacote (Ctrl + N). Uma janela bipartida será exibida com os metadados do pacote e o conteúdodo pacote . Precisamos adicionar todas as dependências na seção final.
  2. Clique com o botão direito do mouse dentro da seção Conteúdo do Pacote . O menu de contexto é exibido.
  3. Clique em Adicionar pasta lib. Observe que um novo item lib será criado na seção Conteúdo do Pacote.


  4. Clique com o botão direito do mouse em lib e selecione Adicionar Arquivo Existente....



  5. Carregue o assembly externo (.dll) criado acima. No nosso caso, o arquivo MathSquareOfSum.dll está localizado na pasta %UserProfile%\source\repos\MathSquareOfSum\MathSquareOfSum\bin\Debug .
  6. Com o arquivo selecionado, acesse o menu Editar e selecione Editar metadados. O painel esquerdo agora possui campos editáveis de metadados.


  7. Fill in the fields as you see fit to better describe your custom activity.
  8. Preencha o campo Id . No nosso caso, pode ser UiPath.MathSquare.Activities, onde o primeiro valor, UiPath, representa a equipe que criou o pacote. Se nenhuma equipe específica estiver envolvida, o primeiro valor pode ficar em branco.



  9. Clique no botão de marca de seleção verde no canto superior esquerdo da seção Metadados do pacote para salvar todas as alterações.
  10. No menu Arquivo , selecione Salvar como.... Uma janela do explorer será exibida, permitindo que você escolha o local do novo arquivo.
  11. Salve o arquivo na pasta em que os pacotes locais são armazenados pela UiPath (C:\Program Files (x86)\UiPath\Studio\Packages em versões anteriores à 2021.4 ou C:\Program Files\UiPath\Studio\Packages a partir da versão 2021.4). O arquivo UiPath.MathSquare.Activities.1.0.0.nupkg agora é criado na pasta UiPath.MathSquare.Activities dentro da pasta de pacotes.

Carregar o pacote NuGet no Studio

  1. Acesse o Gerenciador de Pacotes a partir do Studio.
  2. Como o pacote NuGet foi salvo na pasta de pacotes locais, a atividade deve ficar disponível no feed Local .


  3. Procure a atividade e clique em Instalar e depois em Salvar. A nova atividade já está instalada e pode ser usada em seus projetos de automação.

Was this page helpful?

Obtenha a ajuda que você precisa
Aprendendo RPA - Cursos de automação
Fórum da comunidade da Uipath
Logotipo branco da Uipath
Confiança e segurança
© 2005-2024 UiPath. All rights reserved.