SageConnect — Tech Deep Dive
Automatizando la Integración ERP para 200+ Empleados
Stack Tecnológico
Arquitectura
Flujo de Datos
- 1
El procesador en segundo plano se ejecuta por calendario (Task Scheduler o intervalo PM2)
- 2
Para cada tenant: consulta tablas MSSQL de Sage 300 para nuevas OCs, pagos y datos de proveedores
- 3
Construye y valida payloads usando esquemas Joi y transformadores personalizados
- 4
Envía órdenes de compra, pagos y datos de proveedores a la API REST del Portal de Proveedores
- 5
Descarga CFDIs y datos de proveedores desde la API del Portal al almacenamiento local
- 6
Ejecuta proceso externo de importación de CFDI para cargar facturas en Sage 300
Patrones de Código
Procesamiento Secuencial Multi-Tenant
Procesa múltiples empresas secuencialmente en un solo proceso Node.js. Cada tenant tiene su propia base de datos Sage 300, credenciales de API del Portal y RFC — configurados mediante variables de entorno separadas por comas.
Runtime de Doble Modo
Una sola aplicación se ejecuta en tres modos: solo-web (dashboard Express en puerto 3030), solo-background (8 controladores de sincronización), o combinado. PM2 o Windows Task Scheduler orquesta los ciclos de ejecución.
Arquitectura de Pipeline de Controladores
Ocho controladores especializados se ejecutan secuencialmente por tenant: Sync de Proveedores, Descarga de CFDI, Verificación de Pagos, Carga de Pagos, Creación de OC, Actualizaciones de OC, Cierre de OC y Cancelación de OC — cada uno manejando una responsabilidad de sincronización.
Métricas del Sistema
Próxima Evolución
El sistema actual depende de un ejecutable externo de Windows (ImportaFacturasFocaltec.exe) para importar CFDIs a Sage 300 — una caja negra sin retroalimentación estructurada de errores, sin seguimiento por factura, y sin correlación entre XMLs procesados y batches creados.
La siguiente evolución reemplaza este ejecutable completamente integrando directamente con la Web API REST de Sage 300. Esto elimina la dependencia de Windows, habilita manejo granular de errores por factura, y hace todo el flujo de datos observable y testeable desde Node.js.
Esta migración también aborda gaps críticos de confiabilidad: pagos que se suben al portal antes de confirmar la importación de CFDI, fallas silenciosas en inserts de tablas de control, y corrupción de XML por condiciones de carrera en el pipeline de inyección de addenda.
¿Quieres resultados similares para tu proyecto?