Eingabe
Ein Verarbeitungsprozess beginnt mit dem Arbeitsschritt "Input" (Eingabe). Dieser Arbeitsschritt umfasst die Übergabe von Daten aus einem Fremdsystem an xSuite Interface. Der Input-Worker prüft hierfür aktiv in bestimmten Zeitabständen gegen das Fremdsystem, ob neue Eingabedaten bereitstehen. Im einfachsten Fall kann die technische Anbindung an das Fremdsystem auch in Form eines gemeinsamen Dateiaustauschverzeichnisses bestehen, d.h. ohne Nutzung einer systemspezifischen Programmierschnittstelle. Das Gleiche gilt für Systeme, die ausgabeseitig angebunden sind.
Das Einlesen der gefundenen Daten erfolgt separat pro Datenobjekt. Wenn die Daten von dem Quellsystem als Stapel bereitgestellt werden, erfolgt das Einlesen pro Stapel. Der Stapel wird mit allen Dokumenten entweder komplett übernommen oder als Ganzes abgelehnt. Der Stapel wird abgelehnt, sobald bei mindestens einem enthaltenen Dokument ein Fehler auftritt. Im Erfolgsfall werden für den Stapel und die enthaltenen Dokumente Verwaltungsdatensätze in der Datenbank angelegt. In den nachfolgenden Verarbeitungsschritten wird mit diesen Verwaltungsdatensätzen gearbeitet. Wenn Dateianlagen vorhanden sind, werden diese in den internen Storage kopiert.
Bei der Verwendung eines Input-Webservices anstatt eines Input-Workers sind 2 Besonderheiten zu beachten:
Der Input-Worker generiert auch bei einem fehlerhaft eingelesenen Stapel einen Eintrag auf Stapelebene in der Datenbank. Dieser Eintrag hat einen Fehlerstatus und dient ausschließlich dazu, den Einlesevorgang des Stapels erneut zu starten. Hierzu muss der Administrator den Status des Stapels, ggf. nach einer inhaltlichen Korrektur, zurücksetzen.
Der Input-Webservice gibt hingegen direkt eine Fehlermeldung an den aufrufenden Prozess zurück. Der aufrufende Prozess muss den Stapel erneut senden.
Der Input-Worker setzt direkt im Eingabesystem eine Markierung, die den aktuellen Verarbeitungsstatus des Stapels in xSuite Interface widerspiegelt. Voraussetzung hierfür ist, dass das Eingabesystem das Setzen einer solchen Markierung unterstützt. Bei einem Austauschverzeichnis im Dateisystem generiert der Input-Worker z. B. eine zusätzliche, inhaltlich leere Statusdatei mit einer entsprechenden Dateiendung. Diese Statusdatei dient auch dazu, das mehrfache Einlesen derselben Daten zu vermeiden. Alle Datenobjekte, die als bereits eingelesen markiert sind, werden ignoriert. Somit müssen diese Daten nicht direkt nach dem Einlesen verschoben oder gelöscht werden, sondern können bis zur vollständigen Verarbeitung in xSuite Interface am Übergabeort verbleiben. Wenn keine abschließende Sicherung der Daten konfiguriert ist, können die Daten auch bis nach Abschluss der Verarbeitung dort verbleiben.
Der Input-Webservice setzt eine solche Markierung hingegen nicht. Der Input-Webservice signalisiert dem aufrufenden Prozess nur, ob die Entgegennahme der Daten erfolgreich war. Eine aktive Rückmeldung über den Status des weiteren asynchronen Verarbeitungsablaufs in xSuite Interface erhält dieser Prozess nicht. Der Prozess kann diesen Status nur über den separaten Status-Webservice abfragen.
Das Einlesen von Stapeln und den zugehörigen Dokumenten beschränkt sich auf die Rohdaten. Eine inhaltliche Interpretation der Daten erfolgt an dieser Stelle noch nicht, sodass die Daten auch bei fachlichen Fehlern erfolgreich übernommen werden. Auf diese Weise kann die weitere Bearbeitung auf Basis der in die Datenbank eingelesenen Sätze erfolgen, anstatt dass die Annahme der Daten direkt mit einem Fehler abgelehnt wird.
Dieser Ansatz funktioniert jedoch nicht bei allen Konfigurationen. Wenn eine der nachfolgend beschriebenen Funktionalitäten zum Einsatz kommt, ist bereits beim Einlesen ein inhaltlicher Zugriff auf die Daten erforderlich. Bei XML-Daten wird beispielsweise nur der reine XML-Datenstrom übernommen. Das Auslesen von Inhalten erfolgt erst nachgelagert im "Process"-Schritt. Optional kann im "Input"-Schritt aber eine Aufspaltung der Daten in separate Dokumente oder ein Extrahieren von eingebetteten Dateianlagen durchgeführt werden. Elementare Syntaxfehler in der XML-Struktur haben somit schon in diesem Schritt Auswirkungen.
Das Einlesen von Daten erfolgt zweistufig. Hier findet eine Unterscheidung zwischen dem Eingabesystem und dem Eingabeformat statt. Beispielsweise ist für XRechnungen aus dem Dateisystem keine spezielle Eingabeschnittstelle vorhanden, bei der das Datenformat (XRechnung) an den Übertragungsweg (Dateisystem) gekoppelt ist.
Stattdessen existieren verschiedene allgemeine Schnittstellen zu Eingabesystemen, z. B. Dateisystem, Mail oder Datenbank. Diese Schnittstellen können ein beliebiges, vom Programm unterstütztes Eingabeformat liefern. Die formatspezifische Interpretation der Daten erfolgt erst nachgelagert. Somit ist für die weitere Verarbeitung nicht relevant, ob eine XRechnung aus einem Dateisystemordner gelesen oder als Anlage einer E-Mail übermittelt wurde.
Einlesen der Rohdaten
Der Input-Worker liest zunächst für jedes neu bereitgestellte Objekt aus dem konfigurierten Eingabesystem die Rohdaten ein. Wenn die Daten nicht als Stapel, sondern als Einzeldokumente strukturiert sind, wird daraus implizit ein künstlicher Pseudo-Stapel generiert.
Wenn der Input-Webservice anstatt eines Input-Workers als Eingabekanal dient, entfällt die Unterscheidung nach Eingabesystemen. Der Webservice stellt selbst ein spezifisches Eingabesystem dar.
Direkt nach dem Einlesen kann optional eine Dublettenprüfung durchgeführt werden. Stapel, die gemäß bestimmter Kriterien als bereits eingelesen gelten, werden abgelehnt.
Verarbeitung nach Eingabeformat
Bei Bedarf werden die Dokumente des Stapels abhängig vom Eingabeformat spezifisch verarbeitet. Diese Verarbeitung kann bei bestimmten Formaten, z. B. JSON und XML, eine Auftrennung in Einzeldokumente umfassen. Dies ist der Fall, wenn eine solche Auftrennung nicht durch das Eingabesystem durchgeführt werden kann, sondern das Format zunächst interpretiert werden muss. Eine JSON-Datei oder eine XML-Datei, die durch das Eingabesystem zunächst als ein einzelnes Dokument eingelesen wurde, kann in Wirklichkeit z. B. mehrere Unterobjekte enthalten, die jeweils als separate Dokumente weiterverarbeitet werden.
Dateianlagen, die je nach Format entweder eingebettet oder extern referenziert sind, können extrahiert oder ergänzend eingelesen werden. Voraussetzung hierfür ist, dass das Format das Extrahieren von Anlagen grundsätzlich unterstützt. Wenn beispielsweise eine native Mail-Schnittstelle als Eingabesystem dient, ist die Funktionalität zum Extrahieren der Anlagen bereits in dieses System integriert. Wenn hingegen Mails in Form von EML-Dateien über das Dateisystem bereitgestellt werden, müssen die Anlagen dieser Dateien über das entsprechende Eingabeformat separat extrahiert werden. Wenn ein Eingabesystem Daten unterschiedlichen Formats zur Verfügung stellt, egal ob wechselweise oder kombiniert in einem Dokument, können auch mehrere Eingabeformate zur Verarbeitung derselben Dokumente konfiguriert werden.
Aufteilung von Dokumenten
Als letzter Teilschritt ist eine Umstrukturierung der Dokumente im Stapel möglich. Dabei werden die Dokumente anhand bestimmter Kriterien der Dateianlagen in mehrere separate Dokumente aufgeteilt.
Eine E-Mail wird beispielsweise standardmäßig als ein Stapel mit einem Dokument, das mehrere Anlagen enthalten kann, behandelt. Wenn alle oder jeweils bestimmte zusammengehörige Anlagen als eigenständige Dokumente weiterverarbeitet werden sollen, kann an dieser Stelle eine Auftrennung der Anlagen erfolgen.
Zu einem späteren Zeitpunkt im Verarbeitungsablauf, wenn für einen Stapel und die Dokumente dieses Stapels die zugehörigen Verwaltungsdatensätze in der Datenbank erstellt wurden, ist eine solche Umstrukturierung nicht mehr vorgesehen.
Hinweis
Die Aufteilung eines gesamten Stapels in separate Stapel wird nicht unterstützt, weil dadurch der 1:1-Bezug zwischen Eingabedaten und Stapeldatensätzen in xSuite Interface verloren geht.