Librería para automatización de tareas en RPA dentro de Grupo Los Grobo
Project description
glgrpa
glgrpa es una librería diseñada para automatizar tareas relacionadas con RPA (Robotic Process Automation) dentro del entorno del Grupo Los Grobo. Esta librería proporciona herramientas para interactuar con navegadores web, manejar archivos Excel, gestionar descargas y realizar operaciones específicas en aplicaciones como ARCA.
Instalación
Puedes instalar la librería directamente desde PyPI (cuando esté publicada) utilizando pip:
pip install glgrpa
Características
- Automatización de Navegadores : Basado en Selenium, permite interactuar con elementos web, realizar clics, ingresar texto, manejar ventanas y más.
- Gestión de Descargas : Facilita la organización y limpieza de carpetas de descargas personalizadas.
- Manejo de Archivos Excel : Permite leer archivos Excel y convertirlos en DataFrames de pandas.
- Interacción con ARCA : Automatiza tareas específicas en la plataforma ARCA, como el inicio de sesión, selección de relaciones y descarga de cartas de porte electrónicas.
- Terminal y Logs : Incluye herramientas para mostrar mensajes en la consola con colores y formatos para facilitar el seguimiento de la ejecución.
Estructura del Proyecto
La librería está organizada en los siguientes módulos:
src/Terminal: Proporciona herramientas para mostrar mensajes en la consola y gestionar tiempos de espera.src/Chrome: Contiene funcionalidades para interactuar con el navegador Chrome utilizando Selenium.src/Windows: Maneja operaciones relacionadas con el sistema de archivos en Windows, como mover archivos y crear estructuras de carpetas.src/Excel: Facilita la lectura de archivos Excel.src/ARCA: Incluye clases específicas para interactuar con la plataforma ARCA.
Uso
Ejemplo de Uso Básico
from glgrpa.src.ARCA.Cartas_de_porte_electronicas.AplicativoCartasDePorteElectronicas import AplicativoCartaDePorteElectronica
# Inicializar la clase
app = AplicativoCartaDePorteElectronica(dev=True)
# Abrir navegador y navegar a ARCA
app.abrir_navegador()
app.navegar_inicio()
# Ingresar credenciales
app.ingresar_credenciales()
# Cambiar relación
app.cambiar_relacion("Nombre de la relación")
# Descargar cartas de porte
cpe_list = app.obtener_listado_cpe()
for cpe in cpe_list:
app.descargar_carta_de_porte(cpe)
Leer un Archivo Excel
from glgrpa.src.Excel.Excel import Excel
# Leer un archivo Excel
excel = Excel("ruta_del_archivo.xlsx")
dataframe = excel.leer_excel("NombreHoja")
print(dataframe)
Resolución de Rutas para Tareas Programadas
Al ejecutar aplicaciones empaquetadas (.exe) desde tareas programadas de Windows, es común que ocurra un problema de duplicación de rutas donde el directorio de trabajo actual no es el mismo que el directorio del ejecutable.
Problema Común
❌ Error: No se encontró el archivo de variables de entorno:
C:\Trabajadores Virtuales\GLGRPA - CONTABILIDAD - RODOLFO\ap1_TipoCambioSAP\ap1_TipoCambioSAP\.env.production
Solución
La librería glgrpa incluye métodos utilitarios para resolver este problema:
import os
from glgrpa import ControlEjecucion
from dotenv import load_dotenv
# ✅ Forma correcta de cargar variables de entorno
ruta_env = ControlEjecucion.resolver_ruta_variables_entorno('.env.production')
if os.path.exists(ruta_env):
load_dotenv(ruta_env)
print(f"✅ Variables cargadas desde: {ruta_env}")
else:
print(f"❌ No se encontró archivo: {ruta_env}")
# ✅ Para otros tipos de archivos de configuración
from glgrpa.Windows import Windows
ruta_config = Windows.resolver_ruta_archivo('config.ini')
ruta_datos = Windows.resolver_ruta_archivo('datos.json')
Uso con ControlEjecucion
from glgrpa import ControlEjecucion
import os
from dotenv import load_dotenv
@ControlEjecucion.decorador_ejecucion_controlada(
intentos_maximos=3,
permitir_multiples_ejecuciones_diarias=False,
email_destinatarios=['admin@empresa.com'],
smtp_server='smtp.outlook.com',
smtp_port=587,
smtp_username='robot@empresa.com',
smtp_password='password'
)
def mi_proceso_rpa():
# Cargar variables de entorno correctamente
ruta_env = ControlEjecucion.resolver_ruta_variables_entorno()
if os.path.exists(ruta_env):
load_dotenv(ruta_env)
# Tu lógica de automatización aquí
pass
if __name__ == "__main__":
mi_proceso_rpa()
Configuración de Tareas Programadas
Para evitar problemas con tareas programadas, asegúrate de configurar:
- Directorio de inicio: Configura que la tarea programada inicie en el directorio donde está el
.exe - Permisos: Ejecutar con privilegios de usuario apropiados
- Sesión interactiva: Para procesos RPA que requieren GUI, asegurar sesión de escritorio activa
Requisitos
Los requisitos de la librería están especificados en el archivo requirements.txt:
seleniumpandascoloramaopenpyxloffice365-rest-python-client
Autor
Gabriel Bellome < gabriel.bellome@losgrobo.com >
Licencia
Este proyecto está bajo una licencia privada y es propiedad del Grupo Los Grobo.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file glgrpa-0.0.94.tar.gz.
File metadata
- Download URL: glgrpa-0.0.94.tar.gz
- Upload date:
- Size: 58.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6565d0a6d20d5472a0fc4030b781401d0d30a2ec58829be1b536a05e155408fa
|
|
| MD5 |
d9ef9548d8645363fb7298b78c62f1c9
|
|
| BLAKE2b-256 |
cb6e2e218258bfda82dd5e41fa56eb3774eb10614cf4efb8d6bd6b8769cac279
|
File details
Details for the file glgrpa-0.0.94-py3-none-any.whl.
File metadata
- Download URL: glgrpa-0.0.94-py3-none-any.whl
- Upload date:
- Size: 62.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f0c978d9303323035d2187ed4e76b2b8f954bad6ca71c834e6796543a9cf20f8
|
|
| MD5 |
4cdb95a055e39afa51b6e718fd5526f8
|
|
| BLAKE2b-256 |
7a90bff9ec004862c1203445d055b0780adf3ce2b1c3b94f132e262ab24141af
|