Connector für Microsoft Exchange in Prozessen
Allgemeines
Groovy
Wie Sie eine Verbindung zu Microsoft Exchange in Intrexx konfigurieren, erfahren Sie
hier.
Informationen zu Microsoft Exchange Daten in Intrexx Applikationen finden Sie
hier.
Allgemeines
Der Zugriff auf die Objekte des Exchange Servers kann über Prozesse realisiert werden. Dabei werden folgende Szenarien unterschieden:
Einsatz als interaktiver Benutzer
Ein Prozess wird durch ein beliebiges auslösendes Datensatz-Ereignis angestoßen und löst dann die entsprechenden Aktionen aus. In diesem Fall kann der Prozess ausschließlich auf das Postfach des aktuell angemeldeten Benutzers zugreifen.
Einsatz mit Timerereignissen
Im Falle von Timer-Ereignissen gibt es keinen interaktiven Benutzer. In diesem Fall kann über einen komfortablen Dialog ein vordefinierter Benutzer ausgewählt werden, in dessen Benutzerkontext des Exchange Servers die gewünschten weiteren Workflow-Aktionen durchgeführt werden.
Verfügt dieser Benutzer über entsprechende Berechtigungen an freigegebenen Postfächern, können auch in diesen Portfächern entsprechende Aktionen ausgeführt werden. Solche Aktionen könnten das Anlegen einer Aufgabe oder eines Termins sein.
So können z. B. Mitarbeiter auf diesem Weg direkt aus einem Kundenmanagement-System heraus mit Aufgaben oder Terminen für Kundenbesuche, Wiedervorlagen etc. versehen werden. Durch den Echtzeit-Zugriff auf den Exchange Server sind alle Termine stets auf dem aktuellen Stand.
Hat der Prozessmanager die gewählte Datengruppe als Verbindung zum Exchange-Server erkannt, kann in diesem Dialog ein Benutzer definiert werden, in dessen Kontext die Abfragen durchgeführt werden.
Mit der Option
Anmeldung als statischer Benutzer wird der Link
Benutzer auswählen aktiviert. Ein Klick auf diesen Link öffnet einen Dialog, in dem bereits angelegte und Exchange-Benutzern zugeordnete Benutzer aus der Datenquellenkonfiguration ausgewählt werden können. Im unteren Bereich tragen Sie die gewünschten Verbindungsdaten zum Exchange Server ein.
Bei der Option
Benutzer aus Systemwert muss der Systemwert eine Benutzer-
GUID beinhalten. Dabei ist zu beachten, dass eine gültige Benutzerzuordnung in der Exchange-Konfiguration vorhanden sein muss (zusätzliche Benutzer). Klicken Sie auf
Systemwert bearbeiten, um den Systemwert in einem weiteren Dialog zu definieren.
Darüber hin aus können natürlich über die Aktionen des Prozessmanagers Termine angelegt, Aufgaben erstellt und E-Mails erzeugt werden. Über die
Benutzerwechsel-Aktion kann der Benutzer während des Prozessablaufs gewechselt werden.
Ist sowohl innerhalb der Datengruppe als auch dem Prozess ein statischer Benutzer zugeordnet, hat der Benutzer der Datengruppe Priorität.
|
Ein Benutzer, der einen Prozess mit Benutzerwechsel-Aktion veröffentlicht, muss ausreichend berechtigt sein. In der Regel bekommt der Benutzer ausreichende Berechtigung aus der Zugehörigkeit zur Benutzergruppe Adminstratoren.
|
Groovy
In der Bibliothek stehen eine Reihe an Klassen und Methoden über die Kategorie
Exchange zur Verfügung, die im Groovy-Umfeld verwendet werden können. Hier einige Beispiele in Kurzform:
E-Mail lokal abspeichern
import de.uplanet.lucy.server.businesslogic.exchange.util.ExchangeUtils
def strMessageId = g_request.get('qs_id')
def msgUtil = ExchangeUtils.getMessageUtil()
def strHref = msgUtil.getHrefById(strMessageId)
def mailboxUtil = ExchangeUtils.getMailboxUtil()
def strMailBoxName = mailboxUtil.getUserAccount(g_session?.user?.guid).exchangeMailbox
def strMailName = strMessageId[strMessageId.lastIndexOf("-") + 1..-1]
def mail = new File("C:/${strMailName}.eml")
msgUtil.saveMessageAsEML(strMailBoxName, strHref, mail)
E-Mail per FileUCHelper in Intrexx Datengruppe speichern
import de.uplanet.lucy.server.businesslogic.exchange.util.ExchangeUtils
import de.uplanet.lucy.server.businesslogic.util.FileUCHelper
def conn = g_dbConnections.systemConnection
def strMailBoxName = "ExTest.2"
def strMessageId = g_request.get('qs_id')
def msgUtil = ExchangeUtils.getMessageUtil()
def strHref = msgUtil.getHrefById(strMessageId)
def strMailName = strMessageId[strMessageId.lastIndexOf("-") + 1..-1]
def mail = new File(g_dirWorkflowTmp, "${strMailName}.eml")
msgUtil.saveMessageAsEML(strMailBoxName, strHref, mail)
def iMaxLid = g_dbQuery.executeAndGetScalarValue(conn, "SELECT MAX(LID) FROM XDATAGROUP445CAD5D", 0)
g_dbQuery.executeUpdate(conn,
"INSERT INTO XDATAGROUP445CAD5D (LID) VALUES (?)")
{
setInt(1, iMaxLid + 1)
}
FileUCHelper.moveFileToIntrexx(g_context, mail, "353CB9686F4FF3CAC9FD8894AAC7C9611BA58625", iMaxLid + 1, "${strMailName}.eml", false)
Neuen Ordner anlegen
import de.uplanet.lucy.server.businesslogic.exchange.util.ExchangeUtils
def mailboxUtil = ExchangeUtils.getMailboxUtil()
def strParentFolderName = g_request.get("qs_parentFolder")
def strNewFolderName = g_request.get("qs_newFolder")
mailboxUtil.createFolder(strNewFolderName, strParentFolderName , "urn:content-classes:mailfolder")
Bestehenden Ordner umbenennen
import de.uplanet.lucy.server.businesslogic.exchange.util.ExchangeUtils
def mailboxUtil = ExchangeUtils.getMailboxUtil()
def strOldFolderName = g_request.get("qs_oldFolder")
def strNewFolderName = g_request.get("qs_editFolder")
mailboxUtil.updateFolderName("${strOldFolderName}", "${strNewFolderName}")