
Le développement moderne des technologies informatiques a permis de limiter les énormes flux de données.
L'entreprise dispose de divers outils: CRM, ERP, BPM, systèmes comptables, ou dans des cas extrêmes juste Excel et Word.
Les entreprises sont également différentes. Certains sont constitués de nombreuses branches distinctes. Dans ce cas, l'entreprise a un problème de synchronisation des données dans le zoo des systèmes informatiques. De plus, les succursales diffèrent en termes de fournisseurs ou de versions de logiciels. Et les changements fréquents dans les exigences de rapport de la société de gestion provoquent des accès de «joie» incontrôlés sur le terrain.
Cette histoire concerne un projet dans lequel il m'est arrivé de rencontrer un chaos qui devait être systématisé et automatisé. Un budget modeste et des délais serrés ont limité l'utilisation de la plupart des solutions industrielles, mais ont ouvert la voie à la créativité.
Format universel
Le client a défini la tâche de collecte des données pour les rapports de toutes les succursales de l'entreprise. Pour comprendre l'ampleur de la catastrophe, il existe des dizaines de systèmes, y compris des self-made et des monstres tels que SAP, et, bien sûr, 1C - où sans lui.
Dans un rapport, les données de: tenue de livres, réparateurs, spécialistes des relations publiques, ministère des Urgences, météorologues pourraient se recouper.
Avant le démarrage du projet, la majeure partie des données a été envoyée à la société mère par e-mail sous forme de pièces jointes Word / Excel. De plus, le processus ressemblait à un coucher de soleil manuel: les données étaient traitées par des personnes spécialement formées et entrées dans deux systèmes. Le résultat de ce travail a été des dizaines de rapports, sur la base desquels des décisions de gestion ont été prises.
Le choix de l'approche a été motivé par le format des fichiers transférés, à savoir xlsx / docx. Même les systèmes «anciens» des succursales prenaient en charge le téléchargement de données vers ces formats, ou, dans des cas extrêmes, personne n'a annulé le copier-coller.
Notre plan obstiné était le suivant:
- décrire la structure de chaque rapport et les règles de sa transmission;
- nous réduisons les exigences de mise en place de systèmes d'envoi de documents par email selon les réglementations aux agences. Là où il n'y a pas de système - envoyer, comme auparavant, à la main;
- Nous développons un programme qui:
- sélectionne certains documents du courrier entrant;
- en extrait des données;
- écrit les données extraites dans la base de données, ainsi que «battre» les contrevenants aux règlements.

Implémentation
Questions d'organisation
Au stade de la collecte et de la formalisation des exigences relatives à la structure et à la réglementation du transfert de données, il s'est avéré qu'il n'y avait aucune description de la structure des rapports. Tout était stocké dans l'esprit de certains employés et transmis sous forme de contes populaires russes de bouche à oreille. Mais les vrais problèmes ont commencé plus tard - lors de la configuration de l'échange de données.
Problème un
La différence entre la structure des documents de la référence et la qualité des données. Dans les rapports, les montants parfois ne convergeaient pas, les colonnes étaient mélangées ou avaient des noms incorrects. Le problème a été principalement observé dans les succursales où les données ont été saisies manuellement.
La solution est la mise en place d'une vérification en trois étapes:
- Création de documents Excel de référence avec une structure rigide, en utilisant Excel lui-même. Dans ces documents, seules les cellules de saisie de données étaient disponibles. Sur quels contrôles supplémentaires ont été imposés: type, convergence des montants, etc.
- Vérifie lors de l'extraction des données du rapport. Par exemple, une comparaison de la date et de la date actuelles dans un paragraphe d'un document Word ou une vérification arithmétique des données d'un document Excel (si elles ne peuvent pas être spécifiées dans le document lui-même).
- Analyse approfondie des données après collecte. Par exemple, la détection d'écarts significatifs dans les indicateurs clés par rapport aux périodes précédentes.
Deuxième problème
Une violation systématique du calendrier de transfert de données ou des tentatives de sabotage sans scrupules: "En général, nous n'avons jamais envoyé de données à personne, mais vous êtes ici avec les miennes ...", "Oui, j'ai tout envoyé à temps, c'est probablement un mauvais ping."
La solution est le feedback. Le système avertit automatiquement les personnes responsables de la succursale en cas de violation d'horaire. Plus tard, le sous-système de rétroaction a été vissé au système de contrôle de la qualité des données d'entrée et au système de rapport final, afin que la succursale reçoive immédiatement un ensemble de données et une comparaison avec les «voisins».
Pour expliquer clairement pourquoi il ratisse.Sous-systèmes développés
- Configurateur de types de documents avec données, dans lequel vous pouvez décrire rapidement:
- des panneaux permettant d'identifier le document;
- les règlements de transfert;
- algorithme d'extraction de données;
- d'autres attributs comme le chemin d'accès au code qui valide et stocke les données.
- Un destinataire du courrier qui déplace les pièces jointes vers un stockage isolé (bac à sable) et stocke les informations connexes sur la lettre;
- Un analyseur de pièces jointes qui définit les types de documents et en extrait des données.

Configurateur
Historiquement, tous les documents contenant des données sont envoyés au courrier général, où il est plein d'autres lettres importantes et pas si. Nous avons besoin de signes permettant de déterminer les documents nécessaires. Le nom du document ou le texte dans le corps de l'e-mail n'est ni fiable ni pratique pour l'expéditeur. Il a donc été décidé que la composition du rapport ne serait déterminée que par le contenu du document. En outre, vous devez déterminer sans ambiguïté quel type de rapport contient le document.
Ils ont trouvé un raifort de brainstorming qui sait combien de signes pour identifier un document: couleur du texte dans une cellule, police, etc. Mais le plus correct était le signe de la présence d'une sous-chaîne dans une certaine «fente» de cellule ou un tableau de cellules pour Excel et un paragraphe ou un en-tête pour Word. Une logique formelle simple a été ajoutée pour le «slot»: «égal», «inégal», «plus», «moins», etc. Exemple pour Excel: dans la plage A2-E4, le texte de la cellule doit être égal à «Résumé quotidien du chargement de l'équipement».

La zone de document dans laquelle vous souhaitez rechercher le début et la fin des données est configurée de manière similaire (environ Conditions de recherche de la fin: 2 lignes vides de suite).

D'autres paramètres utiles incluent une liste d'expéditeurs résolus, un type de document (Excel / Word) et un chemin pour exporter les données.
En sortie, nous obtenons une structure JSON (modèle) qui décrit le rapport.
Destinataire du courrier
Un lecteur de messagerie qui place tous les documents des pièces jointes dans le bac à sable, enregistre les attributs de la lettre et place les documents dans la file d'attente des tâches pour l'analyse.
Il y a 2 questions de sécurité:
- Et si les données sont envoyées à une autre succursale?
- que faire si les données sont envoyées par des attaquants?
Le premier problème est résolu en rapprochant l'adresse e-mail de la branche d'envoi et la branche spécifiée dans le corps du rapport.
Le second utilise
SPF .
Analyseur de pièces jointes
Presque toutes les bibliothèques pour analyser Word et Excel ont de sérieuses limitations sur les versions prises en charge, donc pour commencer le document doit être converti. Libre Office résout ce problème par cinq.
Après la conversion:
- nous filtrons un tableau de modèles en fonction des caractéristiques de base du configurateur (Word / Excel, expéditeur ...);
- exécutez le document avec les modèles restants;
- si le modèle est trouvé, nous extrayons les données et les transférons dans le référentiel.
Résumé
Nous l'avons fait!
Après deux mois de travail minutieux, le siège social a commencé à recevoir régulièrement des données pour les rapports de toutes les succursales. De plus, la qualité et l'exhaustivité des données étaient sans précédent différentes de ce qu'elles étaient auparavant, et les ressources humaines libérées ont récupéré les coûts du projet à la fin de l'année.
Pour nous, nous avons appris que l'intégration n'est pas toujours douloureuse et avons souligné les principaux aspects de la réussite:
- nous ne sommes pas entrés dans les systèmes dans les succursales;
- officialisé et approuvé une structure unique de rapports et de réglementations pour leur transmission;
- créé des modèles de formats de sortie généralement disponibles pour tous les systèmes sous forme de documents Excel et Word;
- a choisi la méthode de transmission de données la plus courante - le courrier électronique.
Et deux principaux inconvénients:
- Faible vitesse de livraison des données.
- La taille du paquet de données ne doit pas dépasser la taille d'une pièce jointe ordinaire.