Dynamics GP – Steps for adding a new Currency in Dynamics GP

Introduction

This article outlines the steps needed to create a new currency in Dynamics GP. The article assumes you have the relevant security permissions to access the various windows and also the system password if one is used.

Adding a new currency

First you need to add the currency via “Tools > Setup > System > Currency”

In this case I’m adding the Japanese Yen

After the currency has been added grant your Dynamics GP companies access to the new currency via “Tools > Setup > System > Multicurrency Access”

Once in the “Multicurrency Access Setup” window select the new currency and tick the relevant companies. (this requires all users are out of the system)

Next add the “Exchange Tables” via “Tools > Setup > System > Exchange Tables”

Once in the “Multicurrency Exchange Rate Table Setup” window create the Exchange Table ID and click “Rates” and add the exchange rates.

** You can review any existing exchange tables to confirm the settings used in your system. In my example I’m choosing “Divide” as the calculation method and “Exact Date” as the default rate. You may wish to use different settings on your system.

Next you need to go back to the Multicurrency Access Setup window and grant access to the Exchange Table ID we just created.

Once the currency and exchange table have been created, and access has been granted, we just need to assign the various rate types to the exchange table. We do this via “Tools > Setup > Financial > Rate Types”

In my example I only intend to have one exchange table so I’ve assigned all the rate types to the new exchange table.

** Please note you may only have one rate type in your system. My example is based on adding a new currency for use in the Fabrikam demo company which has three rate types.

Once this is all setup I can test adding a transaction and this all works fine. I’ve added a transaction for 204 Japanese Yen which equates to 2 US Dollars.

If Inventory Items are used in your system you may also need to assign the new currency to either all or some of your Items. This can be done individually via “Cards > Inventory > Item Currency” or en masse via “Tools > Utilities > Inventory > Price List Utilities”

Conclusion

As you can see there are quite a few steps involved in creating a new currency but hopefully if you follow the steps outlined above it will assist you in setting this up.

Thanks for reading!

Dynamics GP – Error “This transaction contains multi – currency errors and can’t be posted” when posting Multi Currency Transactions

A client reported the following error on the posting journals when trying to post both Receivables and Payables Transactions. “This transaction contains multi-currency error(s)”

This transaction contains multicurrency errors

This was followed by a message informing them that the batch had gone to recovery.

I checked the usual things like exchange rate expiration dates however everything seemed fine.

The client then explained they had overwritten some exchange rates accidentally but had since changed these back however the error persisted.

I delved a little deeper using SQL and noticed that although the dates and rates were the same the TIME1 value in the MC020102 table for the transactions differed slightly from the TIME1 value in the DYNAMICS..MC00101 for the exchange rate in question.

Affected transaction showing differing TIME1 value from setup

As a test I changed one of the transactions by updating the TIME1 value in the MC020102 table to match the relevant TIME1 row in MC00100 using the script below.

UPDATE MCTRX 
SET    MCtrx.time1 = MC.time1 
FROM   mc020102 MCTRX 
       INNER JOIN dyn2018r2..mc00100 mc 
               ON mc.exgtblid = MCTRX.exgtblid 
                  AND mc.xchgrate = MCTRX.xchgrate 
                  AND mc.exchdate = MCTRX.exchdate 
WHERE  MCTRX.docnumbr = 'SALES00000001004'   

I then printed an edit list of the batch and the error had gone.

Now I knew how to fix the issue I realised I could also resolve this by just opening the transactions in the entry window and re-selecting the exchange rate however there were 1000’s of affected transactions so I used the script below. (this was affecting all multi currency transactions in WORK batches so I just had to filter on DCSTATUS)

UPDATE MCTRX 
SET    MCtrx.time1 = MC.time1 
FROM   mc020102 MCTRX 
       INNER JOIN dyn2018r2..mc00100 mc 
               ON mc.exgtblid = MCTRX.exgtblid 
                  AND mc.xchgrate = MCTRX.xchgrate 
                  AND mc.exchdate = MCTRX.exchdate 
WHERE  mc.time1 <> MCTRX.time1 
       AND DCSTATUS = 1   --add this so only WORK trx are affected

After running this script all sales transactions posted fine.

Next I turned to the payables transactions which just involved a small tweak to the original script and also an update to a different table to correct currencies for the multi currency payables payment batch header.

--First fix Payables multi currency trx

UPDATE MCTRX 
SET    MCtrx.time1 = MC.time1 
FROM   mc020103 MCTRX --Changed to MC020103 for payables trx 
       INNER JOIN dyn2018r2..mc00100 mc 
               ON mc.exgtblid = MCTRX.exgtblid 
                  AND mc.xchgrate = MCTRX.xchgrate 
                  AND mc.exchdate = MCTRX.exchdate 
WHERE  mc.time1 <> MCTRX.time1 
       AND DCSTATUS = 1 

--Also fix the batch header currency values for payment batches 

UPDATE batch 
SET    batch.time1 = mc.time1 
FROM   mc00500 batch --batch header multi currency table 
       INNER JOIN dynamics..mc00100 mc 
               ON mc.exgtblid = batch.exgtblid 
                  AND mc.xchgrate = batch.xchgrate 
                  AND mc.exchdate = batch.exchdate 
WHERE  mc.time1 <> batch.time1   

Once I’d ran through all this the transactions posted fine.

Hopefully this will help someone in the future who may face a similar issue however always remember to have a good backup of your data before running any SQL scripts and test whenever possible.

Thanks for reading