Einrichten einer Microsoft Dynamics CRM 2013 Installation für die Plug-In Entwicklung

Heute zur Abwechslung mal kein SharePoint, sondern Microsoft Dynamics CRM 2013. In einem aktuellen Projekt habe ich gerade ein Plug-In entwickelt, welches eine kundenspezifische Lösung für den Umgang mit Rechnungsdaten zur Verfügung stellt. Die Entwicklung als solches fand ich nicht so komplex, dafür die Vorbereitungen umso mehr. Dies vor allem deshalb, weil ich auch im Netz keine halbwegs komplette Anleitung dazu gefunden habe. Dieser Blog soll dies nun versuchen.

Meine Entwicklungsumgebung ist Visual Studio 2013, welche nicht auf dem CRM Server, sondern auf einer separaten Windows 8.1 Maschine läuft. Das Microsoft Dynamics CRM 2013 hat den aktuellsten Patchstand und ist noch in keiner Weise konfiguriert. Zur Unterstützung im Visual Studio soll mit dem CRM Developer Toolkit gearbeitet werden. (1)

Software installieren

Das erste Problem gibt es beim Developer Toolkit. Das geht ja schon mal prima los. Dieses unterstützt, trotz der 2013 in seinem Namen, Visual Studio 2013 nicht. Es besteht auf Visual Studio 2012. Dieses möchte ich aber ungern installieren. Damit bin ich nicht alleine und jemand hat tatsächlich eine Möglichkeit gefunden, das CRM Developer Toolkit 2013 in Visual Studio 2013 zu integrieren. Eine Anleitung findet sich unter (2). Damit geht es zum Server.

Auf diesem sollt nun .NET 4.5 installiert werden. Wenn man erfolgreich sein Plug-In entwickelt hat und dieses auf dem Server bereitstellen möchte, droht das nächste Ungemach. Zum Registrieren des Plug-Ins auf dem Server stellt Microsoft das PlugIn Registrations Tool bereit. Es befindet sich mit anderen Tools zusammen im SDK. Allerdings ist es mir nicht gelungen das aktuelle Tool zum laufen zu bekommen. Mehrere Maschinen, mehrere Konten, es stürzte immer an der gleichen Stelle nachvollziehbar ab. In solch einem Fall hilft nur der Versuch mit einer früheren Version, doch woher bekommen? Microsoft stellt diese nicht mehr zur Verfügung. Zum Glück gibt es aber Jäger und Sammler, hier findet man das Tool in einer alten Version (6.0.4), welches bei mir wunderbar funktioniert hat (3).

Microsoft Dynamics CRM 2013 Server einrichten

Bevor es losgehen kann mit der Registrierung des Plug-Ins sollten noch einige Einstellungen auf dem Server vorgenommen werden. Zuerst sollte geprüft werden, ob überhaupt fremder Code ausgeführt werden darf. Dies ist zwar standardmäßig der Fall, aber man weiß ja nie. Das folgende PowerShell Script unter (4) hilft da weiter und gibt auch noch mehr Hinweise.

Falls der Code Probleme macht, sollte man das Tracelog einschalten. Dieses ist standardmäßig deaktiviert. Eine Anleitung dazu findet sich hier (5). Achtung: Es muss immer die Eigenschaft

$setting.Directory=“C:\Programme\Microsoft Dynamics CRM\Trace“

gesetzt werden. Mit der schon vorhandenen Standardeinstellung habe ich das Trace nicht zum laufen gebracht.

Plug-In registrieren

Sind alle Aufgaben erfüllt, kann das Plug-In endlich registriert werden. Diesen Vorgang führe ich auf meiner Entwicklungsmaschine aus, welche natürlich eine Verbindung zum CRM Server hat. Ich habe dazu im PlugIn Registrations Tool eine Verbindung hergestellt, was ich hier nicht näher beschreibe. Die Assembly liegt im /bin Ordner des Visual Studio Projektes. Diese wird zuerst registriert.


Darauf achten, dass die Assembly in der Datenbank landet und nicht in einer Sandbox.


Danach läuft der Code aber noch nicht. Es muss noch mitgeteilt werden, bei welcher
Aktion und bei welcher Entität der Code starten soll. Dazu muss ein Step registriert werden.

In meinem Fall soll auf das Update Ereignis in einer Rechnung synchron reagiert werden.

Ein Blick zur Kontrolle

Noch ein Hinweis zum Schluß: Wenn man die Assembly via E-Mail auf dem Liveserver kopiert, so wie ich es gemacht habe, kann diese zuerst nicht registriert werden. .NET ist der Meinung, solcher Code ist unsicher und erlaubt die Aufführung nicht. Dies kann behoben werden, indem man sich im Dateisystem die Eigenschaften der Datei anzeigen lässt und die Ausführung zulässt.

 

Ich hoffe einigen mit diesen Hinweisen weiter geholfen zu haben. Der Kurzlink zu diesem Beitrag ist http://wp.me/p4y7ta-3N.

  1. http://www.microsoft.com/en-us/download/details.aspx?id=40321
  2. http://torsteinutne.com/2014/03/24/getting-the-crm-developer-toolkit-to-work-with-visual-studio-2013/
  3. https://onedrive.live.com/?cid=e4b83260b94d4158&id=E4B83260B94D4158!1387&ithint=folder,.exe&authkey=!ALuzupR9uXK3iII
  4. http://msdn.microsoft.com/en-us/library/gg328153.aspx
  5. http://support.microsoft.com/kb/907490

Vielen Dank für Ihr Interesse an meinem Blogeintrag.
Gerne beantworte ich Ihnen persönlich weitergehende Fragen zu diesem Thema.
Kontaktieren Sie mich einfach über mein Kontaktformular.

Sie wollen mehr über mich erfahren? Dann gehen Sie auf meine Site
http://www.nicothiemer.de

Nico Thiemer

Importieren und Update von Firmen- und Kontaktdaten in Microsoft Dynamics CRM 2013 Teil 2

Dies ist der zweite Beitrag zum Thema Importieren und Update von Daten in Microsoft Dynamics CRM. Der erste Beitrag hat sich mit dem Import von Daten befasst, dieser Beitrag wird sich mit dem Update beschäftigen.

Wenn Sie eine Weile mit einem CRM System arbeiten, häufen sich darin (hoffentlich) viele Daten an. Wenn Sie jetzt erneut Daten importieren möchten, so ist dies problemlos möglich, sofern es sich um neue Daten handelt. Wollen Sie aber schon vorhandene Daten aktualisieren, z.B. mit Werten aus einem Scoring, wird es komplexer. Wenn Sie versuchen, die Daten auf dem Weg wie im vorherigen Artikel beschrieben zu importieren, erhalten Sie einen Fehler. CRM wird Ihnen sagen, dass eine Firma mit dem entsprechenden Namen schon vorhanden ist und den Import abbrechen. Ein Update von Daten ist mit dem Verfahren ohne weiteres nicht möglich.

Wenn Sie von wenigen Daten ein Update machen möchten, so können Sie diese in Excel exportieren, dort ändern und importieren. Für Massenänderungen ist dieses Vorgehen aber untauglich. Hier hilft nur der Weg über eine zweite Entität und einen Workflow. Wir erstellen eine zweite Entität und verbinden diese mit einem Workflow. Dieser kopiert uns bei Änderungen in der neuen Entität die entsprechenden Felder in die Entität Firma. Starten soll der Workflow beim Erstellen eines neuen Datensatzes und bei Änderung. Der Einfachheit halber werde ich das Feld Ort ändern. Wenn Sie andere Felder ändern möchten, müssen Sie diese ggf. vorher noch anlegen.

Erstellen einer neuen Entität

Gehen Sie auf Einstellungen => Anpassungen => System anpassen und klicken Sie auf Neu => Entität.

Neue Entitaet anlegen

Die Daten meiner neuen Entität sehen Sie in der Abbildung unten. Deaktivieren Sie die Duplikatserkennung. Dieser Punkt befindet sich weiter unten.

Neue Entitaet name

Speichern Sie und legen Sie über den Punkt Felder am linken Rand die Felder Ort und Firmenname an. Beachten Sie, dass der Datentyp der Felder, welche Sie aktualisieren möchten, identisch sein muss. Bei Ort ist es eine einzelne Textzeile.

Neues-Feld-Ort

Das Feld Firmenname ist vom Typ Suche und hat als Zieldatentyp Firma. Die entsprechende Beziehung erstellt das System dabei von selbst.

Neues-Feld-Firma

Wenn Sie möchten, können Sie jetzt noch das Formular anpassen, damit Sie später den Eintrag prüfen können. Vergessen Sie nicht die Änderung am Formular zu veröffentlichen.

Workflow zum Kopieren der Daten erstellen

Um den Workflow zu erstellten, gehen Sie auf Einstellungen => Prozesse und klicken Sie dort auf Neu. Wählen Sie als Kategorie Workflow und binden Sie diesen an die Entität Update Firma. Die Option, den Workflow im Hintergrund auszuführen, habe ich deaktiviert.

Worflow-erstellen

In dem neu erscheinenden Fenster setzen Sie die Option auf Datensatzfelder werden geändert und klicken auf Schritt hinzufügen => Datensatz aktualisieren. Beim Aktualisieren wählen Sie Firmenname (Firma) aus und klicken dann auf Eigenschaften festlegen.

Datensatz-aktualisieren

Im neuen Fenster klicken Sie in das Feld Firmenname und wählen im Formular-Assistent an der rechten Seite den Eintrag Firmenname aus und klicken auf Hinzufügen. Klicken Sie dann noch einmal auf den Eintrag OK.

Firmenname-Workflow

Weitere Felder finden Sie, wenn Sie nach unten scrollen. Verfahren Sie mit den entsprechenden Feldern ebenso und klicken Sie abschließend auf Speichern und schließen.

Speichern Sie den Workflow und klicken Sie dann auf Aktivieren. Erst dann kann der Workflow verwendet werden.

Wf-aktivieren

Der Rest ist nun vergleichsweise einfach. Die Daten werden auf die Entität Update Firma importiert, wobei der Workflow die Daten auf die jeweiligen Firmen überträgt. Nach dem Update sollten Sie den Workflow wieder deaktivieren und die Einträge der Entität Update Firma löschen. Diese benötigen Sie ja nun nicht mehr.

Ich hoffe, ich habe Ihnen beim Import und Update von Daten in Microsoft Dynamics CRM helfen können und freue mich auf Kommentare und Anregungen!

Vielen Dank für Ihr Interesse an meinem Blogeintrag.
Gerne beantworte ich Ihnen persönlich weitergehende Fragen zu diesem Thema.
Kontaktieren Sie mich einfach über mein Kontaktformular.

Sie wollen mehr über mich erfahren? Dann gehen Sie auf meine Site
http://www.nicothiemer.de

Nico Thiemer

Importieren und Update von Firmen- und Kontaktdaten in Microsoft Dynamics CRM 2013 Teil 1

Wer mit Microsoft Dynamics CRM 2013 arbeitet und schon einmal versucht hat, einen Import von Firmen und Kontaktdaten zu machen, weiß um die damit verbundenen Schmerzen und Probleme. Diese Blogbeiträge sollen helfen, die größten Hürden zu umgehen und die Nerven zu schonen. Im ersten Teil stelle ich den allgemeinen Import von Daten in das CRM vor, im zweiten Teil wird es um das Update gehen.

Um es möglichst realistisch zu gestalten, betrachten wir zwei Konstellationen:

  • Den Import von Daten in ein frisches CRM
  • Den Import von Daten in ein gefülltes CRM, wobei wir nicht wissen, ob ein Teil der zu importierenden Daten schon im CRM vorhanden ist.

Wie gehen in beiden Fällen davon aus, dass uns die Daten in einer CSV Datei vorliegen, welche die Spalten mit einem Semikolon trennt. Die erste Spalte enthält die Überschrift. Die Datei hat die folgenden Spalten:

  • Firmenname
  • Ort
  • Straße
  • Nachname
  • Vorname
  • Telefon Kontakt
  • E-Mail Kontakt

Wie wir sehen können, haben wir hier zwei Entitäten vorliegen, jeweils die Entität

  • Firma und
  • Kontakt

Dieser Punkt wird später noch wichtig sein. Achten Sie darauf, dass Sie die entsprechenden Rechte besitzen. Im zweiten Beitrag benötigen Sie das Recht, das System anzupassen. Dies ist ein sehr hohes Recht.

Der Import von Daten in ein frisches CRM

Es gibt mehrere Wege, um Importe von Daten in Microsoft Dynamics CRM 2013 zu realisieren. Ich beschreibe hier einen Weg, welcher vergleichsweise aufwendig, aber dafür sehr sicher ist.

Um die Daten in ein frisches CRM zu importieren, bietet sich der Importassistent an. Sie finden diesen unter Einstellungen => Datenverwaltung => Importe. Sie finden dort in der Menüleiste den Punkt Daten importieren.

2014-08-07 08_44_41-Importe Meine Importe - Microsoft Dynamics CRM - Internet Explorer

Wenn Sie auf den Assistenten klicken, werden Sie aufgefordert, zuerst die Importdatei hochzuladen. Mit einen Klick auf Weiter wird die Datei hochgeladen und befindet sich damit in der Datenbank, wo sie natürlich auch Platz belegt. Als nächstes müssen Sie angeben, welche Trennzeichen Sie in der CSV-Datei verwenden möchten. Sollten Sie das falsche Zeichen auswählen, wird Sie das System darüber informieren, dass es keine Struktur in der Datei findet. Der Klick auf Weiter bringt uns zur Auswahl der Datenzuordnung. Hier sind schon einige Zuordnungen hinterlegt, wir lassen auch die Auswahl auf dem schon vorgeschlagenen Standard.

2014-08-07 09_11_14-_CRM 2013_ auf _MW1200NICO01_ - Verbindung mit virtuellen Computern

Da das System nicht weiß, welche Entität wir importieren möchten, wählen wir im folgenden Fenster den Eintrag Firma und klicken auf Weiter.

2014-08-07 09_13_18-_CRM 2013_ auf _MW1200NICO01_ - Verbindung mit virtuellen Computern

Das CRM versucht dann die Spalten aus der Datei mit den Spalten in der Entität zu verbinden. Das klappt auch recht gut, sofern die Spalten dieselbe Bezeichnung haben. Der Rest muss ergänzt werden. Die folgende Abbildung zeigt die Daten vor der Zuordnung.

2014-08-07 09_16_27-_CRM 2013_ auf _MW1200NICO01_ - Verbindung mit virtuellen Computern

In dem Dropdown, welches jetzt noch den Wert Nicht zugeordnet enthält, können Sie nun die Spalte auswählen, die den Importdaten zugeordnet werden soll. Die folgende Abbildung zeigt dies nach Fertigstellung. Dabei werden Werte, welche für die Firma keine Rolle spielen, ignoriert. Ebenso ist es möglich, dass Sie an dieser Stelle ein neues Feld erstellten, sofern Sie dies benötigen. Wählen Sie dazu aus dem Dropdown den dritten Eintrag.

2014-08-07 09_22_46-_CRM 2013_ auf _MW1200NICO01_ - Verbindung mit virtuellen Computern

Klicken Sie zweimal auf Weiter. In dem nun erscheinenden Fenster können Sie zuerst festlegen, ob Sie Duplikate zulassen möchten oder nicht. Diese Option zu deaktivieren ist durchaus sinnvoll. Die Duplikatprüfung von Microsoft Dynamics CRM 2013 verfügt über viel Logik, welche allerdings manchmal etwas zu weit geht. So ist es möglich, das eine Firma mit dem Name „Beispiel Firma“ existiert und Sie eine Firma mit dem Name „Beispiel-Firma“ importieren möchten. In dem Fall ist es möglich, dass das System meint, es wäre ein Duplikat vorhanden, obwohl sich die Firmen ja durch einen Bindestrich unterscheiden. Hier müssen Sie die Prüfung deaktivieren.

Neben der Zuordnung der Datensätze zu einem Besitzer ist noch die Option Name der Datenzuordnung interessant. Damit können Sie nämlich die Zuordnung der Spalten aus der Datei zu den Spalten der Entität, welche Sie einen Schritt vorher vorgenommen haben, dauerhaft speichern. Im Assistenten können Sie diese dann wieder unter dem Punkt Datenzuordnung auswählen nutzen. Dies erspart Ihnen für die Zukunft viel Arbeit. Nach dem Klick auf Absenden und Fertigstellten beginnt der Import.

Nach dem Import

Sie können den Import verfolgen und den aktuellen Stand einsehen, indem Sie das Datengrid aktualisieren und auf den Eintrag klicken. In dem Fenster können Sie sowohl die Erfolge als auch die Fehler sehen.

2014-08-07 09_35_26-_CRM 2013_ auf _MW1200NICO01_ - Verbindung mit virtuellen Computern

In manchen Fällen kommt es vor, dass Sie die importierten Daten wieder löschen müssen, z.B. weil die Datenqualität mangelhaft war. Bevor Sie jetzt jeden Eintrag löschen, markieren Sie den Importeintrag und klicken in der Menüleiste auf Löschen und dann auf Alle Datensätze, die während dieses Imports in diese Entität importiert wurden. In dem folgenden Dialog erstellen Sie einen Löschauftrag für diese Daten. Wenn Sie die Importdatei nicht mehr benötigen, sollten Sie diese auch löschen. Sie belegt sonst unnötigen Platz in der Datenbank.

2014-08-07 09_47_26-_CRM 2013_ auf _MW1200NICO01_ - Verbindung mit virtuellen Computern

Wenn Sie jetzt noch die Kontakte importieren möchten, gehen Sie analog wie oben vor und wählen Sie im Assistenten als Entität Kontakte aus. Wie Sie in einem gefüllten CRM ein Update machen, erfahren Sie im nächsten Beitrag.

Vielen Dank für Ihr Interesse an meinem Blogeintrag.
Gerne beantworte ich Ihnen persönlich weitergehende Fragen zu diesem Thema.
Kontaktieren Sie mich einfach über mein Kontaktformular.

Sie wollen mehr über mich erfahren? Dann gehen Sie auf meine Site
http://www.nicothiemer.de

Nico Thiemer