I am creating a series of blog posts that collectively are designed to help anyone preparing for the Microsoft Dynamics 365 Customer Engagement Core exam. (aka MB-200) In this post I will look at concepts around currencies.
You can see below that we have a section of the exam which covers solution deployment and testing, within that we have a section regarding system administration. Currencies are included under the heading “Perform system administration”.
Very occasionally the customers I work with operate in just one currency. It is becoming more and more common for even the smallest companies to trade across wide geographical areas. For example, via the internet it is very easy to promote products in many countries. Sometimes you can “get away” with only selling your products in just Dollars or Pounds. But often you’ll need to produce quotes, price lists and orders in multiple currencies. Microsoft Dynamics 365 “obviously” has the capability to handle these multicurrency scenarios.
Microsoft Dynamics 365 you can maintain the various currencies you require in the currencies option in business management under settings. (via the advanced settings option.) (See below.)
Additionally, if you are using the newer power platform admin center then you will find a currencies option in settings. (Having selected your environment!)
Within the currencies option you can configure additional currencies and their exchange rates as required. Before we review these options lets discuss the concept of the base currency.
Whenever you first create a new Dynamics 365 organization you must define your default (base) currency. The base currency applies to all momentary values across the whole system. For every currency value two values are always available the base currency value and the corresponding “local” currencies value. Often you will find these values will contain the same information but they will start to differ when alternative currencies are created. (We’ll look at this in more detail a little later.)
The base currency always has an exchange rate of 1. Meaning all other currency values are derived from this base. The base currency cannot be deleted and cannot be changed. (Although you can revise some details such as precision, display name and symbol.)
Now we understand the base currency we can add others. Let’s imagine I trade in US Dollars and Euros in addition to my base currency of Pounds Sterling.
Currently you get €1.24 (Euro) to £1 (Pound). And $1.41 (US Dollar) per £1 (Pound.) — Or you do in my example!
The configuration details for both euro and US Dollar are actually held within Microsoft Dynamics as preconfigured system currencies. When you create these you’ll simply need to enter the exchange rate you want to use.
As you add a new currency you are prompted to select system or custom currency. (I’ll cover a custom currency in a second!) For now, I am going to select a system currency.
Now because I’m using a system currency I can select my currency code from one of hundreds of preconfigured currencies.
Very occasionally you might find you want to define a currency doesn’t exist. Let’s say a new currency is created (maybe something like Bitcoin) and you want to add it. Then you’d use the custom option, when you create a custom currency you will need to enter the currency code, name, precision and symbol. In addition to the exchange rate.
Notice that the exchange rate to your base currency can include up to 10 decimals. But the maximum precision on a currency value is 4 decimals places.
As a slight aside, I haven’t worked on a real project using Bitcoin, yet!! But I believe that bitcoin is a currency that could be expressed as up to 8 decimal places. (In Dynamics 365 we have a maximum precision of 4.) One day knowing the currency precision allows a maximum of 4 digits might be useful knowledge!
Having created the three “local” currencies plus my base currency …. my currency list looks like this;
Note: It is important to keep in mind that exchange rate changes are managed manually. If the exchange rate fluctuates you will need to change it here under the currency settings. (I will expand on the impact of exchange rate changes later in this post.)
Using Multiple Currencies
Firstly, it is important to be aware that each user can set their own default currency. Below you can see that I have opened my user settings and changed my default currency to Bitcoin.
Having changed my default currency to Bitcoin any new records I create using a currency “may” default to Bitcoin. It is important to understand the implications / meaning of this. Existing opportunities aren’t going to suddenly change to be Bitcoin, they will remain in whatever currency has already been set.
If I create a new opportunity from an account that has “USD” set as its currency then the opportunity would be in USD. (Say by pressing + on a sub grid of opportunities on the account.)
But if I create a new opportunity directly from an opportunity view no account will be selected yet. So, the currency would be for my default. (Which is now Bitcoin.) Whilst my opportunity has defaulted to Bitcoin if I try to apply a price list already configured to work in say pounds sterling the system will give me a warning message.
On accounts, leads, contacts, products, price lists and discount lists you can define a default currency field. Once you have set a different default currency on an lead/contact/account then any new transactional record created for them will default to that currency. (Not forgetting that you will then also have to select an appropriate price list with a matching currency.)
Note: The default currency from say account will only be applied to opportunities (etc) created directly from the account form. If you open a new opportunity and then manually add the account the opportunity will default to the currency assigned to the current user.
Money Values Explained
Whenever a developer adds a field to hold a money value multiple fields will be automatically created! Meaning we always have three fields connected with each money value. Firstly a currency lookup will get created (if one doesn’t already exist). Then two value fields will be created. The first value field will hold the actual currency value, the second will hold the base currency value.
To try to demonstrate this I quickly created a custom entity containing a money value. (The following logic applies to all money fields on all entities.)
Below you can see my entity. As a developer I just created a field called “A Money Value”. Three fields were created by doing this. As a demonstration I added them all of them to my form.
|Currency||Currency is a lookup to whatever currency is required.
It will have defaulted to the currency set as the user’s default but that can be changed as required.
Note: When no user default exists my organization’s base currency will be used. (It is not possible to save a record with a blank currency lookup, try it you’ll get an error!)
|A Money Value||“A Money Value”, this is simply the name for a field I created as a currency field.
Notice that this field is editable, so the user will enter the currency value into this field. Also notice that the correct currency symbol and precision is used for the currency selected.
|A Money Value (Base)
||Automatically another field was created for me called “A Money Value (Base)”. Importantly notice that this is a read-only field.
Whenever a record is saved the value entered in the “A Money Value” will have an exchange rate applied to show the money value in terms of a base value. (The exchange rate will have come from the currency selected in the currency lookup.)
Commonly this base value will not be shown on forms. So, users might not be aware of it but knowing it exists can be very important!
Say they want to show a total money value of all opportunities in the sales pipeline. The opportunities could be in multiple different currencies, so to get a meaningful total it is normally this base value we use in reports.
You can see below that I have added a number of records to my demo entity. The money value column includes the values the users will have entered. Whilst the base currency value has been calculated in terms of pound sterling. (As pounds are my base currency.)
Exchange Rate Changes
Let’s quickly consider the impact of exchange rate changes. What if the Pound to US Dollar rate changes from 1.41 to 1.8? (Not actual exchange rates!!!)
Well firstly I’d return to my currency settings and change the exchange rate. But what does that do?
- Changing the exchange rate does not impact existing financial records.
- New opportunities (etc) will have a base amount calculated using the revised rate.
To demonstrate this I have created two records. One before my exchange rate change and one after. They have the same dollar value but the base currency value differs.
The above actually demonstrates a potential challenge of multi-currency! Because if the exchange rate fluctuates you may need to consider manually amend any active opportunities to reflect the required price revisions.
Hopefully this post has given you a good understand of the basics of using multiple currencies in Dynamics 365 and helped in your preparation for the MB 200 exam.