Microsoft Dynamics CRM 2011 | Datenimport Redux

Nachdem ich auf meine ersten drei Teile immer noch Feedback erhalte und das Thema Datenimport gerade bei der Übernahme von Daten aus Vorgänger-Systemen brandaktuell ist, werde ich heute noch ein paar weitere Fehlerquellen vorstellen und weitere Tipps verraten.

Wer die ersten drei Teile noch nicht kennt: 1. Teil, 2. Teil, 3. Teil

Datenimport_Musterdaten

Beginnen wir diesmal mit einer einfachen Excel-Tabelle, die z.B. aus einem Abzug Eurer alten Daten aus dem Vorgängersystem entstanden ist.

Datenimport_Aktive_Benutzer

In meinem System gibt es drei Benutzer. Vorname Nachname ist dabei der Systemadministrator, unter dem wir auch die jeweiligen Datenimporte durchführen werden.

Ziel soll es dabei sein, die aus dem Vorgängersystem bekannten “Erstellt am” Daten und “Besitzer” der jeweiligen Datensätze zu erhalten.

Datenimport_SicherheitsrolleUm dies überhaupt erreichen zu können, muss eine der Sicherheitsrollen des Import-Benutzers im Register Unternehmenseinheit unter Verschiedene Rechte das globale Recht beinhalten, die Werte von Erstellt am und Erstellt von beim Import überschreiben zu dürfen.

Ohne diesem Recht, stehen uns besagte Felder in der Standard-Zuordnung später nicht zur Verfügung.

Soweit also die Ausgangsvoraussetzungen. Kommen wir nun zum einem sehr häufig gemachten Fehler:

Mit einer Import-Datei gleich Firmen und Kontaktdatensätze importieren wollen. Wir speichern unsere Excel-Datei also im .csv-Format (Trennzeichen getrennt). Und beginnen mit dem Upload.

Datenimport_Datenzuordnung

Im Anschluss wählen die meisten die generische Datenzuordnung für Kontakt- und Firmendaten als Vorlage.

Im Anschluss daran beginnen die Arbeiten der einzelnen Feldzuordnung.

Datenimport_Zuordnung_Ersteller_ändern

Dabei wird Feld für Feld von Quelle dem passenden Ziel zugewiesen und im Falle unseres Erstellers wählen wir in der Suche als Quelle die Entität der Benutzer aus uns wählen als Suchfeld den Vollständigen Namen.

Danach tätigen wir die entsprechenden Zuordnungen auch auf Seiten der Kontakt Entität.

Datenimport_Zuordnung_Firma_komplett

Im Idealfall habt Ihr also im Anschluss bei beiden Entitäten ein grünes Häkchen. Dabei habt Ihr bei der Firma das Feld Vorname und Nachname aus Euren Quelldaten ignoriert.

HINWEIS: Wenn Ihr ein Feld nicht auf ignorieren stellt, sondern es nicht zuordnet, erhaltet Ihr vor dem Import durch den Assistenten noch eine Warnmeldung.

Datenimport_Zuordnung_Kontakte_komplett

Eure Kontaktfeld-zuordnung enthält eine Besonderheit. Das Feld Firma weist Ihr dem Übergeordneten Kunden zu und wählt hier als “Erkennungsmerkmal” z.B. den Firmennamen aus.

Datenimport_Zuordnung_sichernIm Anschluss daran wollt Ihr Eure Zuordnung sichern und vergebt deshalb einen sprechenden Namen für diese. So könnt Ihr diese Datenzuordnung bei späteren Importen erneut verwenden.

Sodann startet durch Absenden der eigentliche Import, der im Hintergrund geschieht.

Datenimport_Abschluss

Schaut Ihr Euch die Ergebnisse dann an, so stellt Ihr fest, dass 2 Firmen nicht importiert wurden. Dies ist auch korrekt, da Duplikate nicht erstellt werden sollten. Doch von den Kontakten ist leider kein Kontakt importiert worden.

Datenimport_Kontakte_Fehlermeldungen

Ein Blick in die Fehlerdetails verrät Euch dann, warum kein Kontakt importiert wurde. Doch die Ursache ist nicht jedem sofort klar.

In unserem Fall ist Firmenname ein eher schlechtes Kriterium für die Verweissuche bei Übergeordnetem Kunde. Besser wäre z.B. eine Firmennummer (Debitor- / Kreditorennummer oder GUID).

Doch selbst, wenn wir jetzt in unserer Quell-Datei ein neues Feld hinzufügen würden und hier für die jeweiligen Firmen eindeutige Firmennummern eintragen würden und den Import dann erneut wiederholen, würden wir mit gleicher Fehlermeldung scheitern.

Lassen wir das Feld Übergeordneter Kunde hingegen weg, dann funktioniert der Import. Allerdings ist dies ja nicht das gewünschte Resultat.

Wie können wir uns verbessern? Die Aufbereitung unserer Quelldaten sollte eine andere sein. Zum Einen sollten wir eine .csv-Datei für Firmen und zum Anderen eine .csv-Datei für unsere Kontakte erstellen.

Datenimport_Excel_Firmen

Unsere Quelldatei ist schnell in zwei Dateien aufgeteilt. Bei der Firma entfernen wir gleich die Spalten Vor- und Nachname und ergänzen eine Firmennummer für die Eindeutigkeit.

Unsere Felder “Erstellt am” und “Ersteller” lassen wir zunächst unberührt.

Datenimport_Excel_Kontakte Und in den Kontakten ersetzen wir unsere Firmen-Spalte einfach durch Übergeordneter Kunde und ergänzen hier die korrekte Firmennummer.

Im Anschluss daran haben wir zwei .csv-Dateien, die wir in einem ZIP Archiv zusammenführen.

Datenimport_ZIP_StandardzuordnungDie .zip-Datei wiederum laden wir jetzt in unserem nächsten Datenimport hoch. Diesmal wählen wir die Standard-Zuordnung.

Datenimport_ZIP_Zuordnung_Entitäten

Nun teilen wir dem System noch mit, dass wir für die Entitäten Firma und Kontakt einen Import wünschen und beginnen anschließend erneut unsere Feldzuordnung pro Entität.

Datenimport_ZIP_Zuordnung_Firma

In unserer Firmenzuordnung achten wir dabei darauf, dass unsere Firmennummer auch einem Datenfeld zugeordnet ist.

Und erneut weisen wir unserem Ersteller die Suchzuordnung im Feld Vollständiger Name in der Entität Benutzer zu, damit wir unseren ursprünglichen Ersteller erhalten.

Datenimport_ZIP_Zuordnung_Kontakt

Der nächste Schritt ist die Zuordnung für die Kontakte. Auch hier verfahren wir im Feld Ersteller gleich. Und in der Zuordnung des Übergeordneten Kunden verweisen wir diesmal auf die Firmennummer in der Entität Firma.

Soweit eine reine Fleißarbeit und noch wenig spannend.

Datenimport_ZIP_korrekte_Besitzer_zuweisen

Doch im letzten Fenster des Assistenten kommen vielen nun Zweifel auf. Soll ich den Besitzer vielleicht entfernen, denn ich will ja den Ersteller meiner ursprünglichen Daten nicht überschreiben.

Wenn wir dieses Feld jedoch leeren, haben wir gar keine Chance, den Auftrag absenden zu können.

Wir müssen also wieder unseren Systemadministrator eintragen und hoffen, dass uns unsere ursprünglichen Daten nicht mit diesem Wert überschrieben werden.

Auch dieser Zuordnung sollten wir wieder einen Namen geben und sie damit abspeichern. Wer weiß, ob wir unseren Import nicht noch mal wiederholen müssen.

Datenimport_importierte_Firmen

Wir kontrollieren unseren Import und betrachten zunächst die Firmen. Wir stellen fest, dass das Datum korrekt übertragen wurde.

Unser Besitzer und Erstellt von ist jedoch mit dem Systemadministrator gefüllt. Und ein ähnliches Bild finden wir auch bei den Kontakten vor.

Tipp 1: Mit unserem Datum haben wir Glück gehabt, denn manchmal gibt es Quellsysteme (z.B. aus Oracle-Datenbanken) in denen das Gebietsschema nicht dem Schema entspricht, welches für CRM gewählt wurde.

Datenimport_Excel_Datum_aufbereitet

Uns hilft jedoch eine Excel-Funktion, um Datums-Werte entsprechend aufbereiten zu können.

Hierzu verwende ich die Funktion =Text() mit einer Formatierung.

Die Formatierung nehme ich dabei gern im Format

JJJJ-MM-TT hh:mm:ss  vor. Euer jeweiliges Format lässt sich schnell kontrollieren, wenn Ihr Eure Datenbank im SQL Management Studio öffnet und Euch hier aus einer Tabelle Eurer Wahl das Feld Erstellt am anschaut. In diesem Format solltet Ihr Eure Excel-Datumsfelder dann aufbereiten.

Doch warum wurde unser Ersteller nicht übernommen. Auch hierfür gibt es einen Grund. Das Feld Vollständiger Name enthält den jeweiligen Benutzernamen in der Formatierung, die Ihr vor Anlage weiterer Nutzer als Systemeinstellung konfiguriert habt. In unserem Fall also in dem Format Nachname, Vorname.

Datenimport_Excel_Ersteller_aufbereitetTipp 2: In unserem Beispiel habe ich die Formatierung des Feldes mit “Vorname Nachname” und möchte dieses nun passend umstellen. Auch hier hilft uns Excel mit seinen Funktionen weiter.

Mit der Kombination aus Teil-, Finden- und Links-Funktion können wir uns ausgehend von unserem Leerzeichen zwischen Vor- und Nachname die jeweiligen Teile des Strings “zurechtschneiden” und neu mit Kommata getrennt zusammen stellen.

=Teil(Suchfeld(Finden(Suchstring; Suchfeld)+1;Gesamtlänge)&”, “&Links(Suchfeld;Finden(Suchstring; Suchfeld)-1)

Das spart enorm viel Zeit und geht oft noch schneller und vor allem Zuverlässiger als Suchen + Ersetzen.

Nun fügen wir unsere neu aufbereiteten Daten erneut in einem ZIP-Archiv zusammen, laden die Datei erneut beim Import hoch und wählen unser zuvor gesichertes Zuordnungsschema. Im Anschluss bestätigen wir mit Absenden und können in der Übersicht der Importe den Ablauf der Jobs überwachen.

Datenimport_erfolgreich

Im Idealfall habt Ihr zwei erstellte Firmen- und vier erstellte Firmendatensätze, um bei meinem Beispiel zu bleiben.

Und wieder kontrolliert Ihr das Ergebnis.

Datenimport_Kontakte_Besitzer_korrekt

Es stellt sich heraus, dass einige der Datensätze nunmehr im Feld Besitzer die Zuweisung auf Will West enthalten. Warum aber keiner für Earl East?

Verschrieben, Formel inkorrekt?

Alles falsch! Denn jetzt seid Ihr in das nächste Fettnäpfchen beim Import getreten. Leider hilft Euch aber die Detailbetrachtung der Import-Jobs nicht weiter, denn es werden keine Fehler vermeldet. Und das, obwohl doch offensichtlich eine Zuordnung der Datensätze nicht möglich war.

Datenimport_EarlEast_minimale_Rechte

In meinem Fall – und meist auch bei Euch – hängt es mit den Sicherheitsrechten zusammen, die den jeweiligen Nutzern zugewiesen sind.

Tipp 3: Überprüft bei der Zuordnung eines Erstellers von Datensätzen unbedingt vorher die Rechte der jeweiligen Nutzer im CRM. Es muss sich um aktive Nutzer handeln und es müssen ausreichend Rechte vergeben sein, um den Besitz eines Datensatzes auch übernehmen zu dürfen.

 

Weisen wir also eine Rechterolle zu mit erhöhten Rechten und wiederholen den Import-Vorgang.

Datenimport_Firmen_Besitzer_wirklich_korrekt

Und siehe da, unsere Firmen sind den beiden Nutzern korrekt zugewiesen worden und jetzt schnell noch ein Blick in die Kontakte…

Datenimport_Kontakte_Besitzer_wirklich_korrekt

Und auch hier sind die Besitzer jetzt korrekt gesetzt.

Besitzer…!

Ist Euch was aufgefallen? Nein?

In unserer Rechterolle hieß es doch, das wir dem Import Nutzer globale Rechte erteilt haben, um die Felder “Erstellt am” oder “Erstellt von” während des Imports zu überschreiben.

Wenn Ihr in das Feld “Erstellt von” seht, ist hier immer der Systemadministrator eingetragen und als Besitzer unser Ersteller.

Genau! Wir haben ja auch unser Feld dem CRM Feld Besitzer zugeordnet. Und warum nicht dem CRM Feld “Erstellt von”? Diese Frage darf uns Microsoft beantworten, denn wir haben dieses Feld trotz der offensichtlichen Berechtigung in der Sicherheitsrolle nicht in der Feldauswahlliste.

So bleibt uns nur den Erstelle, wenigstens als Besitzer zu übernehmen. Alternativ dazu könnte man auch ein neues Feld anlegen, aber gutes Design sieht anders aus Zwinkerndes Smiley

Ich würde mal vermuten, dass es sich um eine Bug handelt, für den es hoffentlich demnächst ein Fix in einem Update Rollup geben wird.

Oder wer von Euch einen Weg über die GUI gefunden hat, möge diesen im Kommentar teilen.
Denn den Weg anschließend die SQL Daten per Script einem Update zu unterziehen, ist bereits bekannt.

 

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