Framework BeaPro¶
BeaPro (BotCity Enterprise Automation Process) es un framework de automatización listo para producción, construido sobre BotCity, que proporciona gestión de estado, manejo estructurado de errores e integración con BotCity Orchestrator.
Ya viene con toda la estructura necesaria en funcionamiento, y la integración con BotCity Orchestrator está resuelta para que puedas concentrarte en la lógica de automatización en sí.
Funcionalidades¶
- Gestión de Estado: Seguimiento integrado de conteos de éxito/error y estado de ejecución
- Manejo Estructurado de Excepciones: Manejo automático de excepciones de negocio, excepciones de sistema y solicitudes de interrupción
- Registro por Defecto: Registro en archivo y en BotCity Orchestrator con marcas de tiempo
- Múltiples Fuentes de Datos: Soporte para archivos CSV y BotCity Datapools
- Reporte de Errores: Captura de pantallas e informes de errores al BotCity Orchestrator
- Finalización Elegante: Limpieza automática, carga de archivos de resultado y finalización de tareas
- Capacidad de Reinicio: Recuperación de excepciones de sistema con reinicio automático
- Estructura Flexible: Todos los archivos del framework están en la carpeta
framework/, dejando espacio para tus propios archivos y módulos
Estructura del Proyecto¶
BeaPro/
├── bot.py # Orquestador principal de la automatización
├── framework/ # Módulos principales del framework
│ ├── state.py # Gestión de estado y configuración del BotCity SDK
│ ├── exceptions.py # Clases de excepción personalizadas
│ ├── datasources.py # Implementaciones de fuentes de datos (CSV, Datapool)
│ ├── process.py # Lógica principal de automatización
│ ├── initialize.py # Inicialización y configuración
│ ├── finalize.py # Limpieza y finalización
│ ├── status_handling.py # Manejadores de excepciones y éxito
│ └── logger.py # Configuración de registro
├── build/ # Scripts de compilación
│ └── build.bat # Crea el archivo .zip para despliegue
├── requirements.txt # Paquetes requeridos
├── .env # Variables de entorno para pruebas locales
├── output/ # Logs y archivos de resultado generados
└── temp/ # Archivos temporales (capturas de pantalla, etc.)
Flujo de Manejo de Excepciones¶
Para cada elemento:
├─ Intenta: process_item(item)
│ ├─ Éxito → register_success()
│ └─ Excepción:
│ ├─ InterruptException → handle_interrupt_requested() → DETIENE
│ ├─ BusinessException → handle_business_exception() → CONTINÚA
│ └─ SystemException → handle_system_exception() → REINICIA → CONTINÚA
└─ Siguiente elemento