Automatischer Workflow-Start bei der Objekterstellung

Funktion

Mit Hilfe dieser Erweiterung ist es möglich, dass bei der Erstellung eines neuen Objektes (Arbeitsmappe, Dokument, Ordner oder Listenelement) automatisch ein Workflow gestartet wird. 

Voraussetzungen

docuvita Version WorkflowServer-Lizenz
ab 2.0.1050 Nein *

* Zum Starten von individuellen Workflows wird eine WorkflowServer-Lizenz benötigt. Die docuvita Standardworkflows (Wiedervorlage, Information und Freigabe) können auch ohne eine zusätzliche Lizenz verwendet werden.

docuvita online

Wenn Sie ein docuvita online Kunde sind, wenden Sie sich bitte an unseren Vertrieb.

Installation

Um diese Erweiterung verwenden zu können, müssen Sie die von uns zur Verfügung gestellten Dateien…

  • dvs.OperationPlugin.StartWorkflow.dll
  • dvs.OperationPlugin.StartWorkflow.yml
  • dvs.YamlConfigurationManager.dll
  • YamlDotNet.dll

in das “plugins”-Verzeichnis des docuvita Servers kopiert werden.

Standardpfad

Der Standardpfad des “plugins”-Verzeichnis lautet: C:\Program Files (x86)\docuvita\docuvita Server 2.0\docuvita.Server\plugins

Registration des Plugins

Um des Plugin verweden zu können muss es vorher noch in der docuvita Datenbank in der Tabelle operationpluginconfiguration registiert werden.

1
2
3
4
5
    INSERT INTO dwadmin.operationpluginconfiguration(
            operationpluginname, operationpluginclass, configuration, 
            systemreference, isactive,position)
        VALUES ( 'dvs.OperationPlugin.StartWorkflow', 'dvs.OperationPlugin.StartWorkflow', '', 
            1, 1,1);

Datenbank Eintrag

Das Plugin muss noch in der Datenbank registiert werden.

Laden der dll und Registration

Bei der ersten Installation ist es notwendig, den Dienst docuvita.Server neu zu starten.

Konfiguration

Die Konfiguration erfolgt über die im “plugins”-Verzeichnis vorhandene Datei dvs.OperationPlugin.StartWorkflow.yml. Öffnen Sie diese Datei mit einem aktuellen Texteditor. In dieser Konfigurationsdatei gibt es zwei unterschiedliche Ebenen.

Hauptkonfiguration

Paramter Beschreibung Beispiel
timeSpan Alle n Minuten wird diese Konfiguration neu gelesen. 2
isActive Abschalten des kompletten Plugins. Zum ändern des Status auf true muss der Dienst docuvita.server neu gestartet werden. true
hasWorkflowLicense Immer auf True. Änderungen hier können die docuvita Workflowfunktionen einschräncken. true
isDocuvitaOnline Immer auf false. Änderungen hier können die docuvita Workflowfunktionen einschräncken. false
startWorkflowList Liste der zu startenden Workflows siehe Workflow spezifische Konfiguration

Workflow spezifische Konfiguration

Paramter Beschreibung Beispiel
isActive Wenn der Wert auf true gesetzt ist, dann ist diese Konfiguration aktiviert. true
parentObjectId Diese Objekt-ID (z.B. Ordner Eingangsrechnung) wird überwacht. Wird in diesem Ordner ein neues Objekt erstellt, dann startet ein neuer Workflow. Mit dem Wert 0 kann die Überwachung des Parent abgeschaltet werden.
Evtl. vorhandene Kombinationen mit dem Parameter objectTypeId werden berücksichtigt.
123456
objectTypeId Dieser Objekttyp wird überwacht. Wird ein neues Objekt von diesem Typ erstellt, dann startet ein neuer Workflow. Mit dem Wert 0 kann die Einschränkung auf dem Objekttyp deaktiviert werden.
Evtl. vorhandene Kombinationen mit dem Parameter parentObjectId werden berücksichtigt.
6
workflowName Technischer Name des zu startenden Workflows FreigabeEingangsrechnung
workflowStartParameter Komma getrennte Liste der gewünschten Startparameter. Die Eingabe erfolgt mit <technischer Feldname>:<Feldwert> MeinErsterParameter:Hallo mit Leerzeichen,MeinZweiterParameter:12
skipStartingIfWorkflowExists Wenn auf true wird vor dem Starten des Workflows geprüft, ob aktuell ein weiterer Workflow vom selben Typ auf dem selben Objekt aktiv ist. Wenn ja, wird kein weiterer Workflow gestartet. false

Beispiel Konfiguration

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
    timeSpan: 2
    isActive: true
    hasWorkflowLicense: true 
    isDocuvitaOnline: false # Wichtig
    startWorkflowList:
    -   isActive: false
        parentObjectId: 0 # Wenn 0 dann wird nur der Objekttyp überwacht. Ansonsten die Kombination aus Parent und Objekttyp.
        objectTypeId: 0 # Wenn 0 dann wird nur das Parent überwacht.  Ansonsten die Kombination aus Parent und Objekttyp.
        workflowName: 'dvo_aidex' # Technische Name des Workflows
        workflowStartParameter: '' # Kommagetrennte Liste der Startparameter. z.B. 'Parameter1:Hallo du,Paramter2:17'
        skipStartingIfWorkflowExists: true # Wenn true dann wird kein zweiter Workflow des selben Types gestart
    -   isActive: true
        parentObjectId: 0 # Wenn 0 dann wird nur der Objekttyp überwacht. Ansonsten die Kombination aus Parent und Objekttyp.
        objectTypeId: 3 # Wenn 0 dann wird nur das Parent überwacht.  Ansonsten die Kombination aus Parent und Objekttyp.
        workflowName: 'drk_gliederung' # Technische Name des Workflows
        workflowStartParameter: '' # Kommagetrennte Liste der Startparameter. z.B. 'Parameter1:Hallo du,Paramter2:17'
        skipStartingIfWorkflowExists: true # Wenn true dann wird kein zweiter Workflow des selben Types gestart