RPA – Moises Chirinos https://moiseschirinos.com Blog sobre RPA y tecnologia de automatizacion Thu, 28 Apr 2022 23:04:25 +0000 en-US hourly 1 https://wordpress.org/?v=6.5 RPA Sin Licencias – Cliente https://moiseschirinos.com/rpa/rpa-sin-licencias-cliente/ https://moiseschirinos.com/rpa/rpa-sin-licencias-cliente/#respond Thu, 28 Apr 2022 23:04:25 +0000 https://moiseschirinos.com/?p=32 Continue reading RPA Sin Licencias – Cliente]]> Uno de los componentes clave para cualquier solucion de RPA es el cliente de ejecucion.

Este componente puede ser cualquier software que sea capas de ejecutar remotamente acciones en un ordenador segun una logica ordenada y definida.

En general se pueden usar las propias capacidades del sistema operativo, Powershell, Bash, entre otros. Pero como recordaran RPA se trata de usar la interfaz de usuario y estos lenguajes tienen problemas para trabajar con Browsers y Grabacion de pantalla principalmente.

Hay diversas iniciativas de software que se pueden utilizar, de codigo abierto y para el caso de este experimento (en vez de construir una propia) vamos a utilizar https://robotframework.org

Robotframework provee de un marco de trabajo para automatizar en un lenguaje de scripting propio las tareas que requeramos, y ya se han desarrollado algunas utilidades como la integracion con Selenium y Apium que serian nuestras estrellas para la navegacion web y mobile.

No hay mucha documentacion disponible o sencilla de robotframework es bastante de la vieja escuela, librerias y modulos para documentar, pero no van a encontrar un tutorial como el de Heroes de angular.

¿Que necesitamos para usar robotframework?

Tener un equipo con Python

¿Como lo podemos instalar?

  • Primero necesitamos python: https://www.python.org/downloads/
  • Podemos usar estos comandos: pip install robotframework
  • Validamos la instalacion con : robot –version
  • Y ahora instalamos selenium: pip install –upgrade robotframework-seleniumlibrary
  • Y ahora los drivers de browsers con
    • pip install webdrivermanager
    • webdrivermanager firefox chrome –downloadpath . –linkpath .

¿Como funciona?

Robotframework funciona en base a archivos .robot

El archivo tiene diversas secciones, pero las relevantes inicialmente seran, las separaciones estan fuertemente tipadas por Tabs y espacios, asi que puede llevar algo de aprendizaje empirico acostumbrarse o un buen validador de sintaxis. (Yo estoy usando notepads para estas pruebas asi que pendiente recomendar uno)

  • *** Settings ***: Puede contener la informacion de RPA, descripcion, asi como sus dependencias
    • Documentation: Permite escribir la necesidad
    • Libraries: Permite incluir las librerias que incluye, normalmente selenium
    • Resources: Permite referenciar otros archivos .robot
  • *** Variables ***: Permite definir variables para esta ejecucion. Las variables se nombran con la siguiente sintaxis ${nombre}
  • *** Keywords ***: Permite definir funciones predefinidas para realizar ciertas acciones
  • *** Test Cases ***: Son el cojunto de pasos a ejecutar, cada grupo se le asigna un nombre.

Para nuestro ejemplo tengo dos archivos

resource.robot

*** Settings ***
Documentation   A file with variables.
...
...             some data

*** Variables ***
${SERVER}       duckduckgo.com
${BROWSER}      Chrome
${DELAY}        0
${QUERY}        hola
${QUERY_URL}    https://${SERVER}/
${VALID_TITLE}  DuckDuckGo — Privacy, simplified.
${VALID_URL}    https://duckduckgo.com/?q=hola&t=h_&ia=web

query.robot

*** Settings ***
Documentation     A test for a single query.
...
...               This test has a workflow that is created using keywords in
...               the imported resource file.
Library           SeleniumLibrary
Resource          resource.robot

*** Test Cases ***
Valid Navigation
    Open Browser    ${QUERY_URL}   ${BROWSER}
    Maximize Browser Window
    Set Selenium Speed    ${DELAY}
    Title Should Be       ${VALID_TITLE} 
    Input text            search_form_input_homepage    ${QUERY} 
    Click Button          search_button_homepage
    Location Should Be    ${VALID_URL}
    

¿Como ejecutar?

Una vez creados los archivos, posicionarse en una carpeta y ejecutar

webdrivermanager firefox chrome --downloadpath . --linkpath .
robot .

Y listo eso deberia generar su automatizacion (prueba) y sus resultados. (Quiza tengan que hacer algunos ajustes) y pueden explorar los archivos output.xml, log.html, report.html a su propio ritmo.

Simple, pero algunos detalles.

La libreria de selenium y robot framework tienen un grupo de palabras y funciones predefinidas para facilitar el trabajo como ‘Open Browser Param1 Param2’

Su referencia la pueden encontrar en : https://robotframework.org/robotframework/latest/libraries/BuiltIn.html

y para selenium en https://github.com/robotframework/SeleniumLibrary/

Conclusiones.

Robotframework debido a su alta portabilidad, y a su alta personalizacion puede actuar como nuestro cliente. En la gran foto, nosotros vamos a ser capaces de empaquetar robotframework en un Container Image de docker, conjunto a nuestro grupo de archivos .robot y ejecutar via Cron o via comando ‘robot .’ donde aplique. via nuestra implementacion de kubernetes.

Teniendo en consideracion que estaremos principalmente usando el modo headless de los browsers. Y/o control remoto sobre otros equipos Desktop pero con las capacidades de los archivos .robot

En futuros post haremos mas detalles sobre Robotframework, tambien es algo bastante nuevo para mi, para casos de usos mas extremos.

]]>
https://moiseschirinos.com/rpa/rpa-sin-licencias-cliente/feed/ 0
Soluciones de RPA https://moiseschirinos.com/rpa/soluciones-de-rpa/ https://moiseschirinos.com/rpa/soluciones-de-rpa/#respond Fri, 15 Apr 2022 00:49:47 +0000 https://moiseschirinos.com/?p=22 Continue reading Soluciones de RPA]]> El post de esta semana es un poco diferente al que planeaba en mi mente, la idea era tener una lista y un cuadro comparativo de productos de RPA, entre ellos UIPath, Automation Anywhere, Microsoft Power Automate, TruBot, Robotic Process Automation IBM (WDG) , Blue Prism. Entre algunos otros (Pueden revisar los links de cada uno). Con el fin de comparar, Sus costos, capacidades tecnicas, y tipos de licencias.

Sin embargo, cuando iba a hacer mi tabla comparativa, me di cuenta de lo mucho que detestaba, me deprimian, y desanimaban las paginas, sus precios y la forma de presentacion de la informacion (en mi opinion, nada de informacion util, y el consumidor objetivo debe ser bastante carente, alguien que espera magia), y dar una opinion negativa probablemente no sea la mejor idea para un blog referente y que esta empezando.

Por lo tanto voy a hablar de todos los productos a la vez, los diferentes tipos de licencias para los diferentes componentes a nivel general que pueden encontrar. Y la importancia de cada uno de los mismos al momento de tomar su desicion

Tambien encontraran una tabla con cada uno de los componentes mencionados y sus caracteristicas. No podran elegir pero si les da mayor sentimiento uno u otro, o su acesor de ventas pues siganlo.

Orquestador

Lo primero, el orquestador, Panel de Control, Centro de Control, Controlador, o cualquier otro nombre similar, como mencione en el articulo de introducion, normalmente un bot es un programa que ejecuta en un horario periodico en el tiempo, o bajo demanda. Pero esto debe ser indicado en algun lugar.

Estas configuraciones se hacen normalmente en una plataforma central, que gestiona cada Bot, asi como las cuentas de usuarios, cuentas de bots, dispositivos, y la mayoria de conexiones que realiza la plataforma.

Los vendedores la pueden vender de dos formas diferentes.

  • En Premisas (On Premise): Esto significa que nosotros los compradores vamos a adquirir equipos de computo fisicos o virtuales, y vamos a instalar su programa en nuestros equipos. Esto incluye bases de datos, sistemas operativos, conexiones de red, firewalls, proxies, etc. Y no necesariamente es inclusivo a los Dispositivos que ejecutan los bots. Ellos nos dan los instaladores, soporte, licencias, etc. Nosotros administramos nuestros equipos y su conectividad.
  • En Nube (SaaS): Esto significa que el orquestador principalmente va a estar en equipos de computo del proveedor. Y en algunas ocaciones nosotros podemos dar dispositivos para ejecucion de bots. Un punto adicional normalmente es considerablemente mas economico este tipo de servicios. Porque no se necesita llevar al infraestructura, y porque convenientemente las otras licencias son mas caras.

No todos los vendedores actuales aceptan el modo en premisas, por ejemplo Power Automate, esta diseñado como un software como servicio (SaaS). Podremos interconectar con OnPremise pero es Microsoft quien gestiona y opera el orquestador en su propia infraestructura.

¿Tengo que elegir entre En Premisas y Nube para mi caso de negocio o empresa? Puedes seguir esta lista de cotejo y llegar a tu propia conclusion.

  • ¿Puedo pagar la infraestructura, incluyendo su mantenimiento fisico o virtual?
    • Si la respuesta es que si, entonces es considerable el costo extra de llevar en premisas.
  • ¿Me interesa tener control de la infraestructura?
    • Si la respuesta es si, entonces debes ir En Premisas.
  • ¿Es importante que todos los datos que manejo esten en un perimetro fisico, por ejemplo por auditorias legales, como la de gobiernos?
    • Si la respuesta es si, entonces debes ir en premisas. (O revisar con un buen abogado y el proveedor de su eleccion)
  • ¿Mi compañia tiene estrictas politicas de comunicacion con provedores a traves de internet?
    • Si la respuesta es si, entonces deben indagar seriamente sobre los requisitos para usar nube.

Un punto adicional, normalmente estas plataformas incluyen uno o varios usuarios de configuracion o administracion como parte del precio. Pues es quien gestiona la plataforma,sus accesos y pago del mismo.

Bots desatendidos

Estas son conceptos, o licencias normalmente facturadas por ‘Usuario’, que permiten en un equipo remoto ejecutar un Bot. Este tipo de licencias significa que un usuario humano no monitorea o no es necesario para la ejecucion del bot.

Por lo tanto, un Bot desatendido es un equipo de computo (en premisa o nube) registrado en el Orquestador con un software cliente propietario. Al que el orquestador manda tareas a ejecutar, sin que un humano intervenga o pueda intervenir segun el proveedor.

Normalmente es una por equipo o usuario de ejecucion.

Bots Atendidos

Estos normalmente estan relacionadas a usuarios humanos, que necesitan ejecutar tareas en su PC local, o de forma remota, y esperar un resultado. Sus licencias tienden a ser mas costosas que las licencias de bots desatendidos pero es solo una casualidad.

De igual forma siempre requiere de un equipo de computo.

Cuentas de Desarrolladores

Normalmente son un tipo licencias que permiten acceder a una interfaz de usuario propietaria, comunmente de bloques para la construcion de los bots (bajo el concepto de low code). Y estos usuarios pueden ejecutar cualquier bot, y puede analizarlos, ejecucion paso a paso y otras actividades comunes del desarrollo de software.

Recuerden que un bot normalmente hace acciones de usuario final, por lo tanto estas herramientas tienen tecnicas avanzadas de grabacion de pantalla, acceso a openXml osea excel, word, powerpoint, acceso a navegadores como Google Chrome, Firefox, Opera, Internet Explorer, o Edge, acceso a bases de datos, y muchos otros (de hecho es algo de una competencia decir cuantos conectores o comandos tiene una plataforma) a traves de sus comodos bloques de ‘facil’ configuracion.

Y cabe mencionar que algunas soluciones pueden cobrar mas o menos segun la cantidad de conectores ustedes necesiten para desarrollar. Lo que significa que los Desarrolladores pueden ser de diferentes niveles.

No tienden a considerar como el flujo de usuario final, son un poco mas costosas, y tienden a tener algunas restricciones de ejecucion.

Otros conceptos de Licencias

Los paneles de control, pueden tener diversas funciones, y diferentes soluciones brindan diferentes costos y caracteristicas, normalmente relacionadas a:

  • Descubrimiento de Procesos: Son algunos tipos de interfaces, que escanean y/o reciben datos, de los pasos de un trabajo e indican si pueden ser automatizados en un bot. Comunmente validan que software se usa, o la forma de navegacion web, o tienen interfaces como UML para casos de uso, que ayudan a escribir el proceso. Son de gran ayuda para empresas que no tienen ni idea de que hacen. Los ayuda a ordenar su trabajo.
  • Descubrimiento de bots: Aveces escanean software, o programas y recomiendan automatizaciones. Es bien comun con SAP o entre migraciones de plataformas y bots.
  • Optimizacion de Costos: Para reducir los pasos de bots por ejemplo.
  • Modulos de Administracion de usuarios: Para gestion de roles y servicios
  • Modulos de Paneles y Visualizacion: Para la presentacion de datos y retorno de inversion.

Y puede que una o todas de estas licencias u otras funcionalidades, tengan un costo adicional para su proveedor.

Bots por Flujos

Es una combinacion de los bots desatendidos y atendidos, donde los usuarios pueden invocar el flujo y esperar una salida. Los vendedores cobran por cantidad de flujos y por tiempo de ejecucion.

Bots por Ejecucion

Algunos proveedores pueden decirles que pueden ejecutar y construir cuantos bots quieran pero les van a cobrar por el proceso de computo.

Paquetes de Productos

Entonces una solucion de RPA esta compuesta generalmente por los siguientes componentes que pueden existir y tener las siguientes caracteristicas:

ComponenteEn PremisasNubeLicencia por UsuarioLicencia Por Flujo
Orquestadorxx
Dispositivo de Botxxxx
Interfaz de Creacion de botsxxxx
Almacen de Datosxx
Visualizador de datosxxxx
Otrosxxx
Tabla de Componetes de RPA y algunas de posibles caracteristicas globales.

Conclusiones

Una solucion de RPA les va a brindar los componentes necesarios para que pueden crear bots, agendarlos en el tiempo o ejecutarlos en demanda, y puedan trabajar con ellos en conjunto o de forma aislada.

Todos los productos mencionados al inicio de este post, son de alta calidad, tienen soporte premium, son reconocidos, tienen multiples clientes, y soportan diferentes casos de uso.

Todos van a brindar esas caracteristicas globales con diferente palabreo, y caracteristicas unicas que los diferencia uno de otros ¿como pueden elegir la mejor solucion? Pues bien les tengo otra lista de validacion

  • ¿Tienen documentados aquellos procesos que necesitan la automatizacion paso a paso?
    • Antes de comprar cualquier solucion de RPA, asegurarse que sus procesos necesitan ser automatizados.
    • Es una mala estrategia, comprar y luego organizar, quiza a una empresa grande no le importa gastar ciento de miles de dolares antes de entender como funciona. Pero una empresa pequeña puede recibir un golpe financiero.
  • ¿Su plataforma tecnologia es compatible con el vendedor?
    • Por ejemplo si la mayor parte de su trabajo es a traves de Office 365, entonces la mejor decision seria usar Power Automate.
  • ¿Tiene sentido para la organizacion, empezar a preocuparse por el desarrollo de soluciones de negocio automatizadas?
    • Para cada proceso, ahora van a surgir nuevas preocupaciones, que van necesitar de un especialista de RPA. Que pueda gestionar la plataforma.
  • ¿Necesitan tener todo el software en premisas?
    • Referirse a la lista de En Premisas vs Nube.
  • ¿Una vez cotizan el costo de la solucion, proyectar si es mas eficiente, y rentable a largo plazo, que nuevos empleados que se dediquen a ello?
    • Normalmente la respuesta es que si es mas rentable y conveniente la automatizacion, Pero deben tener en cuenta que para cada solucion de RPA, van necesitar desarrolladores de RPA, que pueden ser mas costosos que los otros recursos que ejecutan la tarea.
  • ¿Se sienten comodos, con el vendedor? Es decir, ¿responde constantemente, el soporte valida sus opiniones?
    • Recuerden que una vez firman este contrato, es a muy largo plazo.

]]>
https://moiseschirinos.com/rpa/soluciones-de-rpa/feed/ 0
Introduccion a RPA https://moiseschirinos.com/rpa/introduccion-a-rpa/ Thu, 07 Apr 2022 22:21:03 +0000 https://moiseschirinos.com/?p=5 Continue reading Introduccion a RPA]]> La Automatización robótica de procesos, o Robotic Process Automation (RPA) o es un tema bastante popular en la industria moderna. En su concepto es básicamente la automatización de conceptos de negocio.

Un concepto más formal lo podemos conseguir en el siguiente link:

Una automatización robótica de procesos, o RPA (Robotic Process Automation), es una forma naciente de automatización de los procesos de negocio que replica las acciones de un ser humano interactuando con la interfaz de usuario de un sistema informático

Wikipedia

Esto puede se puede lograr mediante diferentes interacciones:

  • Humano a Robot: donde un individuo realiza una acción que desencadena en la ejecución de un robot.
  • Robot a Robot: donde una maquina se encarga realizar acciones para ser ejecutadas por otra máquina.
  • Robot a Humano: donde un robot se encarga de realizar una acción que va a ejecutar un humano.

Cualquiera de estas interacciones con el fin de lograr un trabajo.

Tipos de RPA

De igual forma los flujos de trabajo o grupos de tareas que ejecuta un robot, a los que normalmente acuñamos como ‘RPAs’, podrían clasificarse en:

  • Supervisados: Que ejecutan las tareas con supervisión de un humano, normalmente trabajando en el mismo espacio de trabajo (Ordenador personal)
  • No supervisados: Que ejecutan sus tareas sin interacción y sin monitoreo. Normalmente en forma aislada

Uso de RPA

Los RPA se consideran ‘robots’ de software que realizan un grupo de tareas en particular, sobre la misma interfaz de usuario que un humano. A diferencia de una aplicación de software común que se comunica vía APIs (Independientemente de su género).

Esto quiere decir que, si se utiliza Windows, o KDE, o Gnome, etc. El robot va a mover el puntero, abrir ventanas, hacer clics, escribir vía el teclado. Y necesita el mismo tipo de accesos que un operador humano.

Plataformas de RPA

Existen muchos vendedores de productos de RPA, entre los más populares están UIPath, Automation Anywhere, Power Automate Microsoft, Blueprint, IBM RPA, entre otros.

Estas plataformas brindan servicios similares, con el propósito de cumplir con los objetivos básicos de RPA.

  • Grabar acciones de una interfaz de usuario
  • Normalmente bajo el concepto ‘Low Code’
    • Esto incluye tener ‘conectores’ o interfaces con programas comunes como Excel, Word, Chrome, Explorador de Windows
    • Interfaces de usuario de autocompletado
    • Algún tipo de ‘Inteligencia artificial’.
  • Tener un controlador central que ejecuta y despliega robots.
  • Trabajar con un fuerte licenciamiento por Bot o Ejecución.
  • Llevar métricas de productividad.
    • Cuantos clics ‘ahorras’
    • Cuánto dinero por persona ‘ahorras’
    • Cuantos tecleado ‘ahorras’
    • Alguna otra métrica que signifique ‘ahorro’

Unidad Central o Control Room

Las plataformas también tienen algún un centro de comando, que normalmente es quien se encarga de conectar con Dispositivos, para ejecutar las tareas. Ya sea en demanda o de forma programada.

Las unidades centrales, también permiten funcionalidad básica de RBAC, y funcionalidad de paneles de control y consumo de licencias y computo.

Dispositivos o Ejecutores

Son las unidades que se conectan a la unidad central, y están disponibles para ejecutar las actividades. Pueden ser comúnmente ordenadores físicos o virtuales.

Diferencias con la automatización clásica

En general la principal diferencia son los fundamentos de la automatización, los productos de RPA están enfocados en usar la interfaz de usuario, para repetir tareas que realiza un operador humano.

Mientras que la automatización clásica, busca usar comunicaciones maquina a máquina mediante un API’s.

Y es esta misma naturaleza que lleva a los productos de RPA estar orientados a usuarios de negocio, no a desarrolladores de software. Y esto último revela

Posibles Problemas

Estos son básicos para un desarrollador de software, entre ellos yo me he encontrado con:

  • Las interfaces de diseño, normalmente no son exportables, te vinculan fuertemente.
  • Necesitan equipos dedicados para realizar ciertos tipos de tareas.
  • Necesitan configuraciones especiales sobre los sistemas operativos y sus sesiones.
  • Es considerablemente más lento que una interfaz vía API.
  • Lo cual requiere de más Dispositivos para realizar más acciones en paralelo. (Lo que eleva más su costo)
  • Debido a su propio ambiente de desarrollo, son rara vez interoperables entre proveedores
  • Debido a su vinculación con ambientes de creación cerrados y sus tendencias ‘low code’, el versionar código fuente y el trabajo colaborativo es sumamente básico.

Que son problemas originales del desarrollo de software al volverse masificado, o al tener muy alta demanda de servicios.

El desarrollo de robots

Este aspecto es muy positivo en todos los proveedores, la mayoría permite realizar las mismas conexiones a programas de usuario sin mayor problema. Y un robot queda totalmente en manos del usuario que lo genera, debería ser un usuario de negocio, pero estos no tienen tiempo comúnmente, lo cual lleva a un submercado de consultores y expertos que crean RPAs equivalentes a un desarrollador de software.

Así que dependiendo de su organización, y su rol, siempre van a ver anuncios y los van a contactar empresas que tercerizan este trabajo como gurús

¿Que se necesita para un robot exitoso?

  • Una lista de pasos claro.
  • Un caso de negocio exitoso
  • Mapear el tipo de valor que genera.

Con esa información, cualquier individuo podrá generar un robot.

En conclusión

Los RPA son un producto muy rico en capacidades, que puede aumentar la productividad de las personas de una empresa.

Son de fácil uso, y son configurables. Generando mayor ahorro de tiempo y costos.

Sin embargo, no siempre son la opción más viable, ni más económica. Es un intercambio entre horas útiles de un empleado para generar más valor contra costo de la automatización.

Otro punto adicional es que no son un ‘Jack of all trades’ están enfocadas a cierto tipo de usos, y en esos casos son excepcionales.

Muchas empresas según sus políticas cuestionables, pueden incluso orgullosamente, reemplazar las personas que tengan tareas simples como copiar archivos de una carpeta a otra por robots y retirar al recurso humano. Fallidamente porque luego necesita contratar a otra persona que monitoree al robot o haga otro trabajo similar o trabajos adicionales que hacia la persona que despidieron.

]]>