A.) Grundlagen
AgilePoint ermöglicht den E-Mail Versand in folgenden Optionen
- E-Mail Activity in einem Prozess/Workflow
- zu bestimmten Events innerhalb eines Activity ("Task Notification", "Task Reminder", "Leaver Activity Instance")
- über API
Üblicherweise basiert die zu versendende Mail auf einem E-Mail Template
Mögliche Situation: Sie testen einen komplexen Prozess und stellen nun fest, dass am Ende des Prozesses im E-Mail Template ein Fehler ist. Ansatz ist das neue E-Mail Template testen ohne Bereitstellung/Deployment auf Basis der Daten einer bereits gelaufenen oder noch aktiven Prozess Instanz. Ein klassischer Anwendungsfall ist ebenfalls: Sie haben Ihre Anwendung getestet und nun in Produktion. Nun fügen Sie weitere Lokalisierungen/Sprachen Ihrem E-Mail Template hinzu. Mit diesem Ansatz testen Sie die E-Mail Templates ohne weitere komplette Testdurchläufe (sondern isoliert).
Anmerkung: der folgende Lösungsvorschlag legt Wert darauf, dass keine Programmier Kenntnisse erforderlich sind zur Verwendung. Für technisch orientierte folgt in einem weiteren Beitrag eine technischerer Ansatz (auch mit mehr Möglichkeiten).
B.) App erstellen, bereitstellen und eine Instanz ausführen
Die App hat einen Prozess mit zwei Activities. Zuerst Dateneingabe und Prozess Start, dann Versand einer E-Mail (verwendetes E-Mail template siehe oben).
Download der kompletten Demo App (dann Anwendung importieren, publizieren und eine Instanz durchlaufen).
C.) Vorarbeiten
Rufen Sie die Swagger URL auf
Authorisieren Sie sich gegen die REST API
Finden Sie die Methode "SendMail"
Suchen Sie die Prozess Instanz raus die soeben durchgelaufen ist
Suchen Sie dort die ProcInstID raus. Bei diesem Durchlauf ist dies:
ProcInstID = 88B70800277BC9F01188D11BB05E9540
Finden Sie die versandte E-Mail (Manage > Notifications)
D.) Verändern Sie das E-Mail template
E.) Testen Sie das neue Template
HTML der E-Mail rauskopieren
<p>Dear Employee,</p>
<p>the process ${ProcessName} completed. Main Info for you is:</p>
<p>GivenName: ${/pd:AP/pd:formFields/pd:GivenName}</p>
<p>LastName: ${/pd:AP/pd:formFields/pd:LastName}</p>
<p>Priority: ${/pd:AP/pd:formFields/pd:Priority}</p>
<p>Best Regards,<br />
Your Democonpany</p>
Entfernen Sie die Ümbrüche (alles in einer Zeile - moderne Editoren können dies mit eine Tastenkombination)
<p>Dear Employee,</p><p>the process ${ProcessName} completed. Main Info for you is:</p><p>GivenName: ${/pd:AP/pd:formFields/pd:GivenName}</p><p>LastName: ${/pd:AP/pd:formFields/pd:LastName}</p><p>Priority: ${/pd:AP/pd:formFields/pd:Priority}</p><p>Best Regards,<br />Your Democonpany</p>
bereiten Sie den Request für den REST WebService Aufruf vor
Setzen Sie Ihre eigenen Werte für:
- ProcesInstanceID
- To (wichtig: "\\" anstatt "\")
- Subject
- Body
das ergibt dann beispielsweise
{
"ProcesInstanceID": "88B70800277BC9F01188D11BB05E9540",
"WorkItemID": "",
"To": "AGILEPOINT\\apnxengine",
"CC": "",
"BCC": "",
"From": "",
"Subject": "process started",
"Body": "<p>Dear Employee,</p><p>the process ${ProcessName} completed. Main Info for you is:</p><p>GivenName: ${/pd:AP/pd:formFields/pd:GivenName}</p><p>LastName: ${/pd:AP/pd:formFields/pd:LastName}</p><p>Priority: ${/pd:AP/pd:formFields/pd:Priority}</p><p>Best Regards,<br />Your Democonpany</p>",
"Attachments": "",
"MailPriority": ""
}
Methode "SendMail" ausführen mit anklicken der Schaltfläche "Try it out!"
Suchen Sie die Notification raus (oder gehen Sie in das entsprechende Postfach)