Monday, April 11, 2016

Microsoft Dynamics NAV 2016 - New Function CURRENTCOMPANY.

Hi All,

Today in NAV 2016 I was writing a piece of code using Events & Subscriptions.

Below are some details of that -

I want to write some details on another company when a Item is inserted in a particular company but also wanted to fire OnInsert Trigger of Item in another company too.

Yes we all know how it is done in Navision C/AL Code, using CHANGECOMPANY and TRANSFERFIELDS.

But The Issue was the Subscriber was called again when the Insert was happening in the another company and it was looping through it. At the end it was generating an error message.



TO CUT THE STORY SHORT - 
"I was having troubles with Identifying the Company Where My Subscriber Should not Execute."

What's New & How Issue was Resolved ?

Till NAV 2015 The Function COMPANYNAME was the only function to get the Company Name, But this will always give you the company name where the code is being executed.

SO If I have 2 Companies (Cronus USA & Cronus INDIA) and I am writing below piece of Code and Executing in Company Cronus USA.

//CODE
MySecondCompany := 'Cronus INDIA'

Message(COMPANYNAME);
Customer.CHANGECOMPANY(MySecondCompany);
Message(COMPANYNAME);

//CODE

Both Message will End UP With 'Cronus USA'. What I need is Cronus India.

With NAV 2016, There is a New Function available which is CURRENTCOMPANY that will return me the company name corresponding to the Record or RecordRef.

So Now If I do Like - 

//CODE
MySecondCompany := 'Cronus INDIA'

Message(COMPANYNAME);
Customer.CHANGECOMPANY(MySecondCompany);
Message(Customer.CURRENTCOMPANY);
//CODE

My Output will be - 

Cronus USA.
Cronus INDIA.

Sounds Cool, at least it sounds cool for me :)

Hope you can use it in future. If you still have doubts read details here in MSDN (Record) and read details here in MSDN (RecordRef)

Regards,
+saurav dhyani
saurav-nav.blogspot.com

No comments:

Post a Comment