Versteckte User-Exits: Workflow-Steuerung
Über die Aktions-Konfiguration kann der Anwender definieren ob sich ein Beleg im Ansichtmodus öffnet oder ob der Beleg direkt im Bearbeitungs-Modus geöffnet wird; ob die Mailversendung unterdrückt werden soll und ob die Ablage im Eingangs-Ordner des Benutzers erfolgen soll. Bei Gruppen kann zusätzlich konfiguriert werden ob die Gruppe als Ganzes die Mappe sperrt oder ob die Gruppe aufgelöst wird und die einzelnen Benutzer die Mappe sperren. Zudem kann konfiguriert werden, ob alle Mitglieder der Gruppe oder nur nur ein Mitglied der Gruppe die Aufgabe abschließen muss.
Innerhalb des Prozesses kann es projektspezifisch Teilprozesse geben, bei denen die Konfiguration anders laufen soll. Bei einer über den Workflow gesteuerten Rückfrage (Parameter "Ask_User_Type") soll die Mappe zum Beispiel in den Posteingang des Benutzers abgelegt werden - unabhängig von der aktuellen Workflow-Konfiguration. Zudem soll sich der Beleg nicht direkt im Bearbeitungs-Modus öffnen. Dieses Verhalten wird erst ab der Invoice-Version 1.1.000 unterstützt.
Bei anderen projektspezifischen Weiterleitungen kann es ebenfalls gewünscht sein, dass die Aktions-Einstellungen zur Standard-Konfiguration der Workflow-Aktion abweichen. Auch bei der Standard-Zuordnung kann es evtl. gewünscht sein, dass die Konfiguration abhängig von Feldwerten oder abhängig vom Benutzer oder der Gruppe gewählt wird. Um dies zu ermöglichen wurden optionale User-Exit-Funktionen in das Workflow-Routing eingebaut. Technisch werden die Entscheidungen jeweils über 0 und 1 geprüft. Eine Mappe kann nicht im Postingang abgelegt werden (1) oder doch (0) und Sie kann im Bearbeitungs-Modus geönnet werden (1) oder eben nicht (0) und die Mail-Benachrichtigung kann unterdrückt werden (1) oder nicht (0). Hieraus ergeben sich Zahlen-Kombinationen aus 0 und 1.
Zuordnung Zugriffsprofil
Bei den Zugriffsprofilen wird zuerst geprüft ob die Gruppe aufgelöst werden soll oder nicht. Im Skript ist auch eine Überprüfung der asynchronen Ausführung der Aktion vorgesehen - wird aber bislang nicht weiter berücksichtigt. Bei allen Aktionen ist die Checkbox "Asynchrone Ausführung" deaktiviert.
/** Steuerung ob eine Gruppe aufgelöst werden soll oder nicht.
* Erläuterung zum Code:
* 1 : asynchrone Ausführung | 0 : keine asynchrone Ausführung (wird derzeit nicht ausgewertet)
* 1 : Gruppe auflösen | 0 : Gruppe sperrt die Mappe
* @param {string} code Eingehender Code ("00"/"01"/"10"oder"11")
* @returns {string} Angepasster Code ("00"/"01"/"10"oder"11")
**/
function ue_Workflow_ChangeApAsyncDissolveCode(code){
return code;
}
Im Anschluss werden weitere Prüfungen durchgeührt.
/** Steuerung Routing für das Zugriffsprofil.
* Der Workflow unterstützt nur die 4 angegebenen Code-Kombinationen!
* Bei aufgelösten Gruppen werden nur 2 Kombinationen unterstützt ("01100" und "11100")!
* Andere Kombinationen können nicht verarbeitet werden!
* Erläuterung zum Code:
* 1 : Öffnen im Bearbeitungs-Modus | 0 : Öffnen im Ansicht-Modus
* 1 : Aktionsliste anzeigen | 0 : Aktionsliste ausblenden
* 1 : Kopierliste anzeigen | 0 : Kopierliste ausblenden
* 1 : Mailbenachrichtigung unterdrücken | 0 : Mailbenachrichtigung
* 1 : Keine Ablage im Posteingang | 0 : Ablage im Posteingang
* @param {string} code Eingehender Code ("01100"/"01111"/"11100"oder"11111")
* @returns {string} Angepasster Code ("01100"/"01111"/"11100"oder"11111")
**/
function ue_Workflow_ChangeApCode(code){
return code;
}
Zuordnung Benutzer
Bei der Zuordnung eines Benutzers wird im Workflow zuerst geprüft ob die Mailversendung unterdrückt werden soll oder nicht.
/** Steuerung ob die Mailbenachrichtigung bei einem Benutzer unterdrückt werden soll oder nicht.
* @param {boolean} Eingehender Wert (true:Mailversendung unterdrücken / false:Mailversendung)
* @returns {boolean} Ausgehender Wert (true:Mailversendung unterdrücken / false:Mailversendung)
**/
function ue_Workflow_UserSuppressMail(suppressMail){
return suppressMail;
}
Im zweiten Schritt werden weitere Prüfungen durchgeführt.
/** Steuerung Routing für den Benutzer.
* Der Workflow unterstützt nur die 4 angegebenen Code-Kombinationen!
* Andere Kombinationen können nicht verarbeitet werden!
* Erläuterung zum Code:
* 1 : Öffnen im Bearbeitungs-Modus | 0 : Öffnen im Ansicht-Modus
* 1 : Aktionsliste anzeigen | 0 : Aktionsliste ausblenden
* 1 : Kopierliste anzeigen | 0 : Kopierliste ausblenden
* 1 : Mailbenachrichtigung unterdrücken | 0 : Mailbenachrichtigung
* 1 : Keine Ablage im Posteingang | 0 : Ablage im Posteingang
* @param {string} code Eingehender Code ("0110"/"0111"/"1110"oder"1111")
* @returns {string} Angepasster Code ("0110"/"0111"/"1110"oder"1111")
**/
function ue_Workflow_ChangeUserCode(code){
return code;
}
No Comments