Microsoft Dynamics CRM 2011 | Benutzerdef. Entitäten & E-Mail

CE_E-Mail_SettingsHeute möchte ich Euch auf einen Design-Ansatz hinweisen, den Ihr bei Euren eigenen Benutzerdefinierten Entitäten beachten solltet. Konkret geht es um das Beispiel, dass Ihr in Eurer eigenen Entität ein oder mehrere E-Mail Felder integrieren wollt. Diese sollen aber nicht nur im Seriendruck verwendet werden, um E-Mails schreiben zu können, sondern auch über Prozesse angesprochen werden können.

Nehmen wir zunächst an, Ihr habt noch keine Entität erstellt und beginnt, Eure benutzerdefinierte Entität von Grund auf in Euer System zu integrieren. Dabei fallen gleich zu Beginn auf dem Register Allgemein im Abschnitt Kommunikation und Zusammenarbeit ein paar Einstellungen auf. Eine davon (rot markiert) bezieht sich dabei auf den Umgang mit den integrierten E-Mail Funktionen.

CE_Form_with_E-Mail_AddressDiese Option wählt Ihr aus und erzeugt anschließend noch ein paar weitere Attribute. In meinem Fall habe ich ein URL Feld integriert.

Anschließend das Formular bearbeitet und die beiden Felder hinzugefügt.

CE_Form_with_2nd_E-MailNun fehlen mir natürlich noch ein paar Demo-Datensätze. Diese füge ich über die im vorherigen Artikel bereits beschriebene Import-Routine hinzu. In meinen Quelldaten habe ich dabei zwei Spalten mit E-Mail Adressen, die als Text formatiert sind. Warum ich darauf hinweise, werdet Ihr später noch erfahren. Da ich bislang nur ein Feld auf meinem Formular erstellt bekommen habe, lasse ich das 2te E-Mail Feld von der Import-Routine als neues Feld erstellen.

CustomURL_Field_on_Entity_with_http

Anschließend sehen meine importierten Datensätze wie links dargestellt aus.

Beide E-Mail Adressen sind importiert. Eine davon ist wie ein Hyperlink blau hinterlegt, die andere E-Mail Adresse ist es hingegen nicht.

Jetzt wollen wir unsere E-Mail in einem eigenen Prozess nutzen, um den jeweiligen Datensätzen E-Mails zukommen zu lassen.

CE_Process_Proof_Attribute

Üblicherweise beginne ich in einem Prozess vorab der Versendung einer E-Mail zunächst einmal mit einer Überprüfung des Attributs auf Inhalt.

Wie wir dem Bild rechts entnehmen können, kann ich für beide E-Mail Felder eine solche Überprüfung vornehmen.

CE_Process_E-Mail_Properties

Ist unsere Bedingung erfüllt, dann füge ich einen Schritt E-Mail senden hinzu und klicke auf die Eigenschaften, um die E-Mail zu definieren.

Im Feld “Von” fällt dies nicht schwer. Der aktuelle Besitzer soll die E-Mail versenden. Und den Bezug hat das System für mich bereits erzeugt. Doch jetzt kommen wir in das Feld “An” und wollen hier unsere E-Mail hinzufügen.

CE_Process_Dynamic_Fields_no_E-Mail

Lasst mich den Ausschnitt noch mal vergrößern. Was fehlt uns in der Dynamischen Werte Auswahlliste? Unsere E-Mail Felder!

Weder das vom System hinzugefügte Feld E-Mail Adresse kann hier gefunden werden, noch das nachträglich durch den Datenimport hinzugefügte Feld Custom E-Mail.

Und nun fragt Ihr Euch sicherlich, wie Ihr bei dieser Feldauswahl dennoch eine E-Mail versenden könnt.

CE_Process_E-Mail_Properties2

Ganz einfach: Wir wählen den Namen der Entität aus.

Das sieht lustig aus, da es deckungsgleich mit dem Bezug ist, dennoch wird es funktionieren, wie ich Euch auch gleich zeigen möchte.

Wir aktivieren also unseren Prozess als bedarfsabhängig gestarteten Prozess, selektieren ein paar Datensätze und starten hierfür den Prozess.

CE_E_Mail_send

In den geschlossenen Aktivitäten zu den jeweiligen Entitäten finden wir die erzeugte E-Mail.

CE_E-Mail_Activity

Und im Detail können wir uns diesen Datensatz natürlich auch einmal anschauen. Dabei bekommen wir die Hinweismeldung, dass die E-Mail noch nicht versendet wurde.

HINWEIS: Diese bekommen wir nur, weil Outlook nicht gestartet ist und Outlook als E-Mail Versendung für den Benutzer gewählt wurde. Und im Feld “An”, sowie “Bezug” steht jeweils Test1 – Ob da der E-Mail versandt funktioniert?

CE_Outlook_Outgoing_Folder

Schauen wir uns dazu den Postausgang im Outlook an.

Damit wir etwas sehen können, bin ich zunächst vor der Synchronisation “offline” gegangen.

Es wurden zwei E-Mail Aktivitäten im Postausgangskorb erzeugt und warten auf Versendung.

CE_E_Mail_Activity_Outlook

Schauen wir uns auch hier eine E-Mail vor dem Versenden an. Wir stellen fest, dass tatsächlich die am Datensatz Test1 hinterlegte E-Mail Adresse herangezogen wird.

Der Name wird dabei als “Friendly Name” verwendet und die E-Mail Adresse ergänzt.

Wenn wir nunmehr Outlook in den Online-Modus versetzen, werden unsere E-Mails versandt.

Unser erstes Fazit:

1. ) Die im Register Allgemein unter Kommunikation und Zusammenarbeit befindliche Einstellung E-Mail… gehört auf jeden Fall aktiviert, wollen wir E-Mails per Prozess versenden können.

2.) Nur unser primäres E-Mail Feld ist für den Prozess tauglich, unser 2. E-Mail Feld kann nicht herangezogen werden.

3.) Unser 2. E-Mail Feld funktioniert auch in einem Seriendruck nicht, da es ein String-Feld ist, und nicht als E-Mail Feld formatiert wurde. Dies hängt mit der Aufbereitung der Quelldaten und der automatischen Erzeugung des Feldes während der Import-Routine zusammen.

4.) Um unser primäres E-Mail Feld heranziehen zu können, wählen wir den Namen der benutzerdefinierten Entität im Feld “An” als Dynamischen Wert aus.

 

Schauen wir uns noch mal die Unterschiede der beiden E-Mail Felder an.

CE_E_Mail_Attributes_compared

Wir sehen die unterschiedlichen Typen, ob es sich um ein benutzerdefiniertes Feld handelt (IsCustomField) oder nicht.

Signifikant ist dabei die Formatierung als E-Mail Adresse.

Und das bringt mich zu meinem zweiten Beispiel.

CE_Profile_without_E-Mail_SettingIhr habt bereits eine Entität erstellt, dort ist besagte E-Mail Einstellung noch nicht gesetzt und der Entität sind wieder ein paar weitere Attribute hinzugefügt.

CE_Profile_E-Mail_Attribute

Als nächstes legt Ihr ein E-Mail Feld an. Hierzu ändert Ihr das Format von einem reinen Textfeld in das Format einer E-Mail.

CE_Profile_FormAuch dieses Feld fügt Ihr dem Formular hinzu und importiert anschließend wieder ein paar Daten oder gebt Sie per Hand ein. Sofort fällt auf, dass dieses E-Mail Feld nun auch als Hyperlink deklariert ist und ein Doppelklick eine neue E-Mail erzeugt.

CE_Profile_Process_No_E-Mail_AttributeAuch hierfür wollen wir nun wieder einen Prozess erzeugen und eine E-Mail versenden.

Bei der Definition der Eigenschaften müssen wir jedoch feststellen, dass besagtes E-Mail Feld, obwohl doch offensichtlich gültig, nicht in der Auswahlliste der Dynamischen Werte zur Verfügung steht.

Was fehlt uns also?

CE_Profile_Adjust_E-Mail_Settings

Richtig: Erneut sind es die Einstellungen unter Kommunikation und Zusammenarbeit.

Diese gesetzt, gespeichert und die Änderungen veröffentlicht stellen wir fest, dass wir

a) diese Einstellungen nicht mehr zurücknehmen können – die Option ist gesperrt

CE_Profile_Process_Entity_shownb) in unserer Auswahlliste der Dynamischen Werte anschließend der Name der Entität – Profile in meinem Fall – wieder zugänglich ist.

Das Versenden der E-Mails würde also auch hierüber wieder funktionieren.

Ein zweites Fazit:

Ein Attribut nur als E-Mail Adresse zu formatieren reicht aus, um eine einzelne E-Mail Versendung per Doppelklick anstoßen zu können.

In einem Seriendruck-Verfahren mit der Option E-Mail kann besagtes Feld ebenfalls herangezogen werden

Wenn jedoch E-Mails aus einem Prozess heraus erzeugt werden sollen, müssen wir über die Allgemeinen Optionen unser erstelltes E-Mail Feld zum primären E-Mail Adressfeld der Entität konvertieren.

E-Mail ist also nicht immer gleich E-Mail. Und bei der automatischen Erstellung von Felder via Import-Routine ist Vorsicht geboten, wenn Ihr die E-Mail Adresse als reines Text-Feld formatiert habt.

 

CE_Import_created_E-Mail_AttributeHINWEIS: Habt Ihr die Erstellung des E-Mail Feldes via Import-Routine vorgenommen, könnt Ihr zwar Text als Typ auswählen, jedoch nicht das Format bestimmen. Und wie Ihr rechts seht, kann diese Änderung nachträglich nicht mehr von Text auf E-Mail umgeändert werden.

Ihr müsstest also aufwendig nacharbeiten, ein neues Feld manuell erzeugen, mit einem Prozess die Daten von Feld A auf Feld B kopieren und dann das “falsche” E-Mail Feld wieder entfernen.

 

Technorati Tags:

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s