In diesem Beitrag erfahren Sie, wie statt mehrerer einzelner E-Mails eine Sammel-E-Mail erstellt werden kann,
so dass z.B. jeder Mitarbeiter täglich eine E-Mail mit allen nicht erledigten Aufgaben erhält. Dazu werden
eine angepasste Applikation und ein Prozess benötigt. Hier finden Sie eine ZIP-Datei
mit unserem Beispiel, die Sie wie gewohnt in ein Portal importieren
können.
2. Applikation anpassen
2.1. Referenz auf Benutzer
In den Datensätzen, die in einer Sammel-Mail zusammengefasst werden sollen, wird über den
Eigenschaftendialog der Datengruppe
eine Referenz auf
die Benutzerverwaltung gebildet.
Damit stehen Benutzer-ID, Benutzername und die geschäftliche E-Mail-Adresse zur Verfügung.
2.2. Eingabeseite anpassen
Auf der Eingabeseite kann der Benutzer aus einer entsprechend konfigurierten
Auswahlliste ausgewählt
werden.
2.3. Datenfeld für das Datum des E-Mail-Versands
Nun wird noch ein Datenfeld
benötigt - hier im Beispiel das Datenfeld Gesendet am mit dem
Datentyp Datetime. Dieses Feld wird nicht mit einem
Eingabe-Element verknüpft. Es wird ausschließlich vom Prozess mit Werten gefüllt.
2.4. Ansichtsseite erstellen
Nun wird eine Ansichtsseite (hier z.B. die Seite tbl_Details)
erstellt, die die gewünschten Daten eines einzelnen Datensatzes (hier einer Aufgabe) anzeigt.
Diese Seite kann mit einer Schaltfläche
versehen werden, über die ein Anwender die Aufgabe später aus der Sammel-E-Mail heraus öffnen kann.
2.5. Frei gestaltete Tabelle erstellen
Für die Sammel-Mail wird eine Seite benötigt, die die entsprechend gefilterten Daten in der E-Mail auflistet.
In diesem Beispiel setzen wir dies mit einer
Frei gestalteten Tabelle auf einer Ansichtsseite (hier die Seite Sammel-Mail
in der ersten Ebene der Applikationsstruktur um.
Die Ansichtsseite tbl_Details wird im
Eigenschaftendialog der Tabelle eingebunden.
2.6. Filter
Hier im Beispiel schließt die zweite Bedingung alle nicht erledigten Aufgaben aus (Erledigt = Falsch).
Dieser Status wird mit dem Kontrollkästchen auf der Eingabeseite
erfasst. Interessant ist die erste Bedingung (Ref. Benutzer - Benutzer ID = 'int_BenutzerId').
Hier wird die im Datensatz gespeicherte Benutzer ID auf Gleichheit mit der Variablen int_BenutzerId verglichen.
Die Variable stammt aus dem zugehörigen Prozess. Hier im Filter ist die System-Option mit der Auswahl Verarbeitungskontext eingestellt,
damit der Tabellenfilter die Werte der Variablen verarbeiten kann. Als Wert ist der Variablenname (int_BenutzerId) eingetragen.
Der Tabellenfilter kann hier nicht auf die gewohnte Art und Weise konstruiert werden,
da die Tabelle nicht für eine Seite im Browser aufgebaut wird,
sondern für eine Seite, die in einer Mail eines beliebigen Standard-Mailprogramms eingebettet wird.
3. Prozess
3.1. Globaler Timer
Das erste Element im Prozess ist ein Globalen Timer,
der die Prozesskette 1 x täglich startet. Im Eigenschaftendialog
wird auf dem Datengruppen-Reiter die gewünschte Applikation und Datengruppe - hier Aufgaben - ausgewählt.
Die Datengruppe wird, wie die Tabelle in der Applikation, so gefiltert, dass nur nicht erledigte Aufgaben im
Prozess untersucht werden. Außerdem darf das Datums-Datenfeld (Gesendet am),
das eigens für diesen Zweck in der Applikation angelegt wurde, nicht gefüllt sein.
Der Filterausdruck muss hier mit einer ODER-Verknüpfung
erstellt werden. Die erste Bedingung ist, dass das Feld keinen Wert enthält (Gesendet am ist undefiniert). Der
zweite Teil filtert die Aufgaben so, dass alle nicht erledigten Aufgaben, die vor heute, 00:00 Uhr verschickt wurden,
erneut mit in die Sammel-Mail aufgenommen werden.
3.2. Timer-Ereignisbehandler
Das zweite Element im Prozess ist ein Timer-Ereignisbehandler,
der auf den globalen Timer reagiert.
3.3. Groovy-Aktion
Mit dem Timer-Ereignisbehandler wird als drittes Element im Prozess eine Groovy-Aktion
(Adressaten zusammenstellen) mit dem folgenden Skript verbunden:
Hier wird die Variable int_BenutzerId definiert und die
im aktuellen Datesatz gespeicherte Benutzer-ID
ausgelesen. Die Variable wird mit g_sharedState im Verarbeitungskontext zur Verfügung gestellt.
3.4. Filter-Bedingung
Prüft, ob der Benutzer, der von der vorausgehenden Groovy-Aktion ermittelt wurde,
bereits eine Sammel-E-Mail erhalten hat. Das Datums-Datenfeld (Gesendet am)
darf nicht gefüllt sein. Der Filterausdruck ist mit einer ODER-Verknüpfung
erstellt. Die zweite Bedingung gibt vor, dass alle nicht erledigten Aufgaben, die vor heute, 00:00 Uhr verschickt wurden,
in die Sammel-Mail aufgenommen werden.
3.5. E-Mail-Aktion
In der E-Mail-Aktion wird die Ansichtsseite aus der Applikation
eingebunden. Intrexx verwendet in diesem Prozessschritt die in der Groovy-Aktion
erstellte Variable int_BenutzerId, um die Tabelle auf der eingebunden Seite zu filtern.
Der in der Applikation erstellte Tabellenfilter wird vor dem Versand der Seite
automatisch angewendet und filtert die Aufgaben in der Tabelle entsprechend.
Das letzte Element in der Prozesskette ist eine Datengruppen-Aktion.
Damit nicht bei jedem Datensatz eine Mail an den zuständigen Mitarbeiter erstellt wird, werden an dieser Stelle
alle weiteren Aufgaben des Mitarbeiters mit dem heutigen Datum, 00:00 Uhr versehen.
Ziel- und Quelldatengruppe ist dieselbe Datengruppe, hier im Beispiel die Aufgaben-Datengruppe.
Auch das Datenfeld, hier im Beispiel der referenzierte Benutzer (Ref. Benutzer - (Ref-PK) Benutzer ID)
ist das selbe für Ziel und Quelle.
Feldzuordnung
In der Feldzuordnung wird ein benutzerdefinierter Wert erstellt,
der das heutige Datum, 00:00 Uhr liefert. Der Wert wird anschließend dem Datenfeld (Gesendet am) zugeordnet.
Der Prozess ist damit fertiggestellt.
Für den E-Mail-Versand muss der E-Mail-Service in Intrexx konfiguriert sein.