Skip to main content

Managing with Multiple Legal Entity Data in Microsoft Dynamics NAV / Business Central

Problem Statement:
Well, my client is a Trader of Oils & Fatty Acids and has multiple legal entities to perform various sets of operation on the TRUCK-LOAD(a.k.a. Load). One legal entity creates the Load and schedules it, while another manages with the freight requirements. The information is not shared between both the legal entities. Thus, we need to store the data separately.

Pre-requisites:
For Microsoft Dynamics NAV:
- C/Side Development Environment
- Multiple legal entity(Company) setup

For Microsoft Dynamics Business Central:
- Visual Studio Code
- AL Language Extension
- Multiple legal entity(Company) setup

Solution Design:
1. Create two Tables say LoadCompany1 and LoadCompany2 with same fields
2. Set DataPerCompany property is to TRUE on both the tables.
3. In NAV/ BC, there are common tables but the data into the tables are different. Thus, the system has to manage different version for a single table based on an entity that you're currently working on.
In this case, I need to set data in different tables and synchronize data between them as shown below.
Code:
1. In this case, to synchronize data, I've used TRANFERFIELDS function.
Syntax: DestinationRecord.TRANSFERFIELDS(SourceRecord)

2. To change between working companies for the given table, I've used CHANGECOMPANY function.
Syntax: Record.CHANGECOMPANY(CompanyName)


Output:
Inserting Loads
Inserting Loads from Table Company1 Load to Company 2 Load

 After processing, the system Inserts the Load from Company 1 to Company 2



Modifying Loads:
There is an existing Load in Company 2


Modifying the Load in Company1 should modify the Load in Company 2 as well


And that's how I achieved synchronization of data between two companies in Business Central. In the same way, we can also do the same task in NAV as well.

Thanks. Happy weekend :)

Comments

Popular posts from this blog

Workaround to XMLPort not supported in Business Central

Problem Statement:
While I was working on some custom EFT project, I thought of using XMLPort as it is the safest and easiest method to get the data successfully directly from the tables.
Unfortunately, XMLPort is not supported to work on WebClient and I was stuck with writing code to do exactly what XMLPort would do.
Also, another issue that Business Central d extension support is using File methods i.e Open, Write, Close, etc.









Introduction:
In Business Central even if you're not given explicit rights to deal with files directly there are streams using which we can be downloaded as files. Enough of introduction, let's start working now!

Books & References:
https://docs.microsoft.com/en-us/dynamics-nav/feature-limitations-of-the-microsoft-dynamics-nav-web-client
Pre-requisites:

VS CodeAL Language ExtensionMicrosoft Dynamics Business Central.
Demonstration:
1. Creation of File Contents:
In this case, I've simply text string 'Hello World!'
Although it's perfectly po…

Enum Object in Business Central - How to create and how to extend!

Introduction:
Since the dawn of Business Central Era (2nd April 2018 - Today), there are many new data types introduced by Microsoft.
One such data type is Enum(Enumeration). Essentially, what enumeration is having a single select value with multiple options at a given time!
Well, I know what your thinking what about the 'Option' data type.
Anyways, enough of talking let's just dive in!

Disclaimer:The knowledge in this blog is true and complete to the best of authors and publishers knowledge. The author and publisher disclaim any liability in connection with the use of this information.
Pre-requisites:
Microsoft Dynamics Business Central (SaaS or On-Premise)
VS code with AL Language extension

Code:
1. Enum as an Object:
Just like Tables and Pages, Enum behaves like an Object.
Note that Extensible means that the Enum Object can be extended in another module. By default, this property is set to TRUE.



Enums and Enum Extensions behave differently. They follow a different number se…