Versand von E-Mails über API testen

Der Versand von E-Mails aus Anwendungen heraus erfordert besondere Sorgfalt im Test. Die vorgestellte Variante zeigt die manuellen Testmöglichkeiten über AgilePoint REST WebService API.

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&nbsp;${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&nbsp;${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&nbsp;${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)


Kontaktformular

Name

E-Mail *

Nachricht *