Wir tauchen tiefer ein in…
MS Dynamics 365 CE – Patches
Das neue Lösungskonzept, das Microsoft mit der Dynamics 365 Version 8.0 veröffentlicht hat, bringt deutliche Verbesserungen im Bereich der Bereitstellungsmöglichkeiten. Zwei dieser Verbesserungen, die hier herausgegriffen werden sollen, sind Patches und das Thema Solution-Segmentation.
Was ist eine Solution Segmentation?
Dazu wird zunächst eine klassische Lösung (Basis-Lösung) betrachtet.
Vor Version 8.0 gab es im Wesentlichen nur eine Möglichkeit eine Entität in eine Lösung zu paketieren, und zwar komplett. Das bedeutet, dass wenn eine Entität einer Lösung hinzugefügt wurde, auch all ihre Unterkomponenten mit aufgenommen wurden. Diese Unterkomponenten umfassen Attribute, Formulare, Ansichten, Beziehungen und Visualisierungen und sämtliche anderen Objekte, die zusammen mit dieser Entität in Beziehung stehen. Das Risiko, das hier entsteht, ist das unabsichtlich Objekte in der Zielumgebung geändert oder Abhängigkeiten übertragen werden können.
Mit Version 8.0 gibt es nun die Möglichkeit, Lösungen feingranular zurechtzuschneiden und somit sicherzustellen, dass nur Objekte transportiert werden, die auch transportiert werden sollen – dadurch wird das zuvor beschriebene Risiko der unabsichtlichen Änderung von Objekten drastisch reduziert.
Im nächsten Schritt wird im Detail beleuchtet, wie Solution Segmentation funktioniert.
In dem folgenden Beispiel soll die Feldlänge des Feldes „Adresse 1: Name“ an der Entität „Firma“ von 200 auf 250 Zeichen angepasst, sowie ein neues Feld mit dem Namen „Briefanrede“ hinzugefügt werden. Im Anschluss sollen nur diese Anpassungen in einer Lösung paketiert werden.
Zuerst legen wir eine neue Lösung, in diesem Fall mit dem Namen „atSolutionSegmentation“ an.
Nun wird über die Schaltfläche „Vorhandenes Element hinzufügen“ die Firmen-Entität hinzugefügt. Im folgenden Dialog wird nach Auswahl der Registerkarte „Felder“ das Feld „Adresse 1: Name“ selektiert und mit „Fertig stellen“ bestätigt.
Deutlich erkennbar, befindet sich lediglich das ausgewählte Feld der Firmen-Entität in der Lösung. Das kann jetzt wie gewohnt angepasst werden, um die Feldlänge auf 250 Zeichen zu setzen. Ein Augenmerk ist ebenfalls auf das Menüband zu legen. Darüber können der Lösung weitere Unterkomponenten hinzugefügt, bestehende entfernt oder neue erstellt werden.
Beispielhaft wird nun das Feld „Briefanrede“ angelegt.
Nachdem über die Schaltfläche „Neu“ das Feld angelegt wurde, ist erkennbar, dass lediglich zwei Felder in der Lösung aufgenommen wurden und alle weiteren Unterkomponenten der Firmen-Entität nicht hinzugefügt wurden.
Fazit: Durch die neue Möglichkeit des Solution Segmentation wird heute sichergestellt, nur Objekte in Lösungen zu paketieren und zu transportieren, die wirklich ausgeliefert werden sollen. Damit wird das Risiko reduziert, versehentlich andere Anpassungen mit zu transportieren.
Patches
Patches oder auch Lösungs-Patches genannt, sind streng genommen Lösungen mit einem Verweis auf eine Basis-Lösung. Sie dienen dazu, kleinere Anpassungen, Bugfixes oder Features für eine bestehende Lösungen bereitzustellen. Einige Patch-Besonderheiten sind im Folgenden kurz aufgelistet:
- Patches können nur von einer übergeordneten Lösung aus erstellt werden.
- Das dem Patch übergeordnete Objekt kann kein Patch sein.
- Patches können nur eine übergeordnete Lösung haben.
- Ein Patch erstellt eine Abhängigkeit (auf Lösungsebene) für seine übergeordnete Lösung.
- Sie können keinen Patch installieren, es sei denn ein eindeutiger Name und eine Haupt-/Nebenversionsnummer der übergeordneten Lösung wie sie von ParentSolutionId identifiziert wird, stimmen mit denen der übergeordneten Lösung überein, die in der Zielorganisation installiert ist.
- Eine Patchversion muss dieselbe Haupt- und Nebennummer haben, aber eine höhere Build- und Versionsnummer als die Versionsnummer der übergeordneten Lösung. Der Anzeigename kann unterschiedlich sein.
- Wenn eine Lösung über Patches verfügt, müssen darauffolgende Patches eine numerisch höhere Versionsnummer als alle vorhandenen Patches für diese Lösung haben
- Patches unterstützen dieselben Vorgänge wie Lösungen, wie beispielsweise additive Updates, aber nicht das Entfernen. Mithilfe eines Patches können keine Komponenten aus einer Lösung entfernt werden. Das Entfernen von Komponenten aus einer Lösungerfordert ein Upgrade.
- Patches, die als verwaltet exportiert werden, müssen zusätzlich zu einer verwalteten übergeordneten Lösung importiert werden.
- Verwenden Sie keine unverwalteten Patches für Produktionszwecke.
- Patches werden nur in Customer Engagement-Organisation der Version 8.0 oder höher unterstützt.
- Wenn ein Patch installiert wird, wird er direkt über der Basislösung, die gepatcht wird, und unter jeder Lösung darüber installiert. Das bedeutet, dass jede Lösung darüber die Einstellungen im Patch für denselben Kommentartyp außer Kraft setzt.
- Die SolutionPackager- und PackageDeployer-Tools in dieser Version unterstützen Lösungspatches.
Erstellen eines Patches
Um einen Patch erstellen zu können muss bereits eine Basis-Lösung vorhanden sein, in unserem Fall „atSolutionSegmentation“.
In der Lösungsübersicht wird nun die Basis-Lösung und die Schaltfläche „Einen Patch klonen“ ausgewählt. In dem sich öffnenden Dialog wird eine sinnige Versionsnummer (die Vorbelegung ist in den meisten Fällen nutzbar) vergeben und bestätigt mit „Speichern“.
In der aktualisierten Lösungsübersicht wird nun eine neue Patch-Lösung „atSolutionSegmentation_Patch_0b18961c“ der Basis-Lösung „atSolutionSegmentation“ angezeigt. Diese kann nun wie jede andere herkömmliche Lösung genutzt werden. Ebenfalls kann auch die Technik des Solution Segmentation hier Anwendung finden.