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_VERSIONundB3P_IXOS_REPOSITORY; vorhandene Archivzuordnungen überB3P_IXOS_MPID_MAPPINGbeziehungsweiseB3P_IXOS_BDEW_TYPE_MAPPINGbeibehalten. Die Archivwahl richtet sich nach System/System-MPID beziehungsweise Nachrichtentyp aus dem Altindex. - Bei signierten Archivaufrufen:
B3P_IXOS_AUTH_ID,B3P_IXOS_CERT_EXPIRATIONsowie die ExtensionsB3P_IXOS_PRIV_KEYundB3P_IXOS_CERTweiter bereitstellen. Vorhandene passende Einstellungen fürB3P_IXOS_PROVIDER,B3P_IXOS_MODEund Client-Timeouts sowie die Ixos-Laufzeitkomponenten bleiben erhalten. IXOS_ZIP_DATApassend 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. |