BeaPro Framework¶
O BeaPro (BotCity Enterprise Automation Process) é um framework de automação pronto para produção, construído sobre o BotCity, que oferece gerenciamento de estado, tratamento estruturado de erros e integração com o BotCity Orchestrator.
Ele já vem com toda a estrutura necessária em funcionamento, e a integração com o BotCity Orchestrator é tratada para você, para que você possa focar na lógica de automação em si.
Funcionalidades¶
- Gerenciamento de Estado: Rastreamento integrado de contagens de sucesso/erro e status de execução
- Tratamento Estruturado de Exceções: Tratamento automático de exceções de negócio, exceções de sistema e solicitações de interrupção
- Logging Padrão: Logging em arquivo e no BotCity Orchestrator com timestamps
- Múltiplas Fontes de Dados: Suporte a arquivos CSV e BotCity Datapools
- Relatório de Erros: Captura de screenshots e reporte de erros ao BotCity Orchestrator
- Finalização Graciosa: Limpeza automática, upload de arquivos de resultado e conclusão de tarefas
- Capacidade de Reinicialização: Recuperação de exceções de sistema com reinicialização automática
- Estrutura Flexível: Todos os arquivos do framework estão na pasta
framework/, deixando espaço para seus próprios arquivos e módulos
Estrutura do Projeto¶
BeaPro/
├── bot.py # Orquestrador principal da automação
├── framework/ # Módulos principais do framework
│ ├── state.py # Gerenciamento de estado e configuração do BotCity SDK
│ ├── exceptions.py # Classes de exceção personalizadas
│ ├── datasources.py # Implementações de fontes de dados (CSV, Datapool)
│ ├── process.py # Lógica principal de automação
│ ├── initialize.py # Inicialização e configuração
│ ├── finalize.py # Limpeza e finalização
│ ├── status_handling.py # Handlers de exceção e sucesso
│ └── logger.py # Configuração de logging
├── build/ # Scripts de build
│ └── build.bat # Cria o arquivo .zip para implantação
├── requirements.txt # Pacotes necessários
├── .env # Variáveis de ambiente para testes locais
├── output/ # Logs e arquivos de resultado gerados
└── temp/ # Arquivos temporários (screenshots, etc.)
Fluxo de Tratamento de Exceções¶
Para cada item:
├─ Tenta: process_item(item)
│ ├─ Sucesso → register_success()
│ └─ Exceção:
│ ├─ InterruptException → handle_interrupt_requested() → PARA
│ ├─ BusinessException → handle_business_exception() → CONTINUA
│ └─ SystemException → handle_system_exception() → REINICIA → CONTINUA
└─ Próximo item