- Notas relacionadas
- Información general
- Primeros pasos
- Proveedores de Marketplace
- Clientes de Marketplace
- Pautas de publicación
- Directrices de publicación para automatizaciones listas para usar
- Directrices de publicación para aceleradores de soluciones
- Directrices de publicación para conectores de Integration Service
- Seguridad y protección de IP
- Otros listados de UiPath
- Node-RED
- Configuración
- Equipos
- Ámbito de Microsoft Teams
- Crear equipo
- Crear equipo a partir de un grupo
- Obtener equipo
- Obtener Teams
- Canales
- Crear canal
- Eliminar canal
- Obtener canal
- Obtener canales
- Actualizar canal
- Charlas
- Obtener chat
- Obtener chats
- Obtener miembros del chat
- Mensajes
- Obtener mensaje
- Obtener mensajes
- Obtener respuestas de mensajes
- Responder al mensaje
- Enviar mensaje
- Events
- Crear Evento
- Eliminar Evento
- Obtener evento
- Obtener eventos
- Usuarios
- Obtener presencia del usuario
- Cómo funciona
- Referencias técnicas
- Comience ya
- Acerca de
- Configuración
- Referencias técnicas
- Ámbito del reconocedor de formularios de Azure
- Actividades
- Analizar formulario
- Analizar formulario asíncrono
- Obtener analizar el resultado del formulario
- Analizar recibo
- Analizar recibo asíncrono
- Obtener analizar resultado de recibo
- Analizar diseño
- Analizar diseño asíncrono
- Obtener analizar el resultado del diseño
- Modelo de entrenamiento
- Obtener modelos
- Obtener claves de modelo
- Obtener información del modelo
- Eliminar modelo
- Conectores
- Cómo crear actividades
- Cree su integración
Crear paquetes de actividades
Dado que la plataforma de UiPath se basa en el marco .NET, todas las actividades toman la forma de un paquete Nuget (este es el paquete .nupkg que se obtiene al descargar una actividad directamente desde Go! a Marketplace o desde las fuentes en el gestor de paquetes de UiPath Studio). Hay 4 tipos de archivos necesarios para agrupar tus archivos en un único paquete Nuget:
Archivos de información de ensamblado
Cada vez que creas un proyecto dentro de Visual Studio, el motor de compilación de Microsoft (también conocido como MSBuild) transforma el código de ese proyecto en un archivo DLL, una biblioteca que puede ser utilizada por otras aplicaciones de Windows. Los metadatos de esta biblioteca provienen de tres archivos AssemblyInfo almacenados en la sección Propiedades de tu proyecto y que proporcionan información para diferentes niveles de un conjunto de actividades. Echemos un vistazo a cada uno:
[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 contiene los metadatos únicos de este proyecto en particular (por ejemplo, MiEmpresa.MiProducto).
- TítuloDeEnsamblado le da un nombre descriptivo a su DLL. Para simplificar, debe coincidir con el nombre del proyecto.
-
AssemblyDescription es un breve resumen de la naturaleza y el propósito del ensamblado.
Hay otros atributos, como la cultura o el número de versión, que pueden incluirse. Para obtener una lista completa, consulta la documentación oficial de Microsoft.
- ComVisible y Guid son atributos predeterminados utilizados por las aplicaciones que hacen referencia a la eventual biblioteca de este proyecto. Permanecen intactas para la mayoría de las actividades, pero puedes obtener más información sobre sus efectos aquí.
#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
El siguiente archivo de ensamblado, <your activity name>AssemblyInfo.cs, contiene los metadatos que son únicos para el conjunto de actividades en su conjunto pero que se comparten entre todos los proyectos; en este caso, solo la versión de la actividad. Observe que la versión difiere para cada configuración de Visual Studio:
- Depurar: si Visual Studio está en modo de depuración, la actividad se crea con un número de versión 1.0. *, lo que significa que las versiones principales y secundarias están configuradas (1.0) y la versión del parche aumenta en cada compilación. Esto es útil cuando se realizan cambios frecuentes en el mismo código, ya que cada paquete posterior se creará con una nueva versión, lo que la hace fácilmente distinguible.
-
Versión: si Visual Studio está en modo de versión, se establece el número de versión (p. Ej. 1.0.0). Esto proporciona un control completo a la hora de lanzar oficialmente un paquete.
[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")]
GlobalAs AssemblyInfo.cs contiene los metadatos compartidos entre todos los conjuntos de actividades que generas. Los paquetes UiPath.GSuite.Activities y UiPath.MicrosoftOffice365.Activities , por ejemplo, fueron creados por la misma empresa (UiPath), se dirigen al mismo producto (UiPath Studio) y tienen los mismos derechos de autor, marca comercial e idioma, por lo que utilizaron el mismo archivo GlobalAs AssemblyInfo.cs para evitar duplicaciones innecesarias.
Nuspec
Una vez que todos sus proyectos se compilan en archivos DLL, estas bibliotecas se empaquetan en un paquete Nuget que se puede usar en UiPath Studio. Los metadatos de este paquete provienen del archivo nuspec dentro de su proyecto de diseño.
Puede ver la lista completa de elementos de metadatos disponibles a través de nuspec aquí, pero primero eche un vistazo al ejemplo básico a continuación. Estos elementos corresponden a los campos que se muestran en el administrador de paquetes de UiPath Studio y permiten a los usuarios encontrar y distinguir tu conjunto de actividades.
$element$
. Estos toman sus valores de las etiquetas correspondientes en los archivos AssemblyInfo para evitar duplicar información.
<?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>
Metadatos del diseñador
Una vez creadas tus actividades y creados tus diseñadores (elementos de IU), deben vincularse y registrarse en el almacén de metadatos para que se muestren en el panel Actividades de UiPath Studio. El siguiente código crea dos actividades (Ámbito principal y Actividad secundaria) al registrar la siguiente información en nombre de cada una:
- Categoría: la sección del panel de actividades en la que aparecerán estas actividades. De forma predeterminada, está establecido en MiEmpresa> MiProducto y se puede cambiar modificando el atributo Categoría en Resources.resx. Observa cómo la línea 12 vincula una clase de tu proyecto de actividad a la categoría especificada en la línea 10.
- Diseñador: la interfaz de usuario para esa actividad. Vea cómo la línea 13 vincula una clase de su proyecto de actividad a una clase de su proyecto de diseño.
-
Documentación: documentos en línea de la actividad. Seleccione cualquier actividad en uno de sus flujos de trabajo de UiPath, presione F1 y la documentación de ayuda para esa actividad se abrirá en el navegador predeterminado. La URL de esta documentación se especifica aquí, como en la línea 14 (se utiliza go.uipath.com como marcador de posición).
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()); } } }
Crear el conjunto de actividades
Una vez completos los archivos mencionados, es fácil crear el conjunto de actividades. En el Explorador de soluciones, haz clic con el botón derecho del ratón en tu solución y selecciona Volver a crear solución.
El panel de salida indicará que los tres proyectos se crearon correctamente y proporcionará la ruta de acceso a su archivo nupkg incluido.
Scripts posteriores a la compilación
Navega hasta Propiedades> Eventos de compilación de tu proyecto de diseño y encontrarás un script posterior a la compilación, que se ejecuta inmediatamente después de que se hayan creado todos tus proyectos.
La primera línea de este script elimina cualquier versión antigua y obsoleta del paquete que exista en el directorio de salida para evitar el desorden.
La segunda línea usa la herramienta de línea de comandos NuGet (nuget.exe) para combinar los archivos DLL de tus 3 proyectos en un paquete nuget que puede leer 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)