
Die moderne Entwicklung von IT-Technologien hat es möglich gemacht, den enormen Datenfluss einzudämmen.
Das Unternehmen verfügt über verschiedene Tools: CRM, ERP, BPM, Buchhaltungssysteme oder im Extremfall nur Excel und Word.
Unternehmen sind auch anders. Einige bestehen aus vielen getrennten Zweigen. In diesem Fall hat das Unternehmen ein Problem mit der Datensynchronisation im Zoo von IT-Systemen. Darüber hinaus unterscheiden sich Branchen in Anbietern oder Softwareversionen. Und häufige Änderungen der Berichtspflichten der Verwaltungsgesellschaft verursachen unkontrollierte „Freude“ vor Ort.
Diese Geschichte handelt von einem Projekt, in dem ich auf Chaos stieß, das systematisiert und automatisiert werden musste. Ein bescheidenes Budget und enge Fristen schränkten den Einsatz der meisten industriellen Lösungen ein, eröffneten jedoch Raum für Kreativität.
Universelles Format
Der Kunde hat es sich zur Aufgabe gemacht, Daten für Berichte aus allen Unternehmensbereichen zu sammeln. Um das Ausmaß der Katastrophe zu verstehen, gibt es Dutzende von Systemen, darunter selbstgemachte und Monster wie SAP und natürlich 1C - wo ohne.
In einem Bericht könnten sich Daten von: Buchhaltung, Mechanikern, PR-Spezialisten, dem Notfallministerium und Meteorologen überschneiden.
Vor Projektbeginn wurde der Großteil der Daten per E-Mail in Form von Word / Excel-Anhängen an die Muttergesellschaft gesendet. Außerdem ähnelte der Prozess manuell einem Sonnenuntergang: Die Daten wurden von speziell geschulten Personen verarbeitet und in einige Systeme eingegeben. Das Ergebnis der Arbeit waren Dutzende von Berichten, auf deren Grundlage Managemententscheidungen getroffen wurden.
Die Wahl des Ansatzes wurde durch das Format der übertragenen Dateien, nämlich xlsx / docx, veranlasst. Sogar die „alten“ Systeme in den Filialen unterstützten das Hochladen von Daten in diese Formate. In extremen Fällen hat niemand das Kopieren und Einfügen abgebrochen.
Unser hartnäckiger Plan war:
- Beschreiben Sie die Struktur jedes Berichts und die Regeln für seine Übermittlung.
- Wir senken die Anforderungen für die Einrichtung von Systemen zum Versenden von Dokumenten per E-Mail gemäß den Vorschriften an die Filialen. Wo es keine Systeme gibt - nach wie vor per Hand senden;
- Wir entwickeln ein Programm, das:
- wählt bestimmte Dokumente aus eingehenden E-Mails aus;
- extrahiert Daten aus ihnen;
- schreibt die extrahierten Daten in die Datenbank und "schlägt" die Verstöße gegen die Vorschriften.

Implementierung
Organisatorische Angelegenheiten
Bei der Erhebung und Formalisierung der Anforderungen an die Struktur und Regulierung der Datenübertragung stellte sich heraus, dass die Struktur der Berichte überhaupt nicht beschrieben wurde. Alles wurde in den Köpfen einiger Mitarbeiter gespeichert und mündlich als russische Volksmärchen übermittelt. Die eigentlichen Probleme begannen jedoch später - beim Einrichten des Datenaustauschs.
Problem eins
Der Unterschied zwischen der Struktur von Dokumenten von der Referenz und der Datenqualität. In den Berichten konvergierten die Beträge manchmal nicht, die Spalten waren verwechselt oder hatten falsche Namen. Das Problem wurde hauptsächlich in Zweigen beobachtet, in denen Daten manuell eingegeben wurden.
Die Lösung ist die Implementierung einer dreistufigen Überprüfung:
- Erstellen von Excel-Referenzdokumenten mit einer starren Struktur unter Verwendung von Excel selbst. In solchen Dokumenten waren nur Dateneingabezellen verfügbar. Welche zusätzlichen Kontrollen wurden durchgeführt: Art, Konvergenz der Beträge usw.
- Überprüft beim Extrahieren von Daten aus dem Bericht. Zum Beispiel ein Vergleich des aktuellen Datums und des Datums in einem Absatz eines Word-Dokuments oder eine arithmetische Überprüfung auf Daten aus einem Excel-Dokument (wenn diese nicht im Dokument selbst angegeben werden können).
- Tiefe Datenanalyse nach der Erfassung. Zum Beispiel die Feststellung signifikanter Abweichungen bei Schlüsselindikatoren im Vergleich zu früheren Perioden.
Zweites Problem
Ein systematischer Verstoß gegen den Datenübertragungsplan oder skrupellose Sabotageversuche: "Im Allgemeinen haben wir nie Daten an jemanden gesendet, aber hier sind Sie mit meinen eigenen ...", "Ja, ich habe alles pünktlich gesendet, dies ist wahrscheinlich ein schlechter Ping."
Die Lösung ist Feedback. Das System benachrichtigt automatisch die Verantwortlichen in der Filiale bei einem Zeitplanverstoß. Später wurde das Feedback-Subsystem mit dem Qualitätskontrollsystem für Eingabedaten und dem endgültigen Berichtssystem verschraubt, sodass die Zweigstelle sofort einen Datensatz und einen Vergleich mit den „Nachbarn“ erhalten würde.
Um klar zu machen, warum er harkt.Entwickelte Subsysteme
- Konfigurator von Dokumenttypen mit Daten, in denen Sie schnell beschreiben können:
- Zeichen zur Identifizierung des Dokuments;
- Übertragungsvorschriften;
- Datenextraktionsalgorithmus;
- andere Attribute wie der Pfad zum Code, der die Daten validiert und speichert.
- Ein E-Mail-Empfänger, der Anhänge in einen isolierten Speicher (Sandbox) verschiebt und zugehörige Informationen zum Brief speichert.
- Ein Anhangsparser, der Dokumenttypen definiert und Daten daraus extrahiert.

Konfigurator
Historisch gesehen kommen alle Dokumente mit Daten an die allgemeine Post, wo sie voller anderer wichtiger und nicht so wichtiger Briefe ist. Wir brauchen Zeichen, anhand derer die notwendigen Unterlagen ermittelt werden. Der Name des Dokuments oder der Text im Text der E-Mail ist für den Absender unzuverlässig und unpraktisch. Daher wurde beschlossen, dass die Mitgliedschaft im Bericht nur durch den Inhalt des Dokuments bestimmt wird. Darüber hinaus müssen Sie eindeutig bestimmen, welche Art von Bericht das Dokument enthält.
Sie kamen mit einem Brainstorming Meerrettich weiß, wie viele Zeichen ein Dokument zu identifizieren: Textfarbe in einer Zelle, Schriftart usw. Am korrektesten war jedoch das Vorzeichen eines Teilstrings in einem bestimmten Zellen- „Slot“ oder eines Arrays von Zellen für Excel und eines Absatzes oder einer Überschrift für Word. Für den „Steckplatz“ wurde eine einfache formale Logik hinzugefügt: „gleich“, „ungleich“, „mehr“, „weniger“ usw. Beispiel für Excel: Im Bereich A2-E4 sollte der Text der Zelle gleich „Tägliche Zusammenfassung der Gerätebelastung“ sein.

Der Dokumentbereich, in dem Sie nach Anfang und Ende der Daten suchen möchten, wird auf ähnliche Weise konfiguriert (ca. Bedingungen zum Auffinden des Endes: 2 Leerzeilen in einer Reihe).

Weitere nützliche Einstellungen sind eine Liste aufgelöster Absender, ein Dokumenttyp (Excel / Word) und ein Pfad zum Exportieren von Daten.
Bei der Ausgabe erhalten wir eine JSON-Struktur (Vorlage), die den Bericht beschreibt.
E-Mail-Empfänger
Ein E-Mail-Reader, der alle Dokumente aus Anhängen in die Sandbox legt, die Attribute des Briefes speichert und die Dokumente in die Warteschlange der Aufgaben zum Parsen stellt.
Es gibt 2 Sicherheitsfragen:
- Was ist, wenn die Daten an eine andere Zweigstelle gesendet werden?
- Was ist, wenn die Daten von Angreifern gesendet werden?
Das erste Problem wird behoben, indem die E-Mail-Adresse des sendenden Zweigs und der im Berichtstext angegebenen Zweig abgeglichen werden.
Der zweite verwendet
SPF .
Anhang Parser
Fast alle Bibliotheken zum Parsen von Word und Excel unterliegen schwerwiegenden Einschränkungen der unterstützten Versionen. Daher muss das Dokument zunächst konvertiert werden. Libre Office löst dieses Problem um fünf.
Nach der Konvertierung:
- Wir filtern ein Array von Vorlagen nach grundlegenden Merkmalen aus dem Konfigurator heraus (Word / Excel, Absender ...).
- Führen Sie das Dokument mit den verbleibenden Vorlagen aus.
- Wenn die Vorlage gefunden wird, extrahieren wir die Daten und übertragen sie in das Repository.
Zusammenfassung
Wir haben es geschafft!
Nach zwei Monaten sorgfältiger Arbeit erhielt die Zentrale regelmäßig Daten für Berichte aus allen Niederlassungen. Darüber hinaus war die Qualität und Vollständigkeit der Daten beispiellos anders als zuvor, und die freigegebenen Humanressourcen machten die Kosten des Projekts bis Ende des Jahres wieder wett.
Für uns selbst haben wir gelernt, dass Integration nicht immer schmerzhaft ist, und die Hauptaspekte des Erfolgs hervorgehoben:
- Wir sind nicht in Systeme in Filialen gelangt.
- eine einheitliche Struktur von Berichten und Vorschriften für deren Übermittlung formalisiert und genehmigt;
- erstellte Vorlagen für Ausgabeformate, die allgemein für alle Systeme in Form von Excel- und Word-Dokumenten verfügbar sind;
- wählte die häufigste Methode zur Datenübermittlung - E-Mail.
Und zwei Hauptnachteile:
- Niedrige Datenübertragungsgeschwindigkeit.
- Die Größe des Datenpakets sollte die Größe eines normalen E-Mail-Anhangs nicht überschreiten.