Andrew Parra EN

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

Correo del reporte→Servicio de correo→✕ Rechazado: demasiado grande

Ahora

Correo del reporte→Power Automate → archivo en Drive→El servidor revisa cada 15 min→El mismo parser de antes→Dashboard

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
Se conservó un solo parser; solo cambió la vía de entrega, así que nada más adelante tuvo que cambiar.

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.