Abarbeitungsbedingung


In jeder Aktion kann optional eine Abarbeitungsbedingung definiert werden, über die festgelegt wird, ob die Aktion aufgeführt wird oder nicht. Wird eine Bedingung festgelegt, so kann zusätzlich noch ausgewählt werden, wie weiterverfahren werden soll, wenn die Bedingung erfüllt ist. 

Bedingungen

Die Nutzeroberfläche zum Bearbeiten von Abarbeitungsbedingungen.
  • Wird immer abgearbeitet (keine Bedingung) 
    Die Aktion wird immer abgearbeitet.
  • Übereinstimmung mit Formularwert erforderlich
    Prüft, ob der Wert eines einzelnen Formularelements mit der nachfolgenden Bedingung übereinstimmt.
    • Formularelemente 
      Auswahl des Formularelements, das geprüft werden soll.
    • Bedingung 
      Auswahl der Prüfbedingung
  • mehrere Bedingungen
    Prüft, ob mehrere übertragene Formularwerte oder Plugin-Werte auf jeweils einen regulären Ausdruck passen (matchen).
    • Bedingungen
      Eingabe der Bedingungen. Folgende Syntax wird verwendet, um die Bedingungen einzugeben:
      REGEX(<WERT>=<AUSDRUCK>) REGEX(<WERT>=<AUSDRUCK>) ... 
      Es muss jede der durch REGEX(...) definierten Bedingungen erfüllt sein, damit die Aktion ausgeführt wird. Bei jeder Bedingung wird überprüft, ob <WERT> auf den regulären Ausdurck <AUSDRUCK> passt (matched). Auf der linken Seite für <WERT> kann zudem über die Platzhalterauswahl vorhandene Formularfelder oder Plugin-Werte ausgewählt werden. Platzhalter können jedoch nicht innerhalb des regulären Ausdrucks <AUSDRUCK> benutzt werden.
    • Beispiel
      REGEX([%tf1%]=^\d+$)  REGEX([%tf2%]=^[a-z]+$)  ... 
      Bei diesem Beispiel wird überprüft, ob im Textfeld mit dem Namen tf1 nur Zahlen enthalten sind (regulärer Ausdruck ^\d+$) und außerdem im Textfeld mit dem Namen tf2 nur Kleinbuchstaben enthalten sind (regulärer Ausdruck ^[a-z]+$).
    • RegExp-Variante
      Intern wird derzeit java.util.regex zur Prüfung der RegExp verwendet.

Weiterverarbeitung

Die nächste Aktion, die abgearbeitet wird, hängt davon ab, ob die Bedingung erfüllt wurde oder nicht.

  • Abarbeitungsbedingung nicht erfüllt
    Es wird die Aktion abgearbeitet, die als nächstes (darunterliegend) in dem Status eingestellt ist. Ist diese Aktion die letzte Aktion in dem Status, endet die Abarbeitung
  • Abarbeitungsbedingung erfüllt
    Es wird zuerst die aktuelle Aktion ausgeführt. Anschließend wird so weiter verfahren, wie es in der Option Wenn Bedingung erfüllt eingestellt istAls Standard ist nächste Aktion ausgewählt.

Zu beachten ist aber, wenn eine Aktion vom Typ Verarbeitung abbrechen zu einem Zeitpunkt fehlerfrei ausgeführt wurde. Dann endet die Aktionsverarbeitung bedingungslos zu diesem Zeitpunkt.

Weiterverarbeitung wenn Bedingung erfüllt

Hier kann eingestellt werden, was passieren soll, wenn die Bedingung einer Aktion erfüllt wurde. Zuerst wird die Aktion selber ausgeführt. Anschließend kann gewählt werden zwischen:

  • Verarbeitung abbrechen
    Die Verarbeitung wird abgebrochen und es werden keine weiteren Aktionen mehr ausgeführt. Falls durch eine ausgeführte Aktion eine Statusänderung ausgeführt wurde, werden auch die Aktionen im neuen Status nicht ausgeführt.
  • Nächste Aktion
    Es wird die nächste Aktion in der Warteschlange ausgeführt. Im Regelfall handelt es sich dabei um die nächste Aktion, die nach der momentanen Aktion in dem Status eingestellt ist. Handelt es sich bei der Aktion jedoch um eine Statusänderung, ist die nächste Aktion in der Warteschlange die erste Aktion des neuen Status. Falls sich keine Aktion mehr in der Warteschlange befindet, endet die Aktionsverarbeitung.
  • Konfigurierte Aktion
    Es wird mit der ausgewählten Aktion fortgefahren. Zudem werden die Aktionen übersprungen, die sich zwischen der momentanen und ausgewählten Aktion befinden. Erst wenn die ausgewählte Aktion vollständig abgearbeitet wurde, werden andere noch abzuarbeitende Aktionen abgearbeitet.
    - Handelt es sich bei der momentanen Aktion um eine Aktion vom Typ Verarbeitung abbrechen und ist die Abarbeitungsbedingung erfüllt, wird die unter konfigurierte Aktion ausgewählte Aktion ausgeführt, nachdem die Aktion Verarbeitung abbrechen erfolgreich ausgeführt wurde. Falls sich noch Aktionen nach der ausgewählten Aktion befinden, werden diese nicht ausgeführt, da die Verarbeitung abgebrochen wurde, es sei denn, es handelt sich bei der ausgewählten Aktion um eine Aktion vom Typ Statusänderungdann wird der Status entsprechend geändert und die Aktionen im neuen Status ausgeführt, da der Aktionstyp Verarbeitung abbrechen im Kontext des alten Status ausgeführt wurde und damit nur die Verarbeitung im alten Status abgebrochen hat. Ist zudem in der ausgewählten Aktion auch noch eine Bedingung eingestellt, diese erfüllt und hier auch eine weitere konfigurierte Aktion ausgewählt, wird auch diese weitere Aktion noch vor Abarbeitung anderer Aktionen ausgeführt.
    - Bei den meisten Aktionstypen wird die Aktion ausgeführt, die sich nach der ausgewählten Aktion befindet. Ist die ausgewählte Aktion die letzte Aktion, so endet die Aktionsverarbeitung in diesem Status, es sei denn, durch die ausgewählte Aktion oder eine vorherige Aktion wurde der Status gewechselt, dann werden die Aktionen im neuen Status abgearbeitet.
    - Handelt es sich bei der momentanen Aktion um eine Aktion vom Typ Statusänderung und ist die Abarbeitungsbedingung erfüllt, so wird der Status gewechselt und die ausgewählte Aktion ausgeführt, bevor Aktionen im neuen Status ausgeführt werden. Aktionen, die sich nach der ausgewählten Aktion im alten Status befinden, werden nicht mehr ausgeführt, es sei denn, für die ausgewählte Aktion ist auch eine Abarbeitungsbedingung eingestellt, diese ist erfüllt und und auch hier ist eine konfigurierte Aktion eingestellt. Diese wird dann ausgeführt, noch bevor die Aktionen im neuen Status ausgeführt werden. Wird dadurch allerdings noch vor der Ausführung der Aktionen des neuen Status eine Aktion vom Typ Verarbeitung abbrechen ausgeführt, so wird diese im Kontext des neuen Status ausgeführt und bricht die Aktionsverarbeitung im neuen Status ab, sodass die Aktionen im neuen Status nicht mehr ausgeführt werden. Es ist zu beachten, dass dies nicht gilt, wenn eine Aktion vom Typ Verarbeitung abbrechen vor und nicht nach der momentanen Aktion (der Statusänderung) und somit im Kontext des alten Status ausgeführt wurde.
    - Handelt es sich bei der momentanen Aktion um eine Aktion vom Typ Vorgang löschen, so werden keine weiteren und auch die unter konfigurierte Aktion ausgewählte Aktion nicht mehr ausgeführt, da der Vorgang nun nicht mehr existiert.

Anwendungsbeispiel

Anwendungsbeispiel

Sie möchten die Aktion E-Mail nur ausführen, wenn im Formular das Feld mit dem Namen email vom Benutzer ausgefüllt wurde.

Erstellen Sie ein Formular mit einem Eingabefeld (Name = email). Legen Sie im Status Eingegangen die Aktion E-Mail an und wählen Sie unter dem Punkt Bedingung die Option Übereinstimmung mit Formularwert erforderlich. Es werden jetzt drei zusätzliche Auswahlfelder eingeblendet. Im Auswahlfeld Formularelemente wählen sie das Formularfeld email, im Auswahlfeld Bedingung, wählen Sie die Option Nicht Leer und im Auswahlfeld Wenn Bedingung erfüllt wählen Sie die nächste Aktion.

Bei jedem Formulareingang prüft nun die Aktion E-Mail ob im Formular das Feld email ausgefüllt wurde. Ist dies der Fall, wird die Aktion ausgeführt. Wurde kein Wert übergeben, wird die Aktion E-Mail nicht ausgeführt.