¿Qué hacer si no hay suficientes cubos para construir un robot?

Mi artículo anterior fue escrito principalmente para gerentes de proyectos y gerentes de RPA. Me gustaría dirigir este artículo, en primer lugar, a los programadores y aquellos que tienen que enfrentarse cara a cara con la robótica.

Los primeros procesos que debe crear un programador RPA recién creado generalmente cuestan un conjunto de "bloques" estándar que se encuentran en la caja con la plataforma. ¿Pero y si faltan? Casi cualquier plataforma RPA moderna se puede extender de una forma u otra, ya sea llamando a un método DLL en AA, código Groovy en WF o Code Stage en BP.

Pero este artículo está escrito sobre una plataforma con la que estoy familiarizado (UiPath), por lo que para aquellos que prefieren otros gustos y colores de robots, no se ofendan de antemano.



Aunque algunas cosas en el artículo son bastante banales y puedes aprenderlas tomando los cursos apropiados, leyendo la documentación o estudiando el foro, me parece que a muchos les resultará útil verlos en un solo lugar, como un artículo en ruso. Si tiene alguna adición o comentario, intentaré finalizar el artículo para que sea lo más útil y relevante posible.
Las formas de expandir la funcionalidad en el artículo van desde las más simples (descargar listas para usar) hasta las más difíciles (escriba las suyas propias).

Tienda de aplicaciones


Soluciones exitosas en UiPath Go!

Desde finales de 2018, UiPath tiene algo así como una "tienda de aplicaciones" llamada Go . Los desarrolladores de todo el mundo, incluidos los propios empleados de la compañía, comparten acciones útiles (o no) de los usuarios, piezas de código, plantillas para aplicaciones y otros desarrollos útiles que simplifican enormemente la vida.

Hay mucho de todo allí, por ejemplo, un excelente conector para Salesforce, que asume la mayor parte del trabajo o un conector escrito por Abbyy para Abby Flexicapture.

Ahora, este es el método para expandir la funcionalidad recomendada por el propio fabricante, además, la migración de extensiones que solían vivir en el repositorio oficial de NuGet (Galería) ya ha comenzado allí.

¿Has mirado el PackageManager?


UiPath PackageManager

Un poco más duro, pero aún bastante accesible para el usuario promedio, está utilizando la funcionalidad del administrador de paquetes.

Se implementó a través de NuGet , lo que significa que, además de usar repositorios "públicos", nadie nos molesta en crear los nuestros y usarlos dentro de la empresa para distribuir acciones y bibliotecas de nuestro propio diseño.

Buscamos en el administrador de paquetes la palabra clave UiPath y obtenemos una gran cantidad de acciones diferentes que aumentan drásticamente nuestras capacidades sin requerir ningún esfuerzo por nuestra parte.

Por lo tanto, ahora se distribuyen componentes de la plataforma bastante oficiales, incluido el Paquete de actividades web (para trabajar con SOAP y REST API), Word (basado en Xceed DocX ) o Zip (adivine con qué está trabajando).

Repositorios donde los principales "productos" son:


Vía Código de invocación


La forma más fácil y rápida de agregar funcionalidad a su proceso si no hay suficientes "bloques" ya listos y no puede encontrarlos.

Puede escribir un pequeño fragmento de código en VB.Net y pegarlo en la acción InvokeCode . Por lo tanto, puede, por ejemplo, trabajar con llamadas API difíciles en Rest en casos en que el estándar UiPath.Web.Activities.HttpClient no UiPath.Web.Activities.HttpClient suficiente o usar bibliotecas externas como Xceed DocX o PdfSharp .
No se deje llevar por este y otros métodos similares si tiene más de 10 líneas de código dentro de InvokeCode . Aunque Intellisense y la validación funcionan allí, sus colegas no le agradecerán por apoyar tales "programas". Llévelos a una acción del usuario o un programa externo, ya que hay suficientes métodos para esto.
Del mismo modo, todavía existe el Invoke Method , que, en principio, le permite llamar al método de cualquier clase que se agregue al proyecto a través de dependencias.
Por ejemplo , aquí se usa para descomprimir el archivo

Ejemplo de método de invocación

Vía Invocar <cualquier otra cosa>


Además del "nativo" VB.NET UiPath le permite utilizar muchos otros métodos de programación, como dicen "para todos los gustos, para todas las necesidades".

Powershell


Powershell Excel

Si VB.NET no VB.NET suficiente, otros lenguajes de programación vienen al rescate. Por ejemplo, con las aplicaciones de Office, es conveniente que un administrador experimentado trabaje a través de Powershell y use la acción Invoke Power Shell , respectivamente.

En el mismo Outlook, por ejemplo, puede presionar infinitamente los botones para hacer lo que hacen un par de comandos con PS.

Tal script, por ejemplo, devolverá la última letra en una carpeta arbitraria
 Add-type -assembly "Microsoft.Office.Interop.Outlook" | out-null $olFolders = "Microsoft.Office.Interop.Outlook.olDefaultFolders" -as [type] $outlook = new-object -comobject outlook.application $namespace = $outlook.GetNameSpace("MAPI") $inbox = $namespace.getDefaultFolder($olFolders::olFolderInbox) $folder = $inbox.Folders.Item(“ ”) ($folder.Items.Restrict('[UnRead] = True') | Select-Object -Last 1) 


Objetos COM


En los sistemas modernos, la necesidad de esto, por supuesto, no es tan grande, pero con la ayuda del Invoke COM Method puede recurrir a la funcionalidad oculta en alguna DLL.

Vba


Si trabaja con Excel, puede "configurar" un script de VBA ejecutando Invoke VBA. El script debe estar en un archivo separado (esto es conveniente, considerando que ahora los archivos de Office con macros no son muy apreciados). Esto será conveniente para aquellos que son buenos para programar en VBA y no quieren abandonar las bibliotecas establecidas.

Pitón


Una gran ayuda para trabajar con ML y todo tipo de cálculos es la capacidad de incorporar scripts de Python en el proceso. Para comenzar a trabajar con ellos, debe hacer varios gestos adicionales. En primer lugar, estas acciones ahora se presentan en un conjunto genial, pero no oficialmente respaldado, de acciones de actividades comunitarias en GitHub. En segundo lugar, debe instalar Python, y ciertamente la versión 3.6 y siempre en la raíz de la unidad C.
Por cierto, en las mismas actividades de la comunidad hay criptografía, FTP y algunas otras cosas potencialmente útiles.

La documentación y el código de muestra (obsoleto) se pueden descargar aquí . Si alguien necesita ayuda con la integración de UiPath y Python, escriba, intentaré contarlo con más detalle.

Java


Casi lo mismo: el paquete se ensambla independientemente de las actividades de la comunidad. Archivos .jar compatibles compilados con JDK 1.5 y versiones posteriores. La ruta a Java debe explicarse en PATH .

El sitio web de UiPath tiene documentación para su uso y un proceso de ejemplo con Java .

A través de acciones del usuario


Desafortunadamente, no todos pueden usar la tienda de aplicaciones o los paquetes de otras personas. A menudo, por ejemplo, el servicio de seguridad no podrá usar piezas de robots que no estén escritas por el proveedor o dentro de la empresa. Entonces tienes que arremangarte las mangas.

La plataforma UiPath está construida con Microsoft Workflow Foundation . Para nosotros, esto significa que siempre puede escribir su propia acción (Actividad) y agregarla al proceso. Si se espera un uso activo por parte de los usuarios comerciales, la acción se puede convertir en una hermosa interfaz de usuario personalizada utilizando el diseñador de formularios, y si lo necesita más rápido, entonces un simple rectángulo que se puede configurar desde Propiedades servirá.

Afortunadamente, el proceso de creación de una acción está documentado , aunque no es muy detallado, pero siempre puede utilizar la [documentación de MS] a gran escala (https://docs.microsoft.com/en-us/dotnet/framework/windows-workflow-foundation/) por escribir acciones y artículos sobre ellos en Internet.

Un ejemplo de la acción más simple en C #
 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Activities; using System.ComponentModel; namespace ClassMathCustomActivity { public class SimpleFormula : CodeActivity { [Category("Input")] [RequiredArgument] public InArgument<double> FirstNumber { get; set; } [Category("Input")] public InArgument<double> SecondNumber { get; set; } [Category("Output")] public OutArgument<double> ResultNumber { get; set; } protected override void Execute(CodeActivityContext context) { var firstNumber = FirstNumber.Get(context); var secondNumber = SecondNumber.Get(context); var result = System.Math.Pow(firstNumber + secondNumber, 2); ResultNumber.Set(context, result); } } } 


La acción creada debe empaquetarse en .nupkg utilizando el Explorador de paquetes NuGet , y luego el paquete creado debe agregarse a Studio.

Es mejor no comenzar la primera acción desde cero, sino usar las actividades de la comunidad mencionadas anteriormente, donde hay muchas acciones preparadas de diversa complejidad.

En conclusión


Como puede ver, hay opciones más que suficientes para expandir la funcionalidad, desde el InvokeCode más simple hasta escribir su propia acción. Esto significa que no importa qué tarea esté enfrentando, siempre existe la oportunidad de resolverlo rápidamente, a menudo sin siquiera inventar una bicicleta :)

Espero que este artículo te sea útil al crear procesos geniales de robots. Me alegrará que diga cuánto le interesó esta información y qué más le gustaría saber.

Source: https://habr.com/ru/post/443904/


All Articles