How to get a good picture on someone else's developments

 

My customer had the feeling that his former partner had done some "not-standard" developments in his  database, and he wanted to get a clear picture about this. Therefore, he contacted our company to do a 1  day investigation of the custom developments in his database, to get a picture on what is wrong, and  what should be done.

 

Here is a little description on how I do this, which might be useful to y'all.

 

Some considerations:

  • Everyone can change the modified flag. This means that when you filter "modified=yes", you're  never sure you got all modified objects.
  • Not everyone documents their code. This means you can't rely on documentation either.

 

This in consideration, I just compare every object to the base version. And guess what ... there is a rather  quick way to do that.

 

First of all you have to determine the base version.

First of all, click Help / About.  It could be that the client had an runtime upgrade, so be careful.  You  should interprete the version that is NOT between brackets (between brackets is the client version).  The  part that is NOT between brackets should be the database version.  Actually, it executes the code of CU1,  trigger "ApplicationVersion".  Sidenote: this trigger should always be changed when doing a full upgrade!   Also, this trigger should ONLY be changed when doing a full upgrade.

You see that only checking the "about" isn't enough.

What I also do is checking the version list of some base objects, like:

  • Codeunit 80, 90, 12
  • Table 17, 18, 32

The version is usually something like: NAVW14.00.  This is a 4.0 (no SP).  E.g. NAVW14.00.02 would be a  4.00SP2.

If you got all this info, I think you get a pretty good idea of what version the base version is.

 

Second, you export EVERY object to text from both the customized version and the base version.  After  that, you split the files with one of the many split file tools that you can download on the forums.  Here is  a link: http://www.mibuso.com/dlinfo.asp?FileID=831 .

 

I use the Arasis Merge to compare my files. 

Why?  Because it is not only possible to do a three way compare and merge (not interesting for this topic,  but very interesting for merge-jobs), but it has also a reporting functionality, where you can create an  HTML report based on the changed that it finds between the files of two folders.

 

When you run the report for your two folders, you get a summery like this:

 

 

Doesn't look exciting yet, except for point 2, I think.

 

BUT, furthermore, there is an HTML summery report where you can drill down till code level what the changes are.  So you get a list like this:

 

 

The blue lines are the objects that are changed.  If you click on such a line, you get a report which summerizes the changes in that file only:

 

 

And also a detail like:

 

 

 

It is very easy to drill down from overall level to code level.

 

This way, it's quite easy to get a picture of:

  • All customizations in all objects
  • The way it was coded
  • The way it was documented
  • The kind of functionalities that were created
  • The way that "standard NAV methodology" was used (TEST NEAR, TEST FAR, DO IT, CLEAN UP)
  • ...

 

Kind regards,

 

Eric Wauters

Comment List
  • Since I don't normally do the actual work of merging, Smile but just need to see what has been done before and after, I think for me this Araxis look ideal.

  • I agree with Erik.

    For big merges, I use dev toolkit or mergetool ... for merging a few objects or comparing databases (where this blogpost was about), I always use araxis.

    And indeed, you should be able to buy shares of Araxis ;)

  • I don't think you can by shares now:

    "Araxis Ltd is based in the Isle of Man, British Isles, and is a privately held company. Araxis is entirely self-funding and self-sustaining"...

    But if one could, I think I would have bought some a few years ago!

  • I like the drilldown, I might just give Araxis a try. Can I buy shares somewhere first though?

  • Hey Waldo, are you a NAV MVP or an Axarix MVP?

    Great post!

  • I've been using Araxis for 5 years now and it's a great tool.  But I can see I'm not such a heavy user as you. In general I always use Per Mogensen's MergeTool for a full merge and compare in connection with upgrades. It's using a three tier model, where you have the old base, the new base and the modified version of the customer. It's basically the same model as the NAV Developers Toolkit, but that's not so strange, as they simply copied his mergetool (he developed it when he used to work for Navision) and used it as the base for the Developers Toolkit. They even copied the errors that used to be in the Mergetool! But what I like with the Mergetool is that it's giving you the semi-automatic merge, where it's basically merging most of your objects automatically, and you only have to deal about the ones with bigger conflicts.

    Araxis I usually use if I only have a few objects I need to compare, and with the three column view you can actually still do some nice manual merges.

  • I use the developers toolkit for the same task. I compare the objects of a client database with the standard one that comes with the clients version.

  • Hey great post. This Araxis looks great.

Related
Recommended