HCL Domino · Datenbanken · Schnittstellen · Backend-Automatisierung

Multiple Data Sources mit HCL Domino

In modernen Domino-Umgebungen reicht die einfache Punkt-zu-Punkt-Übertragung selten aus. Komplexe Prozesse benötigen gleichzeitig Daten aus mehreren Notes-Datenbanken, relationalen Datenbanksystemen, Dateien, Webdiensten und weiteren Schnittstellen.

Die zentrale Herausforderung lautet: „Wie lassen sich heterogene Quellen und Zielsysteme innerhalb eines einzigen, kontrollierten Ablaufs zusammenführen und verarbeiten?“

Die Lösung: Die Domino API-Engine verbindet Notes-Datenbanken, Datenbanksysteme, Dateien, Webdienste und weitere Schnittstellen in einer zentralen Script-Laufzeit. Sie liest, kombiniert und transformiert Daten serverseitig in einem gemeinsamen Ablauf.
Mehrere Datenquellen und Zielsysteme in einem Script Notes · RDBMS · Dateien · APIs · weitere Schnittstellen Domino-Datenbanken mehrere NSFs & Server Relationale DBs mehrere Systeme & Verbindungen Dateien & Webdienste CSV · XML · REST · HTTP API-Engine zentrales Engine-Script lesen · kombinieren · transformieren in mehrere Zielsysteme schreiben Domino / NSF Dokumente · Responses · Mails Datenbanksysteme Inserts · Updates · Synchronisation Dateien / APIs PDF · JSON · XML · REST Lesen und Schreiben innerhalb desselben Ausführungskontexts Evaluation-Beispiel: 2 Domino-DBs · 2 MySQL-DBs · CSV-Testdaten
Das Problem klassischer Ansätze

Eine Datenverbindung ist noch kein Integrationsprozess

Klassische Connectoren bieten häufig nur Punkt-zu-Punkt-Transfers. Reale Geschäftsprozesse müssen jedoch Daten aus mehreren Quellen kombinieren, bevor Entscheidungen getroffen oder Werte in verschiedene Systeme zurückgeschrieben werden können.

Klassische Grenzen
  • häufig auf einzelne 1:1-Verbindungen ausgerichtet
  • begrenzte Verarbeitungslogik während des Transfers
  • verteiltes Error-Handling über mehrere Module
  • hoher Overhead bei vielen Einzelabfragen
Anforderungen der Praxis
  • gleichzeitiger Zugriff auf mehrere Server und Systeme
  • regelbasierte Transformation direkt im Ablauf
  • servernahe Performance und zentrales Logging
  • kontrollierte Fehlerbehandlung und reproduzierbare Verarbeitung
Lösungsansatz & Performance

Skalierbar und servernah für große Datenmengen

Die Domino API-Engine läuft als native Server-Komponente. Verbindungen und Datenbankhandles werden beim Scriptstart geöffnet und über die Verarbeitung hinweg wiederverwendet. Dadurch entfällt der wiederholte Initialisierungsaufwand separater Agentenläufe oder ständiger Connect-Disconnect-Zyklen.

Heterogene Integration Liest Notes-Dokumente, ergänzt externe Daten und schreibt das Ergebnis gezielt in die benötigten Zielsysteme.
Effiziente Ressourcennutzung Geöffnete Datenbankhandles und Verbindungen können über viele Datensätze hinweg wiederverwendet werden.
Hohe Durchsatzraten Entwickelt für wiederkehrende, datenintensive Migrations-, Synchronisations-, Import- und Batch-Prozesse.
Flexibles Output-Handling Schreibt Ergebnisse in NSFs, Datenbanken, Dateien, Mailsysteme, Webdienste oder weitere angebundene Systeme.
Neben Notes, relationalen Datenbanken, CSV und REST können — abhängig von den eingesetzten Engine-Libraries — beispielsweise auch LDAP/AD, SAP RFC, FTP, XML, EDI, MIME, HTTP-Dienste und Betriebssystemdateien in einen solchen Ablauf einbezogen werden.
Ausführbares Evaluation-Beispiel

Ein konkret testbarer Ablauf mit Notes und MySQL

Das Evaluation-Paket enthält ein bewusst überschaubares Beispiel mit zwei Domino-Datenbanken, zwei MySQL-Datenbanken und CSV-Testdaten. MySQL dient hier lediglich als unmittelbar reproduzierbare Referenzimplementierung; das zugrunde liegende Konzept ist nicht auf MySQL beschränkt.

  • Auftragsdaten aus einer Domino-Datenbank
  • Kundenstammdaten aus einer zweiten Domino-Datenbank
  • Artikeldaten und Preise aus einer MySQL-Datenbank
  • Kundensaldo aus einer weiteren MySQL-Datenbank
  • CSV-Dateien zur Vorbereitung der Testdaten

Das Demo-Script kombiniert diese Daten, erzeugt eine Auftragsbestätigung als Domino-Antwortdokument, aktualisiert den Kundensaldo und markiert den ursprünglichen Auftrag nach erfolgreicher Verarbeitung als erledigt.

Vereinfachter Engine-Script-Auszug Multiple Data Sources
INCLUDE("!!MULTIPLE_DATA_SOURCES_CONFIG");

/* Open the two Domino databases. */
OrdersDBh := @OpenDB(OrdersNotesDBPath);
CustomersDBh := @OpenDB(CustomersNotesDBPath);

/* Initialize two independent MySQL connections. */
MySQLhCustomers := @MySQLInit;
MySQLhItems := @MySQLInit;

@MySQLConnect(
    MySQLhCustomers;
    MySQLHostCustomers;
    MySQLUserCustomers;
    MySQLPasswordCustomers;
    MySQLDefaultDatabaseCustomers
);

@MySQLConnect(
    MySQLhItems;
    MySQLHostItems;
    MySQLUserItems;
    MySQLPasswordItems;
    MySQLDefaultDatabaseItems
);

/* Select all unprocessed order documents. */
OrdersSelectFormula :=
    "SELECT Form=\""+OrderFormName+"\" & Done!=\"1\";";

IDLOrderDocs := @ScanDB(
    OrdersDBh;
    OrdersSelectFormula;
    @AnyAllDay;
    1;
    1
);

/* Read the keys required for the combined processing. */
ThisOrderDoch := @OpenNoteByID(
    OrdersDBh;
    ThisOrderDocID;
    ThisOrderDoch
);

CustomerNr := CustomerNr[ThisOrderDoch];
ItemNr := ItemNr[ThisOrderDoch];

/* Combine the Domino and MySQL data. */
CALL:DoBookOrder(
    &MySQLhCustomers;
    &MySQLhItems;
    &CustomersDBh;
    CustomerNr;
    ItemNr;
    &RetDoUpdate
);

/* Update the source order only after successful processing. */
IF(RetDoUpdate = 1){
    Done[ThisOrderDoch] := "1";
}

ThisOrderDoch := @CloseNote(
    ThisOrderDoch;
    RetDoUpdate
);
Der entscheidende Punkt ist nicht die einzelne MySQL-Abfrage. Mehrere Domino-Datenbanken, externe Verbindungen und fachliche Verarbeitungsschritte bleiben innerhalb eines gemeinsamen, servernahen Engine-Prozesses geöffnet und kontrollierbar.
Evaluation Package

Das Multiple-Data-Sources-Beispiel selbst testen

Das aktualisierte Evaluation-Paket enthält das Config-Include-Script, das Prepare-Script, das eigentliche Demo-Script, die Domino-Testdatenbanken und die benötigten CSV-Testdaten.

Das Beispiel ist für eine kontrollierte Test- oder Evaluierungsumgebung vorgesehen und bewusst einfach gehalten. Die Engine selbst ist für hohe Durchsatzraten und große Datenmengen ausgelegt. In produktiven Projekten kommen zusätzlich geeignete Indizes, Transaktions- und Wiederanlaufkonzepte, Batch-Verarbeitung und projektspezifisches Fehler-Logging hinzu.
Mehrere Domino- und Fremdsysteme in einem Prozess verbinden? Testen Sie das enthaltene Beispiel oder besprechen Sie mit SL Net-Solutions, wie ein konkreter Integrations-, Migrations- oder Synchronisationsprozess mit der Domino API-Engine umgesetzt werden kann.
Evaluation herunterladen Szenario besprechen Weitere Artikel