The client enters exchange rates at the start of the month, but following the integration being deployed, extra exchange rates were being inserted into the exchange rate table. This caused problems as the rate from the external system varied more often than the rates entered, and required, in Microsoft Dynamics GP.
The investigation started from the integration to see if there were any settings in it which could be causing this issue, but none seemed relevant. The only currency fields being set was the Currency ID and the Exchange Rate.
After this I started taking a look into the eConnect stored procedures on top of which SmartConnect runs. After digging down a couple of levels I discovered that taMCExchangeRate has a section which inserts the exchange rate passed in if it is not in the Exchange Rate table; this is regardless of the setting in Multicurrency Setup () which were set to allow rates to be used without being added to the exchange rate table.
The client was running Microsoft Dynamics GP 2013 SP2 and my investigation was confirmed on a 2019 October Release environment so this is a long standing issue which is not yet resolved; I have confirmed with Microsoft that they are aware of this issue and it is logged with the development team for resolution in a future version.
In the meantime, I have deployed customised versions of two stored procedures to the client so that they do not have the exchange rates being inserted into the exchange rate table.