Book Image

Extending Microsoft Dynamics NAV 2016 Cookbook

By : Alexander Drogin
Book Image

Extending Microsoft Dynamics NAV 2016 Cookbook

By: Alexander Drogin

Overview of this book

Microsoft Dynamics NAV is an enterprise resource planning (ERP) software suite for organizations. The system offers specialized functionality for manufacturing, distribution, government, retail, and other industries. Its integrated development environment enables customizations with minimal disruption to business processes. The book starts explaining the new features of Dynamics NAV along with how to create and modify a simple module. Moving on, you will learn the importance of thinking beyond the boundaries of C/AL development and the possibilities opened by with it. Next, you will get to know how COM can be used to extend the functionalities of Dynamics NAV. You’ll find out how to extend the Dynamics NAV 2016 version using .NET interoperability and will see the steps required to subscribe to .NET events in order to extend Dynamics NAV. Finally, you’ll see the cmdlets available to manage extension packages. By the end of the book, you will have the knowledge needed to become more efficient in selecting the extending methods, developing and deploying them to the Dynamics NAV, and practicing the best practices.
Table of Contents (17 chapters)
Extending Microsoft Dynamics NAV 2016 Cookbook
Credits
About the Author
About the Reviewer
www.PacktPub.com
Customer Feedback
Preface

Handling exceptions with try functions


The TryFunction property has been introduced to C/AL to handle exceptions thrown by .NET objects. It allows NAV application developers to catch exceptions and handle them the way the try...catch statement would in C#.

How to do it...

The following example explains how to declare a try function and catch exceptions from .NET objects.

  1. To illustrate why we need the TryFunction attribute at all, let's create a codeunit with a function that will fail and throw a .NET exception. Let's call the GetDataFromRemoteSource function and suppose it is intended to load data from some web resource:

            HttpWebRequest := HttpWebRequest.Create('http://unknown'); 
            HttpWebResponse := HttpWebRequest.GetResponse; 
    
  2. In the codeunit, the OnRun trigger will call the function:

            GetDataFromRemoteSource; 
    

    Then save and run the codeunit. The function fails, as expected:

  3. This exception interrupts code execution and might frighten the user with the technical details...