Work in Progress: Generische Schnittstellen Definition

Zusammenfassung

Für den Import bzw. Export von Daten für Fremdprodukte soll eine Möglichkeit erstellt werden, dass ein Key-User (Systemadministrator) im Kieselstein definieren kann wie die Datenstruktur der zu importierenden bzw. exportierenden Daten sind.

Nutzen/Ziel

Somit können Kieselstein Datenbankfelder und Funktionalitäten offener mit verschiedensten Software-Lösungen kombiniert verwendet werden.

Modul, Maske, Terminal, API-Aufruf, Bericht

System

Ausführliche Erklärung

Hierfür soll es im System-Modul neue Karteikarten für "Datenstruktur" und "Schnittstelle" geben.

Bei der Datenstruktur wird definiert wie die Struktur der Daten aussieht (im ersten Schritt nur der Aufbau einer XML-Datei).

Hierbei werden folgende Optionen bei der Struktur erstellt:

  • Bereich (Pflicht-Feld): Definiert für welchen Bereich im Kieselstein die Struktur relevant ist bsp.: Artikel
  • Liste-Item-Pfad (Optional): Definiert wenn mehrere Daten aus dem XML importiert bzw. in ein XML Exportiert werden sollen welches Item eine Liste mit mehreren Elementen ist.
  • Default Datumsformat (Optional): Definiert das Format welches für einen Datumwert verwendet werden soll (hier werden die Java SimpleDateFormat Formatmasken behandelt).
  • Default Zahlenformat (Optional): Definiert das Format welches für einen Zahlenwert verwendet werden soll.

Für jede Struktur gibt es ein oder mehrere Felder für die Daten welche Exportiert bzw. importiert werden sollen:

  • ERP-Feld (Optional): Definiert das Kieselstein-ERP-Feld welche exportiert werden sollen, bzw. in welches Feld (oder Parameter einer Funktion) Daten importiert werden sollen.
  • Fix-Wert (Optional): Definiert einen Fix-Wert welcher exportiert werden, bzw. welcher importiert werden soll.
    • Es muss entweder ein ERP-Feld oder ein Fix-Wert angegeben werden.
  • Pfad (Pflicht-Feld): Der Pfad in der XML-Struktur mit "/" getrennt, wo das Element erstellt werden soll.
  • Attribute-Name (Optional): Der Name des XML-Attributes in dem der Wert exportiert bzw. von dem der Wert importiert werden soll.
  • Formatmaske (Optional): Definiert das Format Zahlen oder Datumsformat welche für diesen einen Wert angewendet werden soll (hier kann das jeweilige Default-Format der Struktur überschrieben werden).
  • Mapping-Werte (Optional): Definiert einen Austauschwert für den jeweiligen ERP-Wert (Bsp.: im ERP-System ist ein Status = "Offen" und das Fremdsystem erwartet "Open", usw.)

Diese Strukturen Beschreiben wie die Daten aussehen welche importiert bzw. exportiert werden sollen.

Zusätzlich muss die Schnittstelle selbst definiert werden:

  • Quell-Typ (Pflicht-Feld): Definiert den Typ der Quelle der Schnittstelle (Datei oder REST-Aufruf).
  • Struktur (Pflicht-Feld): Definiert die Struktur wie die Daten aussehen sollen.
  • Auslöser (Pflicht-Feld): Definiert wann die Schnittstelle gestartet werden soll (Shop-Timer, REST-Call, Los-Ausgabe)
  • Quellname (Pflicht bei Typ Datei): Definiert den Dateinamen (mit Platzhaltern und Wildcards '*'), von wo die Daten importiert bzw. exportiert werden sollen.
  • Typ (Pflicht-Feld): Definiert den Typ der Schnittstelle (Import oder Export).
  • Bereich (Pflicht-Feld): Definiert den Bereich welche Datei behandelt werden (Bsp bei Losausgabe: Die Los-Soll-Materialien mit einem bestimmten Kennzeichen) (hier muss geprüft werden, dass die ausgewählte Struktur alle notwendigen ERP-Felder beinhaltet).
  • Nachverarbeitungsmodus: Definiert beim Import und Typ Datei was mit der importierten Datei passieren solle (keine Aktione, Datei löschen, Datei umbenennen (.bak hinten anhängen)).
  • Aktiv (Pflicht-Feld, default aktiv): Steuert ob die Schnittstelle überhaupt aktiv ist.

Mögliche Zukünftige Anwendungsfälle/Erweiterungen:

  • Unterstützung mehrere Formate: JSON, CSV, Excel, usw.
  • Mehrere Auslöser (Zeiterfassungsmeldung, usw.)
  • In den jeweiligen Modulen die definierten Schnittstellen als Export oder Import im Kontext zur Verfügung stellen.
  • Verwendung der Struktur zur freien Auswahl wie die Daten angezeigt werden sollen (Bsp.: am Terminal oder auf einem Dashboard in einem Kiosk Modus).

Mögliche Lösung

(Wir freuen uns über deine Gedanken, deinen Vorschlag, wie wir deine Anforderung umsetzen können)

Edited by Daniel Skalnik