Coffee Break: NAVDiag

In the previous two posts, Automation Part 1 and Part 2, we talked about how to easily bring PowerShell into Dynamics NAV. Based on the applicability and interest shown so far we wanted to continue on the previous thread and address some of the suggestions we received, as well as add some functionality. We called the…


Coffee Break: Automate it, part 2

This is a continuation of our previous post, with further examples of how to utilize Windows PowerShell from Dynamics NAV. The samples provided here just demonstrate how easy it can be to integrate the two, so you can build on this using any of the great (Dynamics NAV) PowerShell tools out there from a familiar development environment….


Coffee Break: Automate it!

The Coffee Break Team is back, and this time we will unite the best of the two worlds and show how we can utilize the power of Windows PowerShell, using your favorite application: Dynamics NAV. While we do recognize that scripting complex PowerShell tools and modules is not to everyone’s taste, C/AL is something we…

New TimeStamp fields in Microsoft Dynamics NAV 2016

In Dynamics NAV 2016, you may have noticed that a new field has shown up in the development environment: Timestamp. We mentioned this in the What’s New topic in the MSDN Library, but here is a bit of background. Since the first version of the SQL Server option for Dynamics NAV, every Dynamics NAV table has…

Design Pattern: Data-driven Blocked Entity

This pattern implements a generic mechanism for dynamically restricting and allowing usage of a record by the business process administrator. Problem A Dynamics NAV record can be used in a number of functionalities across the application. There are situations, however, when the administrator wants to restrict the consumption of such a record, as well as…


Design Pattern: Observer

Microsoft Dynamics NAV has the built in ability to track all record changes against any table, however it does not always fire the triggers for every table. But with the Observer pattern, you can track all record changes against a defined table or set of tables. This pattern is a good example of how classic…


NAV Design Pattern: Activity Log

The Activity Log pattern tracks execution of activities. This is a Dynamics NAV specific implementation of the generic Audit Log pattern. In general, integrating with external systems can be very challenging, due to the complexity of the situation – connectivity issues, asynchronous operations, user errors, etc. These challenges require sometimes re-trying several times, polling the…


Design Pattern: Argument Table

The Argument Table pattern is used to provide an extension point for adding new arguments to a function without changing the signature. By grouping multiple arguments in a table, the code becomes more readable (the signature and the usage of the function). For the full description of this pattern, see the NAV Design Patterns wiki page.


NAV Design Pattern: Variant Façade

The Variant façade provides a single interface that can take any Record, RecordRef or RecordID as an argument. With this pattern, the code is encapsulated within the single object, with clear separation between common and table specific code. For the full description of this pattern, see the NAV Design Patterns wiki page.


NAV Design Pattern: TryFunction – .NET Exception Handling in C/AL

When you want to use objects from the .NET Framework in C/AL code, one of the main challenges is to handle exceptions that the methods of these objects may throw. Eventually, if not handled, they will basically bubble up as runtime errors, halting the current operation a user is doing without having a chance to properly…