Übersicht

 
Die BMD Archiv-SOAP-Schnittstelle bietet die Möglichkeit externe Archivlösungen programmtechnisch mit dem BMDNTCS-System zu verknüpfen. Ziel dabei ist es, dass Dokumente, welche über das BMDNTCS-DMS erfasst werden, physisch nicht im Dateisystem abgelegt, sondern über eine Archivlösung eines Drittanbieters verwaltet werden.

Um die Unabhängigkeit der Systeme zu gewährleisten, erfolgt die Kommunikation über ein Registrierungs- und Benachrichtigungssystem. Eine Anwendung, welche die BMD Archivschnittstelle benutzen will muss daher zwei Kommunikationskanäle unterstützen. Zum einen muss eine solche Anwendung einen TCP-Port zur Verfügung stellen, über welchen das BMD Archiv Benachrichtigungen im XML-Format an die Anwendung senden kann. Auf diese Benachrichtigungen muss dann über einen zweiten Kanal, die SOAP-Kommunikation, reagiert werden. Erfolgt keine Reaktion auf eine Benachrichtigung wird die zugehörige Operation nach einer bestimmten Timeout-Zeit abgebrochen.
1188997178000001010_0.png 

 Registrierung

 
Um von der BMD Archivschnittstelle Benachrichtigungen zu erhalten, muss sich eine Anwendung in einem einmaligen Initialisierungsschritt beim BMD Archiv registrieren. Die Registrierung erfolgt über die SOAP-Methode RegisterArchive und muss die folgenden Daten umfassen:
 
SystemID
eine im BMDNTCS-System hinterlegte Zeichensequenz zur Identifizierung der externen Anwendung
Notification-Server
Servername/IP-Adresse des Servers, auf dem die externe Anwendung den TCP-Port zur Benachrichtigung bereit hält
Notification-Port
Port-Nummer des TCP-Ports zum Empfang der Benachrichtigungen
 

 Benachrichtigung


Eine Benachrichtigung erfolgt immer dann, wenn ein BMDNTCS-Client im BMD Archiv eine Dokument-Aktion initiiert, bei welcher das physische Dokument jedoch im externen Archiv abgelegt ist. Die Bearbeitung einer Benachrichtigung sollte immer so rasch als möglich durchgeführt werden, da es Aktionen gibt, welche für den BMDNTCS-Client synchron ausgeführt werden, d.h. der Client wartet auf das Ergebnis. Synchrone Aktionen sind alle Anforderungsaktionen (OPEN/GET). Die Ablageaktionen (NEW/UPDATE/DELETE) werden aus Sicht des BMDNTCS-Clients asynchron ausgeführt, d.h. der Client wartet nicht auf das Ergebnis, dieses wird bereits vom Archivservice verarbeitet.

Die Benachrichtigung erfolgt über eine TCP-Nachricht auf den von der Anwendung definierten TCP-Port. Die TCP-Nachricht besteht aus einer Zeichenkette im XML-Format. Abgeschlossen wird die Nachricht durch die EOL-Sequenz CR+LF = Chr(13)+Chr(10).
 

 XML-Format

 
<BMDArchiveNotification>
    <Version>1.0</Version>
    <OpID>eakpacmxouufviq</OpID>
</BMDArchiveNotification>
 

 Felder

 

 Version

 
Gibt die Version des Benachrichtigungs-Formats an. Diese wird für eventuelle zukünftige Erweiterungen im XML-Format benötigt.
 

 OpID

 
Identifikation der laufenden Operation im BMD Archiv. Mit dieser ID muss in weiterer Folge über die SOAP-Methoden ArchiveGetOperation und ArchiveOperationResult die gewünschte Aktion von der BMD Archivschnittstelle abgefragt und zurückgeliefert werden.
 

 Reaktion auf Benachrichtigung

 
Auf eine Benachrichtigung muss in folgender Weise reagiert werden:

Connect (=ArchiveConnect)
Operationsdaten abfragen (=ArchiveGetOperation)
Operationsergebnis zurückliefern (=ArchiveOperationResult)
Disconnect (=ArchiveDisconnect)
 

 Aktionen von externen Anwendungen

 
Werden im externen Archiv neue Dokumente angelegt, Dokumente verändert oder gelöscht und soll diese Änderung dem BMD Archiv mitgeteilt werden, so kann dies über die Funktion ArchiveDocumentAction erfolgen, indem dort die Metadaten des neuen/geänderten/gelöschten Dokuments an die BMD Archivschnittstelle übergeben werden. Dieser Vorgang ist unabhängig von der Benachrichtigung durch die BMD Archivschnittstelle und kann jederzeit erfolgen.

Connect (= ArchiveConnect)
Metadaten übermitteln (= ArchiveDocumentAction)
Disconnect (= ArchiveDisconnect)
 

 Beteiligte Komponenten

 
Die BMD Archivschnittstelle wird über die BMD Komponente BMDNTCSSOAPService bereitgestellt. Für die externe Anwendung ist dies die einzige BMD-Komponente, mit der eine Interaktion erfolgt.
 

 SOAP-Methoden

 

 RegisterArchive

 
Registriert die Anwendung beim BMDNTCS-System als externe Archivanwendung. Diese Aktion muss einmalig durchgeführt werden, bzw. dann, wenn sich eine dieser Eigenschaften ändert.

Request (TBMDRegisterArchiveRequest):
SystemID: String
NotificationServer: String
NotificationPort: Integer

Response (TBMDRegisterArchiveResponse):
Status: TBMDSOAPStatus

 ArchiveConnect

 
Beginnt eine Session in der BMD Archivschnittstelle. Eine Session wird über eine Session-ID identifiziert. Diese Session-ID muss bei jedem folgenden Aufruf als SOAPHeader mitgesendet werden. Eine Session wird nach einer Timeoutzeit aufgelöst, wenn kein weiterer Zugriff darauf erfolgt. Die Standard-Timeoutzeit ist 10 Minuten.

Request (TBMDArchivConnectRequest):
SystemID: String

Response (TBMDArchivConnectResponse):
Status: TBMDSOAPStatus
SessionID: String

 ArchiveDisconnect

 
Beendet die Session in der BMD Archivschnittstelle.

Request (TBMDArchiveDisconnectRequest):
SessionID: String als TBMDSOAPSession im SOAP-Header

Response (TBMDArchiveDisconnectResponse):
Status: TBMDSOAPStatus
 

 ArchiveGetOperation

 
Fordert für eine bestimmte Operation Metadaten und Dokument an.

Request (TBMDArchiveGetOperationRequest):
SessionID: String als TBMDSOAPSession im SOAP-Header
OperationID: String

Response (TBMDArchiveGetOperationResponse):
MetaData: base64Binary
Dokument: base64Binary (optional)

 ArchiveOperationResult

 
Liefert das Ergebnis einer Operation an die BMD Archivschnittstelle zurück.

Request (TBMDArchiveOperationResultRequest):
SessionID: String als TBMDSOAPSession im SOAP-Header
OperationID: String
Dokument: base64Binary (optional)
OperationResult: TBMDOperationResult
OperationError: String

Response (TBMDArchiveOperationResultResponse):
Status: TBMDSOAPStatus

 ArchiveDocumentAction

 
Dient zur Übermittlung von Metadaten über ein im externen Archiv verändertes/neues/gelöschtes Dokument.

Request (TBMDArchiveDocumentActionRequest):
SessionID: String als TBMDSOAPSession im SOAP-Header
MetaData: base64Binary

Response (TBMDArchiveDocumentActionResponse):
Status: TBMDSOAPStatus
 

 SOAP-Elemente

 

 TBMDSOAPStatus

 
Jeder Response, der von der BMD Archivschnittstelle zurückgegeben wird, enthält ein SOAPStatus-Objekt. Dieses spezifiziert durch einen Code und eine Beschreibung Fehler, die durch die Bearbeitung des Requests aufgetreten sind. Der Fehlercode 0 steht für eine erfolgreiche Verarbeitung.

TBMDSOAPStatus = class {
Code: Integer
Description: String
}

 TBMDSOAPSession

 
TBMDSOAPSession = class {
Value: String
}

 TBMDOperationResult

 
TBMDOperationResult = {osOk, osFailed}
osOk
Die Bearbeitung der Operation konnte erfolgreich durchgeführt werden.
osFailed
Beim Bearbeiten der Operation ist ein Fehler aufgetreten.
 

 Fehlercodes

 
0
Erfolgreiche Aktion (Kein Fehler)
9000
Undefinierter BMD Archiv-Svc-Fehler
9001
Abfrage mit leerer OperationID
9002
Operation konnte nicht ermittelt werden
9010
Ausnahmefehler beim Registrieren
9011
SystemID nicht gültig
9012
Fehler beim Erneuern der Registrierungsdaten
9013
Session konnte nicht erzeugt werden
9020
Ausnahmefehler beim Connect
9021
Keine gültige Registrierung für diese SystemID
9022
Session konnte nicht erzeugt werden
9023
Existierende Session gefunden
9024
Fehler beim Erzeugen einer Session
9030
Ausnahmefehler beim Disconnect
9040
Ausnahmefehler beim GetOperation
9050
Ausnahmefehler beim OperationResult
9060
Ausnahmefehler beim DocumentAction
9061
Keine Metadaten-Informationen
9062
Metadaten-Datei nicht gefunden
9063
Funktion DOKUMENTXMLTRANSFER-IMPORT nicht gefunden
9064
DOKUMENTXMLTRANSFER-IMPORT liefert FALSE als Ergebnis
 

1097582601000001570.png
Siehe auch:
 
 
Fremdarchiv Implementierung