Some days ago I described a way to compare thousands of NAV-objects as it may be needed for some source-control tools. Read more

Today I uploaded a new version of the tool.

Program window

It is now possible to select the two files seperatly. This is possible by using the ‘…’ at the end of the text-boxes or with the help of drag&drop to the text-boxes.

Download here: Danjos Advanced Object Compare

Vor etwa zwei Wochen habe ich beschrieben wie man tausende von NAV-Objekten abgleichen kann um nur die notwendigen Objekte in ein Quellcodeverwaltungsprogramm laden zu müssen. Hier der Originalartikel

Heute habe ich eine neue Version des dort beschriebenen Tools hochgeladen.

Program window

Neu ist, dass man die Dateien nun nicht mehr beim klick auf den Button auswählen muss sondern diese bereits vorher festlegt.

Dies ist auf verschiedene Arten möglich:

  • Eintippen in die Textboxen
  • Die drei Punkte ‘…’ verwenden um über einen Auswahldialog die Dateien auszusuchen
  • Die Aufrufe unter “File” verwenden
  • oder am einfachsten: Drag&Drop der DAteien auf die Textbox (Datei mit der Maus auf das Feld ziehen und los lassen)

Neue Version: Danjos Advanced Object Compare

In bigger projects it often happens that you have to rename an object or a field. That’s no problem in NAV, since it will find the places where it is used and change the code accordingly.

The problem with this starts when you use source-control like subversion. After renaming a field, you will have to upload all changed objects. But since NAV does not change the objects date/time or modified-flag, there is no way to see which objects where changed. If you miss some objetcs, this could bring real trouble. If you rename a field that is used in C/AL-Code, the objects you forgot will not compile. Yeah, that’s easy to find. But if there are objects with a table relation, this table relation will change to the next table or field that starts with the same name. If you rename Item-table to Article for example, the Table relation will switch to Item Translation or maybe Item Ledger Entry.

Since it happend more often to me in the last weeks that I had to rename fields, I wrote a small tool to help me find all changed objects. The only thing I have to do now is to export all objects as text before and after the renaming of the object or the field. The tool will show me a list of all changed objects then.

Here is how it works:

1) Download the program

2) Start program and click on Compare Files

3) Choose first file

4) Choose second file

5) See all objects with differences

 

Some Notes:

  • This tool brings no guarantee
  • This tool compares the first file with the second file, which means that you see objects in file 1 that are missing in file 2. But not the other way around.
  • You can copy&paste the objectlist into Word/Excel/…
  • This tool is working with all kind of objects there are available in NAV currently
  • Feel free to leave a comment with bugs, suggestions or use-cases

 

Don't KnowDo you have questions? Just ask.

In größeren Projekten wird es immer wieder vorkommen, dass man ein NAV-Objekt oder ein Tabellenfeld umbenennen muss. An und für sich ist das kein Problem, da NAV bereits alles an Codestücken und Relationen im Hinergrund korrigiert.

Das Problem beginnt wenn man mit einem Tool zur Quelltextverwaltung , wie zum Beipsiel subversion, arbeitet. Nach dem umbenennen eines Objektes/Feldes müssen alle geänderten Objekte in das Tool eingespielt werden. Da NAV allerdings im Hintergrund die Objekte ändert und hierbei weder Zeit, Datum noch Modified ändert, gibt es keinen Weg aus dem Vlient heraus zu erkennen welche Objekte nun tatsächlich verändert wurden. Wenn man nun einige Objekte übersieht, kann dies einigen Ärger nach sich ziehen. Benennt man ein Feld um das im C/AL-Code eines anderen Objektes verwendet wird ist das andere Objekt nicht länge kompilierbar. Klar, das ist einfach zu finden. Handelt es sich allerdings um Objekte mit Tabellenrelationen, ändert NAV die Relation auf die nächste Tabelle / das nächste Feld die/das so ähnlich klingt, bzw. den gleichen Anfang hat. Benennt man also die Tabelle Item in Artikel um, so ändert der Client beim Einspielen der Objekte aus der Quelltextverwaltung die Tabellenrelationen von Item zu Item Translation oder Item Ledger Entry, … .

Da es mir in letzter Zeit öfter passiert ist, dass ich Objekte bzw. Felder umbennen musste, habe ich mir ein kleines Tool geschrieben, welches mir dabei hilft die entsprechenden Objekte ohne großen Aufwand zu finden. Alles was ich jetzt noch tun muss ist alls Objekte vor dem Umbennen als Text zu exportieren. Anschliessend sämtliche Umbennenungen vornehmen und dann wieder alle Objekte als Text exportieren.

Und so funktioniert das ganze:

1) Lade das Programm herunter

2) Das Programm ausführen und auf Compare Files klicken

3) Die erste Datei auswählen

4) Analog zu Schritt 3 die zweite Datei auswählen

5) Das Tool zeigt nun alle Objekte mit Änderungen an

 

Einige Hinweise:

  • Ich gebe keine Garantien
  • Die Objektliste kann mit Copy&Paste einfach in Word/Excel/… kopiert werden
  • Dieses Programm vergleicht die erste Datei mit der zweiten Datei. Dadurch ist es in der Lage auf zu zeigen welche Dateien aus der ersten Datei in der zweiten fehlen. Dies funktioniert nicht anders herum.
  • Das Programm kommt mit allen aktuell vorhandenen Dateitypen klar (Table/Form/Report/…)
  • Ihr könnt gerne Kommentare, Bugs, Vorschläge, … posten

 

Don't KnowSind noch Fragen offen? Dann immer her damit.