Sub-Outbar "Invoice" - Workflow Konfiguration
Dieses Kapitel beschreibt die Workflow-Konfigurationen. Das Invoice-Template wird mit einem Standard-Workflow ausgeliefert, welcher über diese Konfigurationen gesteuert wird.
Visio Workflow
Der Invoice-Mappentyp wird zusammen mit dem Workflow "WorkflowRules" ausgeliefert, welcher über das Visio-Plugin erstellt wurde. Der Workflow enthält keine Sub-Workflows. Der Workflow startet oben mittig und verläuft entgegen dem Uhrzeigersinn immer im Kreis. Der Verlauf kann zum einen über die Workflow-Konfiguration bestimmt werden. Zum anderen bieten die im Workflow hinterlegten Skripte User-Exits, um Feldwerte an der Mappe zu manipulieren.
Initiales Skript
Der Workflow startet mit einem initialen Skript-Aufruf. In dem Skript werden die initialen Berechtigungen gesetzt und falls es noch keine Rechnungsposition gibt wird eine initiale Rechnungsposition erstellt. Über die User-Exit Funktion "ue_Initialization()" kann beliebiger weiter Code ausgeführt werden. Das initiale Skript wird nur einmalig ausgeführt. Alle folgenden Abschnitte werden bis zum Workflow-Ende in jedem Durchlauf immer wieder ausgeführt.
Workflow-ID und Workflow-Aktion ermitteln
Zunächst wird eine eindeutige Workflow-ID ermittelt. Pro Workflow-ID können völlig unterschiedliche Abläufe definiert werden. Im Anschluss wird die Folge-Aktion zur bisherigen Aktion ermittelt. Die Workflow-Aktionen werden sequentiell abgearbeitet. Wenn noch keine Workflow-Aktion definiert ist wird die initiale Workflow-Aktion zur Workflow-ID ermittelt.
Die zugeordnete Workflow-ID kann im Laufe des Workflows wechseln. Wenn die Workflow-ID wechselt, dann wird geprüft ob die bisherige Workflow-Aktion auch im neuen Workflow vorkommt. Falls dem so ist startet der neue Workflow mit der Folge-Aktion zur alten Aktion und andernfalls startet der neue Workflow mit der ersten Aktion.
Einige für die Workflow-Steuerung relevanten Angaben werden direkt an der Aktion gehalten. Alle Informationen werden als JSON-String in das Feld "ActionInfoJSON" geschrieben, um Datenbankzugriffe zu vermeiden. Der Nachteil ist, dass sich Anpassungen bei der Workflow-Aktions-Konfiguration nicht direkt auswirken können.
Bei den Workflow-Aktionen wird zwischen technischen Aktionen und Aktionen, bei denen ein Benutzer oder eine Gruppe aktiv etwas bearbeiten muss. Rein technische Aktionen sind zum Beispiel die Archivierung oder die Buchungsschnittstelle.
Bei der Ermittlung der Aktion wird kein User-Exit angeboten. Bei einem Skript-Fehler wird die im Feld "WorkflowError" hinterlegte Gruppe angesprochen. Die Vorbelegung für das Feld ist "WorkflowError". Die dort hinterlegte Gruppe wird bei allen Workflow-Fehlern ausgenommen bei der Workflow-Regel-Ermittlung angesprochen.
Workflow-Regeln ermitteln
Über die Workflow-Regeln werden Benutzer oder Gruppen der Workflow-Aktion zugeordnet. Für technische Aktionen müssen keine Workflow-Regeln gepflegt werden. Nach der Benutzer-Ermittlung wird das User-Exit "ue_CheckWorkflowRules()" aufgerufen. Über diese Funktion können die Worfklow-Regel-Ergebnisse nachträglich manipuliert werden.
Falls keine Workflow-Regel ermittelt werden konnte wird die im Feld "WorkflowRulesError" hinterlegte Gruppe angesprochen. In der Standard-Auslieferung ist die gleichnamige Gruppe "WorkflowRulesError" am Feld hinterlegt.
Technische Aktion
Im Folge-Schritt wird die aktuell hinterlegte Workflow-Aktion geprüft, ob es sich um eine technische Aktion handelt. Bei den technischen Aktionen werden 2 Skripte in Abfolge ausgeführt. Für die mit dem Standard ausgelieferten technischen Aktionen sind bereits fertige User-Exit-Funktionen im Skript "DEXPRO__UserExit_TechActionLib" vorhanden.
Für projektspezifische technische Aktionen muss die Funktion "ue_TechSendControlFlow()" verwendet werden. Nach der ersten Skriptausführung wird über die Funktion "ue_TechActionDecision()" entschieden, ob nachfolgend eine direkte weitere Skriptausführung stattfindet oder ob die Rechnungs-Akte bei der technischen Gruppe "TechAccessProfile" abgelegt wird und durch ein Job-Skript weiter verarbeitet wird. Die Archivierung kann zum Beispiel direkt erfolgen oder kann über einen Job geplant zu einem definierten Zeitpunkt ausgeführt werden. Für die über einen Job ausgeführte Weiterleitung muss ein separates projektspezifisches Skript erstellt werden und für die direkte Ausführung muss die Funktion "ue_ReceiveSignal2()" angepasst werden.
Workflow-Aktionen für Benutzer / Gruppen
Über die Workflow-Regeln wird der Workflow-Aktion ein Benutzer bzw. eine Gruppe zugeordnet. Über die Konfiguration der Workflow-Aktion ergeben sich zusätzliche Informationen, ob Benutzer oder Gruppen zum Beispiel lediglich informiert werden sollen oder ob die Gruppe die Mappe als Gruppe sperrt oder ob die Gruppe vorab aufgelöst werden soll oder ob die Rechnungs-Akte direkt im Bearbeitungs-Modus gestartet werden soll oder ob die Mailversendung für die Benutzer unterdrückt werden soll. Neben weiteren Konfigurationen kann auch die Beschriftung des Buttons zum Abschluss der Aktion gesetzt werden. Über die User-Exit Funktion "ue_BeforeUserAction()" kann beliebiger Code vor dem Routing zum Workflow-Schritt ausgeführt werden.
Über die gesammelten Informationen routet der Workflow die Akte zum entsprechend passend konfigurierten Visio-Workflow-Schritt. Für die passende Anzeige der Kopffelder wird das "decreaseFieldRightOnFileViewScript" mit dem Namen "Invoice_DF_DecreaseFieldRightOnFileViewScript" ausgeführt und greift dabei auf die WEB-Feld-Konfiguration zu. Über die Eigenschaft "gentableDefScriptName" wird der Aufbau der Rechnungspositionen ebenfalls komplett über die WEB-Konfiguration gesteuert.
Wenn die Akte durch eine Gruppe gesperrt wird kann ein Benutzer aus der Gruppe die Bearbeitung der Mappe übernehmen. Die Rechnungs-Akte wird zu einem anderen Workflow-Schritt weitergeleitet, in der der Benutzer die Rechnungs-Akte exklusiv sperrt. Der Anwender kann den Beleg wieder zurück in den Gruppenkorb legen.
Die Invoice-Lösung wird mit diversen benutzerdefinierten Aktionen ausgeliefert. Das User-Exit Skript "Invoice__UserExit_DF_ShowUserDefinedActions" zur Anzeige-Steuerung der benutzerdefinierten Aktion wird unverschlüsselt ausgeliefert, damit projektspezifische Anpassung einfach vorgenommen werden können. Zur Verfügung steht zum Beispiel die benutzerdefinierte Aktion zur Weiterleitung an eine Gruppe oder an einen anderen Benutzer oder für die Rückfrage oder zum Zrücksenden an vorangegangene Aktionen sowie diverse Aktionen mit unterschiedlichen Beschriftungen zum Abschluss der Workflow-Aktion.
Beim Speichern und bei Abschluss der Aktion werden verschlüsselte Prüf-Skripte ausgeführt. Einige Prüfungen können über die Parameter-Steuerung ein- und ausgeschaltet werden. Im Skript "Invoice__UserExit_DocFileLib" können über die User-Exit Funktionen "ue_OnSave_Start()" und "ue_OnSave_End()" weitere projektspezifische Prüfungen am Start bzw. am Ende des Speicher-Vorgangs einer Rechnungs-Akte ausgeführt werden. Und im Skript "DEXPRO__UserExit_WorkflowLib" können beliebige projektspezifische Prüfungen beim Abschluss einer Aktion vor den Standard-Prüfungen über die Funktion "ue_OnActionEnd_Start()" bzw. nach Abschluss der Standard-Prüfungen über die Funktion "ue_OnActionEnd_End()" ausgeführt werden.
Prüfung Workflow-Ende
Nach Abschluss einer Aktion wird geprüft, ob es sich um die letzte Workflow-Aktion zur Workflow-ID handelt. Wenn es sich nicht um die letzte Workflow-Aktion handelt verläuft der Workflow weiterhin im Kreis und es wird im nächsten Schritt wieder die Folge-Aktion ermittelt. Wenn es sich um die letzte Workflow-Aktion handelt wird die User-Exit Prüf-Funktion "ue_CheckFileDataAtTheEndOfTheWorkflow()" aufgerufen. Am Workflow-Ende sollte jede Rechnungs-Akte archiviert worden sein - daher wird die Rechnungs-Akte zum Beispiel auf einen gültigen Archiv-Schlüssel geprüft. Zudem wird der Buchungs-Status der Mappe geprüft.
Bei der Konfiguration der Workflow ID kann definiert werden ob die Rechnungs-Akte am Ende des Workflows einfach liegen bleibt oder versiegelt wird oder gelöscht wird.
Workflow Konfigurationen
Über die Konfiguration "Workflow Konfiguration" können einige Definitionen gesetzt werden, welche nur sehr selten geändert werden sollen. In der Regel wird im Invoice-Standard das Gentable zur Darstellung der Rechnungs-Positionen verwendet. Der zweite Eintrag "Ungültige Einträge ignorieren" bezieht sich auf die Workflow-Regeln. Über den Parameter können auch ungültige Angaben für Benutzer oder Gruppen zugelassen werden um diese Angaben im Anschluss über die User-Exit Funktion auf korrekte Werte zu manipulieren.
In der Standard-Auslieferung werden bei den Workflow-Regeln bis zu 3 Prüf-Feldwerte pro Regel angezeigt. Bei Bedarf können bis zu 10 Prüf-Felder pro Regel angezeigt werden. Workflow-Regeln können zudem über Gültigkeitszeiträume zeitlich eingeschränkt werden. Hierüber können zum Beispiel geplante Abwesenheiten umgesetzt werden. Bei der Ermittlung der Workflow ID können bis zu 5 Felder geprüft werden.
Auch wenn es die Konfiguration zulässt: die Einträge dürfen nur angepasst werden und dürfen nicht gelöscht werden!
Workflow Aktionen
In der Standard-Auslieferung werden die gängigsten Workflow-Aktionen für die Rechnungs-Verarbeitung mit ausgeliefert. In der ersten Ansicht werden lediglich die Workflow-Aktionen angezeigt und es wird angezeigt ob es sich um eine technische Aktion oder um eine Aktion mit Benutzer-Interaktion handelt.
Durch einen Klick auf das Stift-Symbol oder durch einen Doppelklick auf die Zeile kann ein bestehender Eintrag geändert werden und über den Button "Neuer Eintrag" kann eine projektspezifische Aktion erstellt werden. Eine Workflow-Aktion besteht aus einem technischen Namen und aus Anzeige-Werten pro definierter Sprache. Zudem kann der Aufgaben-Text pro Sprache festgelegt werden. Die Übersetzungen werden beim Speichern im Hintergrund in die properties-Dateien geschrieben.
Technische Aktion
Bei einer technischen Aktion wird initial ein Portal-Skript ausgeführt. Für die ausgelieferten technischen Aktionen werden separate User-Exit Funktionen im Skript "DEXPRO__UserExit_TechActionLib" ausgeliefert. Bei den projektspezifischen technischen Aktionen muss die Funktion "ue_TechSendControlFlow()" verwendet werden. Bei einem Fehler bei der Ausführung wird die im Mappenfeld "ActionAccessProfile" hinterlegte Gruppe angesprochen. Im Standard wird in dem Feld die Gruppe "WorkflowError" eingetragen. Die zuständige Gruppe kann über den Parameter "TechActionError" angepasst werden oder über die spezifischen UserExit-Funktionen (DEXPRO__UserExit_TechActionLib). In der UserExit-Funktion "ue_Post()" wird der Wert zum Beispiel gesetzt. Die UserExit-Funktionen werden nach der Parameter-Auswertung ausgeführt und würden den Parameter-Wert überschreiben!
Über die Angabe "Ausführende Aktion" wird entschieden was im Anschluss passieren soll. Über den Eintrag "Job" läuft die Rechnungs-Akte in einen Workflow-Schritt und wird durch die Gruppe "TechAccessProfile" gesperrt. Dies wird zum Beispiel bei der Job-gesteuerten Archivierung verwendet. Die Belege werden über einen Portal-Job weiter verarbeitet. Über die Auswahl "Keine" wird der Beleg direkt zur nächsten Workflow-Aktion weitergeleitet. Über "Signal" läuft der Beleg in einen Signaleingang. Beim Signaleingang ist ein Skript hinterlegt, welches die User-Exit Funktion "ue_ReceiveSignal2()" aufruft. Die nachfolgende Funktion kann über die User-Exit-Funktion "ue_TechActionDecision()" manipuliert werden. Wenn eine Rechnung mit Bestellbezug auf einen vorhandenen Wareneingang geprüft wird muss Sie zum Beispiel nur auf einen Wareneingang warten, wenn noch kein Wareneingang vorliegt. Andernfalls soll die Rechnungs-Akte direkt zur nächsten Aktion weitergeleitet werden.
Workflow-Aktion mit Benutzer-Interaktion
Bei diesen Aktionen müssen über die Workflow-Regeln Benutzer oder Gruppen zugewiesen werden. An einer Visio-Workflow-Aktion können diverse Einstellungen vorgenommen werden. Damit möglichst viele Einstellungsmöglichkeiten in eine WEB-Konfiguration ausgelagert werden können muss der Workflow möglichst viele Konfigurations-Möglichkeiten enthalten. Aufgrund der Vielzahl der Möglichkeiten kann jedoch nur aus einer Auswahl an Konfigurationen ausgewählt werden. Es wurden die gängigsten Konfigurationen zusammengestellt.
Über die Auswahl "Benutzerinteraktion" muss zunächst entschieden werden, ob der Benutzer aktiv in die Verarbeitung involviert wird oder ob der bzw. die Benutzer lediglich informiert werden sollen. Bei der reinen Information wird die Rechnungs-Akte lediglich in den Posteingang abgelegt und alle weiteren Konfigurations-Optionen werden ausgeblendet. Der Anwender erhält je nach Benutzer-Konfiguration eine Info-Mail zum neuen Posteingang. Der Workflow der Rechnungs-Akte läuft direkt weiter zur nächsten Workflow-Aktion.
Über den Eintrag "Aktion ausführen" können Einstellungen für die Zuordnung einer Gruppe (Zugriffsprofil) sowie für die Zuordnung eines Benutzers konfiguriert werden. Die Zuordnung erfolgt technisch über die Felder "ActionAccessProfile" und "ActionUser". Die Aktions-Liste und die Kopier-Liste werden immer in allen Aktionen angezeigt.
Workflow-Aktion abschließen
Zum Abschluss der Workflow-Aktion wird dem Benutzer ein Button angezeigt. Im Visio-Workflow wurden an allen Aktionen je 5 ausgehende Kontrollflüsse zum Abschluss der Aktion angebracht. Die Kontrollflüsse unterscheiden sich jeweils in der Navigation (Mappe beibehalten / Nächste Mappe / Zur Übersicht / Zum Eingangsordner / Aktueller Ordner). Es wird maximal einer dieser Kontrollflüsse als Button angezeigt. Die Beschriftung ist jeweils "Aktion abschließen". Um passendere Beschriftungen pro Workflow-Aktion zu ermöglichen wurden diverse benutzerdefinierte Aktionen erstellt, welche die Rechnungs-Akte automatisch über den konfigurierten ausgehenden Kontrollfluss senden. Diese unterscheiden sich größtenteils nur durch die Beschriftung. Projektspezifisch können eigene benutzerdefinierte Aktionen erstellt werden.
Beim Abschluss einer Aktion werden Standard-Prüfungen ausgeführt, welche um eigene Prüfungen in den User-Exit Funktionen erweitert werden können.
Zugriffsprofil
Bei der Bearbeitung durch eine Gruppe muss zunächst festgelegt werden, ob die Bearbeitung durch ein Gruppenmitglied oder durch alle Gruppenmitglieder erfolgen soll. Für die Verarbeitung durch alle Gruppenmitglieder enthält der Workflow lediglich 2 Aktionen. Einmal öffnet sich die Akte direkt im Bearbeitungs-Modus und einmal im Ansicht-Modus. Die Rechnungs-Akte wird jeweils im Posteingang abgelegt und die Mail-Versendung wird nicht unterdrückt.
Bei der Bearbeitung durch ein Gruppenmitglied wurden 2 Konfigurationen erstellt, bei denen die Gruppe in die Mitglieder bei Eintritt in die Gruppe aufgelöst wird. Sobald die Gruppe aufgelöst wird sperrt nicht mehr die Gruppe die Rechnungs-Akte, sondern die einzelnen Benutzer. Es greifen die Vertretungen der Benutzer. Dafür können nur diejenigen Benutzer die Akte bearbeiten, welche Zum Zeitpunkt der Zuordnung Mitglied der Gruppe waren. Bei den 2 Konfigurationen kann lediglich zwischen dem Bearbeitungs-Modus und dem Ansicht-Modus beim Öffnen der Akte unterschieden werden.
Zudem wurden 4 Konfigurationen bereitgestellt, bei denen die Gruppe nicht aufgelöst wird. Zusätzlich zur Unterscheidung, ob die Rechnungs-Akte im Ansicht- oder Bearbeitungs-Modus öffnet kann zusätzlich die Mail-Versendung unterdrückt werden. In der Regel soll die Mail-Unterdrückung bei Gruppen mit Power-Usern erfolgen. In dem Fall wird gleichzeitig die Ablage in dem Posteingang der Mitglieder unterdrückt. Für die Abarbeitung der Akten können eigene Filter-Ordner erstellt werden wodurch der Posteingang der Anwender übersichtlich bleibt.
Benutzer
Bei der Zuordnung zu einem Benutzer oder wenn ein Benutzer eine Akte aus dem Gruppenkorb übernimmt, dann wird die passende Aktion aus 8 Aktionen ebenfalls über die Benutzer-Konfiguration ermittelt. In einem ersten Schritt wird über die Mailversendung beim Posteingang entschieden. Bei der aktiven Übernahme aus einem Gruppenkorb wird die Mailversendung unterdrückt. Über die WEB-Konfiguration kann zudem konfiguriert werden ob sich die Mappe im Ansicht- oder Bearbeitungs-Modus öffnet und ob Belege im Posteingang abgelegt werden.
Workflow ID
Über diese WEB-Konfigurationen können neue Workflow IDs erzeugt werden. Pro Workflow ID wird die Abfolge von Workflow-Aktionen festgelegt und es müssen separate Workflow-Regeln angelegt werden. Zudem kann pro Workflow ID definiert werden, ob die Akten am Workflow-Ende gelöscht oder nur versiegelt werden oder ob gar keine Aktion erfolgen soll. In der Standard-Auslieferung werden 2 Workflows für die Unterscheidung zwischen Rechnungen mit und ohne Bestellbezug ausgeliefert. Die Zuordnung kann nach beliebigen Feld-Kriterien erfolgen.
Bei der Zuordnung einer Workflow ID zu einer Rechnungs-Akte werden die Einträge nach absteigender Priorisierung abgefragt. Für die Zuordnung einer Rechnungs-Akte zu einer Workflow ID können bis zu 5 Feld-Werte abgefragt werden. In der Standard-Auslieferung werden 3 Feld-Abfragen angezeigt. Nur wenn alle Feldprüfungen mit den Werten in der Rechnungs-Akte übereinstimmen wird der Beleg der Workflow ID zugeordnet. Andernfalls wird der Eintrag mit der nächst höheren Priorität abgefragt. Die Zuordnung der Workflow ID zu einer Rechnungs-Akte erfolgt bei jeder Ermittlung der nächsten Workflow-Aktion. Die Zuordnung kann sich im Laufe des Workflows mehrfach ändern. Für eine Workflow ID können mehrere Einträge gesetzt werden. Hierdurch können komplexe Abfragen vermieden werden.
In der Feld-Liste werden nur Kopf-Felder gelistet, bei denen in der Feld-Konfiguration die Checkbox "In Workflow-Regel verwenden?" gesetzt ist. Als Vergleich-Werte werden die folgenden Angaben unterstützt. Wenn die Feldangabe leer ist wird kein Vergleich ausgeführt und das Ergebnis wird als korrekt gewertet.
Gleich
Vergleicht den angegebenen Wert mit dem String-Wert in einem Feld. Boolean-Werte werden wie im Screenshot zu sehen mit "true" bzw. "false" ausgegeben. Die korrekte Groß- und Kleinschreibung muss berücksichtigt werden!
Beginnt mit
Bei einer "Beginnt mit" Abfrage muss der Feldwert lediglich mit dem angegebenen String beginnen.
Bereich
Über eine Bereichs-Abfrage können zum Beispiel Sachkonten oder Kostenstellen-Bereiche abgedeckt werden. Der Bereich muss mit ".." getrennt werden. Ein beliebiger Wert zwischen 250 und 500 kann zum Beispiel durch "250..500" angegeben werden. Vorangestellte Zeichen werden abgeschnitten, wenn Sie in beiden Bereichs-Angaben vorkommen (Beispiel "AB250..AB500").
Größer / Größer oder Gleich / Kleiner / Kleiner oder Gleich
Diese Vergleiche dürfen nur bei numerischen Feldwerten und bei Datums-Angaben verwendet werden!
Regular Expression
Für komplexere Vergleiche können auch reguläre Ausdrücke angegeben werden. Es muss ein gültiger regulärer Ausdruck angegeben werden, um Skript-Fehler zu vermeiden!
Ungleich
Die Feld-Vergleiche können auch mit ungleich verwendet werden.
Workflow-Regeln
Übersicht Workflow IDs
Über die Konfiguration der Workflow-Regeln wird in einem ersten Schritt der Workflow-Verlauf definiert. In der initialen Ansicht sieht der Anwender die Liste der verfügbaren Workflow IDs. In dieser Ansicht kann der Anwender weder Einträge hinzufügen noch bestehende Einträge ändern. Durch einen Doppel-Klick auf einen Eintrag öffnet sich die Ansicht des Workflow-Verlaufs zur Workflow ID.
Workflow-Verlauf
Über diese Konfigurations-Seite wird der Workflow-Verlauf zur ausgewählten Workflow ID konfiguriert. Die gelisteten Workflow-Aktionen werden aufsteigend der Ausführungsreihenfolge nach durchlaufen. Die Liste enthält auch die technischen Workflow-Aktionen. Über den Button "Neuen Eintrag" können Workflow-Aktionen zum Workflow hinzugefügt werden. Über den Stift-Eintrag im rechten Bereich oder über die "Drag and Drop"-Icons im linken Bereich kann die Reihenfolge der Workflow-Aktionen angepasst werden. Dabei ist zwingend zu beachten, dass sich die Änderung direkt und unverzüglich auf den Workflow-Verlauf aller aktuellen Workflow-Akten auswirkt!
Wenn ein Anwender im unteren Beispiel die Workflow-Aktion "Freigabe" zum Beispiel vor die Aktion "Prüfung" verschiebt, dann wird die Workflow-Aktion "Freigabe" für alle Akten, welche sich aktuell in der Workflow-Aktion "Prüfung" befinden nicht mehr ausgeführt! Beleg, die sich zum Zeitpunkt der Umstellung in der Freigabe befinden und somit bereits geprüft wurden, laufen erneut in die Workflow-Aktion "Prüfung".
Workflow-Aktionen sollten nur dann aus dem Workflow-Verlauf entfernt werden, wenn sich keine Akte in dieser Workflow-Aktion befindet!
Jede Workflow-Aktion kann einer Workflow ID nur ein einziges Mal zugeordnet werden. Dieselbe Workflow-Aktion kann aber in unterschiedlichen Workflow IDs verwendet werden. Für mehrstufige Prüfungen oder Freigaben werden bereits im Standard je 4 Prüf- und Freigabe-Workflow-Aktionen ausgeliefert und für die mehrfache Archivierung existieren bereits in der Auslieferung je 6 direkte Archivierungen und 6 Job-gesteuerte Archivierungen.
Zu jeder Workflow-Aktion wird die Anzahl der bereits angelegten Workflow-Regeln angezeigt. Um bestehende Regeln einzusehen oder um neue Workflow-Regeln anzulegen muss ein Doppelklick auf die Workflow-Aktion ausgeführt werden.
An den Rechnungs-Belegen kann der Workflow-Verlauf auf dem Register "Workflow Verlauf" vorausgesagt werden. Das Diagramm zeigt den Workflow-Ablauf zur aktuellen Workflow ID. Technische Aktionen werden orange markiert. Die Start- und der End-Prunkte werden grün dargestellt. Für die aktuelle und für alle zukünftigen Workflow-Aktionen werden die Benutzer und Gruppen über die Workflow-Regeln ermittelt. Der tatsächliche Verlauf kann sich jedoch durch Feldwert-Anpassungen ändern.
Workflow-Regeln
Bei den Workflow-Regeln verhält es sich ähnlich wie bei der Zuordnung der Workflow ID zu einer Akte. Die einzelnen Workflow-Regeln werden nach der Spalte "Priorisierung" absteigend durchlaufen. Jede Regel erhält eine eindeutige Regel ID. Technisch wird hierfür eine Auto-Inkrement-Spalte in der Datenbank verwendet.
Pro Workflow-Regel können bis zu 10 Feld-Abfragen durchgeführt werden. In der Standard-Auslieferung werden 3 Abfragen angezeigt. Wie im oberen Screenshot zu sehen muss nicht zwingend eine Feld-Abfrage definiert werden. Eine so definierte Workflow-Regel greift in jedem Fall und weitere Workflow-Regeln mit niedrigeren Priorisierungen würden niemals abgefragt.
Eine Feld-Abfrage kann entweder für ein Kopf-Feld oder für ein Positions-Feld ausgeführt werden. Sobald Workflow-Regeln für Positions-Felder definiert werden kann es passieren, dass die Gentable-Positionen unterschiedlichen Workflow-Regeln zugeordnet werden. Wenn sich daraus eine unterschiedliche Zuordnung zu Benutzern und Gruppen ergibt, wird die Rechnung aufgeteilt.
Wenn der Anwender beim Typ "Kopf" auswählt werden in der "Feld"-Spalte nur die Kopffelder angezeigt, welche explizit für die Workflow-Regeln aktiviert wurden. Bei der Typ-Auswahl "Pos." werden unter "Feld" nur die entsprechenden Positions-Spalten angezeigt, welche für die Workflow-Regeln aktiviert wurden. Die Vergleichswerte entsprechen den bereits beschriebenen Vergleichswerten bei der Workflow ID. Wenn kein Feldwert angegeben wurde wird auch keine Prüfung ausgeführt. Wenn ein Feldwert angegeben wurde und die Prüfung fehlschlägt wird die nächste Workflow-Regel geprüft. Wenn eine Workflow-Regel nur für bestimmte Rechnungs-Positionen greifen wird für die anderen Positionen weiter gesucht. Die Suche endet erst, wenn jeder Rechnungs-Position eine Workflow-Regel zugeordnet werden konnte.
Vergleichs-Typen
Als Standard-Vergleichstyp ist "Gleich" vor belegt. Der Feldwert muss dem angegebenen Wert entsprechen (exakte Groß- Kleinschreibung beachten!). Boolean-Feldwerte müssen mit "true" bzw. "false" angegeben werden.
Bei "Ungleich" darf der Wert nicht dem Feldwert entsprechen und bei "Beginnt mit" muss der Feldwert mit dem angegebenen Begriff beginnen.
Die Vergleichstypen "Größer", "Größer gleich", "Kleiner" und "Kleiner gleich" sind ausschließlich für numerische Werte und Datums-Werte gedacht. Numerische Werte müssen technisch angegeben werden - also ohne tausender Trennzeichen und mit einem "." als Dezimaltrennzeichen. Datumswerte müssen im Format "dd.mm.yyyy" angegeben werden.
Mit "Bereich" können numerische Angaben "von .. bis einschließlich" angegeben werden. Eine Beispiel-Angabe ist: "1000..2000". Der Abgleich funktioniert auch mit vorangestellten Buchstaben - zum Beispiel: "AB1000..AB2000".
Über "Regular Expression" können reguläre Ausdrücke verwendet werden. Diese können vorab über den Button "REGEX PRÜFEN" getestet werden.
Regel-Typen
Neben der Priorisierung kann der Workflow-Regel ein Regel-Typ ausgewählt werden. Die Voreinstellung steht auf "Benutzer/Gruppe". Hierbei werden in der Folgenden Aufzählungsliste alle Benutzer und Gruppen aus Documents gelistet. Die Einträge werden bei manueller Angabe automatisch gefiltert. Ein "(G)" hinter der Angabe steht für eine Gruppe und ein "(U)" für einen Benutzer.
Bei der Auswahl des Regel-Typs "Kopf-Feld" wird der Benutzer bzw. die Benutzergruppe über ein Kopf-Feld ermittelt. Hierdurch können manuelle Zuordnungen umgesetzt werden. Statt der Angabe "Benutzer/Gruppe" muss nun das Kopf-Feld angegeben werden, in dem der Wert zu finden ist. Entsprechend können solche Regeln auch pro Rechnungs-Position über den Regel-Typ "Positions-Felder" angelegt werden.
Manchmal soll eine Workflow-Aktion nur für bestimmte Akten ausgeführt werden. Zum Beispiel können bestimmte Freigaben bei geringen Rechnungsbeträgen übersprungen werden. Hierfür können Regeln vom Typ "Aktion überspringen" angelegt werden. Der Workflow für den Rechnungs-Beleg wird direkt weitergeleitet und es wird direkt die Folge-Workflow-Aktion ermittelt.
Die Workflow-Regeln werden nach absteigender Priorisierung abgearbeitet. Bei sehr vielen Regeln wird die Ansicht schnell unübersichtlich und ggf. müssen extrem viele Prüfungen ausgeführt werden. Um zum einen die Ansicht zu optimieren und zum anderen auch die durchgeführten Prüfungen reduzieren können sogenannte Sub-Regeln erstellt werden. Die Sub-Regeln werden einer übergeordneten Regel zugeordnet. Um Sub-Regeln erzeugen zu können muss bei einer Workflow-Regel der Regel-Typ "Hauptregel" gesetzt werden. Im unteren Beispiel wird bei der oberen Regel das Feld "Mandant" auf den Wert "4711" geprüft.
In der Spalte "Benutzer/Gruppe" ist statt einer Angabe ein Icon zu sehen. Wenn man auf dieses Icon klickt wird eine neue Regel-Ansicht für Sub-Regeln geöffnet. Die hier konfigurierten Sub-Regeln werden nur geprüft, wenn die übergeordnete Regel mit der ID 10066 zutrifft. In dem Beispiel werden die hier definierten Sub-Regeln nur beim Mandanten 4711 geprüft. Bei anderen Mandanten entfallen diese Überprüfungen.
Unterhalb von Sub-Regeln können wiederum Sub-Regeln erstellt werden.
Aufgeteilte Rechungen
Sobald Workflow-Regeln Positions-Felder abfragen kann es passieren, dass den Rechnungspositionen unterschiedliche Workflow-Regeln zugeordnet werden und die Workflow-Regeln unterschiedliche Benutzer oder Gruppen zuordnen. In diesem Fall wird die Rechnungs-Akte bei einer technischen Gruppe geparkt und wird pro abweichendem Benutzer oder Gruppe kopiert. Der Anwender arbeitet somit an einer Kopie und nicht mehr am Original-Beleg! Wichtig ist, dass die Kopffelder bei einer Kopie nicht bearbeitet werden können, denn alle Anpassungen müssten beim Speichern automatisch auf alle anderen Kopien samt dem Original übertragen werden. Solche Feldwert-Anpassungen müssen demnach projektspezifisch über benutzerdefinierte Aktionen umgesetzt werden. Die benutzerdefinierte Aktion "Kommentar hinzufügen" ist ein solches Beispiel hierfür.
Eine Kopie enthält nur diejenigen Rechnungs-Positionen, welche über die Workflow-Regeln zugeordnet wurden. Anpassungen an den Positionen werden nach Abschluss aller Kopien an die Original-Mappe übertragen. Die Überwachung der Original-Mappen übernimmt das Job-Skript "Invoice_JOB_ForwardMainFiles".
Eine Kopie bleibt nur für die Verarbeitung innerhalb einer Workflow-Aktion bestehen und wird im Anschluss gelöscht. Ein Kopie selber darf die aktuelle Workflow-Aktion nicht verlassen! Wenn ein Beleg zum Beispiel zurückgesendet wird, dann werden alle Kopien gelöscht und die Original-Mappe wird zurückgesendet.