DOCUframe und Workflows

DOCUframe, Geschäftsprozesse und Workflows

 

Ein Workflow wird in der Regel eingesetzt, um einen arbeitsteiligen, wiederkehrenden Geschäftsprozeß geregelt ablaufen zu lassen. Dies kann manuell geschehen oder aber eleganter und weniger fehleranfällig durch die IT-technische Unterstützung in Form eines Workflowsystems.

Die Grundidee von DOCUframe ist die umfassende Unterstützung von Geschäftsprozessen. DOCUframe der Firma GSD enthält daher ein sehr flexibles Workflowsystem. Die Flexibiltät wird vorallem dadurch erreicht, dass jedes Objekt in DOCUframe Bestandteil eines Workflows sein kann und die genaue Ausgestaltung der einzelnen Workflowschritte detailliert über die in DOCUframe integrierte Programmiersprache DOCUcontrol erfolgen kann.

Die Definition des Workflows kann in einem grafischen Editor oder auch in Form einer Listendarstellung erfolgen. Dies ist lizenzabhängig:

DOCUframe Lizenzverwaltung

Beispielworkflow im grafischen Workflow-Editor

 
DOCUframe Workfloweditor

Neben sequentiellen Abfolgen von Workflowschritten sind natürlich wie in der obigen Abbildung zu sehen auch Verzweigungen möglich.

Darstellung des Workflows in Listenform

 

DOCUframe Workflow Listendarstellung

Wie erwähnt kann jedes Objekt in DOCUframe, also z.B. ein Dokument oder ein Vorgang an den gewünschten Workflow gekoppelt werden. Mit dieser Verbindung zwischen Objekt und Workflow wird dieser auch gestartet

Starten eines Workflows

 

DOCUframe Workflow starten

Dazu wird zunächst das gewünschte Objekt selektiert (hier ein PDF-Dokument) und im Menü „Dokument“ der Menüpunkt „Workflow starten…“ aufgerufen.
Ein Workflow kann auch mit der DOCUcontrol-Funktion „DBBeginWorkflow“ zu einem definierbaren Zeitpunkt initiiert werden.
Die einzelnen Workflow-Aktionen werden im Minutentakt abgearbeitet. Dieses Default-Intervall kann aber auch angepasst werden.

Der Workflow-Prozess

 

Zu jedem gestarteten Workflow gehört ein Workflowprozess. Die interne Abarbeitung der Workflowprozesse übernimmt der Verarbeitungsserver, der z.B. auch für die Ausführung der Datenaustauschmakros und vieler anderer Aufgaben, die bei DOCUframe im Hintergrund abgearbeitet werden, zuständig ist.

Wer SAP-Systeme kennt kann die Threads des DOCUframe Verarbeitungsserver mit den SAP Hintergrund- oder Batchprozessen vergleichen.
Die Abarbeitung der Schritte der gestarteten Workflows lässt sich in DOCUframe verfolgen (Menü „Einstellungen“ –> Workflow –> Prozesse):
 
DOCUframe Workflowprozesse

Workflow-Aktionen und Workflow-Makros

 

Jedem Workflow-Schritt und jeder Workflow-Verzweigung kann man nun eine Workflow-Aktion und ein Workflow-Makro zuordnen. In der Workflow-Aktion kann z.B. auch die Startzeit für den nächsten Workflow-Schritt geändert werden (Default: 1 Minute) oder aber der Workflow-Schritt beim Vorliegen bestimmter Bedingungen auch abgebrochen oder wiederholt werden.
 
Im Gegensatz zu der Workflow-Aktion kann man das einem Workflow-Schritt zuordenbare Workflow-Makro auch mit Parametern versorgt werden, die im Parametereingabefeld definiert werden können.
 
Das Workflow-Makro für den Schritt 1 in dem Beispielworkflow sieht folgendermaßen aus, wobei hier die Möglichkeit einer Parametrisierung des Workflow-Makros nicht genutzt wird:

INT Workflow( WfStatus WfStatus, DBSTRINGSET &Params )
  PDF Dok;
  
  Trace("Workflowschritt 1");
  Dok = WfStatus.Objekt;
  IF( DBOLock( Dok, WRITE_NOWRITE, FLAT ) )
      IF( DBORefresh( Dok, FLAT ) )
        Dok.Beschreibung = "Erzeugt durch WF-Schritt 1";
        DBOStore( Dok, FLAT );
      ENDIF
      DBOUnlock( Dok, WRITE_NOWRITE, FLAT );
  ELSE
      Trace( " <- Fehler beim Sperren" );
  ENDIF
RETURN( WFR_OPERATION1 );

Mit einem Parameter für die den Beschreibungstext des Dokuments sieht das Makro wie folgt aus:

INT Workflow( WfStatus WfStatus, DBSTRINGSET &Params )
  PDF Dok;
  
  Trace("Workflowschritt 1");
  Dok = WfStatus.Objekt;
  IF( DBOLock( Dok, WRITE_NOWRITE, FLAT ) )
      IF( DBORefresh( Dok, FLAT ) )
        Dok.Beschreibung = DBStrGetField( Params, "Beschreibung" );;
        DBOStore( Dok, FLAT );
      ENDIF
      DBOUnlock( Dok, WRITE_NOWRITE, FLAT );
  ELSE
      Trace( " <- Fehler beim Sperren" );
  ENDIF
RETURN( WFR_OPERATION1 );

Im Workflowschritt wird der Wert des Parameters festgelegt:
 
DOCUframe Workflow-Makro Parameter

Bei beiden Alternativen wird neben einer Kontrollausgabe mittels Trace-Funktion in das DOCUframe-Monitor-Programm in dem Workflow-Step lediglich die Beschreibung des Dokuments geändert, das mit dem Workflow verbunden wurde.
 
Analog sind die Workflow-Makros für die Schritte 2 bis 4 aufgebaut.
Das Workflow-Makro für die Verzweigung ist folgendermaßen aufgebaut:

INT Workflow( WfStatus WfStatus, DBSTRINGSET &Params )
  PDF Dok;
  INT RC;
  
  Trace("Verzweigung");
  Dok = WfStatus.Objekt;
  IF ( Dok.Name == "Antrag.pdf" )
    RC = WFR_OPERATION1;
  ELSE
    RC = WFR_OPERATION2;
  ENDIF
RETURN( RC );

Ist der Name des Dokuments „Antrag.pdf“ dann wird der 1. Workflow-Folgeschritt ausgeführt. Dazu ist die Workflow-Konstante WFR_OPERATION1 zurückzugeben. Dieser Folgeschritt entspricht dem Schritt 3 im Gesamtworkflow. Im Alternativfall kommt der Folgeoperation 2 durch Rückgabe der Workflow-Konstante WFR_OPERATION2 zum Zuge. Dieser entspricht dem Schritt 4 im Workflow:
 
DOCUcontrol Workflow Verzweigung

Neben den Workflow-Makros gibt es wie bereits erwähnt die Workflow-Aktionen. Auch in Code einer Workflow-Aktion könnten wir die gewünschte Änderung der Beschreibung unseres Dokuments unterbringen. Schritt 1 würde dann so aussehen:
 
DOCUcontrol Workflow-Aktion

INT WfOperation( WfStatus WfStatus )
  PDF Dok;
  
  Trace("Workflowschritt 1");
  Dok = WfStatus.Objekt;
  IF( DBOLock( Dok, WRITE_NOWRITE, FLAT ) )
      IF( DBORefresh( Dok, FLAT ) )
        Dok.Beschreibung = "Erzeugt durch WF-Schritt 1";
        DBOStore( Dok, FLAT );
      ENDIF
      DBOUnlock( Dok, WRITE_NOWRITE, FLAT );
  ELSE
      Trace( " <- Fehler beim Sperren" );
  ENDIF
RETURN( WFR_OPERATION1 );

Zum Abschluss dieser kurzen Einführung in das Workflowsystem von DOCUframe starten wir den Workflow mit folgendem PDF-Dokument.

Starten eines Workflows in DOCUframe

 
DOCUframe Workflow Dokument

Das Feld Beschreibung des Dokuments ist zunächst leer. Jetzt starten wir den Workflow „Antragsbearbeitung“:
 
DOCUframe Workflow-Schritt

Im Workflow-Prozessmonitor können wir den Fortschritt beobachten.
Schritt 1 ist ausgeführt, Schritt 2 steht zur Ausführung an:
 
DOCUframe Workflow-Status

Zu diesem Zeitpunkt hat das Beschreibungsfeld des Dokuments den Inhalt „Erzeugt durch WF-Schritt 1“:
 
DOCUframe Workflow Dokument nach Schritt 1

Da der Name des Dokuments ungleich „Antrag.pdf“ ist, erwarten wir, dass nach dem Durchlaufen der Verzweigung Schritt 4 ausgeführt wird.

IF( Dok.Name == "Antrag.pdf" )
  RC = WFR_OPERATION1;  // --> Schritt 3
ELSE
  RC = WFR_OPERATION2;  // --> Schritt 4
ENDIF

Im Monitor können wir die Abfolge der Workflowschritte sehen:
 
DOCUframe GSD Monitor

Wie erwartet wird nach den Schritten 1 und 2 der Schritt 4 ausgeführt.
Und im Beschreibungsfeld des Dokuments steht ebenfalls das erwartete Ergebnis „Erzeugt durch WF-Schritt 4“:
 
DOCUcontrol Workflow beendet

Das Workflowsystem von DOCUframe ist durch DOCUcontrol äußerst flexibel, dessen Möglichkeiten das obige kleine Beispiel nur erahnen lässt.


[of_autor]

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert