This Post is the Third in a Series on Microsoft Dynamics NAV 2013R2 Development, following on from the two post from Module One, This Post will look at the Visual Screens Module 2, Part Two will look at the Code Changes, the Objects can be “Downloaded in Text Format” in Part Two.
This Scenario has come up before on several occasions however I had never Designed a Solution, many Companies Deal with Multi-Currencies in multiple Companies, when they want to Update the Currency Rates they go into each Company and manually Update the Rates one Line at a Time, if there are a few Companies this can be very Time Consuming.
I had a good think about this and have the following observations based on my knowledge of Currencies in Dynamics NAV 2013R2.
- Module 1. Would require a basic solution that can be run in each Company, a Currency Dashboard, the Dashboard will have the following Functions, Get Currencies, Get Currency Exchange Rates from System and Insert or Update the Rates.
- Module 2. Would require a more advanced solution that can be run in a Parent Company, a Global Currency Dashboard, the Global Currency Dashboard will have the following Functions, Get Currencies across all Companies, Get Currency Exchange Rates across all Companies, update the Rates by Triangulation of the Rates from the Parent Company and Insert or Update the Rates across all Companies.
- Module 3. Based on the Second Module, Job Queue Automation of a Currency Rate XML Feed to Import the Rates from the Bank, update and maintain the Rates across all Companies in a Single Database.
In Designing Module Two I have Re-Worked some of the Objects from Module One, the addition of one Extra Table and Two Pages, I will start by looking at the new Menu items and Currency Setup Page.
From the Department > Financial Management > Periodic Activities I have created a New Sub-Menu for Currency Management, no Standard Objects are Modified for this Module.
When the Currency Setup Page is opened these are the Default Settings, the Management Field is a Dropdown Option to Decide what actions can be carried out in the Company, Precision and Rounding are used to Calculate the Exchange Rate or Inverse Exchange Rate, if you are not familiar with the Inverse Exchange Rate then Read Module One, the Currency Workbook will work the same as it does in Module One.
By Changing the Management Option the Pages will allow Different Operations.
Manage LCY: The Default allows the user to Manage the Local Company Only, Rates can only be Populated and Edited for the Current Company.
View LCY: Allows the User to Populate the Currency Workbook and View the Rates for the Current Company but not edit any, can be used in Child Companies where the Currencies are managed by a Parent Company.
View All: Allows the User to Populate the Currency Workbook and View the Rates for All Companies but not edit any, can be used in Child Companies where the Currencies are managed by a Parent Company.
View All – Manage LCY: Allows the User to Populate the Currency Workbook and View the Rates for All Companies and edit Only the Current Company, can be used in Companies to check Currencies.
Manage All: Allows the User to Populate the Currency Workbook and View the Rates for All Companies and edit all Companies, the Global Currency Workbook can be used in this Company to Apply a Global Rate.
Global Currencies allow the user to Mange Currencies in Different Companies from a Parent Company using a Global Exchange Rate which is applies across all Companies.
If the User Sets the Currency Management to “Manage All” the the Global Currency Workbook can be used, the Name and Currency Code can be Update, if the Local Currency was GBP and the Rates were set by an American Parent Company in USD, the Currency Code can be set Here, for the Examples here I changed the Precision to 0.00001.
To use the Global Currency Workbook the Currencies in the Currency Workbook must be setup, to do this Run the Currency Workbook and for ‘Each Company Record’ use the “Get Currencies” Ribbon Item, any Currencies that are no longer used in the Company the Line can be Deleted.
Global Currency Workbook
Open the “Global Currency Workbook” and use the “Get Currencies” Ribbon Item, this will Insert a Line for all currencies across all Companies, any Currencies that are not used as Global Currencies the Line can be Deleted.
The “Get Currency Rates” Ribbon Item, this will Insert a Single ‘Currency Exchange Rate’ Line for all Currencies in the Global Currencies Section, it will also Populate the Currency Workbook with Related Entries as Locked Lines.
For this Post I copied some Rates from the Internet, I have put these into Excel for Demonstration Reasons.
I copied the Rates into the “Exchange Rate” Column and the “Inverse Rates” were Populated, if I Populated the Inverse Rate then the Exchange Rate would have been Calculated.
Updating The Rates
When the “Set Currency Rates” is Selected the lines in the “Currency Workbook” are Updated with any Changed Values and the Rates can then Be Applied from the Parent Company to the Child Companies.
For the Companies with the GBP Currency the Vales from the Global Currency are used to update the Lines.
For the Companies with the other Currencies like EUR the Values from the Global Currency are used to triangulate a new rate and update the Lines, due to the Original Rates and the way Dynamics NAV rounds compared to Excel, when Triangulating the Rates there can be very slight Rounding Differences.
For the Companies with the other Currencies like USD the Values from the Global Currency are used to triangulate a new rate and update the Lines, due to the Original Rates and the way Dynamics NAV rounds compared to Excel, when Triangulating the Rates there can be very slight Rounding Differences.
In Part Two I will show the Object Differences from Module 1 and the Code Behind that Populates the Values, at the Foot of Part Two there will be the Objects in Text format to Download, you can read Part Two Here.