Este artículo de revisión trata sobre cómo usar RPA para los procesos de negocios, que incluyen tareas que la gente común no puede realizar, no quieren o les lleva mucho tiempo y requiere un conocimiento especial, como trabajar con FTP, bases de datos o API.
La inclusión de tales acciones en el proceso acerca su creación a la programación tradicional y los "scripts", con todos los pros y los contras de este enfoque.
El uso de la API incluso en tareas tradicionales para la robótica puede aumentar significativamente la velocidad de su ejecución, aumentar la confiabilidad y la estabilidad, pero al mismo tiempo nos impide hacer realidad el sueño de que los propios usuarios empresariales creen y mantengan sus procesos, definitivamente les devuelve su desarrollo y soporte. equipos de desarrollo.
Cuando sea posible y cuando sea necesario agregar acciones a un nivel inferior en el proceso, intentaré contarlo en este artículo. La primera, parte introductoria, contiene consideraciones generales, y la segunda contiene ejemplos específicos. Se dan ejemplos de 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.

Pro y Contra Robotics Low
¿Por qué son útiles estos robots?
- Trabajo significativamente acelerado. A menudo, esta es la razón principal por la que pensamos en la interacción de bajo nivel con sistemas externos. Si podemos hacer el proceso 10 veces más rápido, podemos ahorrar en el uso de robots adicionales, con sus máquinas virtuales y licencias.
- Se aumenta la confiabilidad, ya no necesita trabajar con selectores dinámicamente fantásticos en la interfaz de usuario, pensar en cómo evitar el captcha, luchar por la precisión de reconocer una imagen en Citrix en la que no puede poner un complemento o luchar por el desplazamiento sin fin en la página de noticias.
- Trabaje con sistemas que no tienen una interfaz de usuario completa o que no le permiten obtener toda la información necesaria a través de la interfaz de usuario. Por ejemplo, en mi práctica hubo un caso en el que tomamos datos de la API de Shopify , los transferimos a ShipHero y los enviamos al sistema de contabilidad interno. Solo el último paso utilizó la interfaz de usuario.
¿Por qué son dañinos estos robots?
- Los usuarios comerciales ya no entienden lo que hace nuestro proceso robótico y no pueden cambiarlo y mantenerlo ellos mismos. Esto no es tan cierto para los robots desatendidos, pero para los atendidos (asistentes digitales) es una desventaja significativa, porque queremos que los usuarios sean los autores de sus procesos.
- Se pierde la visibilidad y la comprensibilidad del proceso para el servicio de seguridad. Si con un robot ordinario podemos demostrar claramente que está haciendo las mismas acciones que el usuario "orgánico", incluso es posible usar descripciones de trabajo como documentación, luego, utilizando la integración de bajo nivel, nos vemos obligados a aceptar que nuestro proceso debe pasar por los mismos largos procedimientos de verificación y control que la automatización "grande".
- Dito, sobre equipos de integración. Tan pronto como comenzamos a usar la API, caemos en su patrimonio y debemos cumplir con sus reglas.
- El costo y los riesgos de la programación "real" son mayores que los de la robótica. Si una persona puede presionar un botón, un robot también puede presionarlo. Pero, ¿puede la API de un antiguo sistema indocumentado proporcionarnos los datos necesarios? ¿Es posible escribir información directamente en la base de datos, o destruiremos su integridad? ¿Es necesario un especialista experimentado para esta tarea o es suficiente para un estudiante novato? ¿Por qué Slides.Duplicate en PowerPoint.Interop devuelve una matriz? Se puede obtener la respuesta a todas estas preguntas intrigantes, pero llevará tiempo.
Cuando lo necesite y cuando no deba usar la programación en robots
Lo anterior se puede resumir de la siguiente manera:
Vale la pena usar la programación si
- Tu proceso carece de productividad
- Los sistemas de IU no son convenientes para la automatización, pero hay una API conveniente
La programación no debe usarse si
- Los procesos serán desarrollados o respaldados por usuarios comerciales.
- El uso de la API dificulta que el robot atraviese procesos de negociación.

¿Con qué y cómo tiene sentido trabajar a través del código?
Luego traté de dar algunos ejemplos de trabajo con código, que, de una forma u otra, tuve que usar realmente al crear robots, lo que significa que tienen lugar en la vida. Naturalmente, la lista no es exhaustiva, pero espero que sea ilustrativa.
Todos los ejemplos se prueban en las últimas versiones de lanzamiento de las acciones en el momento de la escritura.
Microsoft Office
Curiosamente, uno de los primeros candidatos para trabajar a través de la API es Microsoft Office. Sí, UiPath tiene una excelente funcionalidad integrada para trabajar con Excel (incluso dos tipos, uno con archivos directamente, el segundo a través de la aplicación). También hay oportunidades para trabajar con Word (el paquete
UiPath.Word.Activities
se
UiPath.Word.Activities
través del administrador de paquetes). Pero, por ejemplo, no hay acciones estándar para trabajar con PowerPoint, y también hay Outlook o incluso Visio con Project, que todavía se usan bastante activamente en grandes empresas. Con Office, puede hacer amigos con un robot con bastante facilidad a través de la interfaz de usuario, pero en algunos casos no es muy conveniente, ya que no se puede acceder directamente a todos los elementos de la interfaz de usuario y debe tocar escalas en el teclado. Por ejemplo, una acción
Type Into
con el texto
k [tab] k [f10] JCDD (para la versión en inglés de Office) abrirá los datos del gráfico de una diapositiva de PowerPoint para editar en Excel. Tales combinaciones funcionan bien, pero se ven como un limpiador mágico que IDDKQD.
Sugerencia: la lista de selectores disponibles se puede ampliar mediante Microsoft UI Automation (UIA)
lugar del marco de Microsoft Active Accessibility (MSAA)
, que se selecciona de forma predeterminada. Cambie a él con el botón F4 en UI Explorer y vea si hay alguna diferencia
Para trabajar con archivos de Office, puede utilizar bibliotecas de terceros, por ejemplo,
Xceed DocX o bibliotecas Spire, como
Spire.Presentation . Cuando trabaje con bibliotecas de terceros, preste atención a la licencia, puede que no siempre sea adecuada para su empresa (por ejemplo, iTextSharp para PDF se distribuye de forma gratuita a través de
AGPL y PDFSharp - a través de
MIT ). Este método es muy conveniente, ya que puede usarse incluso si Microsoft Office no está instalado en la máquina, lo que significa que es ideal para robots desatendidos que se ejecutan en máquinas virtuales.
Para trabajos complejos con programas de oficina,
Microsoft.Office.Interop
viene al rescate. Nos permite realizar acciones dentro de las aplicaciones, manipular datos, etc. Puede dedicar más de un artículo a las características de trabajar con Office.Interop, algo antiguo y frágil, pero será adecuado para nuestros propósitos. Para que Interop funcione, debe agregar los ensamblados apropiados a las importaciones.
Aquí hay un par de ejemplos de lo que puede hacer con Office Interop:
Perspectiva
La funcionalidad de Outlook es mucho más amplia que simplemente trabajar con el correo, es un administrador de información personal, y hay un calendario, un cuaderno y una libreta de direcciones, en general, un conjunto completo. Si todo lo relacionado con el correo electrónico generalmente se puede resolver mediante el acceso directo al servidor, si representa las interfaces IMAP / POP3, entonces el resto de la información es mucho más fácil de obtener de Outlook. Para esto Interop encaja perfectamente.
Obtener una lista de eventos del calendario Dim oApp As New Microsoft.Office.Interop.Outlook.Application Dim mapiNamespace As Microsoft.Office.Interop.Outlook.NameSpace Dim calendarFolder As Microsoft.Office.Interop.Outlook.MAPIFolder Dim calendarItems As Microsoft.Office.Interop.Outlook.Items mapiNamespace = oApp.GetNamespace("MAPI") calendarFolder = mapiNamespace.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderCalendar) calendarItems = calendarFolder.Items calendarItems.IncludeRecurrences = True
Powerpoint
Con PowerPoint, no solo puede crear hermosas presentaciones, sino también usarlas para el papeleo, como ofertas comerciales o informes regulares de proyectos. Para hacer esto, debe mostrar datos de otras fuentes en PowerPoint, y, por supuesto, el robot hace un excelente trabajo al respecto. La mayor parte del tiempo al crear diapositivas de PowerPoint toma un diseño hermoso, para que pueda hacerlo con anticipación y sustituir datos reales copiando diapositivas de plantilla y reemplazando textos con ellas.
Microsoft.Office.Interop.Powerpoint
y todos los demás ensamblados de Interop se pueden encontrar en el repositorio de nuget.org.
Diapositiva duplicadaDebido al hecho de que Presentation está en System.Activities y Application, en otro Interop, debe escribir los nombres de clase por completo. fileName y slideToCopy: argumentos, cadena y número, respectivamente.
Dim app As New Microsoft.Office.Interop.PowerPoint.Application Dim pres As Microsoft.Office.Interop.PowerPoint.Presentation Dim newSlide As Microsoft.Office.Interop.PowerPoint.Slide pres = app.Presentations.Open(fileName) newSlide = pres.Slides(slideToCopy).Duplicate()(1)
Además, a través de la colección Formas, que contiene todos los elementos de la diapositiva, puede actualizar rápidamente la información necesaria en una nueva página
Trabajar en Word
Aunque las actividades en el
Paquete de actividades de Word proporcionan características básicas de Word, no cubren la funcionalidad completa de la biblioteca Xceed DocX en la que están construidas. El caso más común es trabajar con tablas, pero hay muchos otros casos.
Hay suficientes
ejemplos diferentes en el repositorio del proyecto para comprender dónde será útil esta biblioteca o una similar.
API web (REST, SOAP)
REST / JSON ahora es probablemente el enlace clave para proporcionar integración con los sistemas que representan la API.
El soporte para REST, SOAP y JSON se proporciona a través del
Paquete de actividades web .
Con REST, todo es bastante simple, como debería ser:
HTTP Request
->
Deserialize JSON
y ahora ya tenemos un
JObject con el que podemos hacer lo que queramos. Para transferir datos al servicio web hay un editor de parámetros conveniente.
Pero para SOAP, la funcionalidad incorporada, lamentablemente, es limitada, no todos los tipos de servicios web son compatibles, no todas las solicitudes se procesan correctamente. Si el servicio no funciona para usted, debe usar uno de los muchos contenedores para HttpClient, por ejemplo,
SimpleSOAPClient o escribir el suyo propio (una
variante de trabajar con SOAP desde C # ).
ACTUALIZACIÓN 03/04/19: En la versión 2019.4, cuya versión beta ya está disponible para descargar, el componente se actualiza, mejora y vuelve a hacer. Por lo tanto, puede esperar la aparición de soporte SOAP normal muy prontoTrabajar con FTP
Aquí en UiPath, todo es simple, hay un conjunto de acciones listo para FTP incluido en
Actividades comunitarias , aunque debe tenerse en cuenta que, comenzando con la versión 18.2 del Paquete de actividades FTP
en el estado obsoleto . Pero toda la funcionalidad está ahí, incluso SFTP es compatible (el conjunto se basa en
SSH.NET ), aunque, desafortunadamente, el trabajo con la clave del cliente no se ha completado.

.
Bases de datos
UiPath funciona con bases de datos a través del proveedor de datos .NET. Para MS SQL y MS Access, todo es simple, para el resto necesita configurar ODBC, y si no está allí, instale el controlador. Tenga en cuenta que, dado que, en este momento, la plataforma es de 32 bits, entonces necesitamos descargar el controlador apropiado y la fuente de datos ODBC debe ser la misma.
A continuación se muestra un ejemplo para trabajar con MySQL.
Configurar la conexión MySQLConfiguración de la base de datos MySQL remota de prueba (controlador
desde aquí ):

y conectarte desde la acción

El trabajo adicional con una base de datos compatible con SQL es bastante estándar: realizamos consultas, obtenemos un DataTable.
SAP a través de BAPI
Si su SAP le brinda esta oportunidad, puede intentar en lugar de trabajar a través de la interfaz de usuario para automatizar la integración con SAP a través de la BAPI. Como de costumbre, en UiPath está listo para esto
Un conjunto de acciones que incluye un asistente para configurar una conexión a SAP. Aquí casi no hay programación, pero este es un ejemplo del hecho de que la ruta de integración estándar no es la única posible.
En conclusión
Espero que con la ayuda de este artículo haya podido hablar sobre aquellos aspectos del uso de robots que no son tan fáciles de aprender en la
Academia o en el
Foro . Me alegraría si alguien se interesa o ayuda a responder preguntas relacionadas con el desarrollo de robots.