What is Dynamics NAV Change Log?
Change Log in NAV, also referred to as Change Data Capture (CDC), is a standard Dynamics NAV feature – off the page – allowing for tracking changes that users make in predefined tables. The Change Log chronologically registers the entries, specifying which user has affected a specific field of a certain table.
Why setting up Change Log?
As a NAV implementer this Change Log functionality has helped me many times in troubleshooting issues, and explain to end users why certain data shows in the system as it does. Obviously this feature is also very useful for different kinds of audits and compliance purposes. But also think of using the Change Log to analyze how the different users modify all kinds of data elements, and use this information for improving processes.
How to setup Change Log?
Here are a few screenshots of how to set up NAV’s Change Log. For a comprehensive walk through you can refer to the end of the recorded webinar by my colleague Lara for NAVUG.
Below is an example of how the Change Log Entries show and how you can filter on for example the Customer record changes:
The screenshots are from the brand new release of Dynamics NAV 2016! Not that this version has any new functionality regarding Change Log, but we just want to show this because we’re proud of it. Change Log functionality is available in all NAV versions as of version 3.
Important notes and considerations when setting up Change Log:
– After changes have been made to the Change Log setup, this will only take effect after users have logged back into NAV (some users tend to keep NAV open and not log out)
– Changes to the Change Log setup are always logged automatically (i.e. if a user removes tracking of the changes to the bank account no. field, this will be logged)
– Only manual entries and changes made from the user interface are being logged in Change Log. Like for instance when turning a sales quote into an order, this is will not be in the Change Log entries. Thus when searching the Change Log entries to determine who/when created a sales order will not give that information, only who changed it after it was created. If you need to register these types of changes which are made through the code, request the NAV developers to insert and use procedures which can add records to the Change Log table.
– Regarding changes to data coming from external systems, depending on how those integrations are developed, these will typically not create Change Log entries.
– The more you’ll track, the more space it will need in your database obviously. So think carefully of what you want to track, e.g. when inserting a new customer it should be sufficient to log who created the number. Additionally you can log who modified certain customer record fields for those that you want to track (name, address, etc.), but as long as they have never been modified obviously the user who had initially created the new record set those fields to the value currently on the record.
– Similarly it does not make a lot of sense to track for instance all fields upon deleting a record. For example: if you track the order number field only upon deleting, you can always go back to see who/when deleted, and by going back to the previous changes you tracked on logged modifications, you have access to the relevant information.
However if it is important management information to report the number of deleted sales orders per customer, you want to track the document type and the customer no. upon sales header deletion. That way you can report straight from the Change Log table without having to develop a report that looks up the order no. to get the customer no.
– If you have been using Change Log for a couple of years and you want to remove the old entries from your live database, you can use Delete Change Log Entries routine to remove all entries up to last year or so.
– In ABS’s QuickStart Database we have enabled tracking on the most important tables and fields.
Don’t hesitate to contact me or one of my colleagues at ABS if you need help setting up Change Log, or if you have any questions.