Für Entwickler

    Integrationsarchitektur
    Schnittstellen, Datenflüsse und Abgleichmechanismen

    omniSuite bringt eine vollständige Integrationsschicht als Plattformeigenschaft mit. Import, Export, Abgleich und bidirektionaler Datenaustausch sind standardisierte Bausteine, die mit denselben Regeln, Berechtigungen und Protokollierungsmechanismen arbeiten wie alle anderen Plattformfunktionen. Diese Seite beschreibt die technische Architektur, die verfügbaren Schnittstellen und die Konfigurationsmechanismen im Detail.

    01 / 06

    Schnittstellenarchitektur

    01.01

    Welche Schnittstellentechnologien stellt omniSuite bereit?

    Die Plattform unterstützt vier Schnittstellentechnologien für den Datenaustausch mit externen Systemen. REST-APIs ermöglichen zustandslose Kommunikation über HTTP mit JSON- oder XML-Payloads. SOAP-Webservices decken standardisierte, vertragsbasierte Integrationen ab.

    HTTP-Endpoints stellen konfigurierbare Endpunkte bereit, über die Daten abgerufen oder geschrieben werden. OLE-DB-Provider ermöglichen den direkten Datenbankzugriff auf Oracle, MySQL, MS SQL Server, MS Access und jede weitere OLE-DB-kompatible Datenbank. Alle vier Technologien stehen sowohl im Data Integration Manager als auch im Maskengenerator zur Verfügung und werden zentral verwaltet.

    01.02

    Wie werden Integrationsschnittstellen zentral verwaltet?

    Die Verwaltung erfolgt über eine zentrale Oberfläche, in der Entwickler HTTP-Endpoints, REST-APIs, SOAP-Webservices und OLE-DB-Verbindungen anlegen, konfigurieren und berechtigen. Zugangsattribute werden einmal definiert und zentral gespeichert, sodass sie in verschiedenen Kontexten wiederverwendet werden.

    Die Berechtigungssteuerung greift granular: Rollen, Organisationseinheiten, Partnerfirmen und individuelle Benutzer können als Zugriffsebenen konfiguriert werden. Jede Schnittstellendefinition unterliegt der Änderungsdokumentation und ist damit vollständig versioniert und revisionssicher.

    01.03

    Wie werden externe Datenquellen in der Oberfläche eingebunden?

    Der Maskengenerator bietet drei Wege zur Einbindung externer Daten in Benutzeroberflächen. Erstens: Über benutzerdefinierte C#-Skripte können Entwickler HTTP-Endpoints, REST-APIs, SOAP-Webservices und OLE-DB-Provider direkt ansprechen, um Daten dynamisch abzurufen und bidirektionale Schnittstellen zu integrieren.

    Zweitens: Die CustomReport-Komponente stellt Daten aus heterogenen Quellen in einer einheitlichen Ansicht dar — sie unterstützt alle vier Schnittstellentechnologien und eignet sich besonders, wenn Inhalte aus mehreren Systemen konsolidiert dargestellt werden sollen.

    Drittens: Das IFRAME-Element bettet externe Webinhalte, Dashboards und Anwendungen direkt in omniSuite-Masken ein, wobei die Kommunikation über HTTP-Endpoints, REST-APIs und SOAP-Webservices in Echtzeit erfolgt.

    02 / 06

    Data Integration Manager

    02.01

    Wie ist der Data Integration Manager aufgebaut?

    Der Data Integration Manager arbeitet mit zentral verwalteten Import-Schemata. Jedes Schema definiert die Datenquelle, die Zielstruktur, das Mapping zwischen Quell- und Zielfeldern sowie alle Validierungs- und Transformationsregeln. Schemata können direkt aus der Tabellendefinition heraus erstellt werden — die Tabellenstruktur wird automatisch in die Bearbeitungsoberfläche übernommen.

    Die zentrale Verwaltung bietet Funktionen zum Erstellen, Bearbeiten, Löschen und Ausführen von Schemata sowie den direkten Zugriff auf Import-Logs. Jedes Schema ist optional einer Systemobjekt-Gruppe zugeordnet und unterliegt einer vollständigen Änderungsdokumentation.

    02.02

    Welche Datenquellen werden unterstützt?

    Der Import Manager unterstützt drei Kategorien von Datenquellen. Datenbanken über OLE-DB-Provider: Oracle, MySQL, MS SQL Server, MS Access sowie jede andere OLE-DB-kompatible Datenbank. Datei-basierte Quellen: CSV- und Excel-Dateien mit direkter Import-Unterstützung.

    Individuelle Datenquellen: Zugriff über SQL-APIs oder benutzerdefinierte C#-Skripte, wenn Standardmechanismen nicht ausreichen. Für komplexere Abfragen steht ein SQL-Abfrage-Wizard bereit, der die dynamische Navigation durch Tabellenbeziehungen ermöglicht und SQL-Abfragen automatisch generiert.

    Jede Datenquelle kann über die Konfigurationsoberfläche getestet werden — der Button Aktualisieren zeigt die Ergebnisse in einer Vorschaumaske an.

    02.03

    Wie funktioniert das Mapping zwischen Quelle und Ziel?

    Das Mapping ordnet Felder der Datenquelle den Feldern der Zieltabelle zu. Die Zuordnung kann automatisch über den Button „Automatische Identifizierung" erfolgen, der Namenskonventionen und Übereinstimmungen zwischen Feldnamen nutzt. Alternativ erfolgt sie manuell, wenn Feldnamen nicht übereinstimmen oder spezifische Zuordnungen erforderlich sind.

    Erweiterte Optionen umfassen die Definition von Spalten und Werten über Skriptabfragen, den Zugriff auf Variablen der Datenquelle sowie die Einbindung benutzerdefinierter Funktionen aus dem Script-Repository. Die Mapping-Oberfläche visualisiert alle Zuordnungen und hebt nicht verknüpfte Felder hervor, um Lücken sofort erkennbar zu machen.

    02.04

    Welche Validierungsmechanismen greifen vor dem Import?

    Der Data Integration Manager bietet eine mehrstufige Validierung vor dem eigentlichen Datenimport. Filtering auf Datenquellenebene extrahiert relevante Datensätze nach konfigurierbaren Regeln — als einfache Bedingung je Zeile, als SQL-Batch je Zeile oder als SQL-Batch über die gesamte Datenquelle.

    Fehlerhafte Datensätze können in eine Fehlerdatei ausgelagert werden, und über den RAISERROR-Befehl kann der Import gezielt abgebrochen werden. Die Konsolidierung bereinigt und standardisiert Schreibweisen — beispielsweise werden „Munchen", „Muenchen" und „München" in einen einheitlichen Wert überführt. PreSQL-Validierungen prüfen die Datenquelle gegen definierte Regeln und Standards.

    Über eine Checkbox kann festgelegt werden, ob bei Fehlern die gesamte Datenquelle nicht importiert wird. Zusätzlich können PreSQL-Ist/Soll-Abgleiche automatisch vor dem Import ausgeführt werden, deren Ergebnisse im Ist/Soll-Abgleichcockpit analysiert werden.

    02.05

    Wie werden Transformationsregeln konfiguriert?

    Transformationsregeln arbeiten auf Feldebene der Zieltabelle und umfassen drei Kategorien. Pre-Aktionen transformieren Felder automatisch: Entfernen von Leerzeichen, Umwandlung in Groß- oder Kleinschreibung. Standardwerte greifen, wenn kein spezifischer Wert vorliegt — für Auswahlfelder als vordefinierter Wert, für Fremdschlüsselfelder als Verweis auf einen konkreten Datensatz.

    SQL-basierte Transformationen bieten erweiterte Flexibilität und lassen sich auf Zieltabellen- oder Datensatzebene anwenden. Damit können Feldwerte berechnet, Fremdschlüssel regelbasiert zugeordnet oder Werte aus verknüpften Tabellen abgeleitet werden. Zusätzlich stehen ValidateBeforeInsert und ValidateBeforeUpdate als Ereignisse bereit, die über Skripte prüfen, ob ein Datensatz eingefügt oder aktualisiert werden darf.

    02.06

    Welche Funktionen stehen nach dem Import zur Verfügung?

    Nach dem Import greifen mehrere Nachbearbeitungsmechanismen. PostSQL-Skripte auf Zielstrukturebene werden nach der vollständigen Aktualisierung aller Zieltabellen ausgeführt und ermöglichen Synchronisierungen, Berechnungen und die Integration in externe Systeme. PostSQL-Skripte auf Zieltabellenebene laufen nach der Aktualisierung einer einzelnen Zieltabelle. PostSQL-Ist/Soll-Abgleiche können direkt nach dem Import automatisch gestartet werden, um die Konsistenz zwischen importierten und bestehenden Daten zu verifizieren.

    Die Funktion Nicht gefundene Informationsobjekte löschen synchronisiert die Zieltabelle, indem Datensätze entfernt werden, die in der Datenquelle nicht mehr vorhanden sind. Zusätzlich kann die automatische E-Mail-Benachrichtigung konfiguriert werden, die bei Fehlern, Warnungen oder nach jedem Import die vollständigen Logs an einen definierten Empfängerkreis sendet.

    02.07

    Wie werden Beziehungen beim Import korrekt aufgebaut?

    Der Import Manager berücksichtigt bei der Zielstruktur explizit die Reihenfolge von Beziehungen. Bei Fremdschlüsselbeziehungen muss die Basistabelle vor der abhängigen Tabelle in der Zielstruktur stehen. Bei Many-to-Many-Beziehungen müssen Parent- und Child-Tabellen vor der Many-to-Many-Tabelle eingeordnet sein.

    Beim Hinzufügen von Zieltabellen entscheidet der Entwickler per Dialogfenster, ob Beziehungen automatisch erstellt werden sollen. Automatische Integrationstests prüfen vor dem Import das Vorhandensein von Identifizierungsspalten, die Konsistenz von Fremdschlüsselbeziehungen und die Vollständigkeit der Mapping-Zuordnungen. Der Import startet nur, wenn alle Zieltabellen die Tests fehlerfrei bestanden haben. Testergebnisse können als CSV oder HTML exportiert werden.

    02.08

    Welche Aufrufmöglichkeiten gibt es für Datenimporte?

    Importe können auf fünf Wegen gestartet werden. Regelbasiert und ereignisorientiert: automatische Auslösung bei definierten Bedingungen in Anwendungen oder Prozessen. Aus Anwendungen und Prozessen: direkter Aufruf über den Maskengenerator aus laufenden Geschäftsprozessen.

    Manuell: Ad-hoc-Start über den Starten-Button in der Bearbeitungsoberfläche oder über die zentrale Verwaltung. Zeitgesteuert: periodische Ausführung über den Action Scheduler in konfigurierbaren Intervallen. Schnell-Import: einmaliger Ad-hoc-Import direkt aus der Tabellendefinition, wenn die Spaltenstruktur der Datenquelle mit der Zieltabelle übereinstimmt.

    03 / 06

    Data Reconciliation

    03.01

    Wie ist der Einzelabgleich technisch aufgebaut?

    Der Einzelabgleich vergleicht ein spezifisches Informationsobjekt zwischen einer Ist-Tabelle (Referenztabelle) und einer Soll-Tabelle. Entwickler definieren die Informationsobjekte auf drei Wegen: Erstellung der Ist-Tabelle aus der Soll-Tabelle, Erstellung der Soll-Tabelle aus der Ist-Tabelle, oder Verknüpfung zweier bestehender Tabellen.

    Die Tabellengenerierung erfolgt automatisch — vor der Anlage können Name und Beschreibung angepasst werden. Bei der Attributzuordnung legt der Entwickler fest, welche Attribute abgleichbar sind (werden geprüft) und welche nicht-abgleichbar (werden nach erfolgreichem Abgleich automatisch übernommen).

    Für Fremdschlüssel prüft das System automatisch, ob Ist/Soll-Definitionen für die referenzierten Objekte vorhanden sind, und bietet fünf Steuerungsoptionen für den Abgleich von Fremdschlüsselwerten.

    03.02

    Welche Synchronisierungsoptionen stehen bereit?

    Die Synchronisierung bietet drei Grundmodi. Manuell (Standard): Der Webanwender prüft und steuert die Synchronisierung über das Ist/Soll-Abgleichcockpit. Automatisch nach erfolgreichem Abgleich: Daten werden automatisch von Ist nach Soll übertragen, einschließlich nicht abgeglichener Attribute.

    Automatisch ohne Abgleich: Ist-Daten werden direkt in die Soll-Tabelle übernommen — geeignet für initiale Befüllungen. Im Cockpit kann der Anwender die Richtung temporär umkehren (von Soll nach Ist). Für einzelne Datensätze stehen konfigurierbare Aktionspunkte bereit, die festlegen, wie mit Abweichungen umzugehen ist.

    Diese Punkte können regelbasiert dynamisch angepasst oder gesperrt werden und lösen PostSQL-Aktionen oder URL-Verlinkungen aus. Nach dem Abgleich können über dynamische Aktionssteuerung SQL-Skripte ausgeführt werden, die auf die konkreten Abgleichsergebnisse reagieren.

    03.03

    Wie funktionieren eingebundene Abgleiche?

    Eingebundene Abgleiche erweitern den Einzelabgleich um verknüpfte Informationsobjekte. Bei Fremdschlüsselbeziehungen erfolgt die Synchronisierung kaskadierend: Parent-Objekte werden zuerst geprüft und synchronisiert, danach die Child-Objekte. Verknüpfte Objekte werden automatisch erkannt und einbezogen.

    Für eingebundene Abgleiche können abweichende Vergleichsattribute definiert werden, die die globalen Definitionen nur für den spezifischen Abgleich überschreiben. Bei Many-to-Many-Beziehungen werden das Child-Objekt, die Zwischentabelle und die Many-to-Many-Beziehung selbst geprüft.

    Die Synchronisierung umfasst das Erstellen oder Aktualisieren von Soll-Child-Objekten, das Aktualisieren attributierter Many-to-Many-Beziehungen und das Löschen verwaister Beziehungen. Alle eingebundenen Abgleiche und Synchronisierungen werden zusammen mit dem Ausgangsabgleich durchgeführt.

    03.04

    Was leisten gestaffelte Abgleiche?

    Gestaffelte Abgleiche orchestrieren mehrere Einzelabgleiche in einer definierten Reihenfolge. Globale Parameter — wie Zeiträume oder Prozesse — werden automatisch an alle enthaltenen Einzelabgleiche weitergegeben. Für jeden Einzelabgleich erstellt der Entwickler ein SQL-Skript, das die IDs der abzugleichenden Datensätze ermittelt.

    Das Skript liefert vier mögliche Rückgabewerte: IDs der Referenztabelle (Abgleich wird durchgeführt), -1 (Abgleich wird als „nicht erfolgreich" markiert), -2 (Abgleich wird als „erfolgreich" markiert, unabhängig vom Ergebnis), oder keine IDs (Bewertung wird vom Entwickler explizit definiert).

    Die automatische Synchronisierung erfolgt nur, wenn alle Einzelabgleiche als „erfolgreich" markiert sind. Die Synchronisierung kann pro Einzelabgleich oder global definiert werden und unterstützt hierarchische, regelbasierte, ereignisbasierte, prozessgesteuerte und genehmigungsbasierte Mechanismen.

    03.05

    Wie werden Abgleiche aufgerufen und gesteuert?

    Einzelabgleiche und eingebundene Abgleiche können regelbasiert und ereignisorientiert, aus Anwendungen und Prozessen über den Maskengenerator, über eigene Menüpunkte oder zeitgesteuert über den Action Scheduler aufgerufen werden.

    Die Ergebnisse werden im Ist/Soll-Abgleichcockpit visualisiert, das Abweichungen nach Kategorien darstellt (fehlend, zusätzlich, geändert) und eine Detailansicht je Datensatz bietet. Gestaffelte Abgleiche werden über SQL-Skripte regelbasiert aufgerufen und nutzen Parameter zur Steuerung des Umfangs. Die Berechtigungen im Cockpit greifen granular: rollenbasiert (RBAC), nach Organisationseinheiten, Partnerfirmen oder auf Benutzerebene.

    04 / 06

    Maskengenerator als Integrationsschicht

    04.01

    Wie dient der Maskengenerator der Integration?

    Der Maskengenerator fungiert als Integrationsschicht zwischen Benutzeroberfläche und externen Systemen. Über die Programmierschnittstellen SQL-API, Server-SQL-API, JavaScript und C#-Skripte können Entwickler beliebige Integrationslogik direkt in Masken implementieren.

    Die CustomReport-Komponente eignet sich besonders als Datenquelle für konsolidierte Ansichten: Sie kann Daten aus HTTP-Endpoints, REST-APIs, SOAP-Webservices und OLE-DB-Providern in einer einheitlichen tabellarischen Darstellung zusammenführen. Über Systemereignisse wie AfterFormInit und AfterSave lassen sich externe Systeme automatisch bei Maskenaktionen ansprechen.

    Die Kommunikation zwischen Masken über Ereignisse wie OnInited, OnSave, OnMessage und OnClosed ermöglicht den Austausch von Daten und Statusinformationen innerhalb komplexer Prozessabläufe.

    05 / 06

    Action Scheduler für automatisierte Datenflüsse

    05.01

    Wie werden zeitgesteuerte Integrationsabläufe konfiguriert?

    Der Action Scheduler ermöglicht die Automatisierung wiederkehrender Integrationsaufgaben durch konfigurierbare Schrittfolgen. Jede Definition besteht aus einem oder mehreren Schritten, die aus vorgefertigten Plattformbausteinen oder individuellen Aktionen zusammengesetzt werden.

    Vorgefertigte Schritte umfassen: Materialized View refreshen (Aktualisierung lokaler Datencaches), Ist/Soll-Abgleich (automatischer Abgleich mit optionalem E-Mail-Versand), Report generieren (mit Bereitstellung als Web-Snapshot, CSV, XLSX oder E-Mail), Gruppe refreshen (Aktualisierung dynamischer Datenstrukturen) und Matrix generieren.

    Individuelle Schritte umfassen die Ausführung von SQL-Skripten (mit optionalem E-Mail-Versand des Ergebnisses) und C#-Skripten für komplexe Integrationslogik wie datenbankübergreifende Operationen.

    05.02

    Welche Zeitplanoptionen stehen zur Verfügung?

    Für jede Definition können mehrere Zeitpläne erstellt werden, die individuell aktiviert oder deaktiviert werden. Die Durchführungshäufigkeit umfasst: Einmalig (festes Datum und Uhrzeit oder Ausführung in den nächsten 20 Sekunden), Täglich (jeden Tag, jeden zweiten Tag etc., mit optionalen Minuten- oder Stundenintervallen innerhalb eines Zeitfensters), Wöchentlich (an spezifischen Wochentagen, mit denselben Intervalloptionen wie bei täglichen Plänen).

    Jeder Zeitplan kann einen Gültigkeitszeitraum mit Anfangs- und Enddatum erhalten. Alle Ausführungen werden in der Verwaltungsoberfläche protokolliert, und jede Definition unterliegt der Änderungsdokumentation für vollständige Nachvollziehbarkeit.

    06 / 06

    SQL-Views und Materialized Views für Datenbereitstellung

    06.01

    Wie werden SQL-Views für die Integration genutzt?

    SQL-Views in omniSuite sind virtuelle Tabellen, die Daten aus einer oder mehreren Quellen integrieren und ohne physische Speicherung bereitstellen. Für die Integration externer Daten stehen die SQL-Server-Funktionen opendatasource, openquery, openrowset und openjson zur Verfügung, die den Zugriff auf externe Datenbanken und JSON-Daten ermöglichen.

    Der SQL-Abfrage-Wizard unterstützt die Erstellung komplexer Views durch dynamische Navigation über Tabellenbeziehungen und automatische SQL-Generierung. Views können benutzerdefinierte Funktionen aus dem Script-Repository einbinden und direkt nach Erstellung aus dem SQL-Abfragescript aufgerufen werden.

    Views, die als View-Tabellen definiert sind, unterstützen Fremd- und Primärschlüssel und ermöglichen so die Definition von Beziehungen zu anderen Tabellen.

    06.02

    Welche Rolle spielen Materialized Views bei der Datenintegration?

    Materialized Views speichern Abfrageergebnisse in einer lokalen Tabelle und aktualisieren diese nach definierten Intervallen oder über SQL-Skripte. Sie werden über vier Wege erstellt: aus internen Datenbanken, aus externen Datenbanken über OLE-DB-Provider (Oracle, MySQL, MS SQL Server, CSV, Excel), über benutzerdefinierte SQL-APIs mit Unterstützung durch den SQL-Abfrage-Wizard, oder über C#-Skripte für individuelle Filter und Logiken.

    Die Mapping-Verwaltungsoberfläche ermöglicht die Zuordnung von Attributen und Fremdschlüsseln zwischen Quelle und Materialized View. Besonders relevant für die Integration ist die Unterstützung föderierter Abfragen: Daten aus externen Systemen werden lokal gecached und bei Bedarf aktualisiert, sodass häufig abgefragte Daten direkt in omniSuite zur Verfügung stehen, ohne die externe Quelle bei jeder Abfrage zu belasten. Die Aktualisierung kann über den Action Scheduler zeitgesteuert automatisiert werden.

    ter>