Anbindung des Datastore-DMS als Archivsystem

Archivierung

Der Datastore-DMS-Adapter archiviert die vom ArchiveJob ausgewählten Nachrichtenattribute über die HTTP-API des Datastore-DMS. Neue Nachrichten werden nicht im B2B-Archivindex erfasst und sind daher über die B2B nicht abrufbar. Der lesende Zugriff ist nur für ältere Nachrichten gedacht, die mit dem Ixos-Adapter archiviert und anschließend in das Datastore-DMS migriert wurden (siehe Lesender Zugriff auf migrierte Dokumente).

Die zu archivierenden Attribute werden über die allgemeinen Properties des ArchiveJobs, insbesondere B3P_ARCHIVE_MSGS, ausgewählt. Der Adapter sendet jedes vorhandene Attribut in einem eigenen Multipart-Request an das Datastore-DMS. Als Dateiname wird die Attribut-ID mit der Endung .txt verwendet.

Einrichtung

Der ArchiveJob wird wie in der allgemeinen Dokumentation beschrieben als Scheduler-Service eingerichtet. Diese allgemeinen Eigenschaften müssen gesetzt werden:

Eigenschaft Beschreibung
B3P_ARCHIVE_TYPE com.nextlevel.b2bbp.datastoredms.ArchiveDatastoreDMS
B3P_INDEX_TYPE Leer lassen. Neue Nachrichten dürfen nicht im Archivindex erfasst werden; der Job startet nicht, wenn die Eigenschaft gesetzt ist.

Global Properties

Diese Global Properties sind spezifisch für den DatastoreDMS-Adapter und gelten für Archivierung und lesenden Zugriff:

Eigenschaft Pflicht Beschreibung
DATASTORE_DMS_BASE_URL Ja Basis-URL der Datastore-DMS-API, beispielsweise https://dms.example.org/api.
DATASTORE_DMS_DOC_AREA Ja Dokumentenbereich im Datastore-DMS.
DATASTORE_DMS_TARGET_FOLDER Ja Zielordner im Dokumentenbereich.
DATASTORE_DMS_USER Ja Datastore-DMS Benutzername für die HTTP-Basic-Authentifizierung.
DATASTORE_DMS_PASSWORD Ja Mit dem B2B-Encrypt-Tool kodiertes Passwort.
DATASTORE_DMS_TIMEOUT_IN_MILLISECONDS Nein Gemeinsamer Connect- und Read-Timeout in Millisekunden. Der Standardwert ist 60000.

Für den lesenden Zugriff über die reinen DatastoreDMS-Monitore gelten diese Global Properties:

Eigenschaft Wert
B3P_ARCHIVE_MESSAGE_MONITOR_IMPL com.nextlevel.b2bbp.datastoredms.monitor.EmailArchiveMonitorDatastoreDMS
B3P_ARCHIVE_AS2_MESSAGE_MONITOR_IMPL com.nextlevel.b2bbp.datastoredms.monitor.AS2ArchiveMonitorDatastoreDMS
B3P_ARCHIVE_MONITOR_IMPL com.nextlevel.b2bbp.datastoredms.monitor.ArchiveMessageMonitorDatastoreDMS

Aus den Angaben werden die URLs nach folgendem Schema gebildet. Dokumentenbereich und Zielordner werden als URL-Pfadsegmente codiert.

Zweck URL
Archivierung (POST) <DATASTORE_DMS_BASE_URL>/<DATASTORE_DMS_DOC_AREA>/<DATASTORE_DMS_TARGET_FOLDER>/archive?indexed=false
Lesender Zugriff (GET) <DATASTORE_DMS_BASE_URL>/<DATASTORE_DMS_DOC_AREA>/retrieveXsap/<RESID>

Konfigurationsbeispiel

# ArchiveJob (Service-Properties)
B3P_ARCHIVE_TYPE = com.nextlevel.b2bbp.datastoredms.ArchiveDatastoreDMS
B3P_INDEX_TYPE = <leer>
# Global Properties
DATASTORE_DMS_BASE_URL = https://<dms-host>/<api-pfad>
DATASTORE_DMS_DOC_AREA = <dokumentenbereich>
DATASTORE_DMS_TARGET_FOLDER = <zielordner>
DATASTORE_DMS_USER = <basic-auth-benutzer>
DATASTORE_DMS_PASSWORD = <mit-dem-b2b-encrypt-tool-kodiertes-passwort>
DATASTORE_DMS_TIMEOUT_IN_MILLISECONDS = 60000
B3P_ARCHIVE_MONITOR_IMPL = com.nextlevel.b2bbp.datastoredms.monitor.ArchiveMessageMonitorDatastoreDMS
B3P_ARCHIVE_MESSAGE_MONITOR_IMPL = com.nextlevel.b2bbp.datastoredms.monitor.EmailArchiveMonitorDatastoreDMS
B3P_ARCHIVE_AS2_MESSAGE_MONITOR_IMPL = com.nextlevel.b2bbp.datastoredms.monitor.AS2ArchiveMonitorDatastoreDMS

Fehlt eine Pflichtproperty, ist sie leer, kann das Passwort nicht entschlüsselt werden oder ist der Timeout ungültig, schlägt die Initialisierung fehl und der ArchiveJob wird nicht gestartet.

Clearing-History

Der Adapter unterstützt die Archivierung der Clearing-History. Sie wird über die allgemeine Global Property aktiviert:

B3P_DO_ARCHIVE_CLEARING=true

Die Clearing-History wird als separates DMS-Dokument mit dem Dateinamen clearing-history.txt gespeichert.

EDIFACT-Metadaten

Zusätzlich zu den Basis-Metadaten werden Metadaten aus dem EDIFACT-Interchange der Nachricht übergeben. Quelle ist ausschließlich der EDIFACT-Text der Nachricht; ist die Nachricht kein EDIFACT, bleiben die Felder leer. Unterstützt werden UTILMD, MSCONS, INVOIC, REMADV und APERAK.

Listenwerte werden im JSON als {"list": ["wert1", "wert2"]} übergeben; leere und doppelte Werte werden entfernt.

Lesender Zugriff auf migrierte Dokumente

Die Monitor-Klassen des Datastore-DMS-Adapters lesen weiterhin über den unveränderten, bisherigen B2B-Archivindex und rufen die Dokumente anhand der Archiv-ID aus dem Datastore-DMS ab. Neue Nachrichten werden nicht indiziert und sind nicht auffindbar.

Voraussetzungen

  • Die Dokumente wurden mit unveränderter Archiv-ID aus dem Ixos-Archiv in das Datastore-DMS migriert. Die alte Ixos-Archiv-ID muss der Repository-ID im Datastore-DMS entsprechen.
  • Der bisherige Archivindex bleibt unverändert erhalten.

Migrationsbetrieb: nscale zuerst, Ixos bei HTTP 404

Während der Migration lesen die Monitore zuerst aus nscale. DatastoreDMS wird wie oben beschrieben eingerichtet. Aus der Ixos-Archivkonfiguration werden nur die Voraussetzungen für den lesenden Zugriff benötigt:

  • Verbindung zum Altarchiv: B3P_IXOS_URL, B3P_IXOS_VERSION und B3P_IXOS_REPOSITORY; vorhandene Archivzuordnungen über B3P_IXOS_MPID_MAPPING beziehungsweise B3P_IXOS_BDEW_TYPE_MAPPING beibehalten. Die Archivwahl richtet sich nach System/System-MPID beziehungsweise Nachrichtentyp aus dem Altindex.
  • Bei signierten Archivaufrufen: B3P_IXOS_AUTH_ID, B3P_IXOS_CERT_EXPIRATION sowie die Extensions B3P_IXOS_PRIV_KEY und B3P_IXOS_CERT weiter bereitstellen. Vorhandene passende Einstellungen für B3P_IXOS_PROVIDER, B3P_IXOS_MODE und Client-Timeouts sowie die Ixos-Laufzeitkomponenten bleiben erhalten.
  • IXOS_ZIP_DATA passend zum Altbestand belassen: Die Einstellung wird auch beim Lesen komprimierter Dokumente benötigt, nicht nur beim Schreiben.

Nicht aus der Ixos-Anleitung übernehmen: Die drei Monitor-Properties dürfen nicht auf ArchiveMessageMonitorIxos, EmailArchiveMonitorIxos oder AS2ArchiveMonitorIxos umgestellt werden; es gelten die unten aufgeführten Migrationsmonitore. Für diesen Lesefallback keinen zusätzlichen schreibenden ArchiveJob für Ixos aktivieren und B3P_ARCHIVE_TYPE nicht auf com.nextlevel.b2bbp.ixos.ArchiveIxos setzen. Der schreibende DatastoreDMS-Job bleibt bei com.nextlevel.b2bbp.datastoredms.ArchiveDatastoreDMS mit leerem B3P_INDEX_TYPE.

Der bisherige Archivindex bleibt erhalten; migrierte Dokumente müssen unter ihrer vollständigen alten Ixos-Archiv-ID in nscale verfügbar sein.

Zur Aktivierung diese drei Global Properties setzen:

Global Property Migrationsmonitor
B3P_ARCHIVE_MONITOR_IMPL com.nextlevel.b2bbp.datastoredms.monitor.ArchiveMessageMonitorDatastoreDMSWithIxosFallback
B3P_ARCHIVE_MESSAGE_MONITOR_IMPL com.nextlevel.b2bbp.datastoredms.monitor.EmailArchiveMonitorDatastoreDMSWithIxosFallback
B3P_ARCHIVE_AS2_MESSAGE_MONITOR_IMPL com.nextlevel.b2bbp.datastoredms.monitor.AS2ArchiveMonitorDatastoreDMSWithIxosFallback

Für Dokumente, AS2-Nachrichten und E-Mail-/AS2-Anhänge löst nur HTTP 404 den Ixos-Abruf aus, auch bei falscher nscale-URL oder falschem Dokumentenbereich. Bei HTTP 204, 401/403, 5xx, Verbindungsfehlern, Timeout sowie Index-, Eingabe- oder Verarbeitungsfehlern erfolgt kein Fallback. Scheitert auch Ixos, bleibt der Abruf erfolglos. Fehlende oder beschädigte Anhänge führen nicht zum Quellenwechsel.

Clearing-History und E-Mail-Rohdaten werden separat behandelt: Sind sie aus nscale nicht verfügbar, wird auch bei anderen Fehlern Ixos versucht. Scheitert dies, sind keine Daten aus beiden Archiven verfügbar. Eine fehlende History blockiert die Dokumentanzeige nicht.

Jeder erneute Abruf beginnt bei nscale; nach der Migration eines Dokuments ist kein Neustart nötig. Der Migrationsbetrieb verändert weder Dokumente noch Archivindex.

Nach vollständiger Migration alle drei Properties wieder auf die oben aufgeführten reinen DatastoreDMS-Monitore setzen. Damit entfällt der Ixos-Fallback; Altindex und vollständige Archiv-IDs bleiben erforderlich.

ArchiveJob-Fehlerverhalten

Situation Verhalten des ArchiveJobs
HTTP 404, 406 oder 412 Der gesamte Joblauf wird abgebrochen, da von einem Konfigurations- oder API-Vertragsfehler ausgegangen wird.
HTTP 201 mit leerer oder nicht auswertbarer Antwort beziehungsweise ohne id oder areaName Der gesamte Joblauf wird wegen einer ungültigen API-Antwort abgebrochen.
Andere HTTP-Statuscodes, einschließlich anderer 2xx-Antworten, 500, 503 und 504 Die Nachricht erhält den Archivfehlerstatus ARF; der Job verarbeitet weitere Nachrichten.
Verbindungsfehler, Connect-Timeout oder Read-Timeout Die Nachricht erhält den Archivfehlerstatus ARF; der Job verarbeitet weitere Nachrichten.
View Me   Edit Me