Tuesday, November 24, 2020

How DO I - Calculate Working and Nonworking Day in #MSDynNAV & #MSDyn365bc.

Hi Readers,

In Last article we understand how to setup Base Calendar in #MSDynNAV & #MSDyn365bc. 

In this article we will see how we can utilize base calendar to check Working and Non-Working Days based on Calendar. 

This is actually a question during last #bcopendiscussion from Shahid Ullah.

Question - How to find the Workings Days in a month or from a given date range?

For the Demo, I will create a Page which will allow user to input a Start Date and End Date.

And the Result after the calculation will be -

  • Total No. of Days between Date Range.
  • Working Days between Date Range.
  • Non-Working Days between Date Range.

To achieve that we can use the Base Microsoft "Calendar Management" Codeunit.

Calendar Management have a function - CheckDateStatus which will check Date Status based on a Base Calendar Code specified. 

This Function will provide the Date Status as Working or Non Working. The Example that we discussed is from Business Central 14 C/AL Version.

For Business Central AL, the base Microsoft code is changed.

In Business Central a new function is added -

  • IsNonworkingDay
    • This function requires a date input that you want to check with Customized Calendar Change Record.
  • To invoke this function we first need to setup the Customized Calendar Change record for which there is a function to SetSource.
    • SetSource Requires a Record from where calendar code need to be picked and a Record for Customized Calendar Change.

You Can download Source Code from GitHub.

C/AL Version

Extension Version

If you would like to have access to code You can download that from GitHub.

Hope you find the article useful. 

Let me know your views as comment to this article.

Saurav Dhyani

No comments:

Post a Comment

Popular Posts