Change Log in Navision/Business Central

Estimated reading time: 8 minutes

Who changed article 4711? Who changed the terms of payment for debtor 0815? Why was the delivery condition deleted for the vendor Müller? It would be nice if Navision/Business Central could write (log) the changes to certain data. Not just with "Date modified" or "Corrected on" and a non-helpful date...

These questions surely sound familiar... but you don't have answers. Do you? You do! Navision or Business Central can answer these questions. With the 2009 version already. And you can use it with RTC and Business Central as well. That makes tracking and changes way easier than just the info with "corrected on".

Turn on change log

If you want Navision/Business Central to support you in the future when searching for the cause of justified/unjustified changes, you must first activate (switch on) the change log. At Navision Classic Client (e.g. versions 2.01, 370, 5.00, 2009 R2) please use the following path:
Administration/IT Administration/General Setup/Change Log Setup:

in RTC starting from NAV 2013, 2015, 2016, 2017 press CMD+F3. In the correct webclient (Nav/Business Central from 2018, V14, V15 etc.) Alt+Q, and enter änd pro einr and use the same pathAdministration/IT Administration/General Setup/Change Log Setup:that's in the Classic Client:


In Navision Classic Client then go to the Setup button, in RTC and Webclient go to the Ribon menu item "Tables". From here on all 3 versions can be set the same.

Which tables/changes to monitor?

Master data and setup tables

Note: All data in Navision/Business Central is stored solely in tables. No matter where you are: In the Classic Client you can use CTRL+F8, in the RTC or Webclient CTRL+Alt+F1 (if no Intel graphics card driver is interfering...) to see which table you are currently in.
Please do not log any changes in item tables! If possible also not in movement tables! Concentrate on the master data tables, and basically on the setting "Some fields", like e.g. in this screenshot:

Screenshot aus dem Navision/Business Central RTC Client, Abbildung in dem Classic Client und dem Webclient von Business Central 365 ähnlich.
Navision/Business Central RTC Client view, similar mapping in Classic Client and Business Central 365 web client. Tip: From the beginning, set all 3 columns to "Some fields" in each table of interest for the change log.


Please don't touch these item tables:

17 non-cash items
21 Accounts receivable
25 Accounts payable
32 Article item

And you should only log these tables with kid gloves:
36 Sales header
37 Sales line
38 Purchase head
39 Purchase line
43,44,

Also, do not save changes to buffer tables or posted documents, e.g., from tables 110,111,112,113,114,115,120,121,122,123,124,125,126....
An exemption may be the Edit logging from the Tracking code field in the posted sales delivery header table 110.


Why?


Item tables and posted receipts

can't be changed anyway or only in very few exceptions ("clearing with document type", "tracking code"). Monitoring therefore makes no sense, and only unnecessarily burdens your native or SQL server.


Buffer tables

usually have no content, and are used intensively by the system to condense data and then write it to the database to save time. So logging changes on these tables negates the associated optimization. Most of the time (always, if not done by a bad programmer) these buffer tables are also only cached in RAM and not on the server. In this case the log function doesn't work at all.


Hottables such as 36, Sales header or 37 sales lineAccounting posting sheet line, article posting sheet line

experience so many changes that a log on them quickly generates millions of records in the change log, cluttering up their database and putting additional load on their server or slowing down transactions unnecessarily. This is why they are called hottables. Most often, an urgently needed database cleanup is the result of such an attempt.


How to monitor?

As so often in Navision/ Business Central 365: Less is more

Please avoid at all costs the seemingly so convenient setting "All fields" to monitor a table completely. This will quickly clutter up the change log and thus the Navision database. The log becomes way too large to evaluate, and the changes to the master records in your database that are relevant to you are lost.
I have already found Navision/Business Central databases where only the change log took 90% of the database, with millions of entries. A database like that needs to be cleaned asap..

Screenshot von Navision/Business Central RTC mit den empfohlenen Einstellungen für das Änderungsprotokoll
Display from Navision/Business Central RTC for the recommended settings in the change log.

Log insertion

Usually only the primary key makes sense here! For customers e.g. the customer number.
Why? As soon as a customer number (delivery term code, payment term code, G/L account number...) has been assigned, the record is technically created and Navision is now in "Edit" mode.

Edit log

Here you mark the fields that are really relevant for tracking. Payment term code, payment form code, name & address, vendor code, credit limit, booking group, vendor code, price group code... These are the fields that will hurt if you make a wrong change. But there are also many fields in almost every larger table, whose change you probably don't care about. In my facilities, there is often only one accounts receivable posting group and only one dunning method. So monitoring these fields makes little sense then. You will quickly get hundreds of change log entries without content, especially for fields that are not used at all ("All fields").

Deletion log

Here you select the columns / fields that help to restore the most important properties of the record in case of accidental deletion. As a rule, these are fewer than in the case of Edit Logging.

Remember: Less is more! Navision and the database have a lot of work to do with logging. Don't make it too hard for Navision or Financials/Business Central.

Evaluate / research changes

In addition to the intentional wrong setup, you can make the next big mistake here.
It's because the protocol is optimized for writing, not for researching changes.
That's why in Navision that I manage, there is a small but important menu item in that place:

Administration/IT Administration/General Setup/Change Log Setup:

Screenshot der vorgefilterten und vorsortierten Änderungsprotokollposten in Navision/Business Central, erreichbar direkt über die Änderungsprotokoll Einrichtung.
View of pre-filtered and pre-sorted change log items in Navision/Business Central RTC, accessible directly (also via CTRL+F5/CTRL+F7) from the change log setup.


With this menu item you get the change log items directly pre-filtered for the selected table. This makes the work (filtering & searching) in this table a lot easier for Navision (or more precisely: the database server). Please do NOT go directly through the change log items, each query you make there will take (with a well filled change log item table) what feels like an eternity.

The deluxe version also provides a simplified call for each relevant master data table (customers, vendors, articles, G/L accounts):

This function is generic. You can therefore simply copy it to the Page Actions in all master data table pages. If the function recognizes the unique primary key, the change log is immediately filtered to the current record. If it doesn't recognize it, it will automatically filter to the correct table.