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 |
---|---|---|
Dabei handelt es sich um die vollständige E-Mail-Adresse, aus der weitere E-Mails generiert werden. |
| |
password | Das Kennwort, das für den Zugriff auf das gewünschte E-Mail-Konto verwendet wird. |
|
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. |
|
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. |
|
pDName | Name der Prozessdefinition. |
|
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. |
|
processVariable | Der Wert einer Prozessvariablen wird auf den ausgewählten Übergang gesetzt, wodurch dann die VariableDecisionHandler am XOR-Gateway, um eine Entscheidung zu treffen. |
|
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:
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. |
|
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 anuserNameLast
zeigt den Nachnamen des Systembenutzers anuserNameFirst
Stellt den Vornamen des aktuellen Systembenutzers darnodeName
Stellt den Namen des Knotens dar, der signalisiert werden soll, wird in diesem Abschnitt bereitgestelltnodeEndDate
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 signalisierenlastUserNameFirst
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:
<nodename>-lastActor
<nodename>-signalDateTime
(Format: "jjjj-MM-tt HH:mm:ss
". Siehe: Gültige Datum/Zeit Formate )
Beispiel
Parameter:
Dieser Prozess wird als Beispiel angegeben:
Im Folgenden finden Sie ein einfaches Beispiel für den Text einer E-Mail:
© TIM Solutions GmbH | AGB | Datenschutz | Impressum