infinitas Blog

Dynamics CRM und die XrmToolBox

„Geheime“ Schätze für die tägliche CRM  Arbeit…

Werkzeug.jpg 

Motivation

Die XrmToolBox ist sicher allen bekannt als Sammlung einer Reihe an hilfreichen Tools rund um die Arbeit mit Dynamics CRM bzw. nun auch Dynamics365. Immer wieder sind es die kleinen, aber feinen Tools, die einem die Arbeit erleichtern. In letzter Zeit konnte ich feststellen, dass bei jedem Aufruf der Toolbox "gefühlt" neue Programme hinzugekommen sind oder bestehende aktualisiert wurden. Bestimmte Klassiker wie den FetchXML-Tester verwendet man sehr häufig. Andere Tools sind von mir bisher nur selten oder eben gar nicht aufgerufen worden. Mein Kollege Martin hat die ToolBox in seinem letzten Blogbeitrag sehr passend als „Schweizer Taschenmesser" bezeichnet und ein paar Tools hervorgehoben. Das hat mich dazu veranlasst, einmal wieder in Ruhe einen Blick auf die Toolbox zu werfen, um mir einen groben Überblick über die aktuellen vorhandenen Tools und deren Einsatzgebiet zu verschaffen. Vielleicht ist diese Übersicht ja auch für den einen oder anderen nützlich auf der Suche nach einer Problem­lösung… oder man sieht durch das Tool erst das Problem… aber dazu später mehr… ;-)

 

Die XRM Toolbox

Für alle, die sie wirklich noch nicht kennen sollten, hier der Link, unter dem man das Projekt im Internet findet und die aktuellste Version herunterladen kann: http://www.xrmtoolbox.com/

Erstellt von Tanguy Touzard, gibt es mit der XRM Toolbox eine Art Framework, welches inzwischen jedem Entwickler für eigene Erweiterungen offensteht. Aus meiner Sicht ein Grund, weshalb die Sammlung inzwischen auch so groß geworden ist und dem Projekt solch einen Erfolg beschert hat.

Inzwischen sind es weit über 50 Tools, die sich in der Toolbox geballt an einem Ort finden lassen. Diese hier alle auf einmal zu beschreiben, würde den Rahmen sprengen, aber bei Gelegenheit werde ich sicher immer wieder mal das eine oder andere Tool bei der täglichen Arbeit beschreiben.

Eine Liste aller Plug-Ins findet sich hier: https://github.com/MscrmTools/XrmToolBox/wiki/Available-plugins-for-XrmToolBox

 

Aktuelle Highlights…

..um Zeit und Nerven bei der Anpassung und Verwaltung von Dynamics CRM / Dynamics365 zu sparen. In meinem letzten Blogbeitrag hatte ich ja von der Verteilung von CRM Berichten mit Hilfe des Tools „ReportSync“ geschrieben. Mit dem „FetchXML Tester“ teste und tune ich zumeist meine Abfragen für Berichte, bevor ich sie im Visual Studio in den Bericht einfüge. Das geht mit dem Query Explorer zwar auch direkt bei der Report Erstellung, nur ist mir das Prozedere dort oft zu langsam.

FetchXML Builder

Das Bauen der FetchXML Abfragen kann man sich aber auch leichter machen. Nämlich mit dem FetchXML Builder. Wer noch etwas Unterstützung beim Syntax der FetchXML Abfragen benötigt, ist hier bestens aufgehoben. Dieses Tool bietet eine Menge an unterstützenden Funktionen, um eine FetchXML Abfrage per Klicks zusammen zu bauen.

 

Eine Abfrage kann vom ersten Bit her neu aufgebaut werden oder aber ich kann über die bestehende Verbindung zu einem System daraus Ansichten und dynamische Marketinglisten öffnen. Dann kann ich auf der zugrundeliegenden Abfrage meine Erweiterungen und Anpassungen aufbauen! Fertige Abfragen können zudem als C# Code gespeichert und direkt in eigenen Programmen verwendet werden.

 

 

Oder man kann sich für die aktuelle Abfrage die OData „Übersetzung“ anzeigen lassen.

 

Hat man sich bisher aus der weiterten Suche nur das FetchXML heruntergeladen, so ist man nun für die weitere Bearbeitung und Verwendung von Abfragen sehr gut aufgestellt.

FetchXML / View Record Counter

Der „FetchXML / View Record Counter“ kann uns dann bei der Datenabschätzung behilflich sein, da er die Anzahl der Datensätze zu einer Ansicht ausgibt. Aber das wäre ja noch nichts Besonderes (obwohl oft schon sehr hilfreich…!). Das Tool zeigt automatisch die Query zu den Ansichten an. Wer also „schnell mal“ in einem System die Filter einiger Views kontrollieren muss, kann dies hier auf der Ebene des hinterlegten FetchXML tun und muss nicht jede Ansicht öffnen, um den Filter anzuschauen.

Aber damit nicht genug. Die Abfrage kann im unteren Fenster editiert und dann die Zählung gleich nochmals durchgeführt werden. Auch hier ist der Einsatz als Einstieg, um die richtige Abfrage für einen Bericht zu finden, sehr gut.

Bulk Data Updater

Ein sehr hilfreiches Tool, wenn es darum geht, schnell und in großen Mengen Attribute an einer Entität zu aktualisieren. Richtig, dass kann eigentlich auch die Massenbearbeitung über die Oberfläche, aber dieses Tool bietet dabei eine viel größere Flexibilität und Verarbeitungsmenge. Über die erweiterte Suche oder die Listen ist ja bekanntlich bei 250 angezeigten Datensätzen Schluss. Wenn man nun aber 10.000, 20.000 oder noch mehr Datensätze aktualisieren muss, wird das schon eine Strafarbeit.

„Wann muss ich schon so viele Datensätze aktualisieren?“ 

Oh, das kommt häufiger vor, als man denkt. Wenn ich z.B. ein neues Attribut auf einer Entität hinzufüge, insbesondere ein einfache Flag, also Ja-Nein-Feld, dann ist bei neuen Datensätzen das Nein z.B. ein Standardwert. Nicht aber so bei allen zu dem Zeitpunkt bereits existierenden Datensätzen. Diese müssen alle noch entsprechend gesetzt werden, sollen Workflows oder andere Programmierungen gleich darauf zurückgreifen. Hier bietet es sich an, die entsprechenden Datensätze zu selektieren.

 

Hier sehen wir also ein schönes Beispiel für die Interaktion der Tools untereinander: Der FetchXML Builder kann für die Erstellung der Abfrage genutzt werden. Es wird dann aus diesem Tool in den Builder verzweigt und es kann nach der Erstellung der Abfrage wieder in den Bulk Data Updater zurückgekehrt werden.

Oder man wählt eine Ansicht einer Entität:

 

 

Wenn nun eine Ansicht gewählt ist, werden die entsprechenden Datensätze und Metadaten geladen und der Update Schritt kann definiert werden:

 

Aber wie die Programmierer dieses Tools auf Ihrer Homepage auch schreiben: Es ist ein mächtiges Tool und man sollte vorsichtig sein, was man an Daten aktualisiert!

 

Das Tool führt dann Aktualisierungen mit einer maximalen Batchgröße von 5000 Records durch. Interessant ist auch noch das „Touch“ Update. In diesem Modus werden die Datensätze quasi so berührt, dass die Skripte, Workflows und Trigger ausgelöst werden. Dies ist hilfreich, wenn die Updates z.B. durch komplexere Berechnungen in benutzerspezifischen Workflows oder Plug-Ins gerechnet werden!

Und zu guter Letzt habe ich noch einen Fall versprochen, in dem ich erst durch das Tool das Problem gefunden habe! Und es sieht zudem grafisch sehr cool aus, so dass man auch mal was zeigen kann… ;-)

Ich spreche vom

Attribute Usage Inspector

Unter diesem Tool konnte ich mir anfänglich nichts vorstellen. Aber nachdem ich es einmal aufgerufen und das Ergebnis angeschaut habe, konnte ich mir gut die zugehörigen Probleme vorstellen… ;-)

Das Tool lädt über die Verbindung die Entitäten aus dem System und wenn man eine Entität anklickt, so wird diese auf Attribut-Ebene geprüft. Und so sieht ein Ergebnis dann beispielsweise aus:

 

 

Lässt man das Bild etwas auf sich wirken (Kunstkenner wissen was ich meine), dann erschließt sich einem die volle Aussagekraft dieser Ausgabe. ;-) Spätestens, wenn es bei einem CRM System um das Thema Optimierung und kontinuierliche Verbesserung geht, sollte man mit der fachlichen Brille mal einen Blick auf diese Auswertung werfen.

Ich kann sehen, welche Attribute gefüllt werden. Attribute mit 0%, die dann aber auch nicht auf einem Formular zu finden sind, sind nicht problematisch. Aber bei Attributen mit „On Forms = True“, also das Attribut ist auf einem Formular dieser Entität zu sehen, sollte man sich fragen, wenn eine geringe oder gar 0% Nutzung vorliegt, wofür das Feld überhaupt gut ist. Entweder wissen die Anwender nicht, was sie eintragen sollen. Sie haben ein Berechtigungsproblem oder sehen das entsprechende Formular nicht. Es könnte schlichtweg aber auch nicht mehr gebraucht und entfernt werden können. So könnte man die Formulare auch entsprechend aufräumen.

Das meinte ich mit das Problem dadurch erkennen". Wenn die Anwender vielleicht noch gar nichts gesagt haben, kann man so doch proaktiv für eine bessere Datenpflege und aufgeräumte Formulare sorgen. Ich werde dieses Tool jetzt sicher immer mal wieder in den Projekten nutzen und die wichtigsten Objekte damit einmal überprüfen.

Nachsatz

Ich würde mich freuen, wenn meine kurze Beschreibung hier dem Einen oder Anderen einen hilfreichen Hinweis geben konnte. So freue ich mich natürlich auch über Anmerkungen oder Anwendungsfälle dieser oder anderer Tools aus der Toolbox. Vielleicht kann man diese Beschreibungen ja weiterführen und entsprechend ergänzen…

Bis zum nächsten Mal.

 

Topics: Microsoft Dynamics CRM Microsoft Dynamics 365 XRM Toolbox