SignalByMailReply

Beschreibung

Der SignalByMailReply-Timer prüft Postfächer auf E-Mails und leitet Instanzen weiter, wenn E-Mails beantwortet werden müssen, damit weitere Instanzen generiert werden können. Der Timer muss in Kombination mit einem VariableDecisionHandler bei einer Aktivität, wenn nach dem Empfang eines Signals eine Entscheidung getroffen werden muss. Der Sender wird als Akteur allen Aufgaben der aktuellen Aktivität zugewiesen, sobald das Signal erfolgreich übertragen wurde. Darüber hinaus werden alle eingehenden E-Mails als Notiz an Aktivitäten angehängt, sofern sie einer bestimmten Aktivität zugeordnet werden können. RegExp wird verwendet, um einen Teil einer erfolgreichen E-Mail auszuwählen, der als Variable in den Prozess einbezogen wird (mit dem angegebenen Namen). Knotenname-answer_successful).

Die entsprechende Prozessinstanz muss wie folgt bezeichnet werden:

-----(${SYS.PROCESSINSTANCE_ID})-----

im Text der E-Mail. Die Antwort kann entweder in der ersten Zeile oder in folgender Form geschrieben werden:

-----[Reply: ]-----

 


Webservice-Name

ProcessInstanceManager

Webservice-Methode

 

Parameter

Parameter

Beschreibung

Gültige Beispiele

Parameter

Beschreibung

Gültige Beispiele

email

Dabei handelt es sich um die vollständige E-Mail-Adresse, aus der weitere E-Mails generiert werden.

  • ${name_of_variable}

  • ${Instanzname}

password

Das Kennwort, das für den Zugriff auf das gewünschte E-Mail-Konto verwendet wird.

  • 123456

port

Dies liefert Informationen über den Port, der der E-Mail-Adresse und dem Host entspricht. Häufig verwendete Ports sind 110 Pop 995 Pop inklusive Verschlüsselung 143 IMAP 993 IMAP mit Verschlüsselung.

  • 995

host

Host, z. B. pop3.gmail.com oder imap.gmail.com (Sehr oft beinhaltet dies entweder pop oder pop3 oder IMAP. SMTP ist weit weniger verbreitet!). Ein IMAP-Postfach ist erforderlich, wenn alle E-Mails in andere Ordner verschoben werden. Die Art des zu verwendenden Protokolls hängt von der verwendeten Mailbox ab. Wenn beide gängigen Protokolle vom Webservice unterstützt werden, sollte IMAP als bevorzugtes Protokoll ausgewählt werden.

Wenn der Benutzer E-Mails in andere Ordner verschieben möchte, ist ein IMAP-Postfach erforderlich. Grundsätzlich hängt die Verwendung des Protokolls vom Postfach ab. Wenn beide Protokolle unterstützt werden, ist IMAP zu bevorzugen.

Es wird dringend empfohlen, für jeden Zeitgeber und jede Prozessdefinition ein separates Postfach zu verwenden.

moveFolder

Dies ist kein Pflichtfeld, wenn es aktiviert ist. Dies ist der Name des Ordners, in den erfolgreich verarbeitete E-Mails zur Signalisierung verschoben werden sollen.

  • Weiterverarbeitet

pDName

Name der Prozessdefinition.

  • MyProcessDefiniton

nodeNameRegExp

NodeNameRegExp ist ein regulärer Ausdruck, der Hinweise darauf gibt, wie der Name einer Aktivität gefunden wird. Der Textinhalt von E-Mails sowie entsprechende Betreffüberschriften werden auf diesen Ausdruck hin gescannt. z.B. ++(.+)++ Das Element, das gesucht werden muss, wäre der in Klammern enthaltene nodeName.

signalSuccessMail

Wenn der Wert "true" ist, wird auch eine E-Mail als Antwort an den Absender gesendet, die den erfolgreichen Empfang eines Signals bestätigt. Die Antwort kann innerhalb des Prozesses mithilfe von Variablen konfiguriert werden.

  • true

  • false

processVariable

Der Wert einer Prozessvariablen wird auf den ausgewählten Übergang gesetzt, wodurch dann die VariableDecisionHandler am XOR-Gateway, um eine Entscheidung zu treffen.

  • nameOfVariable

leavingTransitions

Wie wird der richtige Weg für den Prozess gefunden, wenn nach der aktuellen Aktivität mehrere Optionen vorhanden sind? Übergänge werden als Parameter in den Timer aufgenommen, indem zugeordnet wird, welche genauen Terme durch diesen Übergang erkannt werden sollen. Mindestens ein Übergang muss einwandfrei funktionieren, was wiederum bedeutet, dass mindestens einer der richtigen Begriffe im Text einer E-Mail enthalten sein muss. Zum Beispiel:

  • Genehmigung: ok-O.K.-okay-ja-y-zu-genehmigen-Genehmigung-akzeptieren-akzeptieren-übernehmen-alles-richtig-in Ordnung zustimmen-zustimmen

  • Ablehnung:-nicht-okay-nicht-ok-nicht-O.K.-nein-nie-inakzeptabel

Die Übergänge danach sind Zustimmung und Ablehnung. Um eine Genehmigung zu signalisieren, kann eine Antwort auf die E-Mail ok, okay, O.K. usw. beinhalten. Alternativ würden zum Signalisieren eine Ablehnung Wörter wie "nicht okay", nein, nie usw. verwendet.

  • Genehmigung: ok-O.K.-okay

  • Ablehnung:Nein-nicht

reasonRegExp

Die in der E-Mail enthaltene Entscheidung, die signalisiert, dass der Prozess für den Zugriff in einer späteren Phase des Prozesses gespeichert werden soll. An dieser Stelle können die Begriffe, die verwendet werden sollen, durch Durchsuchen des Textes der E-Mail bestimmt werden. Wenn die Entscheidung ein Ergebnis liefern soll, das sich über mehrere Zeilen erstreckt, muss die RegExp die Endung '?s' verwenden, zum Beispiel (.*?) Antworten:?s

alte Version: email,password,port,host,limit,moveFolder,piIdRegExp,pDName,NodeNameRegExp,firstline,box,decisionRegExp,signalSuccessMail,processVariable,transitions
Neue Version: Benutzername,Kennwort,Port,Host,moveFolder,pDName,NodeNameRegExp,signalSuccessMail,processVariable,transitions,decisionRegExp

 

Verfahren

Zuerst wird das vom Timer angegebene Postfach geöffnet, um eingehende E-Mails zu empfangen. Als Standardeinstellung wird der Ordner Posteingang abgerufen werden. Diese Einstellung kann geändert werden, indem Sie loom.properties mit dem Parameter inbox-name-signal-by-mail-reply.
Im zweiten Schritt werden die ersten fünf gefundenen E-Mails verarbeitet. Diese Anzahl von E-Mails kann angepasst werden, indem loom.properties mit dem Parameter inbox-name-signal-by-mail-reply. Mit jeder E-Mail wird eine Suche durchgeführt, um einen Text in der Form —–(1234)—– zuerst im Textinhalt und dann in der Betreffzeile zu finden. Dieser Text stellt die Identifikationsnummer (ID) der Systemprozessinstanz dar.
Die Meldung wird ignoriert, wenn weder eine ID noch eine entsprechende Prozessinstanz im System gefunden werden kann.
Im nächsten Schritt wird beim Senden einer E-Mail ein Benutzer gesucht. Der Absender erhält eine E-Mail, wenn kein Benutzer identifiziert werden kann.
Im folgenden Schritt wird der Name einer Aktivität sowohl im Inhalt als auch in der Betreffzeile der E-Mail gesucht, indem Sie NodeNameRegExp Parameter. Falls ein Name gefunden wird, wird geprüft, ob sich diese Prozessinstanz auf die bereitgestellte Prozessdefinition Parameter. Ist dies nicht der Fall, soll diese E-Mail diesem Timer nicht zugeordnet werden. Diese E-Mail würde dann ebenfalls ignoriert und keine E-Mail als Antwort gesendet.
Wenn dieser Timer der richtige für diese bestimmte E-Mail ist, wird eine Untersuchung gestartet, um sicherzustellen, dass sich der Prozess auch auf die richtige Aktivität konzentriert. Wenn dies der Fall ist, wird die E-Mail als Hinweis an eine Aktivität angehängt. Zusätzlich erhält der Absender eine entsprechende Nachricht.
Nun wird der Benutzer, der die E-Mail gesendet hat, überprüft, um sicherzustellen, ob er mindestens für eine der Aufgaben im Zusammenhang mit der aktuellen Aktivität verantwortlich ist. Dieser Nutzer wird dann wiederum informiert, wenn dies nicht der Fall ist.
Als nächstes erfolgt eine Überprüfung auf Folgeaktivitäten. Wenn nur eine Aktivität vorhanden ist, wird dem Benutzer der Status eines Akteurs zugewiesen, der für alle Aufgaben verantwortlich ist. Es gibt mehrere Möglichkeiten, den Prozess fortzusetzen und zu prüfen, ob die Mail eine entsprechende Entscheidung nach sich zieht.
Anschließend erhält der Benutzer den Status eines der Aufgabe zugeordneten Akteurs. Anschließend werden Prozessvariablen generiert und der Prozess weitergeleitet. Auf Wunsch wird auch eine E-Mail gesendet.
Alle E-Mails, die beantwortet wurden, werden in den Ordner errorMessages verschoben, wenn dieser Ordner bereits vorhanden ist. Die erste E-Mail, die den gesamten Prozess weitergeleitet hat, wird in den konfigurierten Ordner verschoben.

 

Variablen

Die Antworten auf ungültige Nachrichten können entweder mithilfe einer Variablen oder der Datei loom.properties eingerichtet werden:

  • no-system-user-found-for-signal-by-mail-reply

  • user-not-actor-for-signal-by-mail-reply

  • found-no-transition-for-signal-by-mail-reply

  • found-no-node-for-signal-by-mail-reply

  • signal-done-for-signal-by-mail-reply

  • found-no-process-instance-for-signal-by-mail-reply

In diesem Fall wäre nur die Konfiguration über loom.properties möglich.

Die richtige Antwort muss folgendermaßen konfiguriert werden:

  • signal-successful-signal-by-mail-reply

Der Name des Ordners, auf den zugegriffen werden soll, kann auch über loom.properties über inbox-name-signal-by-mail-reply.

Abhängig vom genauen Stadium des Verfahrens können folgende Variablen implementiert werden:

  • emailFrom gibt den Absender an

  • userNameLast zeigt den Nachnamen des Systembenutzers an

  • userNameFirst Stellt den Vornamen des aktuellen Systembenutzers dar

  • nodeName Stellt den Namen des Knotens dar, der signalisiert werden soll, wird in diesem Abschnitt bereitgestellt

  • nodeEndDate Zeigt das Datum an, an dem dieser Knoten beendet wurde. Diese Variable soll nur nach Beendigung eines Knotens verwendet werden, wenn versucht wird, ein Signal zu senden. Es wird die Standardzeitzone des Servers verwendet.
    Format: tt.MM.jjjj

  • nodeEndTime Gibt den Zeitpunkt an, zu dem dieser Knoten beendet wurde. Diese Variable soll nur nach Beendigung eines Knotens verwendet werden, wenn versucht wird, Signale zu senden. Es wird die Standardzeitzone des Servers verwendet.
    Format: HH:mm

  • lastUserNameLast Zeigt den Nachnamen des Benutzers an, der den Knoten beendet hat. Dies sollte nur verwendet werden, wenn versucht wird, nach Beendigung eines Knotens zu signalisieren

  • lastUserNameFirst Zeigt den Vornamen des Benutzers an, der den Knoten beendet hat. Dies ist für die Signalisierung nur nach der Beendigung eines Knotens gedacht.

Nach dem Senden des Signals stehen zusätzlich folgende Variablen zur Verfügung: 

 

Beispiel

Parameter:

 Dieser Prozess wird als Beispiel angegeben:

Im Folgenden finden Sie ein einfaches Beispiel für den Text einer E-Mail: