Immer eine Idee voraus

Tipps&Tricks: ERP-Daten in einem Addon (01.11.2022)

Es gibt Konstellationen in denen man weder die APIs, noch die Datenbank des ERP-Systems nutzen kann. Sei es wegen fehlenden APIs, Sicherheitsrichtlinien oder weil das Addon auch ohne Verbindung zum ERP funktionieren soll.

Was ist da so schwer? Man übernimmt die Schlüsselfelder des ERPs in das Addon und das Thema ist erledigt.

Das Benutzeroberflächenproblem

Viele ERP-Systeme arbeiten mit zusammengesetzten Schlüsseln. Je nach genutztem Komponenten-Framework für die Benutzeroberfläche kann das zum ersten Problem führen. Viele Grid-Komponenten gehen von einem einzigen Schlüsselfeld aus, um deren CRUD-Funktionen abzubilden.

Man ist also schnell dabei ein eigenes Id-Feld ins Datennodell zu nehmen und macht die Schlüsselfelder des Hauptsystems zu einem eindeutigen Index. Der macht dann als nächstes Schwierigkeiten.

Das Datenkonsistenzproblem

Bei den zusammengesetzten Schlüsseln treten Fehler auf. Daten werden nicht gefunden oder sind inkonsistent. Positionssätze ohne Köpfe und doppelte Schlüssel als Beispiele. Wie kann das sein?

  1. Inkonsistente Daten im Hauptsystem sind normal. Programmfehler, die Benutzern unsinnige Eingaben erlaubt haben, Abstürze, Importfehler, usw.

  2. Andere Datenbanksystem behandeln Zahlen, Datum, Zeit und Zeichenketten anders. Führende Nullen und nachfolgende Leerzeichen als Klassiker.

Je länger ein ERP am Markt und im Einsatz ist, desto höher ist die Wahrscheinlichkeit damit konfrontiert zu werden.

Die Datenkonsistenz kann bei der Synchronisation durch passende Filter und Konvertierungen sichergestellt werden. Ein guter Ansatz ist, die ERP-Felder als Zeichenketten abzubilden.

Und wieder die Benutzeroberfläche

Im Hauptsystem werden führende Nullen oder nachfolgende Leerzeichen oft automatisch ergänzt/verarbeitet. Die Benutzer sind es nicht gewohnt das selbst so einzugeben oder an der Oberfläche sichtbar zu haben.

Der Benutzerfreundlichkeit wegen formatiert man die Werte vor der Ausgabe entsprechend.

Fazit

Zugegeben, es ist nicht wirklich schwer, aber deutlich mehr Aufwand, als man zunächst annimmt.

Insbesondere, wenn man das Addon nicht nur für ein Hauptsystem konzipiert. Es soll vielleicht bei anderen Kunden oder nach einem ERP-Wechsel immer noch nutzbar sein.

In unseren Projekten nehmen wir immer ein Feld «MasterSystemId» auf. Dort speichern wir den zusammengesetzten Schlüssel und können bei der Synchronisation damit arbeiten.

Keiner will das Rad immer neu erfinden. Darum haben wir in idee5.Common.Data ein paar Hilfsmittel integriert. Damit sind auch kompliziertere Fälle mit mehreren Hauptsystemen und hierarchiebezogenen Daten (Firma, Werk, …) abbildbar.