Automatisierung gegen Chaos

Bild

Die Entwicklung der IT-Technologien ermöglichte die Steuerung großer Datenflüsse. Unternehmen haben viele IT-Lösungen: CRM, ERP, BPM, Buchhaltungssysteme oder zumindest nur Excel und Word. Unternehmen sind auch anders. Einige Unternehmen bestehen aus zahlreichen Niederlassungen. Nennen wir wie "Pyramide". Pyramiden haben ein Problem mit der Datensynchronisation für einen Stapel von IT-Systemen. Softwareanbieter und -versionen unterscheiden sich für Branchen erheblich. Darüber hinaus ändern die Verwaltungsgesellschaften kontinuierlich die Berichtsanforderungen, die zu Frustrationsangriffen in den Filialen führen. Dies ist eine Geschichte über das Projekt, bei dem ich auf Chaos gestoßen bin, das systematisiert und automatisiert werden musste. Niedriges Budget und enge Fristen schränkten die Verwendung der meisten vorhandenen Industrielösungen ein, eröffneten jedoch Raum für Kreativität.

Allzweckformat


Das Kundenunternehmen hat sich die Aufgabe gestellt, Berichtsdaten aus allen Filialen zu sammeln. Lassen Sie mich das Ausmaß der Herausforderung erklären - es gibt Dutzende von Systemen, darunter sowohl selbstgemachte als auch Monster wie SAP.

Ein Bericht könnte Daten enthalten von: Buchhaltern, Mechanikern, PR-Managern, EMERCOM, Meteorologen.

Vor Projektbeginn wurde ein Großteil der Daten als Word / Excel-Anhänge per E-Mail an die Hauptfirma gesendet. Ab dann sah es aus wie ein manuell erstellter Sonnenuntergang: Die Daten wurden von speziell untersuchten Mitarbeitern manuell verarbeitet und in einige Systeme eingegeben. Am Ende gab es Dutzende von Berichten, die die Grundlage für Managemententscheidungen bildeten.

Die Auswahl des Ansatzes wurde durch die verwendeten Dateiformate xlsx / docx veranlasst. Sogar die Legacy-Software unterstützt das Hochladen von Daten in diese Formate. Zumindest Copy-Paste kann ein letzter Stand für Zweige sein.

Unser Plan war also:

  1. Beschreiben Sie die Struktur und den Zeitplan jedes Berichts.
  2. Stellen Sie den Filialen Berichtsbestimmungen zur Verfügung. Filialen sollten vorhandene Software verwenden, um Berichte per E-Mail zu senden. Wenn keine Software vorhanden ist, senden Sie die Berichte wie zuvor manuell.
  3. Entwickeln Sie das System, das:

  • nimmt die richtigen Dokumente aus dem E-Mail-Posteingang;
  • extrahiert Daten aus Dokumenten;
  • schreibt extrahierte Daten in die DB und bestraft Verstöße gegen Vorschriften.

Bild

Implementierung


Nichtentwicklungsprobleme


Während der Anforderungserfassungsphase stellte sich heraus, dass keine Beschreibung der Berichtsstruktur vorliegt. Gar nichts. Die Berichtsstruktur wurde in den Köpfen einiger Mitarbeiter gespeichert und mündlich als Volksmärchen übertragen. Dieses Problem wurde mit einigen Anstrengungen gelöst, aber die eigentliche Herausforderung begann später mit der Einrichtung der Datenaustauschphase.

Erste Ausgabe


Einige Tage nach der Veröffentlichung der Beta-Version haben wir eine Lücke zwischen der Dokumentenstruktur und dem Dokumentmodell entdeckt. Schlechte Datenqualität: Berichte hatten unterschiedliche Mengen, Spalten waren verwechselt oder hatten eine falsche Benennung. Diese Probleme traten hauptsächlich in den Filialen auf, in denen Daten manuell erfasst und gesendet wurden.

Lösung - Implementierung einer dreistufigen Überprüfung:

  1. Bereitstellen von xlsx-Beispielen für Zweige, deren Struktur durch Excel-Tools festgelegt wurde. Nur in diesen Proben verfügbare Zellen waren Dateneingaben. Einige Zellen müssen zusätzlich überprüft werden: Typ, Konvergenz der Summen usw.
  2. Datenüberprüfung beim Extrahieren. Beispiel: Vergleichen des aktuellen Datums und des Datums im Word-Absatz, Überprüfung der Datenarithmetik für Excel-Dokumente (falls dies nicht mit xlsx-Tools festgelegt werden kann).
  3. Tiefe Datenanalyse nach Extraktion. Zum Beispiel die Erkennung signifikanter Abweichungen durch Schlüsselindikatoren im Vergleich zu früheren Perioden.

Zweite Ausgabe


Ein systematischer Verstoß gegen den Datenübertragungsplan oder skrupellose Sabotageversuche: "Wir senden niemals Daten an jemanden, und hier sind Sie mit Ihrem ...", "Ich habe alles gesendet! Pünktlich! Wahrscheinlich haben Sie es wegen schlechter Latenz nicht bekommen. "

Feedback wurde eine Lösung. Die Software benachrichtigt automatisch die Verantwortlichen in der Filiale bei Verstößen gegen den Zeitplan.

Einige Zeit später wurde das Feedback-Modul mit dem Modul zur Überprüfung der Datenqualität und dem Modul zur Erstellung von Abschlussberichten verbunden. Auf diese Weise erhält der Zweig sofort eine Zusammenfassung der eigenen Daten und einen Vergleich mit den „Nachbarzweigen“. Für eine Branche wäre also klar, warum sie gerügt wurde.

Entwickelte Module


Konfigurationswerkzeug für Berichtsvorlagen, das Folgendes beschreibt:

  • Attribute zur Identifizierung eines Berichts;
  • Übertragungsvorschriften;
  • Datenextraktionsalgorithmus;
  • andere Attribute wie der Pfad zum Code, der die Daten validiert und speichert.

Eine E-Mail-Anwendung, die Anhänge in einen isolierten Speicher (Sandbox) verschiebt und mit Buchstaben verknüpfte Informationen speichert.

Ein Anhangsparser, der den Bericht identifiziert und Daten extrahiert.

Bild

Konfigurationstool


In der Vergangenheit wurden Briefe mit Berichten an die gemeinsame E-Mail-Adresse sowie an viele andere wichtige oder unwichtige Briefe gesendet. Aus diesem Grund benötigten wir Attribute, um Arten von Berichtsanhängen zu identifizieren. Die Verwendung bestimmter Dokumentnamen oder Texte im E-Mail-Text ist für den Absender unzuverlässig und unangenehm. Aus diesem Grund haben wir beschlossen, dass die Identifizierung von Berichten nur durch einen Inhalt bestimmt wird.

Brainstorming führte zu einer Reihe von Attributen, um den Berichtstyp anhand des Inhalts zu identifizieren: Farbe des Zelltextes, Schriftart usw. Am besten ist es jedoch, wenn eine Teilzeichenfolge in einer bestimmten Zelle vorhanden ist - einem „Steckplatz“ oder in einem Array von Zellen für Excel. Für Word haben wir Absatz oder Titel verwendet.

Wir haben eine einfache Vergleichslogik für den "Slot" hinzugefügt: "gleich", "ungleich", "mehr", "weniger" und so weiter. Beispiel für einen Excel-Bericht: Im Bereich von A2-E4 sollte der Zellentext gleich "Täglicher Bericht zum Laden von Geräten" sein.

Bild

Auf ähnliche Weise haben wir den Suchbereich für den Anfang und das Ende der Daten konfiguriert.

Unten finden Sie ein Beispiel für die Suchbedingung für das Datenende: "2 Leerzeilen in einer Reihe".

Bild

Einige andere Einstellungen: eine Liste der zulässigen Absender, ein Dokumenttyp (Excel / Word), ein Pfad für den Datenexport.

Die Ausgabe ist eine JSON-Struktur (Vorlage), die den Bericht beschreibt.

E-Mail-Bewerbung


Diese Anwendung ist ein E-Mail-Posteingangsleser, der alle Anhänge in die Sandbox legt, E-Mail-Attribute speichert und Anhänge in die Parsing-Warteschlange setzt.

Wir standen vor zwei Sicherheitsproblemen:

  1. Was ist, wenn der Filialname im Bericht versehentlich (oder nicht) durch einen anderen Filialnamen ersetzt wurde?
  2. Was ist, wenn der Bericht von Eindringlingen gesendet wird?

Das erste Problem wird behoben, indem die E-Mail-Adresse des Absenders und der im Berichtskörper angegebene Zweigstellenname überprüft werden.

Das zweite Problem wird mit SPF gelöst.

Anhang Parser


Fast alle Word- und Excel-Analysebibliotheken unterstützen nur bestimmte Versionen / Erweiterungen. Aus diesem Grund haben wir uns für die Libre Office-Konvertierung entschieden, um Dateien in ein einziges Format zu bringen. Zum Beispiel Eingaben: odt, doc, docx (2007, 2010, 2013) ... in docx (2016) konvertieren.

Nach der Konvertierung:

  1. Wir filtern ein Array von Berichtsvorlagen basierend auf den grundlegenden Attributen heraus, z. B. Word oder Excel. Der Absender gehört zur Liste der zulässigen Elemente.
  2. den Bericht mit den verbleibenden Vorlagen bedrohen;
  3. Wenn ein Bericht mit der Vorlage übereinstimmt, extrahieren Sie die Daten und übertragen Sie sie in das Repository.

Fortsetzen


Wir haben es geschafft!

Nach zwei Monaten sorgfältiger Arbeit erhielt die Zentrale regelmäßig Daten für Berichte aus allen Niederlassungen.

Datenqualität und Vollständigkeit werden beispiellos besser als zuvor. Die implementierte Software hat Personal freigegeben, das die Projektkosten bis Ende des Jahres zurückgezahlt hat.

Für uns selbst haben wir gelernt, dass der Integrationsprozess nicht immer schmerzhaft ist und haben die Hauptaspekte des Erfolgs identifiziert:

  1. Wir sind nicht in Systeme in den Filialen gelangt.
  2. Wir haben eine einheitliche Berichtsstruktur und einen einheitlichen Transferplan formalisiert und genehmigt.
  3. Wir haben für jeden Berichtstyp Ausgabebeispiele mit integrierter Überprüfung erstellt.
  4. Wir haben die gängigste Methode zur Zustellung von Daten verwendet - eine E-Mail.

Als letztes Wort hat dieser Ansatz zwei Hauptnachteile:

  1. niedrige Datenübertragungsgeschwindigkeit;
  2. Die Größe des Datenpakets sollte nicht größer sein als der durchschnittliche E-Mail-Anhang.

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


All Articles