Automatización VS Caos

imagen

La evolución de las tecnologías de TI permitió controlar grandes flujos de datos. Las empresas tienen muchas soluciones de TI: CRM, ERP, BPM, sistemas de contabilidad o al menos solo Excel y Word. Las empresas también son diferentes. Algunas de las empresas están compuestas por muchas sucursales. Pongamos nombre como "Pirámide". Las pirámides tienen un problema de sincronización de datos para la pila de sistemas de TI. Los vendedores y las versiones de software difieren significativamente para las sucursales. Además, la empresa de gestión modifica continuamente los requisitos de presentación de informes que provocan ataques de frustración en las sucursales. Esta es una historia sobre el proyecto en el que encontré un caos que necesitaba ser sistematizado y automatizado. El bajo presupuesto y los plazos ajustados limitaron el uso de la mayoría de las soluciones industriales existentes, pero abrieron espacio para la creatividad.

Formato de uso general


La empresa cliente estableció una tarea para recopilar datos de informes de todas las sucursales. Permítanme explicar la escala del desafío: hay docenas de sistemas, incluidos ambos: hechos a sí mismos y monstruos como SAP.

Un informe podría contener datos de: contadores, reparadores, gerentes de relaciones públicas, EMERCOM, meteorólogos.

Antes de que comenzara el proyecto, la mayor parte de los datos se enviaron por correo electrónico a la compañía principal como archivos adjuntos de Word / Excel. En adelante, parecía una puesta de sol hecha manualmente: los datos fueron procesados ​​manualmente por personal especialmente estudiado y puestos en un par de sistemas. Al final hubo docenas de informes que formaron la base de las decisiones de gestión.

La elección del enfoque fue solicitada por los formatos de archivos utilizados: xlsx / docx. Incluso el software heredado admite la carga de datos a estos formatos. Al menos copiar y pegar puede ser el último soporte para las ramas.

Entonces nuestro plan obstinado fue:

  1. Describa la estructura y el cronograma de cada informe.
  2. Proporcionar sucursales con informes de regulaciones. Las sucursales deben usar el software existente para enviar informes por correo electrónico. Si no hay software, envíe informes manualmente como antes.
  3. Desarrolle el sistema, que:

  • toma los documentos correctos de la bandeja de entrada del correo electrónico;
  • extrae datos de documentos;
  • escribe datos extraídos en DB y penaliza a los infractores de las regulaciones.

imagen

Implementación


Problemas no relacionados con el desarrollo


Durante la etapa de recopilación de requisitos, resultó que no hay una descripción de la estructura de los informes. Nada en absoluto La estructura del informe se almacenó en las cabezas de algunos empleados y se transfirió verbalmente como cuentos populares. Ese problema se resolvió con algunos esfuerzos, pero el verdadero desafío comenzó más tarde al configurar la etapa de intercambio de datos.

Primer número


Un par de días después del lanzamiento de la versión beta, revelamos una brecha entre la estructura de los documentos y el modelo del documento. Mala calidad de los datos: los informes tenían divergencias en las cantidades, las columnas estaban mezcladas o tenían un nombre incorrecto. Estos problemas ocurrieron principalmente en las sucursales donde los datos se recopilaron y se enviaron manualmente.

Solución: implementación de la verificación en tres pasos:

  1. Proporcionar ramas con muestras xlsx que tienen estructura fijada por herramientas de Excel. Solo las celdas disponibles en estas muestras fueron datos de entrada. Algunas celdas toman verificación adicional: tipo, una convergencia de sumas, etc.
  2. Verificación de datos durante la extracción. Por ejemplo, comparando la fecha actual y la fecha en el párrafo de Word, la verificación aritmética de datos para documentos de Excel (si no es posible establecerlo con las herramientas xlsx).
  3. Análisis profundo de datos después de la extracción. Por ejemplo, detección de desviaciones significativas por indicadores clave en comparación con períodos anteriores.

Segundo problema


Una violación sistemática de la programación de transferencia de datos o intentos de sabotaje sin escrúpulos: "Nunca enviamos ningún dato a nadie, y aquí estás con tu esto ...", "¡Envié todo! A tiempo! Probablemente no lo obtuviste debido a una mala latencia ".

La retroalimentación se convirtió en una solución. El software notifica automáticamente a las personas responsables en la sucursal en caso de violación del horario.

Algún tiempo después, el módulo de comentarios se conectó al módulo de verificación de calidad de datos y al módulo de generación de informes finales. De esta forma, la sucursal recibe de inmediato un resumen de sus propios datos y una comparación con las "sucursales vecinas". Entonces sería claro para una rama, por qué fue reprendida.

Módulos desarrollados


Herramienta de configuración de plantillas de informes, que describe:

  • atributos para identificar un informe;
  • regulaciones de transmisión;
  • algoritmo de extracción de datos;
  • otros atributos como la ruta al código que valida y almacena los datos.

Una aplicación de correo electrónico que mueve los archivos adjuntos a un almacenamiento aislado (sandbox) y almacena información asociada a las letras;

Un analizador de archivos adjuntos que identifica informes y extrae datos.

imagen

Herramienta de configuración


Históricamente, las cartas con informes se envían a la dirección de correo electrónico común, así como muchas otras cartas importantes o sin importancia. Es por eso que necesitábamos atributos para identificar los tipos de adjuntos de informes. El uso de cierto nombre de documento o texto en el cuerpo del correo electrónico no es confiable e incómodo para el remitente. Es por eso que decidimos que la identificación del informe estará determinada solo por un contenido.

La lluvia de ideas resultó en un conjunto de atributos para identificar el tipo de informe por contenido: color del texto de la celda, fuente, etc. Pero la forma más adecuada es una presencia de subcadena en una determinada celda: "ranura" o en una matriz de celdas para Excel. Para Word usamos párrafo o título.

Agregamos una lógica de comparación simple para el "espacio": "igual", "desigual", "más", "menos", y así sucesivamente. Ejemplo para el informe de Excel: en el rango de A2-E4, el texto de la celda debe ser igual a "Informe de carga diaria del equipo".

imagen

De manera similar, configuramos el área de búsqueda para el principio y el final de los datos.

A continuación se muestra un ejemplo de condición de búsqueda para el final de datos: "2 líneas en blanco en una fila".

imagen

Algunas otras configuraciones: una lista de remitentes permitidos, un tipo de documento (Excel / Word), una ruta para la exportación de datos.

El resultado es la estructura JSON (plantilla) que describe el informe.

Solicitud de correo electrónico


Esta aplicación es un lector de bandeja de entrada de correo electrónico que coloca todos los archivos adjuntos en el sandbox, guarda los atributos del correo electrónico y establece los archivos adjuntos en la cola de análisis.

Nos enfrentamos a 2 problemas de seguridad:

  1. ¿Qué sucede si el nombre de la sucursal en el informe se sustituye accidentalmente (o no) con otro nombre de sucursal?
  2. ¿Qué pasa si el informe es enviado por intrusos?

El primer problema se resuelve comprobando la dirección de correo electrónico del remitente de la sucursal y el nombre de la sucursal especificado en el cuerpo del informe.

El segundo problema se resuelve usando SPF .

Analizador de archivos adjuntos


Casi todas las bibliotecas de análisis de Word y Excel solo admiten ciertas versiones / extensiones. Es por eso que decidimos usar la conversión "Libre Office" para llevar los archivos a un solo formato. Por ejemplo, entradas: odt, doc, docx (2007, 2010, 2013) ... convertir a docx (2016).

Después de la conversión:

  1. filtramos una matriz de plantillas de informes basadas en los atributos básicos, como Word o Excel, el remitente pertenece a la lista permitida;
  2. amenazar el informe con las plantillas restantes;
  3. si un informe coincide con la plantilla, extraiga los datos y transfiéralos al repositorio.

Reanudar


Lo logramos!

Después de dos meses de arduo trabajo, la oficina central comenzó a recibir datos para informes de todas las sucursales de manera regular.

La calidad y la integridad de los datos se vuelven sin precedentes mejor de lo que era antes. El software implementado ha liberado recursos humanos que pagaron los costos del proyecto para fin de año.

Para nosotros mismos, aprendimos que el proceso de integración no siempre es doloroso y hemos identificado los principales aspectos del éxito:

  1. no entramos dentro de los sistemas en las ramas;
  2. formalizamos y aprobamos una estructura de informes unificada y un calendario de transferencias;
  3. hicimos muestras de salida para cada tipo de informe con verificación incorporada;
  4. Utilizamos la forma más común de entregar datos: un correo electrónico.

Como última palabra, este enfoque tiene dos inconvenientes principales:

  1. baja velocidad de entrega de datos;
  2. El tamaño del paquete de datos no debe ser mayor que el archivo adjunto promedio de correo electrónico.

Source: https://habr.com/ru/post/es436240/


All Articles