studio
2024.10
false
UiPath logo, featuring letters U and I in white

Guia do usuário do Studio

Última atualização 17 de dez de 2024

Introdução

As automações codificadas permitem criar automações usando código em vez de atividades de arrastar e soltar, permitindo trabalho colaborativo em projetos complexos. Em fluxos de trabalho codificados e casos de teste, você pode usar serviços UiPath (iguais a pacotes de atividades), APIs (semelhantes a atividades), pacotes .NET NuGet externos e suas classes C# personalizadas no UiPath Studio. Isso facilita a integração com sistemas externos, bancos de dados, APIs e outros serviços.

Os fluxos de trabalho codificados se comportam como fluxos de trabalho padrão, o que significa que eles também podem ser invocados a partir de fluxos de trabalho UiPath padrão e vice-versa, usando a atividade Invoke Workflow File.

Além disso, os tipos definidos em código, como enums, podem ser usados como entradas em fluxos de trabalho UiPath padrão.

As automações codificadas podem ser de três tipos:

  • Fluxos de trabalho codificados — usados para projetar fluxos de trabalho no código.
  • Casos de teste codificados - usados para projetar casos de teste.
  • Arquivos de código-fonte - - usados para criar código que você pode chamar posteriormente em outros tipos de arquivos codificados.


Uso de automações codificadas

Para criar automações codificadas no seu projeto, você normalmente tem o pacote UiPath.CodedWorkflows pré-instalado. O pacote vem com a classe base CodedWorkflowBase e parcial CodedWorkflow.

O pacote é pré-instalado quando:

  • Você cria um novo projeto com pelo menos a versão 23.10 do System.Activities, Testing.Activities ou UIAutomation.Activities ou qualquer outro pacote de atividades compatível com fluxo de trabalho codificado.
  • Você cria um novo Fluxo de trabalho codificado, Caso de teste codificado ou Arquivo de código-fonte em seu projeto.

Se não puder usar automações codificadas nos cenários indicados, baixe o pacote no menu Gerenciar pacotes.

Benefícios

Aqui estão alguns dos benefícios de usar automações codificadas:

  1. Produtividade aprimorada - Se você estiver familiarizado com codificação ou scripts, poderá aproveitar suas habilidades e aumentar sua produtividade. Trabalhar em um ambiente de codificação familiar permite desenvolver automações mais eficientes.
  2. Gerenciamento de complexidade — Automações codificadas fornecem uma solução flexível para gerenciar cenários de automação complexos. Ao usar código, você pode implementar lógica personalizada, gerenciar exceções e criar funções reutilizáveis.
  3. Automação híbrida - Você pode usar automações codificadas de forma intercambiável com automações de pouco código. Isso promove a integração perfeita entre as duas abordagens, permitindo criar soluções de automação flexíveis.
  4. Desempenho aprimorado — Automações codificadas permitem que você otimize seus fluxos de trabalho de automação para melhorar o desempenho. Ao usar código, você pode implementar algoritmos específicos para tornar suas execuções de automação mais rápidas.
  5. Legibilidade — Automações codificadas permitem criar código estruturado, resultando em legibilidade de código. Se você organizar seu código e documentá-lo, poderá mantê-lo facilmente e compartilhá-lo com outros colaboradores.

Estrutura

As automações codificadas apresentam um design estruturado com namespaces , classes auxiliares e métodos de Entry Point. O framework de automações codificadas permite escrever as automações usando a linguagem de programação C#.

Siga a estrutura detalhada de uma automação codificada conforme descrito nas seções a seguir.

Namespaces

Ao criar uma automação codificada, um namespace é gerado automaticamente usando o nome do projeto do Studio. Por exemplo, se o seu projeto do Studio for denominado "Meu projeto", o namespace para todas as automações codificadas será "Meu projeto".

Além disso, se você criar uma automação codificada dentro de uma pasta no seu projeto do Studio, o namespace será o nome do projeto e o nome da pasta. Por exemplo, se o seu projeto do Studio se chamar "Meu projeto" e a pasta se chamar "local", o namespace será "Meuprojeto.local".

Classe base

Tanto o fluxo de trabalho codificado quanto as automações de casos de teste codificados usam a classe parcial CodedWorkflow do pacote UiPath.CodedWorkflow. Essa classe dá à automação acesso às interfaces necessárias para serviços (iguais a pacotes de atividades), com base nos pacotes de atividades instalados em seu projeto.
Observação: o pacote UiPath.CodedWorkflows é incluído automaticamente quando você importa um pacote de atividades que suporta automações codificadas, como UiPath.System.Activities 23.10 ou superior.

Fluxo de Trabalho Codificado

As automações codificadas herdam a classe parcial CodedWorkflow, criando uma relação do tipo CodedAutomationExample : CodedWorkflow. Isso significa que a classe CodedAutomationExample herda atributos, métodos e funcionalidade da classe CodedWorkflow. Essencialmente, ele pode acessar e utilizar as funcionalidades definidas na classe CodedWorkflow, o que fornece uma base para a automação codificada, tornando mais fácil criar e personalizar o comportamento da automação.
A classe CodedWorkflow é declarada como uma classe parcial, permitindo estender suas funcionalidades definindo a mesma classe parcial CodedWorkflow em um arquivo de código-fonte. Dessa forma, você pode adicionar novos campos e métodos para personalizar ainda mais o comportamento de suas automações codificadas. Você pode usar essa abordagem para implementar uma interface Antes e Depois, especificamente para casos de teste codificados.
Além disso, a classe parcial CodedWorkflow herda a classe CodedWorkflowBase.


CodedWorkflowBase

A classe CodedWorkflowBase contém as funcionalidades integradas que uma automação codificada herda. Esta classe contém métodos e propriedades específicas para gerenciar instâncias de fluxo de trabalho, acesso a runtime, manipulação de contêineres de serviço e configuração de contextos de ambiente. A classe CodedWorkflowBase também oferece outro método separado para registro de log que você mesmo pode personalizar.
Observação: nas configurações do editor de código, selecione Habilitar descompilação de origem para visualizar a classe CodedWorkflowBase.
Confira os métodos CodedWorkflowBase na tabela abaixo:
MétodoDescription
ICodedWorkflowServices services
Observação: recomendamos que você use o Log, BuildClient e os métodos RunWorkflow por meio da classe services e seus serviços correspondentes, em vez de usá-los como métodos independentes e prontamente disponíveis.
Fornece acesso aos serviços disponíveis para fluxos de trabalho codificados, como:
  • OutputLoggerService: permite que você faça logs de saída, usando o método Log.
  • OrchestratorClientService (o método BuildClient): permite que você habilite a interação com o Orchestrator, por meio do método BuildClient.
  • WorkflowInvocationService: permite que você invoque outros fluxos de trabalho, usando o método RunWorkflow.
  • Container: o contêiner onde todos os serviços são armazenados. Permite que você gerencie recursos para fluxos de trabalho codificados, lidando com importação automática de namespaces e tipos, usando os métodos AutoImportedNamespaces e AutoImportedTypes. Além disso, fornece uma instância de um serviço específico, usando o método Resolve.
serviceContainer(ICodedWorkflowServiceContainer)
Observação: isso foi substituído por ICodedWorkflowServices services . Se você continuar usando essa sintaxe, você receberá um aviso apontando para você usar a nova sintaxe services.Container.
Fornece acesso ao contêiner de injeção de dependência específico do fluxo de trabalho codificado atual. Esse contêiner, conhecido como contêiner de serviço, permite recuperar instâncias de serviços que foram registrados nele.
GetRunningJobInformation()Recupera informações sobre o trabalho atualmente em execução no contexto do fluxo de trabalho codificado. O método acessa a propriedade RunningJobInformation do objeto executorRuntime , que contém informações sobre status do trabalho, progresso, parâmetros e carimbos de data/hora.
Log(string message, LogLevel level = LogLevel.Info, IDictionary<string, object>additionalLogFields = null)Adiciona campos de log adicionais às mensagens de log com atributos especificados.
RunWorkflow(string workflowFilePath,IDictionary<string, object> inputArguments = null,TimeSpan? timeout = null, bool isolated = false, InvokeTargetSession targetSession = InvokeTargetSession.Current)Fornece uma estrutura para executar um fluxo de trabalho no contexto de um determinado runtime de fluxo de trabalho. Ele pode definir parâmetros, lidar com isolamento potencial e iniciar a execução do fluxo de trabalho. A tarefa retornada fornece os resultados do fluxo de trabalho executado, incluindo sua saída e seus argumentos de entrada/saída.
RunWorkflowAsync(string workflowFilePath,IDictionary<string, object> inputArguments = null, TimeSpan?timeout = null, bool isolated = false, InvokeTargetSession targetSession = InvokeTargetSession.Current)Fornece uma estrutura para executar um fluxo de trabalho de forma assíncrona no contexto do runtime do fluxo de trabalho dado. Ele pode definir parâmetros, lidar com isolamento potencial e iniciar a execução do fluxo de trabalho. A tarefa retornada fornece os resultados do fluxo de trabalho executado, incluindo sua saída e seus argumentos de entrada/saída.
DelayAsync(TimeSpan time) e DelayAsync(int delayMs)Suspende a execução por um período especificado de tempo de forma assíncrona.
Delay(TimeSpan time) e Delay(int delayMs)Suspende a execução por um período de tempo especificado.
HttpClient BuildClient(string scope = "Orchestrator", bool force = true)Cria um cliente HTTP com um escopo e um token de acesso especificados.
RegisterServices(ICodedWorkflowsServiceLocator serviceLocator)Registra serviços (pacotes de atividades) no localizador de serviços do fluxo de trabalho codificado. Você pode substituí-lo quando quiser injetar serviços personalizados no contêiner de injeção de dependência. Aprenda como criar e usar serviços personalizados (pacotes de atividades codificadas) aqui.

Pontos de Entrada

O método do Entry Point para fluxos de trabalho codificados e casos de teste codificados é nomeado Execute() e atribuído como Workflow ou TestCase. Você pode alterar o nome do método, desde que o atribua a Workflow ou a TestCase.
Você só pode usar um método Execute() ([TestCase] ou [Workflow]) dentro de um arquivo, que herda a classe Coded Workflow.

Neste método, você pode adicionar argumentos de entrada e/ou saída, que são equivalentes aos argumentos In, Out ou In/Out em automações de pouco código. Acesse o tutorial Trabalhando com argumentos de entrada e saída para aprender como usar argumentos em automações codificadas.

Esse método de Entry Point serve como o ponto de partida para a execução das automações. Isso torna os fluxos de trabalho codificados e os casos de teste fáceis de identificar como Entry Points devido ao seu método Execute().


Compatibilidade do projeto

Você pode usar automações codificadas somente em projetos do Windows e multiplataforma.

Serviços

Para projetar automações codificadas, você pode usar serviços, que são iguais a pacotes de atividades. Por exemplo, System.Activities não é apenas um pacote de atividades em automações de pouco código, mas também um serviço em automações codificadas. Da mesma forma que as atividades dentro de um pacote de atividades, um serviço possui APIs que você pode usar para criar automações codificadas.

Os serviços disponíveis para utilização dentro de automações codificadas são os seguintes:

ServiçoVersão
System.Activities23.10 e superior
UiAutomation.Activities23.10 e superior
Testing.Activities23.10 e superior
MobileAutomation.Activities23.12-preview e superior
Mail.Activities1.22.1 e superior
Excel.ActivitiesPré-visualização 2.23.2 e superior

Para usar pacotes de atividades em automações codificadas, execute as seguintes etapas:

  1. Baixe o pacote de atividades, igual a um serviço, semelhante ao que você faria em automações de pouco código. Isso fornece uma coleção de APIs para usar em seu código.
  2. Chame as APIs nos serviços usando o formato: service.API. Por exemplo, se você quiser usar a API GetAsset, você a chamaria como system.GetAsset.
  3. As APIs possuem parâmetros em vez de propriedades. Após chamar uma API, você pode configurar seus parâmetros fornecendo valores entre parênteses. Por exemplo, se você tiver um ativo na instância do Orchestrator à qual você está conectado, chamado Email Address, poderá passar o nome desse ativo como String para a API: system.GetAsset("Email Address").
Dica: dentro das automações codificadas você também pode usar quaisquer bibliotecas de classe .NET disponíveis para download no feed nuget.org.

Esta página foi útil?

Obtenha a ajuda que você precisa
Aprendendo RPA - Cursos de automação
Fórum da comunidade da Uipath
Uipath Logo White