Post-Migration Reporting

Nach der Pflicht kommt bekanntlich die Kür. So ist es auch bei der Migration von SharePoint.

Vor einiger Zeit hatten wir für einen Kunden Inhalte von einer bestehenden SharePoint 2007 Farm zu einer SharePoint 2013 Farm migriert – mit ShareGate. Dabei wurden diverse Listen und Sites migriert. Am Ende hatten wir 11 Migrationen mit ShareGate durchgeführt und alle Inhalten waren erfolgreich übertragen.

Nun geht es also darum die Migration ein klein wenig aufzuarbeiten und zu dokumentieren. Praktischerweise kann man sich die Migrations-Reports in ShareGate als Excel-Datei speichern. Nun habe ich also alle Informationen in 11 Excel-Dateien. Nun ist also die Frage: wie kann ich das am besten aufbereiten?

Hierzu fällt die Wahl auf eines meiner Lieblingswerkzeuge (abgesehen von Visual Studio): Excel!

Mit den neuen BI Funktionen von Excel ist es ein leichtes die Daten aufzubereiten.

sg_mig_rep

Aber ganz in der und der Reihe nach.

Zunächst einmal habe ich also die 11 Excel-Dateien aus ShareGate.

sg_mig_01

sg_mig_02

Hier fällt schon auf, dass die Daten noch ein wenig überarbeitet werden müssen. So wird das Datum hier aktuell noch als Zahl angezeigt. Das ist kein Problem, einfach die Spalte entsprechend formatieren.

Aber wie kann ich nun eine kombinierte Auswertung über alle 11 Dateien machen? Hier kommt Power Query zum Einsatz.

Zunächst einmal beginne ich damit eine einzelne Datei in Power Query einzulesen.

sg_mig_03

sg_mig_04

Nun kann ich sagen, dass die erste Zeile als Header interpretiert werden soll, und die Spalte Date vom Typ Datum/Uhrzeit ist.

sg_mig_05

Nun kann ich mir die Aufbereitung als Script im Erweiterten Editor ansehen. Hier steht nun als Quelle meine Excel-Datei drin. Das kann ich durch einen Parameter ersetze, so dass ich die Aufbereitungsschritte als Funktion in Power Query speichern kann, die als Parameter den Namen der Datei entgegen nimmt, auf die diese Schritte angewandt werden sollen.

sg_mig_06

Nun kann ich also die Abfrage schließen und erstelle eine neue Power Query Abfrage. Dieses mal öffne ich aber nicht eine einzelne Datei, sondern den Ordner in dem sich meine ganzen ShareGate-Reports befinden.

sg_mig_07

Nun habe ich also eine Liste aller Dateien. In dieser Liste kann ich nun die Spalten “Folder Path” und “Name” zusammenfassen, so dass ich den kompletten Pfad bekomme.

sg_mig_08

Anschließend kann ich noch eine benutzerdefinierte Spalte hinzufügen. Hier rufe ich meine als Funktion abgespeicherte Abfrage auf, und übergebe dieser Funktion den gerade zusammengebauten Pfad.

sg_mig_09

Als Ergebnis habe ich nun eine neue Spalte (“Custom”) vom Typ “Table”. Dabei handelt es sich um eine geschachtelte Tabelle – also jede Zeile hat nun eine Tabelle, die den Inhalt der Datei darstellt, der ja mit meine Funktion schon ein wenig aufbereitet wurde.

Eine der absolut coolsten Funktionen von Power Query ist es nun, dass ich diese geschachtelte Tabelle expandieren kann.

sg_mig_10

Wenn ich das mache, dann erhalte ich eine alle Daten aus allen Dateien. Jeder Datensatz hat dabei auch die Daten, die ich in der Liste der Dateien auch schon hatte …

sg_mig_11

Diese Daten kann ich nun aus der Power Query Abfrage in mein Excel Arbeitsblatt übernehmen. Dann noch schnell eine PowerView über die Daten gestülpt – fertig!

Natürlich hätte man das auch anders machen können. Man hätte die 11 Dateien geöffnet und die Daten per Copy & Paste in ein neues Arbeitsblatt eingefügt. Anschließend hätte man ja auch eine Liste mit allen Daten, die man mit PowerView anzeigen lassen kann.

Aber was ist, wenn dann noch 3 Dateien dazu kommen? Kein Problem: einfach die Daten ebenfalls einfügen/anfügen.

Und was ist, wenn eine der Reports nicht mit einbezogen werden soll, weil der von einer Testmigration stammt? Dann müsste man die dafür notwendigen Datensätze aus der Liste löschen.

Durch den Einsatz von Power Query sind in meiner Excel-Datei alle Schritte für die Aufbereitung der Daten gespeichert. Ich kann nun hingehen und ganz andere Reports in dem Ordner ablegen, meine Excel Datei öffnen und auf “Alle Daten aktualisieren” in Excel klicken. Dann werden alle Schritte für die Aufbereitung erneut durchgeführt. Es werden also alle Dateien aus dem Verzeichnis aufgelistet werden, der Pfad wird zusammengestellt, meine benutzerdefinierte Funktion wird ausgeführt und die geschachtelte Tabelle wird expandiert. Schließlich werden die Daten in dem Excel-Arbeitsblatt aufgrund der Power Query Abfrage aktualisiert und die Grafik in dem PowerView wird automatisch aktualisiert. Und das Ganze passiert wie von Geisterhand.

ULSViewer selbst gemacht

Auch wenn es inzwischen wieder eine neue Version des ULSViewer gibt – so hat man den vielleicht nicht immer zur Hand. Oder man hat ein deutsches OS mit einem englischen ULS Log, und der Parser im ULSViewer kann das Datum nicht anzeigen.

Kurz: es gibt auch immer mal Situationen, wo man einfach keinen ULSViewer zur Verfügung hat. Aber was macht man dann, wenn man ein 20 MB großes ULS Logfile hat? Wie heißt es so schön: “Don’t Panic!”

Natürlich kann man das ULS immer mit dem Notepad öffnen – aber viel bringen tut das eigentlich nicht. Wenn man schon eine Correlation-ID hat, dann ist es nicht gerade einfach im Notepad alle Requests zu dieser ID zu finden. Oder alle Log-Einträge vom Level “unexpected”.

Don’t Panic!

Voila: Excel, der neue ULSViewer!

Kaum ein Problem, welches man nicht mit Excel lösen kann. Mal eben ein 20 MB ULS Log mit Notepad öffnen, alles markieren, in die Zwischenablage kopieren und dann in Excel einfügen. Dann noch schnell als Tabelle in Excel formatieren – und fertig ist der ULSViewer “a la Excel”.

Anschließend können die Einträge anhand der Auto-Filter gefiltert werden. So können z.B. schnell alle Einträge für eine Correlation-ID gesucht werden.

excel_uls