Connector für Microsoft Exchange in Prozessen

Der Zugriff auf die Objekte des Microsoft Exchange-Servers kann über Prozesse realisiert werden. Dabei werden folgende Szenarien unterschieden:

Einsatz als interaktiver Benutzer

Ein Prozess wird durch ein beliebiges 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 Timer-Ereignissen

Bei Timer-Ereignissen gibt es keinen interaktiven Benutzer. In diesem Fall kann ein vordefinierter Benutzer in einem Dialog ausgewählt werden, in dessen Benutzerkontext des Microsoft Exchange-Servers die gewünschten weiteren Prozessaktionen durchgeführt werden.

Verfügt dieser Benutzer über entsprechende Berechtigungen an freigegebenen Postfächern, können auch in diesen Postfä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 Kundenmanagementsystem heraus mit Aufgaben oder Terminen für Kundenbesuche, Wiedervorlagen etc. versehen werden. Durch den Echtzeit-Zugriff auf den Microsoft Exchange-Server sind alle Termine stets auf dem aktuellen Stand.

Benutzerauswahl

Alle Informationen zu den Einstellungen in diesem Dialog finden Sie hier.

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 in Intrexx Datengruppe speichern

import de.uplanet.lucy.server.businesslogic.exchange.util.ExchangeUtils


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)
}

g_dgFile.move(guid: "353CB9686F4FF3CAC9FD8894AAC7C9611BA58625", id: iMaxLid + 1, file: mail, name: "${strMailName}.eml", 
	deleteAlways: true, triggerWorkflow: 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}")

Weitere Informationen

Installation
Verbindung einrichten
Microsoft Exchange-Daten in Applikationen einbinden