- Notas de Versão
- Visão geral
- Introdução
- Fornecedores do Marketplace
- Clientes do Marketplace
- Diretrizes de publicação
- Diretrizes de publicação para automações prontas para execução
- Diretrizes de publicação para aceleradores de soluções
- Diretrizes de publicação para conectores do Integration Service
- Segurança e Proteção de IP
- Outras listagens da UiPath
- Node-RED
- Configuração
- Teams
- Escopo do Microsoft Teams
- Criar Equipe
- Create Team from Group
- Obter equipe
- Obter equipes
- Canais
- Criar canal
- Excluir canal
- Obter canal
- Obter canais
- Canal de Atualização
- Chats
- Obter chat
- Obter chats
- Obter membros do chat
- Mensagens
- Get message
- Get Messages
- Obter respostas de mensagem
- Reply To Message
- Enviar mensagem
- Events
- Create Event
- Delete Event
- Obter evento
- Obter eventos
- Usuários
- Obter presença do usuário
- Como funciona
- Referências técnicas
- Introdução
- Sobre
- Configuração
- Referências técnicas
- Escopo do reconhecedor de formulário do Azure
- Atividades
- Analisar Formulário
- Analisar Formulário Assíncrono
- Obter resultado do formulário de análise
- Analisar Recebimento
- Analisar Recebimento Assíncrono
- Obter resultado de recibo de análise
- Analisar Layout
- Analisar Layout Assíncrono
- Obter resultado de layout de análise
- Treinar Modelo
- Obter modelos
- Obter chaves de modelo
- Obter informações do modelo
- Excluir modelo
- Conectores
- Como criar atividades
- Crie sua integração
Criar pacotes de atividades
Como a plataforma do UiPath é construída na estrutura .NET, todas as atividades assumem a forma de um pacote Nuget (que é o pacote .nupkg .reg. que você obtém ao baixar uma atividade diretamente do Go! para o Marketplace ou dos feeds no gerenciador de pacotes do UiPath Studio). Há 4 tipos de arquivos necessários para agrupar seus arquivos em um único pacote Nuget:
Arquivos do AssemblyInfo
Sempre que você cria um projeto no Visual Studio, o Microsoft Build Engine (também conhecido como MSBuild) transforma o código desse projeto em uma DLL, uma biblioteca que pode ser usada por outros aplicativos do Windows. Os metadados dessa biblioteca vêm de três arquivos do AssemblyInfo armazenados na seção Propriedades do seu projeto e que fornecem informações para diferentes níveis de um conjunto de atividades. Vamos dar uma olhada em cada uma:
[assembly: AssemblyTitle("MyCompany.MyProduct.Activities")]
[assembly: AssemblyDescription("This activity was made using the UiPath Activity Set extension.")]
[assembly: ComVisible(false)]
[assembly: Guid("133E5191-68DA-4F05-9A81-D5CFA16525C8")]
[assembly: AssemblyTitle("MyCompany.MyProduct.Activities")]
[assembly: AssemblyDescription("This activity was made using the UiPath Activity Set extension.")]
[assembly: ComVisible(false)]
[assembly: Guid("133E5191-68DA-4F05-9A81-D5CFA16525C8")]
AssemblyInfo.cs contém os metadados exclusivos desse projeto específico (por exemplo, MyCompany.MyProduct).
- O AssemblyTitle fornece um nome amigável para sua DLL. Para simplificar, deve corresponder ao nome do projeto.
-
AssemblyDescription é um breve resumo da natureza e finalidade do assembly.
Há vários outros atributos, como cultura ou número de versão, que podem ser incluídos. Para obter uma lista completa, consulte a documentação oficial da Microsoft.
- ComVisible e Guid são atributos padrão usados por aplicativos que fazem referência à biblioteca potencial deste projeto. Elas permanecem intactas para a maioria das atividades, mas você pode ler mais sobre seus efeitos aqui.
#if DEBUG
[assembly: AssemblyVersion("1.0.*")]
#else
[assembly: AssemblyVersion("1.0.0")]
#endif
#if DEBUG
[assembly: AssemblyVersion("1.0.*")]
#else
[assembly: AssemblyVersion("1.0.0")]
#endif
O próximo arquivo de Assembly, <your activity name>AssemblyInfo.cs, contém os metadados que são exclusivos para o conjunto de atividades como um todo, mas são compartilhados entre todos os projetos; neste caso, apenas a versão da atividade. Observe que a versão é diferente para cada configuração do Visual Studio:
- Depurar: se o Visual Studio estiver no modo de depuração, a atividade será criada com um número de versão 1.0.*, o que significa que as versões principal e secundária estão definidas (1.0) e os incrementos da versão de patch em cada compilação. Isso é útil ao fazer alterações frequentes no mesmo código, pois cada pacote subsequente será criado com uma nova versão, tornando-o facilmente reconhecível.
-
Versão: se o Visual Studio estiver no modo de versão, o número da versão será definido (por exemplo, 1.0.0). Isso oferece controle completo no momento de lançar oficialmente um pacote.
[assembly: AssemblyCompany("MyCompany")]
[assembly: AssemblyProduct("Product A")]
[assembly: AssemblyCopyright("MyCompany © 2019")]
[assembly: AssemblyTrademark("MyCompany™")]
[assembly: AssemblyCulture("en-CA")]
[assembly: NeutralResourcesLanguage("en-US")]
[assembly: AssemblyCompany("MyCompany")]
[assembly: AssemblyProduct("Product A")]
[assembly: AssemblyCopyright("MyCompany © 2019")]
[assembly: AssemblyTrademark("MyCompany™")]
[assembly: AssemblyCulture("en-CA")]
[assembly: NeutralResourcesLanguage("en-US")]
GlobalAssemblyInfo.cs contém os metadados compartilhados entre todos os conjuntos de atividades que você produz. Os pacotes UiPath.GSuite.Activities e UiPath.MicrosoftOffice365.Activities , por exemplo, foram criados pela mesma empresa (UiPath), visam o mesmo produto (UiPath Studio) e têm os mesmos direitos autorais, marca registrada e informações de idioma. Portanto, eles usaram o mesmo arquivo GlobalAssemblyInfo.cs para evitar duplicação desnecessária.
Nuspec
Depois que todos os seus projetos forem compilados em DLLs, essas bibliotecas serão agrupadas em um pacote Nuget que poderá ser usado no UiPath Studio. Os metadados desse pacote vêm do arquivo nuspec dentro de seu projeto de Design.
Você pode ver a lista completa de elementos de metadados disponíveis por meio do nuspec aqui, mas dê uma olhada primeiro no exemplo básico abaixo. Esses elementos correspondem aos campos exibidos no gerenciador de pacotes do UiPath Studio e permitem que os usuários encontrem e diferenciem seu conjunto de atividades.
$element$
. Elas estão extraindo seus valores das tags correspondentes nos arquivos de AssemblyInfo para evitar a duplicação de informações.
<?xml version="1.0"?>
<package>
<metadata>
<id>$title$</id>
<version>$version$</version>
<title>$title$</title>
<authors>$author$</authors>
<owners>$author$</owners>
<description>$description$</description>
<copyright>$copyright$</copyright>
<requireLicenseAcceptance>true</requireLicenseAcceptance>
<licenseUrl>https://www.apache.org/licenses/LICENSE-2.0</licenseUrl>
<projectUrl>https://integrations.uipath.com/docs/integrating-with-uipath</projectUrl>
<iconUrl>https://raw.githubusercontent.com/NuGet/Samples/master/PackageIconNuspecExample/icon.png</iconUrl>
<tags>UiPath Activit</tags>
<dependencies>
</dependencies>
</metadata>
<files>
<file src="$OutputPath$**\)\)MyCompany.MyProduct*resources.dll" target="lib\)
et461"/>
</files>
</package>
<?xml version="1.0"?>
<package>
<metadata>
<id>$title$</id>
<version>$version$</version>
<title>$title$</title>
<authors>$author$</authors>
<owners>$author$</owners>
<description>$description$</description>
<copyright>$copyright$</copyright>
<requireLicenseAcceptance>true</requireLicenseAcceptance>
<licenseUrl>https://www.apache.org/licenses/LICENSE-2.0</licenseUrl>
<projectUrl>https://integrations.uipath.com/docs/integrating-with-uipath</projectUrl>
<iconUrl>https://raw.githubusercontent.com/NuGet/Samples/master/PackageIconNuspecExample/icon.png</iconUrl>
<tags>UiPath Activit</tags>
<dependencies>
</dependencies>
</metadata>
<files>
<file src="$OutputPath$**\)\)MyCompany.MyProduct*resources.dll" target="lib\)
et461"/>
</files>
</package>
Metadados do Designer
Após suas atividades serem criadas e seus designers (elementos de interface gráfica) construídos, elas devem ser vinculadas e registradas no repositório de metadados para serem exibidas no painel Atividades do UiPath Studio. O código abaixo cria duas atividades (Escopo pai e Atividade filho), registrando as seguintes informações em nome de cada uma:
- Categoria: a seção do painel de atividades na qual essas atividades serão exibidas. Por padrão, isso é definido como MyCompany > MyProduct e pode ser alterado modificando o atributo Categoria em Resources.resx. Veja como a linha 12 vincula uma classe do seu projeto de atividade à categoria especificada na linha 10.
- Designer: a interface gráfica para essa atividade. Veja como a linha 13 vincula uma classe do seu projeto de atividade a uma classe do seu projeto de design.
-
Documentação: documentos online para a atividade. Selecione qualquer atividade em um dos fluxos de trabalho da UiPath, pressione F1 e a documentação de ajuda para essa atividade será aberta no navegador padrão. O URL para esta documentação é especificado aqui, como na linha 14 (go.uipath.com é usado como espaço reservado).
namespace MyCompany.MyProduct.Activities.Design { public class DesignerMetadata : IRegisterMetadata { public void Register() { var builder = new AttributeTableBuilder(); builder.ValidateTable(); var categoryAttribute = new CategoryAttribute($"{Resources.Category}"); builder.AddCustomAttributes(typeof(ParentScope), categoryAttribute); builder.AddCustomAttributes(typeof(ParentScope), new DesignerAttribute(typeof(ParentScopeDesigner))); builder.AddCustomAttributes(typeof(ParentScope), new HelpKeywordAttribute("https://go.uipath.com")); builder.AddCustomAttributes(typeof(ChildActivity), categoryAttribute); builder.AddCustomAttributes(typeof(ChildActivity), new DesignerAttribute(typeof(ChildActivityDesigner))); builder.AddCustomAttributes(typeof(ChildActivity), new HelpKeywordAttribute("https://go.uipath.com")); MetadataStore.AddAttributeTable(builder.CreateTable()); } } }
namespace MyCompany.MyProduct.Activities.Design { public class DesignerMetadata : IRegisterMetadata { public void Register() { var builder = new AttributeTableBuilder(); builder.ValidateTable(); var categoryAttribute = new CategoryAttribute($"{Resources.Category}"); builder.AddCustomAttributes(typeof(ParentScope), categoryAttribute); builder.AddCustomAttributes(typeof(ParentScope), new DesignerAttribute(typeof(ParentScopeDesigner))); builder.AddCustomAttributes(typeof(ParentScope), new HelpKeywordAttribute("https://go.uipath.com")); builder.AddCustomAttributes(typeof(ChildActivity), categoryAttribute); builder.AddCustomAttributes(typeof(ChildActivity), new DesignerAttribute(typeof(ChildActivityDesigner))); builder.AddCustomAttributes(typeof(ChildActivity), new HelpKeywordAttribute("https://go.uipath.com")); MetadataStore.AddAttributeTable(builder.CreateTable()); } } }
Criar o conjunto de atividades
Quando os arquivos mencionados acima estão completos, é fácil criar o conjunto de atividades. No Explorador de Soluções, clique com o botão direito do mouse na sua solução e selecione Recompilar Solução.
O painel de saída indicará que todos os três projetos foram criados com sucesso e fornecerá o caminho para seu arquivo nupkg incluído.
Scripts pós-compilação
Navegue até Propriedades > Eventos de Compilação do seu projeto de Criação e você encontrará um script de pós-compilação, que será executado imediatamente após todos os projetos serem criados.
A primeira linha desse script exclui quaisquer versões mais antigas e obsoletas do pacote que existem no diretório de saída para evitar desordem.
A segunda linha usa a ferramenta de Linha de Comando NuGet (nuget.exe) para combinar os DLLs dos três projetos em um pacote NuGet que pode ser lido pelo UiPath Studio.
if exist $(TargetDir)Packages\)\)MyCompany.MyProduct*.* del $(TargetDir)Packages\)\)MyCompany.MyProduct*.*
if $(ConfigurationName) == Debug "$(SolutionDir).nuget\)\)NuGet.exe" pack "$(ProjectPath)" -OutputDirectory "Packages" -IncludeReferencedProjects -Prop Configuration=$(ConfigurationName)
if exist $(TargetDir)Packages\)\)MyCompany.MyProduct*.* del $(TargetDir)Packages\)\)MyCompany.MyProduct*.*
if $(ConfigurationName) == Debug "$(SolutionDir).nuget\)\)NuGet.exe" pack "$(ProjectPath)" -OutputDirectory "Packages" -IncludeReferencedProjects -Prop Configuration=$(ConfigurationName)