E-Mail-Empfänger dynamisch ermitteln
Werden beim Durchlaufen einer Process App automatische E-Mails versendet, möchte man die Empfänger häufig dynamisch ermitteln anstatt gleichbleibende Adressen im E-Mail-Element zu hinterlegen. Daher verfügt das E-Mail-Element über zwei Funktionen, die von Anwendern mit Programmierkenntnissen für diese Zwecke verwendet werden können:
Ermittlung der Empfänger: Hinterlegen Sie hier eine Funktion zur Ermittlung der Empfänger, beispielsweise aus einem anderen System.
Ermittlung der Empfänger in Kopie: Hinterlegen Sie hier JavaScript-Code zur Ermittlung der Empfänger in Kopie, zum Beispiel um Vertreter zu ermitteln.
Verwendung der Funktion: Ermittlung der Empfänger
Wenn Sie Empfänger dynamisch ermittelt wollen, öffnen Sie in der Sidebar Editieren des E-Mail-Elements die Entwickler-Optionen:
Wählen Sie die Funktion: Ermittlung der Empfänger aus und klicken Sie auf das Zahnrad neben der Funktion:
Es öffnet sich ein Editor, in dem Sie Ihren JavaScript Code eingeben können. Beenden Sie Ihre Eingaben mit Speichern:
Achtung: Nicht gespeicherte Eingaben gehen beim Klick auf Schließen verloren!
Diese Schritte gelten analog für die Funktion: Ermittlung der Empfänger in Kopie.
Aufbau der Funktion
Die Funktion, die zur Ermittlung der Empfänger aufgerufen wird, erhält als Parameter den Container, der zur weiteren Verarbeitung verwendet werden kann und erwartet als Rückgabeparameter ein Array.
Den angemeldeten Benutzer als E-Mail-Empfänger ermitteln
In den Benutzerdaten im Container (bpaas.userInfo) steht unter anderem auch die Information zur E-Mail-Adresse des jeweils angemeldeten BPaaS-Benutzers (bpaas.userInfo.email). Mit einer kurzen Codezeile kann man daher die E-Mail-Adresse aus den Benutzerdaten als Empfängeradresse für die E-Mail festlegen. Dabei wird die Adresse aus bpaas.userInfo.email ermittelt und in das Array [recipient] geschrieben:
Ermittlung des aktuellen Benutzers als E-Mail-Empfänger
// Ermittlung der aktuellen Benutzer-Mailadresse aus 'bpaas.userInfo.email' als Empfänger für die Mail:
var recipient = container.get('bpaas.userInfo.email');
return [recipient];
Den angemeldeten Benutzer als E-Mail-Empfänger in Kopie ermitteln
Soll der aktuelle Benutzer als Empfänger in Kopie gesetzt werden, muss man das Skript leicht anpassen. Der Code wird entsprechend in der Funktion: Ermittlung der Empfänger in Kopie eingetragen:
Ermittlung des aktuellen Benutzers als Empfänger in Kopie
// Ermittlung der aktuellen Benutzer-Mailadresse aus 'bpaas.userInfo.email' als Empfänger in Kopie:
var ccRecipient = container.get('bpaas.userInfo.email');
return [ccRecipient];
Die Adresse des E-Mail-Empfängers aus einem Formularfeld ermitteln
Die Adresse des E-Mail-Empfängers kann auch in einem Formularfeld eingetragen worden sein. Der Wert lässt sich genauso aus dem Container herauslesen wie die Daten des angemeldeten Benutzers - man muss nur den Namen des Containerfeldes ansprechen, in dem die Daten gespeichert sind.
Beispiel: E-Mail-Adresse des Empfängers aus dem Eingabefeld E-Mail-Adresse ermitteln
Im Formular wurde das Feld E-Mail-Adresse eingefügt. Als Feldname im Container wurde der Bezeichner mail vergeben. Eingegebene E-Mail-Adressen werden also unter dem Bezeichner mail im Container gespeichert.
Entsprechend muss der Code zur Ermittlung der Empfängeradresse die Werte aus mail abrufen:
Wert eines Formularfelds als Empfängeradresse ermitteln
// Ermittlung der Empfänger-Mailadresse aus dem Containerwert "mail"
// Das Formularfeld "mail" ist ein Eingabefeld
var recipient = container.get('mail');
return [recipient];
Wenn die E-Mail-Adresse über eine Auswahlliste gespeichert wird, muss das Coding entsprechend angepasst werden (weiterführende Informationen dazu erhalten Sie auf der Seite Possible Values: Value and Label):
Wert einer Auswahlliste als Empfängeradresse ermitteln
// Ermittlung der Empfänger-Mailadresse aus dem Containerwert "mail"
// Das Formularfeld "mail" ist eine Auswahlliste
var recipient = container.get('mail.label');
return [recipient];
Empfänger und Empfänger in Kopie aus Formularfeldern ermitteln
Im folgenden Beispiel werden die E-Mail-Adressen für den Empfänger und den Empfänger in Kopie dynamisch ermittelt. Beide Adressen wurden in einem Formular über entsprechende Felder eingegeben.
Das Eingabefeld E-Mail-Adresse erhält mail als Feldname im Container:
Eine weitere E-Mail-Adresse wird über die Auswahlliste Vertreter ausgewählt, für die als Feldname im Container mail_vertreter vergeben wurde:
Die Eingabe im Feld E-Mail-Adresse soll als Empfänger ermittelt werden, die getroffene Auswahl aus der Liste Vertreter soll als Empfänger in Kopie gesetzt werden:
Eintrag unter Funktion: Ermittlung der Empfänger
// Ermittlung des Empfängers aus dem Wert "mail"
var recipient = container.get('mail');
return [recipient];
Eintrag unter Funktion: Ermittlung der Empfänger in Kopie
// Ermittlung des Empfängers in Kopie aus dem Wert "mail_vertreter"
var ccRecipient = container.get('mail_vertreter.label');
return [ccRecipient];