Automatización. SAP iRPA nació de la compra de la empresa francesa Contextor en 2018 y se presentó en el SAPPHIRE de ese año. Durante este tiempo, SAP ha estado trabajando para integrar la solución con sus productos y dentro de su plataforma de desarrollo Cloud SAP BTP. Por la experiencia que hemos tenido al usarla, podemos decir que el resultado es bastante satisfactorio.
Básicamente, SAP iRPA permite automatizar procesos de negocio que normalmente son repetitivos y que están basados en reglas. Cuenta con una especial integración diseñada para aplicaciones SAP, lo que permite acelerar el desarrollo de bots y simplificar la integración de la inteligencia artificial y el aprendizaje automático en el contexto SAP. La herramienta consta de varios componentes:
- Desktop Agent. El agente que se instala en el puesto de trabajo del usuario y permite ejecutar los scripts de automatización.
- Desktop Studio. Entorno de desarrollo para crear procesos de automatización.
- Cloud Factory. Contiene un conjunto de funcionalidades para desarrollar, definir el entorno de ejecución y monitorizar los procesos de automatización. De este componente, Cloud Studio es un entorno de desarrollo cloud que permite definir los escenarios de una forma más ágil.
SAP iRPA acelera el desarrollo de bots y simplifica la integración de la IA y el aprendizaje automático en un contexto SAP
Una de las grandes ventajas de SAP iRPA es la disponibilidad de elementos específicos para el ecosistema SAP, que permiten resolver con mayor agilidad todas las automatizaciones donde estén involucradas soluciones de este fabricante. De esta forma, dispone de librerías como SAP GUI SDK, SAP UI5 SDK o SAP Ariba SDK, que contienen una recopilación de actividades necesarias para la automatización en estos contextos.
Dispone de API para interactuar con todos los productos de la familia Office, ficheros de sistema operativo, interacción con ventanas Windows, navegadores web, tratamiento de ficheros PDF, etc. Además, SAP liberará el SDK para Outlook 365 a finales de 2021 y en 2022 hará lo propio con el SDK para Excel 365.
El soporte oficial de SAP es de muy alto nivel y las respuestas a dudas o errores son ágiles y personalizadas. Además, el grupo de desarrollo de producto está abierto a recibir sugerencias de nuevas funcionalidades o mejoras del producto.
Best practices y lecciones aprendidas
A partir de nuestras experiencias, veamos a continuación cuáles han sido las principales lecciones aprendidas y las mejores prácticas aplicadas para conseguir una implantación exitosa de este tipo de proyectos:
- Atención al usuario final. La automatización a través de bots es un proceso que normalmente viene esponsorizado desde el nivel directivo. Con él se persigue obtener tanto ventajas relacionadas con el ahorro de costes como mejoras para el negocio. En cuanto al usuario final, suele haber cierta resistencia al cambio, ya que habitualmente prefiere tener bajo control sus procesos. Sin embargo, este es un factor clave para el éxito de un proyecto de automatización.
Para conseguir la aceptación por parte del usuario, el flujo tiene que ser ante todo robusto, es decir, no debe crear estados inconsistentes que puedan generar problemas. Es muy importante involucrar al usuario desde el primer momento, explicándole en qué consiste la herramienta; también lo es escuchar sus sugerencias para hacerle partícipe en la definición y en el proceso de corrección de errores.
- Trazabilidad. Para aumentar el control por parte del usuario hay que considerar siempre definir un fichero de trazabilidad (normalmente un Excel) en el que se puedan comprobar de forma directa con mensajes claros y autoexplicativos los elementos procesados según los pasos del bot, sus estados de procesamiento y los posibles problemas que hayan surgido.
- Gestión de errores. En cualquier caso, en la primera iteración de desarrollo resulta casi imposible controlar todas las situaciones imprevistas. En este caso, el bot tiene que ser diseñado de tal forma que, si se encuentra con una situación inesperada, se pare y espere instrucciones del usuario final, o bien muestre un mensaje claro (popup) en caso de error.
El bot se debe diseñar teniendo en cuenta dos aspectos:
- Consistencia. En el caso de una interrupción del proceso, la situación de los datos tiene que ser consistente. Por ejemplo, no puede marcar o mover unos datos procesados en origen en tanto el proceso no haya finalizado correctamente su procesamiento.
- Reprocesabilidad. En el caso de interrupción del proceso, el usuario tendrá que poder reprocesar los datos volviendo a empezar desde el paso que ha generado el error, no desde el principio. Normalmente, esta característica se consigue diseñando un buen fichero de trazabilidad y basando la ejecución de los pasos de procesamiento en el fichero de traza. De esta forma, se podrá repetir el flujo requerido manteniendo siempre un estado consistente entre los datos.
- Procesos desatendidos. Un proceso de automatización necesita una fase de estabilización, en la que se va recogiendo el feedback del usuario y se corrige en el flujo de forma que se controlen situaciones inesperadas que no se habían detectado en las fases de diseño y desarrollo. Es aconsejable iniciar la ejecución del flujo en un proceso atendido, pero solo ejecutarlo en un modelo desatendido cuando la automatización se ha estabilizado.
- Concurrencia. En muchos casos se desea que varios usuarios tengan la posibilidad de ejecutar el mismo flujo de automatización con datos compartidos (carpetas, cuentas de correo, etc.). En estas situaciones, el flujo debe evitar la inconsistencia de datos por una ejecución paralela (por ejemplo, que un mismo dato sea procesado dos veces en paralelo e insertado dos veces en el sistema destino). En esta eventualidad hay que considerar mecanismos de sincronización o semáforos (por ejemplo, creando un simple fichero de lock) que eviten la ejecución paralela.
- Desktop virtual. Es importante considerar el uso de un desktop virtual para ejecutar los procesos de automatización, en vez del puesto de trabajo del usuario. Un desktop virtual proporciona varias ventajas:
- Tiene un entorno unificado de versiones de programa y ruta de ficheros, y minimiza el factor situación inesperada.
- Resuelve el problema del paralelismo, ya que se puede definir un usuario por cada grupo de automatización. En este caso, un solo usuario a la vez podrá entrar para ejecutar el flujo de automatización. Se evitan así posibles problemas derivados de una ejecución en paralelo.
- Es el entorno más natural para ejecutar procesos desatendidos. En una primera fase, se podrá efectuar una ejecución atendida en el desktop virtual para llevar a cabo su estabilización. Una vez que el flujo es suficientemente maduro, la ejecución desatendida en el desktop virtual será un paso natural que podrá ejecutarse sin interferir con las actividades de los usuarios.
- Variables de entorno. Es muy importante definir variables de entorno del proceso, de forma que un transporte de desarrollo a producción no implique ningún cambio en la definición del flujo. Ejemplos de variables de entorno pueden ser identificadores de los sistemas que se vayan a conectar o rutas de acceso a los datos. En este sentido, SAP iRPA tiene un sistema muy bien estructurado, que permite definir varios ambientes de ejecución con distintas variables de entorno.
Automatización para SAP
Otras características que se pueden destacar de SAP iRPA son su usabilidad y sencillez de manejo, además de la robustez o su Cloud Studio, un entorno ágil y potente para el desarrollo de automatizaciones. Todo ello, unido a la citada integración con SAPGui, SAPWebGui, SAP Fiori y SAP Ariba, facilita la puesta en marcha de RPA en un escenario de soluciones SAP.