Lab · En el trabajo · iBuy / 6ave.com
Flujos de reportes de ventas
Flujos de Power Automate que guardan cada reporte de ventas por hora y diario en Google Drive en cuanto llega, donde el dashboard interno lo lee automáticamente.
- Estado
- En producción
- Quién lo usa
- El equipo que usa las vistas de ventas y ganancias de PublishOS.
- Hecho con
- Power Automate · Google Drive API (cuenta de servicio) · Node.js en Render · Upstash Redis
Arreglar la tubería, no el parser
Antes
Ahora
Nada se cuenta dos veces Archivos de ejemplo
- archivo Imported_Hourly↩ ya leído · se recuerda 30 días
- archivo report → archivo done_report→ lo borra el flujo de limpieza del lado del propietario
El problema
Los reportes de ventas llegan por correo. El servicio de correo del que dependía el dashboard empezó a rechazar mensajes grandes, así que los reportes dejaron de llegar y el historial de ventas se quedó en blanco. Hacía falta una vía sin límite de tamaño, sin cambiar los datos en los que el dashboard ya confiaba.
Cómo funciona
Correo → Drive
Un flujo guarda cada reporte como archivo en una carpeta de Drive y conserva una copia de archivo.
Revisado cada 15 minutos
El servidor revisa la carpeta con su propia cuenta de servicio.
El mismo parser de antes
Cada archivo nuevo pasa por el parser que usaba la vía del correo, así que la forma de los datos no cambió.
Nada se cuenta dos veces
Los archivos ya leídos se recuerdan durante 30 días, y las filas de pedidos se deduplican por contenido, así que los reportes por hora y diarios que se traslapan no cuentan doble.
Se limpia solo
Los archivos leídos se marcan como terminados, y un flujo de limpieza diario los elimina junto con todo lo que tenga más de tres días.
Historial reconstruido
Un flujo de relleno de una sola vez volvió a guardar los reportes anteriores para restaurar el historial, y después se apagó.
Salvaguardas
Solo lectura
El proceso solo lee la carpeta y ordena los archivos que ya leyó.
Claves en el servidor
La clave de la cuenta de servicio vive solo en la configuración del servidor, y los controles de estado y de ejecución manual requieren un token.
Notas de ingeniería
Arreglar la tubería, no el parser
Se conservó un solo parser y solo cambió la vía de entrega, así que nada más adelante tuvo que cambiar.
Permisos de Drive
Drive no deja que alguien que no es el propietario borre archivos, así que el servidor los renombra como terminados y un pequeño flujo del lado del propietario hace el borrado final.
Acumulados sin agotar la memoria
Después de que un acumulado grande dejó al servidor sin memoria, cada ejecución quedó limitada y el progreso se guarda después de cada archivo.
Columnas por nombre
El parser asigna las columnas por el nombre del encabezado, así que una columna nueva en el reporte ya no desplaza los datos.