Book Image

Learning Dynamics NAV Patterns

By : Marije Brummel
Book Image

Learning Dynamics NAV Patterns

By: Marije Brummel

Overview of this book

Microsoft Dynamics NAV is a complete ERP system, which also contains a robust set of development tools to support customization and enhancement. These include an object designer for each of the seven application object types, a business application-oriented programming language with .NET interface capability, a compiler, a debugger, and programming testing language support. Learning Dynamics NAV Patterns will guide you through the NAV way of solving problems. This book will first introduce you to patterns and the software architecture of the NAV and then help you to build an example application. Then, it walks you through the details of architectural patterns, design patterns, and implementation patterns. This book will also talk about anti-patterns and handling legacy code. Finally, it teaches you to build solutions using patterns. Proven patterns and best practices will help you create better solutions that are easy to maintain in larger teams across several locations. It will guide you through combining abstract patterns using easy-to-understand examples and will help you decide which patterns to use in which scenarios.
Table of Contents (9 chapters)
Thank you for buying Learning Dynamics NAV Patterns

Variant variables

Although it is not generally recommended, it might be required from time-to-time to be able to call a function with different types of records as parameters. With the strongly typed record variable parameters, this is not possible. However, we can use the Variant datatype as a workaround. We can store every variable type in NAV in a Variant.

All the C/AL code that we write is converted into C# code in the background, and this C# code generates a class for each object. The Variant datatype maps to the C# type of the object. So, if we use this datatype as a parameter of a function, we can call this function with any object in NAV.

In the object, we can change the object back to a specific table using the RecordRef datatype if required. This also allows us to test whether the function is called with a table that we expect it to be called with.

This explains what options we have when using variants as parameters in functions. You can view it at http://www.waldo...