Warum Layering so viele Probleme verursacht
Das Schichtenmodell von Dataverse ist logisch konsistent und trotzdem die häufigste Ursache für „bei mir sieht es anders aus“. Eine Erklärung.
Kaum ein Support-Fall in Dataverse-Umgebungen ist so verbreitet wie dieser: Eine Änderung wurde ausgeliefert und der Import war erfolgreich aber trotzdem sieht das Formular genauso aus wie vorher. Die Ursache ist fast immer dieselbe und sie ist kein Fehler, sondern ein Feature: das Schichtenmodell.
Wie die Schichten funktionieren
Jede Komponente kann von mehreren Lösungen gleichzeitig definiert werden. Dataverse stapelt diese Definitionen: unten die Systemebene, darüber die verwalteten Lösungen in der Reihenfolge ihrer Installation, ganz oben eine etwaige nicht verwaltete Schicht. Was der Nutzer sieht ist immer die oberste Schicht welche die jeweilige Eigenschaft definiert.
Das Modell ist in sich schlüssig. Ein Partner-Add-on kann damit ein Microsoft-Formular anpassen und ein Kunde das Partner-Formular noch einmal. Die Beteiligten müssen sich dafür nicht abstimmen. Deinstalliert man eine Schicht kommt die darunterliegende wieder zum Vorschein.
Warum es trotzdem ständig Probleme macht
Das Problem ist nicht die Logik sondern die Unsichtbarkeit. Im Alltag sieht niemand die Schichten. Man sieht ein Formular und nicht die vier Definitionen dahinter.
Der Klassiker ist die nicht verwaltete Schicht ganz oben. Sie entsteht sobald jemand eine Komponente direkt in der Umgebung anpasst. Auch mit den besten Absichten oder nur für einen schnellen Test. Ab dann gewinnt diese Schicht gegen jede künftige verwaltete Auslieferung der Komponente. Die Korrektur kommt an und bleibt eingeordnet unsichtbar unter der händischen Änderung liegen.
Der zweite Klassiker ist die Reihenfolge verwalteter Lösungen untereinander. Zwei Lösungen definieren dieselbe Eigenschaft. Welche gewinnt hängt an der Installationsreihenfolge und die war in Test und Produktion nicht zwingend identisch. Ergebnis: Beide Umgebungen sind für sich korrekt und trotzdem verschieden.
Schichten sichtbar machen
Die Plattform kann die Schichten zeigen und man muss nur wissen wo. An jeder Komponente in der Lösungsansicht gibt es die Solution-Layer-Anzeige. Sie listet den Layer Stack für dieses eine Objekt auf inklusive einer etwaigen nicht verwalteten Schicht. Für die Fehlersuche am Einzelfall reicht das völlig.
Für den Überblick über eine ganze Umgebung reicht es nicht denn niemand klickt tausend Komponenten durch. Da hilft die umgekehrte Blickrichtung: aus dem Export der betroffenen Lösungen ablesen welche Komponenten in mehreren Lösungen gleichzeitig definiert sind. Diese Überschneidungsliste ist die Landkarte der potenziellen Konflikte und sie ist meist kürzer als befürchtet.
Eine Feinheit macht die Sache zusätzlich unübersichtlich: Nicht alle Komponenten werden als Ganzes überschrieben. Formulare und SiteMaps etwa werden beim Übereinanderlegen teilweise zusammengeführt. Das sichtbare Ergebnis enthält dann Elemente aus mehreren Schichten gleichzeitig. Wer versucht das Endergebnis im Kopf vorherzusagen verliert. Nachsehen ist der einzige verlässliche Weg.
Wer einen Deployment-Effekt nicht erklären kann, sollte als Erstes die Layer-Anzeige der betroffenen Komponente öffnen. In neun von zehn Fällen steht die Antwort dort. Hierbei können neben der XML Analyse ebenfalls Tools wie der Solution Layers Explorer der XRM Toolbox helfen, welche allerdings Zugriff auf Ihre Umgebung benötigt.
Upload your solution export and get an assessment within minutes: security risks, technical debt, documentation coverage, and migration risk. No access to your environment required, first metrics free of charge.
Analyze your solution View sample report