# DigiWF Dms Integration

Die DMS Integration ermöglicht eine asynchrone Ablage von Dokumenten aus einem S3-Speicher in einem DMS-System. Zudem können DMS-Strukturen angelegt und verwaltet werden, darunter:

  • Anlage eines Dokuments
  • Speichern von Schriftstücken
  • Anlage und Suche von Akten
  • Anlage und Archivierung von Vorgängen

# Verwendung

Durch die DMS-Integration wird die Interaktion mit einem DMS-System ermöglicht, darunter die Ablage von Dokumenten. Zusätzlich kann direkt im Prozess auf untenstehende Fehler reagiert werden. Es gibt die Möglichkeit zwischen zwei DMS-Systemen zu wählen: MUCS- und ALW-DMS. Für das MUCS DMS wird der Integration-Name mucsDmsIntegration verwendet, für das ALW DMS alwDmsIntegration.

# Sachakte anlegen

Zur asynchronen Erstellung einer Sachakte im DMS erzeugen Sie zuerst ein CreateFileDto-Objekt und setzen den TYPE-Header auf createFile. Im Anschluss senden Sie das Objekt an das entsprechende Kafka-Topic. Den Namen des Topics können Sie in der Konfiguration des DMS-Integration-Services unter spring.cloud.stream.bindings.functionRouter-in-0.destination finden.

Nachfolgend ist ein Beispiel für ein CreateFileDto-Objekt aufgeführt:

{
  "apentryCOO": "",
  "title": "",
  "user": ""
}
1
2
3
4
5

Die DMS-Integration erzeugt eine Sachakte mit den angegebenen Variablen. Dafür muss vorab die ID des Aktenplans gesucht und über das Feld apentryCOO übergeben werden.

Verwendung in BPMN-Prozessen

Verwenden Sie eines der Element-Templates in einer Call Activity, um die Prozessentwicklung zu beschleunigen und befüllen Sie es mit den gewünschten Informationen. Eine Liste der Element-Templates finden Sie unter Element Templates.

# Vorgang anlegen

Zur asynchronen Erstellung eines Vorgangs im DMS erzeugen Sie zuerst ein CreateProcedureDto-Objekt und setzen den TYPE-Header auf createProcedure. Im Anschluss senden Sie das Objekt an das entsprechende Kafka-Topic. Den Namen des Topics können Sie in der Konfiguration des DMS-Integration-Services unter spring.cloud.stream.bindings.functionRouter-in-0.destination finden.

Nachfolgend ist ein Beispiel für ein CreateProcedureDto-Objekt aufgeführt:

{
  "fileCOO": "",
  "title": "",
  "fileSubj": "",
  "user": ""
}
1
2
3
4
5
6

Die DMS-Integration erzeugt einen Vorgang mit den angegebenen Variablen. Dafür muss vorab eine Akte angelegt und die ID über das Feld fileCOO übergeben werden.

Verwendung in BPMN-Prozessen

Verwenden Sie eines der Element-Templates in einer Call Activity, um die Prozessentwicklung zu beschleunigen und befüllen Sie es mit den gewünschten Informationen. Eine Liste der Element-Templates finden Sie unter Element Templates.

# Dokument erstellen

Zur asynchronen Erstellung eines Dokuments im DMS erzeugen Sie zuerst ein CreateDocumentDto-Objekt und setzen den TYPE-Header auf createDocument. Im Anschluss senden Sie das Objekt an das entsprechende Kafka-Topic. Den Namen des Topics können Sie in der Konfiguration des DMS-Integration-Services unter spring.cloud.stream.bindings.functionRouter-in-0.destination finden.

Nachfolgend ist ein Beispiel für ein CreateDocumentDto-Objekt aufgeführt:

{
  "procedureCoo": "",
  "title": "",
  "date": "",
  "user": "",
  "type": "",
  "filepaths": "",
  "fileContext": ""
}
1
2
3
4
5
6
7
8
9

Die DMS-Integration erzeugt ein Dokument mit den angegebenen Variablen. Dafür muss vorab ein Vorgang angelegt und die ID über das Feld procedureCoo übergeben werden. Als type können die Werte EINGEHEND, AUSGEHEND oder INTERN angegeben werden. Bei filepaths können mehrere Pfade zu Dateien oder Ordnern mit einem Komma getrennt übergeben werden.

Verwendung in BPMN-Prozessen

Verwenden Sie eines der Element-Templates in einer Call Activity, um die Prozessentwicklung zu beschleunigen und befüllen Sie es mit den gewünschten Informationen. Eine Liste der Element-Templates finden Sie unter Element Templates.

# Dokument updaten

Zum Updaten eines Dokuments im DMS erzeugen Sie zuerst ein UpdateDocumentDto-Objekt und setzen den TYPE-Header auf updateDocument. Im Anschluss senden Sie das Objekt an das entsprechende Kafka-Topic. Den Namen des Topics können Sie in der Konfiguration des DMS-Integration-Services unter spring.cloud.stream.bindings.functionRouter-in-0.destination finden.

Nachfolgend ist ein Beispiel für ein UpdateDocumentDto-Objekt aufgeführt:

{
  "documentCoo": "",
  "user": "",
  "type": "",
  "filepaths": "",
  "fileContext": ""
}
1
2
3
4
5
6
7

Die DMS-Integration fügt bei einem bestehenden Dokument die angegebenen Schriftstücke hinzu. Dafür muss vorab ein Dokument angelegt und die ID über das Feld documentCoo übergeben werden. Als type können die Werte EINGEHEND, AUSGEHEND oder INTERN angegeben werden. Bei filepaths können mehrere Pfade zu Dateien oder Ordnern mit einem Komma getrennt übergeben werden.

Verwendung in BPMN-Prozessen

Verwenden Sie eines der Element-Templates in einer Call Activity, um die Prozessentwicklung zu beschleunigen und befüllen Sie es mit den gewünschten Informationen. Eine Liste der Element-Templates finden Sie unter Element Templates.

# Zu den Akten legen

Um ein Objekt im DMS zu den Akten zu legen, müssen Sie zuerst ein DepositObjectDto-Objekt erstellen und den TYPE-Header auf depositObject setzen. Anschließend müssen Sie das Objekt an das entsprechende Kafka Topic senden. Den Namen des Topics finden Sie in der Konfiguration des DMS Integration Services unter spring.cloud.stream.bindings.functionRouter-in-0.destination.

Hier ist ein Beispiel für ein DepositObjectDto-Objekt:

{
  "objectCoo": "",
  "user": ""
}
1
2
3
4

Die DMS-Integration legt das Objekt mit der angegebenen Coo zu den Akten. Hierfür muss ein Objekt zuvor angelegt und die ID über das Feld objectCoo übergeben werden.

Verwendung in BPMN-Prozessen

Verwenden Sie das Element-Template in einer Call Activity, um die Prozessentwicklung zu beschleunigen, und füllen Sie es mit den gewünschten Informationen. Eine Liste der Element-Templates finden Sie unter Element Templates.

# Objekt stornieren

Um ein Objekt im DMS zu stornieren, müssen Sie zuerst ein CancelObjectDto-Objekt erstellen und den TYPE-Header auf cancelObject setzen. Anschließend müssen Sie das Objekt an das entsprechende Kafka Topic senden. Den Namen des Topics finden Sie in der Konfiguration des DMS Integration Services unter spring.cloud.stream.bindings.functionRouter-in-0.destination.

Hier ist ein Beispiel für ein CancelObjectDto-Objekt:

{
  "objectCoo": "",
  "user": ""
}
1
2
3
4

Die DMS-Integration storniert das Objekt mit der angegebenen Coo. Hierfür muss ein Objekt zuvor angelegt und die ID über das Feld objectCoo übergeben werden.

Verwendung in BPMN-Prozessen

Verwenden Sie das Element-Template in einer Call Activity, um die Prozessentwicklung zu beschleunigen, und füllen Sie es mit den gewünschten Informationen. Eine Liste der Element-Templates finden Sie unter Element Templates.

# Dateien lesen und in den S3-Speicher übertragen

Um eine Datei aus dem DMS zu lesen und in den S3-Speicher zu übertragen, müssen Sie zuerst ein ReadContentDto-Objekt erstellen und den TYPE-Header auf readContent setzen. Anschließend müssen Sie das Objekt an das entsprechende Kafka Topic senden. Den Namen des Topics finden Sie in der Konfiguration des DMS Integration Services unter spring.cloud.stream.bindings.functionRouter-in-0.destination.

Hier ist ein Beispiel für ein ReadContent-Objekt:

{
  "contentCoos": [
    "coo1",
    "coo2"
  ],
  "filePath": "folder",
  "fileContext": "processContext",
  "user": "test"
}
1
2
3
4
5
6
7
8
9

Die DMS-Integration liest die Inhalte mit den angegebenen contentCoos und überträgt sie in den S3-Speicher.

Verwendung in BPMN-Prozessen

Verwenden Sie das Element-Template in einer Call Activity, um die Prozessentwicklung zu beschleunigen, und füllen Sie es mit den gewünschten Informationen. Eine Liste der Element-Templates finden Sie unter Element Templates.

# Sachakte suchen

Um eine Sachakte im DMS zu suchen, müssen Sie zuerst ein SearchObjectDto-Objekt erstellen und den TYPE-Header auf searchFile setzen. Anschließend müssen Sie das Objekt an das entsprechende Kafka Topic senden. Den Namen des Topics finden Sie in der Konfiguration des DMS Integration Services unter spring.cloud.stream.bindings.functionRouter-in-0.destination.

Hier ist ein Beispiel für ein SearchObject-Objekt:

{
  "searchString": "untergruppe.*-sachakte-*",
  "user": "test"
}
1
2
3
4

Es ist möglich, die Suche über ein Fachdatum einzugrenzen. Dafür kann der Suche eine Referenz auf ein Fachdatum mitgegeben werden. Hier ist ein Beispiel für ein SearchObject-Objekt, das die optionalen Felder 'Fachdatum-Referenz' und 'Fachdatum-Wert' verwendet:

{
  "searchString": "untergruppe.*-sachakte-*",
  "user": "test",
  "reference": "testNumber",
  "value": "42"
}
1
2
3
4
5
6

Die DMS-Integration sucht nach der entsprechenden Sachakte und gibt eine COO-Liste derjenigen Sachakten zurück, auf die die Suchkriterien zutreffen. Wenn keine gefunden werden, wird ein OBJECT_NOT_FOUND BPMN Error geworfen.

Verwendung in BPMN-Prozessen

Verwenden Sie das Element-Template in einer Call Activity, um die Prozessentwicklung zu beschleunigen, und füllen Sie es mit den gewünschten Informationen. Eine Liste der Element-Templates finden Sie unter Element Templates.

# Aktenplaneintrag suchen

Um einen Aktenplaneintrag im DMS zu suchen, müssen Sie zuerst ein SearchObjectDto-Objekt erstellen und den TYPE-Header auf searchSubjectArea setzen. Anschließend müssen Sie das Objekt an das entsprechende Kafka Topic senden. Den Namen des Topics finden Sie in der Konfiguration des DMS Integration Services unter spring.cloud.stream.bindings.functionRouter-in-0.destination.

Hier ist ein Beispiel für ein SearchObject-Objekt:

{
  "searchString": "aktenplanName",
  "user": "test"
}
1
2
3
4

Die DMS-Integration sucht nach dem entsprechenden Aktenplaneintrag und gibt die Coo des ersten zurück, der gefunden wird. Wenn keiner vorhanden ist, wird ein OBJECT_NOT_FOUND BPMN Error geworfen.

Verwendung in BPMN-Prozessen

Verwenden Sie das Element-Template in einer Call Activity, um die Prozessentwicklung zu beschleunigen, und füllen Sie es mit den gewünschten Informationen. Eine Liste der Element-Templates finden Sie unter Element Templates.

# Fehlerbehandlung

Bei der Fehlerbehandlung wird zwischen BPMN Errors und Incident Errors unterschieden. BPMN Errors können im Prozess behandelt werden, während Incident Errors nicht im Prozess behandelt werden können und einen Incident erzeugen.

Nachfolgend sind die BPMN Errors aufgeführt, die von der DMS-Integration geworfen werden können:

# BPMN Error

Error Code Error Message Beschreibung Handlungsempfehlung
LOAD_FILE_FAILED An file could not be loaded from url: filepath Die Datei konnte nicht geladen werden Stellen Sie sicher, dass die Datei im S3 Bucket vorhanden ist
LOAD_FOLDER_FAILED An folder could not be loaded from url: folderpath Der Ordner konnte nicht geladen werden Stellen Sie sicher, dass der Ordner im S3 Bucket vorhanden ist
FILE_SIZE_ERROR The following files exceed the maximum size of <maximal Größe von Dateien> MB:<Liste von Dateien mit Größen> Einige Dateien haben die maximal zulässige Größe überschritten Stellen Sie sicher, dass nur Dateien mit der zulässigen Maximalgröße in den S3 Bucket geladen werden.
BATCH_SIZE_ERROR Batch size of <Summe der auf einmal verarbeiteten Dateien> MB is too large. Allowed are <maximal Größe eines Batches> MB. Die Summe von auf einmal zu verarbeitenden Dateien ist zu hoch Stellen Sie sicher, dass die Summe von auf einmal zu verarbeitenden Dateien nicht die Maßimalgröße überschreitet.
FILE_TYPE_NOT_SUPPORTED The type of this file is not supported: filepath Der Dateityp der Datei wird nicht unterstützt Die Datei kann nicht in DMS abgelegt werden
OBJEKT_GESPERRT Das Objekt "Objektname", „Objektadresse“ ist seit DD.MM.YYYY HH:MM:SS von Benutzername gesperrt. Das Objekt befindet sich aktuell in Bearbeitung und ist daher gesperrt Stellen Sie sicher, dass das Objekt sich nicht in Bearbeitung befindet
FEHLENDE_BERECHTIGUNG Ihre Rechte für Objekt <COO-Adresse> (Eigentümer/in <Benutzername>) reichen nicht aus. Zum Ausführen der Aktion fehlt dem übergebenen Benutzer die Berechtigung Stellen Sie sicher, dass der Benutzer die notwendigen Berechtigungen hat
UNGUELTIGE_ADRESSE Ungültiger Input Parameter: Objektadresse <im Aufruf angegebene COO-Adresse> Eine falsche oder nicht existierende COO-Adresse wurde übergeben Stellen Sie sicher, dass die richtige COO-Adresse übergeben wird
AUFRUF_OBJEKT_FALSCHER_FEHLERKLASSE Das übergebene Objekt mit der COO-Adresse <COO Adresse> ist ungültig, da das übergebene Objekt von der Objektklasse <Objektklasse> ist und dies nicht mit der/den erwarteten Objektklasse <Objektklasse> übereinstimmt. Das auszulesende Objekt entspricht nicht der erwarteten Objektklasse Stellen Sie sicher, dass die erwartete Objektklasse mit dem auszulesenden Objekt übereinstimmt
HINWEIS_LESEN_VON_STORNIERTEM_OBJEKT Das übergebene Objekt mit der COO-Adresse <COO-Adresse> ist storniert. Das übergebene Objekt ist storniert Das Objekt kann nicht gelesen werden
FALSCHE_ZUGRIFFSDEFINITION Ungültiger Input Parameter: “Zugriffsdefinition“ : <Wert> enthält einen ungültigen Wert. Die übergebene Zugriffsdefinition ist ungültig Stellen Sie sicher, dass eine gültige Zugriffsdefinition übergeben wird
FALSCHER_AKTENPLANEINTRAG Die Akte kann nicht erzeugt werden, da der übergebene Aktenplaneintrag [objname]+[COO-Adresse] keine Betreffseinheit ist. Der übergebene Aktenplaneintrag ist keine Betreffseinheit Stellen Sie sicher, dass der übergebene Aktenplaneintrag eine Betreffseinheit ist
NICHT_PLAUSIBEL Rückmeldung, wenn eine Plausibilitätsprüfung aufschlägt. z.B.: Das Eingangsdatum darf nicht in der Zukunft liegen. Eine Plausibilitätsprüfung schlägt fehl Überprüfen Sie Ihre Eingabe anhand der Fehlermeldung
OBJEKT_ZU_GROSS_FUER_UEBERTRAGUNG_MIT_SOAP Inhaltsobjekt (objname) ist zu groß (über 100 MB) und kann daher nicht via SOAP übertragen werden. Das Schriftstück ist zu groß Passen Sie die Größe des Schriftstücks an
AKTE_HAT_OFFENE_PROZESSE Akte / Vorgang hat offene Prozesse und z.A. kann nicht erfolgen Es liegt in der Akte oder dem Vorgang noch ein nicht abgeschlossener Prozess vor Prozesse durch manuellen Eingriff beenden lassen
AKTE_BEREITS_ZA Akte / Vorgang ist schon z.A. geschrieben Die Akte oder der Vorgang ist bereits z.A. gesetzt Bei Bedarf sicherstellen, warum schon z.A. gesetzt. Eventuell kein Handlungsbedarf
ROLLE_NICHT_IDENTIFIZIERBAR Rolle nicht identifizierbar Übergebene Rolle liegt nicht in der eAkte vor. Stellen Sie sicher, dass genutzte Rollen auch in der eAkte angelegt sind.

# Konfiguration

Allgemeine Konfigurationen für DigiWF-Integrationen sind unter Eigene Integration erstellen beschrieben.

Die Konfiguration der CoSys Integration ist in der README.md (opens new window) beschrieben.