8. Mai 2019 15:00
Hallo zusammen,
ich bin am verzweifeln. Ich bin an einem Upgrade von 2009 nach 2018 dran. Ich habe alle Schritte von 2009 bis 2015 erfolgreich durchlaufen und stehe nun vor dem Data Upgrade auf 2015. Hier hakt es.
Der Kunde hat drei Mandanten. Zwei vernachlässigbar kleine und einen großen mit über einer Million Sätzen in den Tabellen 355 bis 357. Der Aufenthalt in den einzelnen Mandanten betrug weniger als eine Minute bei den Kleinen und anfangs 3 Stunden bei dem großen. Bei den Kleinen wurden einige wenige Dimension-Sets erzeugt, beim Großen keine. Beim ersten Durchgang konnte ich herausfinden, was in den Mandanten die unterschiedlichen Fehlermeldungen bedeuteten und sie entsprechend beheben. Dabei war es so, dass es Dimensionen ohne Werte u.ä. gab. Das habe ich dann behoben.
Im nächsten Durchgang habe ich bei den neuen noch weitere Meldungen bekommen, die ich ebenfalls erfolgreich korrigieren konnte. Für das Upgrade des großen Mandanten brauchte es nun schon 4 Stunden und endete mit der Meldung
: 'Dimension Value ID' muss in 'Dimension Set Entry' einen Wert
enthalten: 'Dimension Set ID=0, Dimension Code=AKTENZEICHEN'.
Der Wert darf nicht null oder leer sein.
Daraufhin baute ich die Änderung aus dem Link
http://www.msdynamics.de/viewtopic.php?f=66&t=27011#p110294 ein. Nun lief das Ganze 6 Stunden. Am Ende hatte ich von den 3 Mandanten diese Fehlermeldungen:
SessionId : 20413
CodeunitId : 104055
FunctionName : StartUpgrade
CompanyName : xy Beteiligungs GmbH
StartTime : 07.05.2019 11:12:40
Duration :
State : Failed
Error : Fehler bei einem Aufruf von
System.Data.SqlClient.SqlCommand.CommandText mit folgender
Meldung: Das Objekt mit dem Typ "System.String" kann nicht in
den Typ "System.Int32" konvertiert werden.
SessionId : 20413
CodeunitId : 104055
FunctionName : StartUpgrade
CompanyName : xy GmbH_Co KG
StartTime : 07.05.2019 11:12:43
Duration :
State : Failed
Error : 'Dimension Value ID' muss in 'Dimension Set Entry' einen Wert
enthalten: 'Dimension Set ID=0, Dimension Code=AKTENZEICHEN'.
Der Wert darf nicht null oder leer sein.
SessionId : 20413
CodeunitId : 104055
FunctionName : StartUpgrade
CompanyName : xy Verw.-GmbH
StartTime : 07.05.2019 17:14:37
Duration :
State : Failed
Error : Fehler bei einem Aufruf von
System.Data.SqlClient.SqlCommand.CommandText mit folgender
Meldung: Das Objekt mit dem Typ "System.String" kann nicht in
den Typ "System.Int32" konvertiert werden.
Unmittelbar nach der Konvertierung konnte ich gestern Abend in der Tabelle 480 im richtigen Mandanten über eine Million Datensätze feststellen. Heute Morgen musste ich feststellen,
dass die Datensätze wieder verschwunden waren.
Jetzt meine Fragen:
Wie kann ich überhaupt feststellen, wann der Upgrade-Prozess hält und beim nächsten Schritt weitermacht?
Kann der Prozess nach Fehler auch direkt mit dem nächsten Mandanten weitermachen?
Wie kann ich das Ganze debuggen?
Wie ist das technisch gelöst, dass die Codeunit nach einem Error weiterläuft?
Gibt es eine vernünftige Beschreibung dieses Prozesses?
Wie kann ich herausfinden, wo die Fehler aus der Ausführung der SQL-Kommandos entstehen?
Und natürlich nicht zuletzt: Wie kann ich die CU dazu bringen durchzulaufen und dabei die erzeugten Daten zu behalten?
Bitte helft mir vor meiner letzten Verzweiflungstat!
Gruß
Rainer