How to tell what's been modified on object.

Hello all,

Is there anyway to tell what has been modified on an object using the Object Designer? We are having some issues with a function in the payment journal named “Remove Unapproved Payments” and I was trying to find out if this was a mod made to the form by our NSC or if it is truly native. Just looking for some insight before I contact our NSC, I like to figure as much out on my own and through the use of this forum as I can. Thanks for your help.

In Object Designer, there is a column called “Modified”

The modified flag is not a reliable way to tell if the object has been modified, neither are the date/time fields, and neither are any other fields in the object designer. Besides you won’t be able to tell WHAT changed. The only way that I know of is to export the object as a text file. Export the same object as a text file from a standard database. Run them through a text compare tool.

Do you have the original CD with the CRONUS database? If yes you may start looking at the object creation date and time and version list, if they are all the same as in your object then MAYBE the object is untouched - or maybe not. If they are different, then the object has at least been saved and compiled.

If you have a developer license you may export your object in txt format, export the correspondant CRONUS object also in txt format and compare them with a text manager - I usually do this with UltraEdit, but there are many tools that do the same thing.

Yeah, I got that. I was wondering how to tell what has been modified ON the object. Which field, which column, which function etc. Instead of knowing that it’s been modified, what modifications have been made. Is this impossible to tell if you cant access the code for forms?

Whoa, sorry I replied without reading all of the posts. Let me see if I can track down the Cronus CD and try it that way. Just wondering if there was any internal way. Thanks for the assistance.

A good field also to look in object design is BLOB Size. But best tools is a compare tool.

Additional fields are usually entered into a “special” range, such as 50000. But even that is no guarantee, because depending on your license additional fields may have been added with other ‘regular’ numbers. The only certain way is to do a text compare.

And of course I wouldn’t have sufficient privilages to export objects as text. [:@] Looks like I’ll have contact our NSC. Thanks for all of your suggestions, it’s forums like these that make me want to further my knowledge of NAV. Hopefully one day I’ll have a career much deeper in the Dynamics environment than an end user (help desk) position. Thanks again.

There’s an other way (not as reliable):

Open your database. Open the table in design mode. Select all fields. Copy. Open Excel. Go to cell A1 and Paste. Now do the same for a standard Cronus database, and paste the fields next to the list of fields from your own database, so you have both lists side by side. Now it’s an easy scroll to see where the differences are in fields, you could even put comparison formulas together.

If you have access to the code of the tables, I would probably have your database on one side of my screen, and a standard Cronus database on the other side, and scroll down both screens at the same pace (page down on the left side, page down on the right side, and compare the two) and just look at the code to spot the differences. This is how I used to merge addons into customer databases, before I knew how to work with a text compare tool.

For forms this is not so easy because you can’t see all the code in the form, which is why text files are so nice to work with.

Neat solution, moved to Tips and Tricks

Mhm… not to spoil the party, but I’m afraid that to access code of tables is needed the same level of permission which allows to export objects in text format. [:^)]

Actually, Anna is right. Our license only permits us access to code for reports and dataports.

Just to address the function issue. I cna not remember any function called “Remove Unapproved Payments” though it could be a localization, I would guess its something that your NSC did.

With one single problem with this approach.If you (or localization, or addon) have added some new objects, than your list will not be usefull from some point (row). You’ll have to add some blank rows in Cronus DB (usually). Good news is that they are usually in “blocks” of rows. 50000 range, for example. Bad news, there could be a lot of “blocks” cause of numerous types of objects multiplied with numerous types of new objects that can be added (localization, addon, customer requests, etc).

But I use it often, for example when I want to compare what our NSC did in new localization (very often, documentation for localization changes comes too late). You may add a new column, where you may put some column compare function and than filter on that column. size column is nice way.

Yep you’ll have to line up objects if you want to add functions to compare values. BUT you WILL be able to eyeball differences just by scrolling down. At some point you’ll see number 10000 on the left and 50000 on the right, and that’s when you’ll see differences.

what I do is paste object lists from both databases next to each other, and put in a formula to compare object numbers (IF(A1 = F1,“Y”,“N”)). All it is from there is scrolling down to the first “N” and you know where to start lining the rows up. Once you have the objects lined up, you can do similar formulas for comparing version list, date, time, blob, etc. Usually, combinations of these fields will give you a very good idea where to find the differences. It takes a little while to get used to this, but I can usually line up a whole database in about an hour and have a very good idea where the object differences are.

This is not a fool proof way to find all differences, but in a database that was customized by professionals (i.e. tags in the version list, etc) this works really well.

The ONLY way to really make sure is to export objects as text files and run them through a compare tool.

If the goal is just to see if an object has been modified, then instead of doing a text compare, they may try exporting the objects as two different .fobs and doing a binary compare. UltraEdit (free) will do so.

Pieces of the .fobs binary will appear in plain text, so you might get some idea of what’s been changed.