Seite 1 von 1

Wo findet man für einen Workflow den Absender eines eMails?

Verfasst: 08. Aug 2019, 10:34
von dg@igit.at
Hi zusammen!

Wo findet man für einen Workflow den Absender eines Mails??
Im Journal steht diese Information im Header (Zusammenfassung) des jeweiligen Journaleintrages, aber in der Datenbank kann ich diese Information nicht finden. Kann jemand helfen?

Danke, Daniel

Re: Wo findet man für einen Workflow den Absender eines eMails?

Verfasst: 08. Aug 2019, 11:22
von ab@igit.at
Ich habe in der Datenbank nun gefunden, wie der Journaleintrag zusammengestellt wird, uzw.

SELECT HeaderTemplate
FROM [M42STORE].[dbo].[SPSJournalEntryPickupType]
WHERE HeaderTemplate LIKE '%email%'

Im HeaderTemplate steht dann genau das, was wir bräuchten, nämlich der emailSender....

{journalCopiedFromTicket}{journalCopiedTicketId}The ticket was created from the e-mail sent by {emailSender}

Wie / Wo finde ich den "emailSender" in der Datenbank?

Re: Wo findet man für einen Workflow den Absender eines eMails?

Verfasst: 08. Aug 2019, 12:57
von FrankPree
Servus Daniel,

was genau hast Du denn vor? Welchen Absender möchtest Du denn finden?
Es gibt für die verschiedene Aufgaben, verschiedene Möglichkeiten eines Absenders. Der Default Sender steht in der SPSAlertingConfiguration. Im Workflow kannst Du dafür die eigens dafür verfügbare Activity "Get Global Configuration" verwenden. Hier kannst Du dann den Standardabsender aus der SPSAlertingConfiguration abfragen.

Ist das das, was Du benötigst?

LG
Frank

Re: Wo findet man für einen Workflow den Absender eines eMails?

Verfasst: 08. Aug 2019, 13:49
von dg@igit.at
Danke für deine Antwort. Wenn man schon so lange nach der Mailadresse sucht, wird man langsam ein wenig blind und die umfassende Beschreibung leidet darunter... :)

Die Aufgabenstellung ist folgende:
1) Jemand schickt per Mail eine Nachricht zu einer vorhandenen Aufgabe (inkl. TaskID).
2) Über die Konformitätsregel wird erkannt: HolladieWaldfee, ein neues Mail!
3) Jetzt möchte ich im Workflow entscheiden, wen ich darüber informiere.
a) Wenn ein neues Mail von einem ResponsibleUser kommt > Mail an den Initiator
b) Wenn ein neues Mail vom Initiator ( oder auch von einer unbekannten Mailadresse ) kommt > Info per Mail an ResponsibleUser

Bis auf die emailSender - Adresse ist alles soweit fertig >>> Das ist was ich suche.

Re: Wo findet man für einen Workflow den Absender eines eMails?

Verfasst: 08. Aug 2019, 15:21
von FrankPree
Servus,

die Mailadresse selbst findest Du nur in den SolutionParams der ActivityClassUnitOfWork. Das ist ein XML, das Du im Workflow auswerten könntest.
Du könntest jedoch auch versuchen, den Erkennungsmechanismus der Matrix zu nutzen. Wenn eine Person zu einer Mailadresse erkannt wird, dann wird nämlich der Eintrag in der SPSActivityClassUnitOfWork (acuow) mit der Creator ID aus der SPSUserClassBase versehen. Heißt, wenn jemand mit bekannter Mail-Adresse was schickt, dann steht der Creator im Datensatz. Du könntest nun also prüfen, ob die ID des entsprechenden ACUOW Creators gleich dem Responsible, oder was auch immer, in der SPSActivityClassBase ist. Wenn nicht, dann ist es eben ein unbekannter Absender.

Als Anhaltspunkt kann Dir vielleicht sowas dienen:

Code: Alles auswählen

select 
jept.DisplayString,
acuow.Creator,
acuowuser.DisplayName,
acb.Initiator,
acbinitiator.DisplayName
from SPSActivityClassUnitOfWork acuow

inner join SPSJournalEntryPickupType jept on acuow.ActivityAction = jept.Value
inner join SPSActivityClassBase acb on acuow.[Expression-ObjectID] = acb.[Expression-ObjectID]
left join SPSUserClassBase acuowuser on acuow.Creator = acuowuser.id
left join SPSUserClassBase acbinitiator on acb.Initiator = acbinitiator.id
where jept.DisplayString like '%mail%'
LG
Frank

Re: Wo findet man für einen Workflow den Absender eines eMails?

Verfasst: 08. Aug 2019, 18:36
von dg@igit.at
Danke! Damit bekommen wir's hin! Schätze morgen ist der WF dann komplett umgesetzt. Danke nochmal für deine Hilfe :)

Re: Wo findet man für einen Workflow den Absender eines eMails?

Verfasst: 09. Aug 2019, 16:47
von dg@igit.at
Mit Hilfe von Frank sieht dann unsere fertige Lösungen so aus:

Im Workflow ein SQL Query wie folgt ausführen...

Code: Alles auswählen

SELECT TOP (1) ISNULL(acuow.Creator, 0x0) AS Creator
FROM SPSActivityClassUnitOfWork acuow
INNER JOIN SPSJournalEntryPickupType jept ON acuow.ActivityAction = jept.Value
WHERE acuow.[Expression-ObjectID] IN (@EOID)
AND acuow.ActivityAction IN (14) 
ORDER BY acuow.CreatedDate DESC
EmailSender = record.GetGuid(0) zurückgeben und damit weitermachen.