I have a customer using purchase ledger invoice matching. Ideally they want to set a maximum tolerance as an amount rather than a percentage. As far as I can tell, this is only possible by using the "match price totals" option and choosing either "amount" or "percentage and amount". It does not seem to be possible to use any of the other forms of invoice matching without setting the tolerance as a percentage.
Unfortunately it seems that where the price totals matching option includes "amount", one of the validation checks that AX runs is against the line value in the accounting currency. According to the information at https://ax.help.dynamics.com/en/wiki/invoice-matching-details-page-field-descriptions/ the invoice matching field "Unmatched purchase price total in accounting currency" is determined as follows (emphasis mine):
"The amount of the variance between the cumulative invoice price total and the purchase order price total, in the accounting currency. The invoice price total includes the invoice line that you are working with plus any posted and pending invoices for the same purchase order. The calculation to the accounting currency uses the exchange rate for the invoice that you are currently working with for the invoice price total. The exchange rate for the purchase order is used for the purchase order price total. The calculation uses the exchange rate as of the date that the purchase order line was created. This field is not displayed if None or Percentage is selected in the Match price totals field in the Accounts payable parameters page."
So my customer has a situation where they have placed a purchase order in JPY where their accounting currency is USD. The invoice has arrived and the amount on the invoice is exactly the same as the amount on the purchase order in JPY. However it is failing invoice matching because the exchange rate has moved since the purchase order was created such that the difference between the order amount at today's rate and the order amount when the order was placed, as expressed in the accounting currency USD, is more than the amount we specified as an allowable tolerance.
Has anybody else encountered this situation or found a workaround? It seems fairly insane for invoice validation to fail due to currency movements that the customer has no control over and which do not give them any grounds to reject the invoice. As far as I can tell the only workarounds would be either to turn off the price totals matching (or change to percentage based) or to accept the variance. The first of those options isn't really acceptable. A percentage based tolerance could potentially still be a very large sum of money. The second option creates a significant extra workload.
*This post is locked for comments