Skip to main content

MSDYN365BC - How to Do Futuristic Development in CAL?

Hi Readers,

As requested by multiple readers we will discuss in this article series about how to do Futuristic development.

This is the first article in this series where we will take the example of a customer requirement and going forward we will develop that using CAL and will see the benefit of using Event Driven Programming in C/AL. I am considering this example as this capture all object types and also include base object changes.

Customer Requirement - 

  1. Customer Requires a New Field Expense Code in G/L Account.
  2. A Master for Expense Codes which will allow the customer to add Expense Code and Description. They should be able to disable any Expense Code.
  3. They should be able to key in those details in that table using a page. 
  4. A user should be able to select Expense Code in G/L Account General Tab.
  5. An Action in G/L Account Card Page and Chart of Account Page to New Page to Enter Expenses.
  6. When a G/L Account is added in Purchase Lines, Expense Code should get copied from G/L Account to Purchase Lines.
  7. If a user changes a Quantity in Lines Expense Code in Purchase Line will be removed.
  8. Expense Code is mandatory for all lines during the Posting of the Purchase order and will also check and Expense Code is not Disabled.
  9. Expense Code should be available in General Ledger Entries.
  10. A Report is required to find analysis based on Expense Codes.

Pre-requisites - 

I am sure that you have completed all the pre-requisites before you start working on these customizations, below is the list of pre-requisites that need to be completed -

Download Microsoft Dynamics Business Central (on-Prem)  or you have an MSDYN365BC on hosted tenant configured. Install Microsoft Dynamics Business Central (on-Prem).

** You can use NAV 2016 or higher for doing development with me.

This article also acts as a Table of contents for all articles related to this blog series - 

Article 00 - Customer Requirements. (this article)
Article 01 - Tables and Fields.
Article 02 - What is allowed and What is Not?
Article 03 - Customize Base Code Part 1.
Article 04 - UnBoxing Integration Event.
Article 05 - What If No Event Found.
Article 06 - Customize Base Code 2.
Article 07 - UnBoxing Database Trigger Event.
Article 08 - UnBoxing Page Trigger Events.
Article 09 - What If No Trigger Event.
Article 10 - Customize Base Code 3.
Article 11 - Testing the Solution.
Article 12 - Report Development.
Article 13 - Summary of Futuristic Development.

Who Should Read This Series?

Everyone who works in C/AL either due to personal constraint (not to learn AL) or customer is not ready to Move to AL Programming. This series will explain How and Why should we use Futuristic Development for our and our customer benefits.

This should also explain why our customer should be upgrading to the latest and greatest Version of Microsoft Dynamics NAV.

Hope you find this useful. Let me know your thoughts on the same.

Be Ready for futuristic development in CAL and learn with us!

Saurav Dhyani


  1. Great, hoping to enjoy this ride(Series).

    1. Hope you find it easy to follow articles in this series.


Post a Comment

Popular posts from this blog

VIEW SERVER STATE permission on SQL Server?

Hi all, Sometime While trying to Login into a database we face an error message as shown below. --------------------------- Microsoft Dynamics NAV Classic --------------------------- You cannot start Microsoft Dynamics NAV Classic because you do not have the VIEW SERVER STATE permission on SQL Server. Contact your system administrator. --------------------------- OK    ---------------------------

NAV 2013 R2 - Cumulative update 12 Released.

Hi all, Please find below the details of  Cumulative Update 12 released for Microsoft Dynamics NAV 2013 R2. Title - Cumulative Update 12 for Microsoft Dynamics NAV 2013 R2 Build No. - 38053 Release Date - October, 2014 Local Version Included - AU, AT, BE, CH, DE, DK, ES, FI, FR, IS, IT, NA, NL, NO, NZ, SE, UK, RU Download Link Note: Implementing this cumulative update will require a database conversion unless you have already implemented update rollup 5.

NAV 2013 Upgrade Part III - Data Upgrading.

Hi all, As per agenda we need to discuss the data upgrade in NAV 2013. The process is similar to what used to be till NAV 2009 R2 but with some changes. Let's start the process. Remember -  1) You can only upgrade a database to NAV 2013 from NAV 2009 SP1 / R2 SQL Only. 2) The Synchronization of users with SQL Server is no more required.