Skip to main content

MSDYN365BC - Futuristic CAL Development - Customize Base Code 2.

Hi Readers,

As discussed in the Last article, in this post we will continue with our Customer Requirements.

If you are new to this series then Please Refer Table of Index.

In this article, we will discuss adding custom code in base objects and what is the Futuristic way of adding code. 

In your customer are Pre-2018 then you can use Hooks for those instances.



Next Part of Requirement - "If a user changes a Quantity in Lines Expense Code in Purchase Line will be removed.".

As all we are C/AL Experts, we will try to write code to remove Expense Code when Quantity is changed in Quantity onValidate Trigger. We will write code at end of Quantity OnValidate Trigger something like as below.


How to Do that in Future?

  1. In Existing Codeunit 50000 Expense Subscriber, Let's add a new function with Name - OnAfterValidatePOLocationCode.
  2. Next is we will set the following properties - 
    1. Event - Subscriber.
    2. EventPublisherObject - Table 39.
    3. EventFunction - ??
    4. EventPublisherElement - ??

If you lookup EventFunction - You will Trigger Event available, select onAfterValidate. Click ok to Next message and We will see that few parameters are added in function and Subscriber is added in the function Name.



Now let's lookup and Select EventPublisherElement and select the field "Location Code" as shown below.



If we look function closely - Purchase Line (Rec and XRec) variable is passed as Reference and also CurrentFieldNo so we will be able to plug our code easily as below.



To understand How Execution will occur is like this - 

When System Executes Code in Purchase Line and Code will reach to line No. 622 and then execution will move to custom Codeunit and then will come back in Table 39.


Purchase Line    - Line No. 622.
Codeunit 50000  - Line No. 623. (actual line No. 11)
Codeunit 50000  - Line No. 624. (actual line No. 12)

Next article, we will discuss - 

  • What we did in this article? 
  • What is Trigger Event? 
  • Who can write it and how it executes?

Hope it makes sense, Stay Tuned for More!. Add your views as the comment to this article.

Regards,
Saurav Dhyani
www.sauravdhyani.com

Comments

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.