Beitrag vom 8. November 2016

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.

crm_audit_1

Als nächstes fügen Sie einen Data Flow hinzu und öffnen diesen:

crm_audit_2

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:

cmr_audit_3

Dann wählen Sie die T4MSCRM2013 Connection und klicken auf Add:

crm_audit_4

Nach dem Öffnen der gerade hinzugefügten Connection sehen Sie das Konfigurationsfenster, über das Sie die Verbindung zu Ihrer CRM-Organisation einstellen können:

crm_audit_5

Als nächstes ziehen Sie aus der SSIS Toolbox eine Team4 MS CRM Source Komponente in den Data Flow Task:

crm_audit_6

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:

crm_audit_7

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.

crm_audit_8

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:

crm_audit_9

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:

crm_audit_10

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.

crm-audit-tabelle1

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.

crm-audit-tabelle2-1

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.

Team4/Dominik Werner