Routing von Aktivitäten

Hallo,


folgendes Szenario:


Eingehende Mails werden per Workflow überwacht. Ist eine Mail an eine bestimmte Warteschlange eingetroffen, ruft der der Workflow ein Assembly auf, welches a) der Mail einen Bezug auf eine andere Entität zuordnet, und b) noch ein paar andere Änderungen an der Mail vornimmt. Weiterhin soll die Mail einem bestimmten Benutzer zugewiesen werden, und zwar dem Besitzer der in a) zugeordneten Entität.


Ich versuche, mit einem RouteRequest, die Mail dem Benutzer zuzuweisen. Funktioniert soweit ganz gut, allerdings bekomme ich die Mail nicht aus der Warteschlange. Dafür ist es nötig, dem RouteRequest eine SourceQueueId, also die Id der Warteschlange, zu übergeben. Eine testweise hardcodiert übergebene Id der Warteschlange bringt den gewünschten Erfolg.


Nun die eigentliche Frage: Wie bekomme die Id der Warteschlange, der die Mail aktuell zugewiesen ist???


Oder ist mein Ansatz komplett falsch und es gibt einen anderen, einfacheren Weg?


 


Vielen Dank!
René



Re: Routing von Aktivitäten

Auf den ersten Blick sieht der Ansatz eigentlich schon ganz zielführend aus.


Die Warteschlange einer Mail erhält man über die Entität queueitem. Man sucht hier den Datensatz, bei dem queueid, objectid und objecttypecode mit der Wareschlange und der E-Mail übereinstimmen.



AW: Re: Routing von Aktivitäten

Danke,


so ähnlich habe ich es auch gemacht. Allerdings tritt jetzt das "Phänomen" auf, dass die Mail zweimal in der Warteschlange des Benutzers auftaucht, wenn er auch der Besitzer der zugeordneten Entität ist (was ja immer der Fall ist). Weise ich die Mail einem anderen Benutzer zu, passiert das nicht.


Eine tolle Sache ist auch das Löschen einer Aktivität aus einer Warteschlange. Es ist nicht möglich, einfach den queueitem zu löschen. Vielmehr muss ich eine temporäre Warteschlange anlegen, die Aktivität dorthin routen und dann die temporäre Warteschlange komplett mit allen enthaltenen Aktivitäten löschen. Ist schon etwas umständlich, oder?


Gruß
René