
El desarrollo moderno de las tecnologías de TI ha permitido frenar los enormes flujos de datos.
El negocio tiene varias herramientas: CRM, ERP, BPM, sistemas de contabilidad o, en casos extremos, solo Excel y Word.
Las empresas también son diferentes. Algunos están formados por muchas ramas separadas. En este caso, el negocio tiene un problema de sincronización de datos en el zoológico de sistemas de TI. Además, las sucursales difieren en los proveedores o las versiones de software. Y los cambios frecuentes en los requisitos de informes de la compañía administradora causan episodios de "alegría" incontrolada en el campo.
Esta historia trata sobre un proyecto en el que encontré un caos que necesitaba ser sistematizado y automatizado. Un presupuesto modesto y plazos ajustados limitaron el uso de la mayoría de las soluciones industriales, pero abrieron espacio para la creatividad.
Formato universal
El cliente estableció la tarea de recopilar datos para informes de todas las sucursales de la empresa. Para comprender la escala del desastre, hay docenas de sistemas, incluidos los hechos a sí mismos y los monstruos como SAP y, por supuesto, 1C, sin ellos.
En un informe, podrían cruzarse datos de: contabilidad, reparadores, especialistas en relaciones públicas, el Ministerio de Emergencias, meteorólogos.
Antes del inicio del proyecto, la mayor parte de los datos se enviaron a la empresa matriz por correo electrónico en forma de archivos adjuntos de Word / Excel. Además, el proceso se parecía a una puesta de sol de forma manual: los datos fueron procesados por personas especialmente capacitadas y se ingresaron en un par de sistemas. El resultado del trabajo fueron docenas de informes, sobre la base de los cuales se tomaron decisiones administrativas.
La elección del enfoque se debió al formato de los archivos transferidos, a saber, xlsx / docx. Incluso los sistemas "antiguos" en las sucursales soportaban la carga de datos a estos formatos, bueno, o en casos extremos, nadie canceló copiar y pegar.
Nuestro obstinado plan era este:
- describa la estructura de cada informe y las reglas para su transmisión;
- reducimos los requisitos para configurar sistemas de envío de documentos por correo electrónico de acuerdo con la normativa a las sucursales. Donde no hay sistemas: envío, como antes, a mano;
- Estamos desarrollando un programa que:
- selecciona ciertos documentos del correo entrante;
- extrae datos de ellos;
- escribe los datos extraídos en la base de datos, así como "golpeando" a los infractores de las regulaciones.

Implementación
Asuntos de organización
En la etapa de recopilación y formalización de los requisitos para la estructura y regulación de la transferencia de datos, resultó que no había una descripción de la estructura de los informes. Todo fue almacenado en la mente de algunos empleados y fue transmitido como cuentos populares rusos de boca en boca. Pero los problemas reales comenzaron más tarde, al configurar el intercambio de datos.
Problema uno
La diferencia entre la estructura de los documentos de la referencia y la calidad de los datos. En los informes, las cantidades a veces no convergían, las columnas se mezclaban o tenían nombres incorrectos. El problema se observó principalmente en las sucursales donde los datos se introdujeron manualmente.
La solución es la implementación de una verificación de tres pasos:
- Creación de documentos Excel de referencia con una estructura rígida, utilizando Excel mismo. En dichos documentos, solo las celdas de entrada de datos estaban disponibles. Sobre los cuales se impusieron controles adicionales: tipo, convergencia de importes, etc.
- Comprueba al extraer datos del informe. Por ejemplo, una comparación de la fecha actual y la fecha en un párrafo de un documento de Word o verificaciones aritméticas de datos de un documento de Excel (si no se pueden especificar en el documento mismo).
- Análisis profundo de datos después de la recolección. Por ejemplo, la detección de desviaciones significativas en indicadores clave en comparación con períodos anteriores.
Segundo problema
Una violación sistemática del cronograma de transferencia de datos o intentos sin escrúpulos de sabotaje: "En general, nunca enviamos datos a nadie, pero aquí estás con los míos ...", "Sí, envié todo a tiempo, probablemente sea un mal ping".
La solución es la retroalimentación. El sistema notifica automáticamente a las personas responsables en la sucursal en caso de una violación de horario. Más tarde, el subsistema de retroalimentación se atornilló al sistema de control de calidad de datos de entrada y al sistema de informe final, de modo que la sucursal recibiría inmediatamente un conjunto de sus datos y se compararía con los "vecinos".
Para dejar en claro por qué rastrilla.Subsistemas Desarrollados
- Configurador de tipos de documentos con datos, en los que puede describir rápidamente:
- signos para identificar el documento;
- regulaciones de transferencia;
- algoritmo de extracción de datos;
- otros atributos como la ruta al código que valida y almacena los datos.
- Un destinatario de correo que mueve los archivos adjuntos a un almacenamiento aislado (sandbox) y almacena información relacionada sobre la carta;
- Un analizador de archivos adjuntos que define tipos de documentos y extrae datos de ellos.

Configurador
Históricamente, todos los documentos con datos llegan al correo general, donde está lleno de otras cartas importantes y no tan importantes. Necesitamos signos por los cuales se determinarán los documentos necesarios. El nombre del documento o el texto en el cuerpo del correo electrónico es poco confiable e inconveniente para el remitente. Por lo tanto, se decidió que la membresía en el informe estará determinada solo por el contenido del documento. Además, debe determinar inequívocamente qué tipo de informe contiene el documento.
Se les ocurrió una lluvia de ideas sobre el rábano picante que sabe cuántos signos identificar un documento: el color del texto en una celda, fuente, etc. Pero lo más correcto fue el signo de la presencia de una subcadena en una determinada "ranura" de celda o una matriz de celdas para Excel y un párrafo o encabezado para Word. Se agregó una lógica formal simple para el "espacio": "igual", "desigual", "más", "menos", etc. Ejemplo para Excel: en el rango A2-E4, el texto de la celda debe ser igual a "Resumen diario de carga de equipo".

El área del documento en la que desea buscar el principio y el final de los datos se configura de manera similar (aprox. Condiciones para encontrar el final: 2 líneas en blanco en una fila).

Otras configuraciones útiles incluyen una lista de remitentes resueltos, un tipo de documento (Excel / Word) y una ruta para exportar datos.
En la salida, obtenemos una estructura JSON (plantilla) que describe el informe.
Destinatario de correo
Un lector de correo que coloca todos los documentos de los archivos adjuntos en la caja de arena, guarda los atributos de la carta y coloca los documentos en la cola de tareas para su análisis.
Hay 2 preguntas de seguridad:
- ¿Qué pasa si los datos se envían a otra sucursal?
- ¿Qué pasa si los atacantes envían los datos?
El primer problema se resuelve al conciliar la dirección de correo electrónico de la rama de envío y la rama especificada en el cuerpo del informe.
El segundo está usando
SPF .
Analizador de archivos adjuntos
Casi todas las bibliotecas para analizar Word y Excel tienen serias limitaciones en las versiones compatibles, por lo que, para empezar, el documento debe convertirse. Libre Office resuelve este problema por cinco.
Después de la conversión:
- filtramos una matriz de plantillas de acuerdo con las características básicas del configurador (Word / Excel, remitente ...);
- ejecute el documento con las plantillas restantes;
- Si se encuentra la plantilla, extraemos los datos y los transferimos al repositorio.
Resumen
Lo hicimos!
Después de dos meses de arduo trabajo, la oficina central comenzó a recibir regularmente datos para informes de todas las sucursales. Además, la calidad e integridad de los datos fue sin precedentes diferente de lo que era antes, y los recursos humanos liberados recuperaron los costos del proyecto a finales de año.
Para nosotros mismos, aprendimos que la integración no siempre es dolorosa y destacamos los principales aspectos del éxito:
- no entramos en sistemas en sucursales;
- formalizó y aprobó una estructura única de informes y reglamentos para su transmisión;
- plantillas creadas de formatos de salida generalmente disponibles para todos los sistemas en forma de documentos Excel y Word;
- eligió el método más común de entrega de datos: correo electrónico.
Y dos desventajas principales:
- Baja velocidad de entrega de datos.
- El tamaño del paquete de datos no debe exceder el tamaño de un archivo adjunto de correo electrónico normal.