Bodo's Dynamics NAV Blog

Bodo ist ein Dynamics NAV Urgestein. Er programmiert NAV seit DOS Zeiten und hat auch keine Scheu vor .NET und schon gar nicht vor Dynamics 365 oder Azure. Viele Neueinsteiger wurden von ihm in den letzten Jahren zu NAV Entwicklern ausgebildet.

In diesem Blog veröffentlichen Bodo und andere Superhelden Interessantes aus der Welt von Dynamics NAV, Dynamics 365 und Azure.

Dynamics NAV 2015 – Update von NAV 2013 R2 – Ein einfaches Rezept

Verfasst von Bodo am Montag, 2. März 2015

Tags: 2015, 2013 R2, r2, update, powershell

Das Update von Dynamics NAV 2013 R2 auf NAV 2015 serviert als Menü mit zwei Gängen: 

I. Update der Anwendungsobjekte 
II. Update der Daten 

Das vollständige Rezept finden Sie auf MSDN hier https://msdn.microsoft.com/en-us/library/dn271649(v=nav.80).aspx

I. Update der Anwendungsobjekte 

Mise en Place (http://de.wikipedia.org/wiki/Mise_en_Place

(1) Sie benötigen eine Arbeitsdatenbank »Work-Update2« auf Basis der Zielversion (in unserem Beispiel Dynamics NAV 2015 Cumulative Update 2). 

(2) Sie benötigen einen Dynamics NAV Server, der für die Arbeitsdatenbank »Work-Update2« konfiguriert ist. 

(3) Sie benötigen Grundkenntnisse im Umgang mit der Windows PowerShell ISE. 

Zubereitung 

(1) Exportieren Sie alle Objekte der angepassten Version als Textdatei. Die angepasste Version ist die NAV 2013 R2 Datenbank, die wir durch den Update-Prozess führen wollen. Dazu starten Sie den Development Client, öffnen den Object Designer, markieren alle Objekte und exportieren diese als Datei »OldCustomVersion.txt« in das Verzeichnis ».\Modified«. 

(2) Exportieren Sie alle Objekte der Basisversion als Textdatei »OldBaseVersion.txt« in das Verzeichnis ».\Original«. Die Basisversion ist die Datenbank, auf der die angepasste Version basiert. In unserem Beispiel ist die Basisversion Dynamics NAV 2013 R2 Cumulative Update 7. 

(3) Exportieren Sie alle Objekte der Zielversion als Textdatei »NewBaseVersion.txt« in das Verzeichnis ».\Target«. In unserem Beispiel ist die Zielversion Dynamics NAV 2015 Cumulative Update 2. 

(4) Mergen Sei die Anwendungsobjekte. Microsoft liefert dafür ein PowerShell Cmdlet: Merge-NAVApplicationObject. Dieses Cmdlet befindet sich im Modul Microsoft.Dynamics.Nav.Model.Tools, d.h. Sie müssen die Microsoft Dynamics NAV Development Shell starten. Weitere Informationen finden Sie auf MSDN unter https://msdn.microsoft.com/en-us/library/dn789717(v=nav.80).aspx

Merge-NAVApplicationObject
  -OriginalPath ".\Original"
  -TargetPath ".\Target"
  -ModifiedPath ".\Modified"
  -ResultPath ".\Result" 

Nach dem Merge liegt das Ergebnis im Verzeichnis ».\Result.«, und zwar für jedes Objekt eine einzelne Textdatei. 

(5) Führen Sie die einzelnen Dateien zu einer Textdatei zusammen. Damit wird der spätere Import deutlich schneller. Auch dafür liefert Microsoft ein PowerShell Cmdlet: Join-NAVApplicationObjectFile. Weitere Informationen finden Sie auf MSDN unter https://msdn.microsoft.com/en-us/library/dn789716(v=nav.80).aspx.  

Join-NAVApplicationObjectFile
  –Source ".\Result\*.txt"
  -Destination ".\AllObjects.txt" 

ACHTUNG: Vor dem „Join“ müssen Sie aus dem Quellverzeichnis die MenuSuite-Objekte MEN1010.txt, MEN1020.txt und MEN1030.txt löschen. Ihre Dynamics NAV Entwicklerlizenz verfügt nicht über die notwendigen Rechte, diese Objekte als Textdatei zu importieren. 

(6) Importieren Sie die Objekte in die Arbeitsdatenbank »Work-Update2«. Import-NAVApplicationObject ist eine Funktion der Microsoft Dynamics NAV Development Shell. Eine Dokumentation auf MSDN kann ich leider nicht finden. Die Hilfe können Sie sich in PowerShell anzeigen über »Get-Help Import-NAVApplicationObject«. 

Import-NAVApplicationObject
  –DatabaseServer "SQL2012\NAV2015"
  –DatabaseName "Work-Update2"
  –Path ".\AllObjects.txt"

(7) Korrigieren Sie die Merge-Konflikte. Suchen Sie dazu im Verzeichnis ».\Result« nach den Dateien »*.conflict« und bearbeiten Sie die Objekte mit dem Development Client. Die CONFLICT-Dateien beschreiben die Art des Konflikts. Ein typischer Konflikt kann z.B. so aussehen: 

blog-2015-03-02-image1.png 

»ORIGINAL« kennzeichnet die alte Basisversion, »MODIFIED« die angepasste Version und »TARGET« die neue Basisversion. Unsere Änderung ist mit »// --- 001 … // +++ 001« markiert. Sie haben alle drei Versionen im Blick und können die Änderung so übernehmen, dass die Idee dieser Änderung erhalten bleibt. 

(8) Kompilieren Sie alle Objekte. Korrigieren Sie ggfs. Fehler, wenn sich ein Objekt nicht kompilieren lässt. 

(9) Importieren Sie das Upgrade Toolkit von der Produkt DVD ».\UpgradeToolKit\Local Objects\Upgrade710800.DE.fob«. 

ACHTUNG: Die Toolkit-Objekte beziehen sich auf die RTM Version von Dynamics NAV 2013 R2. In unserem Beispiel führen wir aber ein Upgrade von Cumulative Update 7 durch. Bei diesem ist auf der Tabelle 36 »Sales Header« die Spalte »Direct Debit Mandate ID« bereits vom Typ »Code«. Sie müssen daher auf der Tabelle 104026 »UPG Sales Header« die Spalte »Direct Debit Mandate ID« ebenfalls auf den Typ »Code« ändern und anschließend die Codeunit 104025 » UPG7180.DACH« kompilieren. 

(10) Exportieren Sie alle Objekte als » AllObjectsWithUpgradeToolkit.fob«. 

Damit ist das Update der Anwendungsobjekte abgeschlossen. Der erste Gang ist serviert. Klicken Sie hier für den zweiten Gang (verfügbar ab 16. März). 


Mitglied der Dynamics NAV
Community

Microsoft Dynamics NAV community Comporsys 365 - Cloud ERP powered by Dynamics NAV
Comporsys 365 - Cloud ERP
powered by Dynamics NAV


Kontakt

Comporsys Hansa GmbH
Schulauer Moorweg 25
22880 Wedel, Deutschland

Tel. +49 (0)4103 12117 - 0
Fax +49 (0)4103 12117 - 29
E-Mail: info@comporsys.de