Im Gegensatz zu CRM 4.0 besteht mit CRM 2011 die Möglichkeit Anpassungen am System in sogenannten Solutions zu “kapseln” – doch nicht nur das, auch eine Versionierung der Solutions ist vorhanden.
Wer sich anfängt mit diesen erweiterten Möglichkeiten zu beschäftigen landet früher oder später bei der Frage wie sich mehrere Solutions zusammen in einer Installation verhalten, wie man am Besten bei der Planung vorgeht, wie man später Anpassungen gut handhaben kann etc.
Grundlegend für diese Überlegungen ist sicherlich ein generelles Verständnis der Architektur hinter den Solutions (mir hat es zumindest geholfen).
Zuerst ist mal festzuhalten dass zwischen “Managed” und “Unmanaged” Solutions unterschieden wird. Installiere ich eine “Managed” Solution auf meinem System kann ich diese Solution nicht direkt anpassen. Auf eine “Unmanaged” Solution dagegen habe ich Zugriff.
Konkret könnte das also bedeuten, dass man in der “Unmanaged” Solution auf dem Entwicklungssystem Anpassungen / Erweiterungen vornimmt und diese dann als “Managed” Solution im Test- bzw. Produktivsystem einspielt. Änderungen in Test- oder Produktivsystem (zum Beispiel Kundenanpassungen an einer Branchenlösung) erfolgen dann “on Top” auf Basis der “Managed” Solution.
Um den grundlegenden Aufbau zu verstehen habe ich mir eine schematische Darstellung erarbeitet:
Wie auf der Abbildung dargestellt habe ich in meinem System also ein – ich nenne das – Basic Layer, bestehend aus den Standardfunktionalitäten CRM2011 und den installierten “Managed”. Dieser Basic Layer bildet die Basis für meinen “Working Layer”.
Der Working Layer besteht erstmal “nur” aus der Default Solution. Darin sammeln sich z.B. alle Anpassungen die ich ohne über eine Solution einzusteigen vornehme.
Was passiert nun wenn ich eine neue Solution erstelle ?
Diese neue Solution – in meinem Beispiel “Umanaged Solution 1” mit dem Prefix UM1_ – liegt nun auch in meinem Working Layer und ist erst mal nicht mehr als ein “Container” für alle Anpassungen die ich durch diese Solution vornehme.
Angenommen ich will in 2 Entitäten jeweils ein neues Feld hinzufügen, dann stellt sich das wie folgt dar:
Aus der Abbildung wird deutlich: Meine Anpassung ist auch in der Default Solution enthalten, evtl. neben all den Anpassungen die ich ohne eine Solution vorgenommen habe.
Die Solution selbst enthält nur einen Verweis auf die Objekte die ich durch diese Solution angepasst habe.
Wir erweitern das Beispiel und kreieren eine weitere Solution in meinem Szenario die wiederum auch ein neues Feld in eine Entität einfügt:
Hier wird nun deutlich: Auch diese Anpassung liegt in der Default Solution.
Wenn wir nun einen Export einer der “Unmanaged” Solutions vornehmen werden alle in der Solution verlinkten Objekte mit allen Änderungen aus der Default Solution exportiert.
Das war eines der Dinge die sich mir nicht auf Anhieb erschlossen hat. Das bedeutet also dass ich in dem o.g. Beispiel in meiner Solution “Unmanaged Solution 1” bei einem Export auch Teile der Anpassungen aus meiner “Unmanaged Solution 2” erhalte.
Auf Basis dieses grundlegenden Aufbaus lassen sich nun vielfältige Verfahrensweisen ableiten wie ein Development / Deployment Prozess in konkreten Projekten aussehen kann / muss.
Auf jeden Fall eine feine Sache, die Solutions in CRM 2011 – wenn man bedenkt wie aufwendig das bisher war und in vielen Mitbewerber Systemen heute noch ist
… btw. Vielen Dank an meinen Kollegen Markus für den hilfreichen Input
Neue Kommentare