jueves, 6 de junio de 2024

UI Vision RPA . Un ejemplo de captura de datos desktop windows

 1. Instalar la extensión UI Vision en Chrome, y ejecutarla

Ir a la URL de Exteniones Chrome  y buscar "UI Vision"


Una vez se instala aparece el icono de uivision, haciendo doble click sobre el se ejecuta

Y se abre la aplicación


2. Configurar la aplicación

Le damos al icono de configuración


2.1 Seleccionar el tipo de aplicación desktop o Browser

Vamos a la pestaña Vision. En este caso empezamos con una aplicación tipo desktop. En Linux hay que tener cuidado pues el capturador de imagenes es Shutter y parece ser que la version de Shutter para las últimas versiones de Ubuntu no funciona bien. 

Es importante establecer el parametro wait alrededor de 3 segundos o tal vez un poco mas para que de tiempo de seleccionar opciones de las listas desplegables




Se debe de instalar el Screen Capture Module

Para instalarlo en windows requiere que se haga como administrador

2.2 Configurar donde se guardan los ficheros

En la pestaña XModules, inidcar el Home Folder


Salimos de Settings y en Storage Mode elegimos File System (on hard Drive) así tenemos más control de los scripts.



2.3 Generar el fichero autostart

Vamos a la pestaña API. Este fichero es muy importante si queremos ejecutar las macros de forma desantedida con un shell script. Para ello vamos a API y Generate Autsctart HTML y la guardamos en una carpeta nueva que en my caso llamo MyShells


3. Comandos básicos

3.1 XType: Teclear

   {
      "Command": "XType",
      "Target": "${KEY_WIN+KEY_HOME}",
      "Value": "",
      "Description": "Amb Win-Home minimitzem la resta de finestres"
    }

Para el caso de combinación de teclas especiales

Ejemplo 1: Enviar Windows-Home para minimizar todas las pantallas menos la actual. En target indicar:

${KEY_WIN+KEY_HOME} 

Ejemplo 2: Enviar texto. En target coloacar el texto como Hola 


3.2 pause: Esperar milisegundos

   {
      "Command": "pause",
      "Target": "6000",
      "Value": "",
      "Description": "Esperem 6 segons a que es carregue l'aplicació"
    }

Esperamos a que se ejecute algo 


3.3 XClick: Dar click o doble click sobre una imagen   

      "Command": "XClick",
      "Target": "certificatedu5_dpi_96.png",
      "Value": "#doubleclick",
      "Description": "Fem doble click sobre el certificat"
    }

Hacemos click (Value="") o doble click (Value="#doubleclick") sobre una imagen que hemos capturado y guardado. Para capturar la imagen hay que  darle al botón "Select" en el Target


3.4 XClickRelative: Dar click o doble click sobre una parte de una imagen 

      "Command": "XClickRelative",
      "Target": "certificatedu5_dpi_96.png",
      "Value": "#doubleclick",
      "Description": "Fem doble click sobre el certificat"
    }

Hacemos click (Value="") o doble click (Value="#doubleclick") sobre una imagen que hemos capturado y guardado. Para capurar la imagen hay que  darle al botón "Select" en el Target.

Pero tenemos que definir las zonas de búsqueda y de click

Para ello buscamos el fichero que hemnos guardado y lo buscamos en la parte inferior (en este caso el fichero lo guardamos como "NomExcel_dpi_96.png") Basta con buscar por "Nom_Excel",

Aparecerá un poco más abajo y le damos al icono del ojo


Aparece una especie de editor donde le marcamos con un cuadro verde una subimagen de la imagen que nos servira de referencia para localizar la zona donde tenemos que hacer el click que marcaremos con un cuadro rosa. Hay que tener paciencioa pues le cuesta seleccionar las zonas y hay que probar varias veces.


4. Escript generado para descargar una excel del padrón de habitantes

{
  "Name": "Excel_Padro2",
  "CreationDate": "2024-6-6",
  "Commands": [
    {
      "Command": "XType",
      "Target": "${KEY_WIN+KEY_HOME}",
      "Value": "",
      "Description": "Amb Win-Home minimitzem la resta de finestres"
    },
    {
      "Command": "XType",
      "Target": "${KEY_WIN+KEY_M}",
      "Value": "",
      "Description": "Amb Win-M minimitzem totes finestres"
    },
    {
      "Command": "XClick",
      "Target": "Poblacion_Icon_dpi_96.png",
      "Value": "#doubleclick",
      "Description": "Escriptori-Icono Poblacion-2Clck"
    },
    {
      "Command": "pause",
      "Target": "7000",
      "Value": "",
      "Description": "Esperar Carregar App Interpublica"
    },
    {
      "Command": "XClick",
      "Target": "Interpublica22_dpi_96.png",
      "Value": "#doubleclick",
      "Description": "Capçalera Pantalla Certificat-2Click"
    },
    {
      "Command": "XClick",
      "Target": "certificatedu5_dpi_96.png",
      "Value": "#doubleclick",
      "Description": "Certificat Edu-2Clck"
    },
    {
      "Command": "pause",
      "Target": "6000",
      "Value": "",
      "Description": "Esperar càrrega App Padró"
    },
    {
      "Command": "XClick",
      "Target": "Tancar_dpi_96.png",
      "Value": "#doubleclick",
      "Description": "Tancar missatge informatiu certificats"
    },
    {
      "Command": "XClick",
      "Target": "Poblacio2_dpi_96.png",
      "Value": "#doubleclick",
      "Description": "Poblacio Icona-2Click"
    },
    {
      "Command": "XClick",
      "Target": "Tancar_dpi_96.png",
      "Value": "#doubleClick",
      "Description": "Tancar missatge informatiu certificats altra vegada"
    },
    {
      "Command": "XClick",
      "Target": "documentsllistes2_dpi_96.png",
      "Value": "#doubleclick",
      "Description": "Documents i LListes-2Click"
    },
    {
      "Command": "XClick",
      "Target": "DocumentsILlistesDropDown_dpi_96.png",
      "Value": "#doubleclick",
      "Description": "documents i llistes DROPDOWN- Click"
    },
    {
      "Command": "XClick",
      "Target": "GeneradorDeLlistats_dpi_96.png",
      "Value": "",
      "Description": "Generador de llistats-Click"
    },
    {
      "Command": "XClickRelative",
      "Target": "Filtres_Nom_dpi_96.png",
      "Value": "",
      "Description": "Localitzar Camp Nom de filtres-ClickRelaticve"
    },
    {
      "Command": "XType",
      "Target": "EDU:Padro Rolan",
      "Value": "",
      "Description": "Escrivim EDU:Padro Rolan"
    },
    {
      "Command": "XClick",
      "Target": "Lupa_dpi_96.png",
      "Value": "",
      "Description": ""
    },
    {
      "Command": "XClick",
      "Target": "EDU_Padron_dpi_96.png",
      "Value": "",
      "Description": "Llistat EDU_PADRO..-Click"
    },
    {
      "Command": "XClick",
      "Target": "Veure_dpi_96.png",
      "Value": "",
      "Description": "Veure-Click"
    },
    {
      "Command": "XClick",
      "Target": "Acceptar_dpi_96.png",
      "Value": "",
      "Description": "Boto Acceptar-Click"
    },
    {
      "Command": "pause",
      "Target": "30000",
      "Value": "",
      "Description": "Esperar que es carregue Open Office"
    },
    {
      "Command": "XClick",
      "Target": "Archivo_dpi_96.png",
      "Value": "",
      "Description": "Menu-Archivo-Click"
    },
    {
      "Command": "XClick",
      "Target": "Guardar_Como_dpi_96.png",
      "Value": "",
      "Description": "Drop Down Guardar Como-Click"
    },
    {
      "Command": "XType",
      "Target": "Z:\\A0-003_INFORMATICA\\ASS\\ASS2024\\AS2024-0042_Padro_habitants_policia\\PH_ROLAN_ODOO.xlsx",
      "Value": "",
      "Description": "Esborra nom excel proposat"
    },
    {
      "Command": "XType",
      "Target": "${KEY_DEL}",
      "Value": "",
      "Description": "Nom de Full Excel Exportat"
    },
    {
      "Command": "XClick",
      "Target": "Guardar_dpi_96.png",
      "Value": "",
      "Description": ""
    },
    {
      "Command": "XClick",
      "Target": "Si_dpi_96.png",
      "Value": "",
      "Description": ""
    },
    {
      "Command": "pause",
      "Target": "10000",
      "Value": "",
      "Description": ""
    },
    {
      "Command": "XClick",
      "Target": "X_dpi_96.png",
      "Value": "",
      "Description": ""
    },
    {
      "Command": "pause",
      "Target": "3001",
      "Value": "",
      "Description": ""
    },
    {
      "Command": "XClick",
      "Target": "Tancar1_dpi_96.png",
      "Value": "",
      "Description": ""
    },
    {
      "Command": "XClick",
      "Target": "eixirInterpublica_dpi_96.png",
      "Value": "",
      "Description": ""
    },
    {
      "Command": "XClick",
      "Target": "eixirIconInterpublica_dpi_96.png",
      "Value": "",
      "Description": ""
    }
  ]
}


5. Ejecutar el programa con el asistente

Se puedeejecutar paso a paso (Step) o todo (Play Macro)


6.  Ejecutar como un shell script

Tal como se explica en las instrucciones hay que ejecutar el navegador al que le pasamos la ruta del fichero generado en el punto 2.1 y la ruta de la macro.

En Windows tenemos:

  1. Ruta de chrome: "C:\Program Files\Google\Chrome\Application\chrome.exe"
  2. Ruta del fichero: En mi caso: C:/Users/eduard/Desktop/uivision/MyHtml/ui.vision.html
  3. Nombre macro: En mi caso: Excel_Padro2
  4. Fichero log: En mi caso: =C:/Users/eduard/Desktop/uivision/MyLogs/log1.txt
Para que se cierre el Chrome automáticamente hay que hacer lo que dice Plankton que es añadir al final de la orden  &closeRPA=1 &closeBrowser=1"

El fichero batch en Windows será "ExecuteExcel_Padro2.bat" que lo hemos creado dentro "Desktop/uivision/MyShells"

REM Executem el UI.VISION RPA macro Excel_Padro2
"C:\Program Files\Google\Chrome\Application\chrome.exe" "file:///C:/Users/eduard/Desktop/uivision/MyHtml/ui.vision.html?direct=1&macro=Excel_Padro2&savelog=C:/Users/eduard/Desktop/uivision/MyLogs/log1.txt&closeRPA=1&closeBrowser=1"

Para que se va mas claro:

REM Executem el UI.VISION RPA macro Excel_Padro2
"C:\Program Files\Google\Chrome\Application\chrome.exe" 
  "file:///C:/Users/eduard/Desktop/uivision/MyHtml/ui.vision.html
    ?direct=1
    &macro=Excel_Padro2
    &savelog=C:/Users/eduard/Desktop/uivision/MyLogs/log1.txt
    &closeRPA=1
    &closeBrowser=1
  "


Ejecutamos y nos sale un error


Vamos a "Settings" o Ajunstes de Chrome con los 3 puntitos verticales a al parte superior derecha. Después vamos a "Extensions" en el menu de la izquierda. Apretamos el botón de "Detalles" de UI.Vision.RPS y activamos "Allow access to file URLs"


Además pueden salir mas errores. Hay un error que me sale que es que un botón a veces cambia de color pasando de un gris azulado a azul oscuro. Cuando intento coger la imagen del botón mediante el UI Vision, entonces cambia de color. Para ello utilizo otro capturador de imágen y guardo la imagen y luego la importo. Y en la macro le digo que haga click tanto en la imagen azul oscura como el la gris azulada.

7.  Ejecutar como un shell script todos los dias

Se configurará con tareas programadas

Vamos a tareas programas de Wiondows y Creamos una nueva carpeta haciendo click rerecho sobre "Biblioteca del Programador de tareas" y creamos una carpeta llamada EDU


Dentro de esa carpeta creamos otra que se llama EDU-Captura-PADRON de la misma manera que hemos operado antes


Seleccionamos esa carpeta y ya le damos a Crear tarea básica



    Le damos nombre y descripción


Le damos siguiente y le decimos que se ejecute diariamente y siguiente y le damos las hora y siguiente

En acción le decimos que inicie un programa
Y seleccionamos el programa


Le damos a finalizar y en la pestaña de mostrar propiedades le decimos que si.

Y hay que decirle que se ejecute solo si el usuario ha iniciado la sesión, pues en caso contrario jecuta elproceso en background y nuestri RPA no funciona bien pues no tiene pantallas donde trabajar




Veamos el resto de pantallas per hay que comprobar que acción se desencadena



Y también debemos controlar si dura más de la cuenta y finalizarla si tarda mas de una hora en este caso.


Ahora ya la tenemos en dicha carpeta 


Y si queremos ejecutarla, hacemos click derecho sobre la tarea y la ejecutamos.





8. Anexo


Para que se liste las tareas programadas, se ejecuta:

Schtasks /Query /FO LIST /V > mytasks.txt

y al mismo tiempo se guarda en el fichero "mytasks.txt" pues hay muchas










 















No hay comentarios :

Publicar un comentario