Microsoft Dynamics CRM 2011 | Upgrade CRM 4.0 Org by Import

Ihr wollt Eure Microsoft Dynamics CRM 4.0 Organisation upgraden oder seid gerade in der Planung? Dann hilft Euch mein heutiger Tipp.

SQLExceptions während des Import Vorgangs einer Organisation über den Bereitstellungs-manager sind nicht immer leicht zu beheben. So hatte ich bereits hier über einen typischen Fehler beim Import einer 4.0 Organisation berichtet.

Heute füge ich der Rubrik ein neues Kapitel mit folgendem Fehler hinzu:

System.Data.SqlTypes.SqlNullValueException: Data is Null. This method or property cannot be called on Null values

Klingt logisch, doch worauf ist der Fehler zurückzuführen? Nachdem ich die 4.0 Organisationdatenbank über folgende Schritte vorbereitet hatte

  • Entfernen überflüssiger Entitäten (z.B. Audit)
  • Entfernen von 3rd Party Lösungen
  • Bereinigen der ISV-CONFIG
  • Bereinigen der Sitemap
  • Entfernen überflüssiger Workflows
  • Entfernen alter Workflow Aktivitäten, für die es 2011er Lösungen gibt
  • Entfernen von Plug-Ins, die es in 2011er Edition gibt
  • Entfernen überflüssiger Systemjob-Einträge
  • Bereinigen der AsyncOperationBase-Tabelle über jenes Skript

hatte ich schon den letzten Schritt im Verdacht. Doch neben zahlreichen JScript-Anpassungen, die wir als “unsupported” einstufen würden, gibt es im Netz leider auch noch Anpassungen direkt auf der Datenbank-Ebene – ebenfalls “unsupported”.

Zu solchen “Hacks” zählt z.B. auch die MailMerge-Funktion für einige System-Entitäten zu aktivieren.

Wie findet sich nunmehr die Ursache jener Exception?

SELECT ObjectTypeCode, Name, BaseTableName, ExtensionTableName FROM EntityView WHERE IsCustomizable = 1 AND ( Name is null or BaseTableName is null or ExtensionTableName is null)

lieferte folgende Rückmeldung:

ObjectTypeCode: 4208
Name: OpportunityClose
BaseTableName: ActivityPointerBase
ExtensionTableName: NULL

Weder der Kunde, noch einer der 3rd Party-Hersteller konnten sich entsinnen, etwaige Änderungen durchgeführt zu haben.

Mit

UPDATE Entityview
SET IsCustomizable = 0
WHERE Objecttypecode = 4208 AND IsCustomizable = 1

konnte ich den Fehler beheben. Im Anschluss ließ sich die Organisationsdatenbank einwandfrei importieren.

Ein Vorabcheck mit obigem SELECT-Statement kann also nicht schaden, wenn Ihr während des Imports nicht auf Fehlermeldungen stoßen wollt und den Prozess erneut beginnen müsst.

Der Checkliste füge ich daher hinzu:

  • Klären, ob auf Datenbank-Ebene “unsupported” Änderungen durchgeführt wurden
  • Zurücksetzen der Änderungen, um Folgefehler zu vermeiden
  • Vorabcheck der 4.0 Datenbank mit dem o.g. SELECT-Statement

    Technorati Tags:

    Schreibe einen Kommentar

    Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

    WordPress.com-Logo

    Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

    Twitter-Bild

    Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

    Facebook-Foto

    Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

    Google+ Foto

    Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

    Verbinde mit %s