Analyse von Audit-Daten des Dynamics CRM mit SSIS und Team4
Wenn Sie in der Vergangenheit bereits versucht haben, Audit Logs in einem Microsoft Dynamics CRM zu analysieren, wissen Sie, wie umständlich dies sein kann. Die Benutzeroberfläche bietet keine gute Möglichkeit, alle Einträge zu einer bestimmten Entität auszulesen. Sie können nur entweder alle Änderungen zu einem bestimmten Attribut aufrufen oder aber alle Änderungen zu einem bestimmten Datensatz. Sollten Sie das System on-premises betreiben, haben Sie zwar Zugriff auf die Datenbank und können direkt auf die Audit-Daten zugreifen, doch diese sind dann nur sehr schwer auszuwerten, da u.a. die Daten über mehrere Tabellen verteilt sind.
Mit der Team4 CRM Audit Component for SSIS ist dies nun kein Problem mehr. Mit dieser für Microsoft SQL Server Integration Services (SSIS) entwickelten Komponente ist es möglich, die Audit-Daten für bestimmte Datensätze oder aber ganze Entitätstypen auszulesen und in einer Datei – oder besser in einer Datenbank normalisiert – für weitere Analysen abzuspeichern.
Alles was Sie dazu benötigen ist die o. g. Komponente und der Team4 Dynamics CRM Connector for SSIS.
Anleitung – So einfach wird es gemacht
Öffnen Sie Visual Studio und erzeugen ein neues Integration Services Projekt.
Als nächstes fügen Sie einen Data Flow hinzu und öffnen diesen:
Dann richten Sie eine Team4 CRM Connection über den Connection Manager ein. Klicken Sie hierzu in der Ansicht Connection Managers mit rechts und wählen New Connection aus:
Dann wählen Sie die T4MSCRM2013 Connection und klicken auf Add:
Nach dem Öffnen der gerade hinzugefügten Connection sehen Sie das Konfigurationsfenster, über das Sie die Verbindung zu Ihrer CRM-Organisation einstellen können:
Als nächstes ziehen Sie aus der SSIS Toolbox eine Team4 MS CRM Source Komponente in den Data Flow Task:
Durch einen Doppelklick auf die Komponente öffnet sich der Editor. Wählen Sie die CRM Connection aus, die Sie gerade eingerichtet haben, und die Entität, die betrachtet werden soll. Das Auslesen der Daten aus dem CRM kann beschleunigt werden, indem in der Registerkarte Mapping allein der Primärschlüssel der Entität ausgewählt wird. Man kann aber auch mit einem einfachen Klick auf den Reset-Button alle Attribute der Entität auswählen:
Dann benötigen Sie im Data Flow Task noch eine Derived Column, zu Deutsch eine abgeleitete Spalte. In diese tragen Sie folgende neue Spalten ein:
•objecttype enthält den Logical name der Entität (z.B. bei Firma account)
•startdate enthält das Anfangsdatum des zu betrachtenden Zeitraums
•enddate enthält das Enddatum des zu betrachtenden Zeitraums
•Die Spalte mit dem Primärschlüssel benennen Sie um in objectid
Ziehen Sie nun eine Team4 MS CRM Audit Transform in den Data Flow Task und übergeben diesem die gerade erstellten Spalten.
Wählen Sie Ihren Connection Manager aus und markieren Sie unter Input Columns alle vier Input-Spalten.
Zuletzt muss noch ein Ziel als Speicherort für die ausgelesenen Daten definiert werden. Hierfür bieten sich eine OLE DB Destination zur Speicherung in einer Datenbank oder eine Flat File Connection zur Nutzung einer CSV-Datei an. Hier wurde exemplarisch die Datenbank gewählt.
Der Data Flow Task sollte nun in etwa so aussehen:
Jetzt können Sie das SSIS Package ausführen. Die ausgegebenen Daten enthalten den neuen und den alten Wert, den Feldnamen, das Änderungsdatum, die ID des Benutzers, der den Datensatz verändert hat, sowie die vom Nutzer an die Audit-Komponente übergebenen Daten als Kontrollwerte:
So werden durch die Team4 CRM Audit Transform Component CRM-Audit-Logs in eine lesbare und leicht zu analysierende Form gebracht.
Anwendungsbeispiel
Als beispielhafter Anwendungsfall einer solchen Analyse auf der Basis von Audit-Daten sei hier ein Unternehmen angeführt, das die Umsatzzahlen seiner Mitarbeiter, aufgeteilt in verschiedene Abteilungen, im aktuellen Jahr mit den Umsatzzahlen des Vorjahres vergleichen möchte.
Auf den ersten Blick hat die Abteilung 2 im Jahr 2016 ein schlechteres Ergebnis erzielt als im Vorjahr.
Aus dieser Tabelle ist allerdings nicht ersichtlich, dass verschiedene Mitarbeiter im Jahr 2015 in einer anderen Abteilung beschäftigt waren als 2016. Daher ist diese Tabelle in dieser Form nicht aussagekräftig.
Nimmt man die zeitliche Änderung der Daten über das CRM Auditing hinzu (im Sinne einer Slowly Changing Dimension), bekommt man vergleichbare Ergebnisse.
Wenn man die Daten nun miteinander vergleicht, hat sich kein Mitarbeiter im Vergleich zum Vorjahr verschlechtert.
Schon durch dieses simple Beispiel wird veranschaulicht, welche Bedeutung die Auswertung von Audit-Daten haben kann.