[Error] - Error in unit of amount in currency KES. Must be rounded to 0.01 | The unit of 37.563.5343100000000000 KES being posted to account 32710001-- is outside the current penny rounding threshold | Posting has been canceled

Hi Readers,

Today, in this article we will share a very known issue of AX, most of the people are still struggling to find out the solution for the below error.

We got this error when we were posting Ledger Journal using X++. One of the developers find out the solution for the below error so we are posting the solution here.

Error:

Error in unit of amount in currency KES. Must be rounded to 0.01.
The unit of 37.563.5343100000000000 KES being posted to account 32710001-- is outside the current penny rounding threshold.
Posting has been canceled.



Solution:

1. Check in your code, how you are inserting Amount for Credit and Debit for Ledger Journal posting.
2. Make Amount field value till two decimals use roundDownDec method.
3. Please see the below code, we have written a AX Job to illustrate.

// Code written by Chirag Gupta
server static void roundDownDecExample(Args _args)
{
    real r = 37563.5343100000000000;
    real a;

    a = roundDownDec(r, 2);
    r = a;

    info(strFmt("%1", r));
}

4. You will get the output of the above AX Job like: 37563.53
5. Make the changes in your code according to our solution.
6. Please don't forget to run incremental CIL if you are running this code in batch job.

Comment below if this solution works for you and share this article with your colleague to help them.

Author:
Chirag Gupta
Microsoft Dynamics 365 AX Technical Consultant at IBM Bangalore

Date:
17-Sep-2019

Happy Learning !!

Comments

Popular posts from this blog

[Solved] : Error: String or binary data would be truncated. Cannot execute a data definition language command on Vendor (VendLedgerReconciliationTmp)

AX 2012 - Command prompt compilation / AxBuild.exe for Parallel Compile on AOS of X++ to P-code / Parallel Compilation

AX 2012 - How to send SSRS report in email as an attachment using X++

AX 2012 - How to stop AOS when services got stuck at stopping status

AX 2012 - How to make a form field mandatory

Error: There was no endpoint listening at net.tcp://your_server_name:8201/Dynamics AX/Services…

Fetch vendor address using X++ in AX 2012

AX 2012 - How to print current date and time on SSRS Report

[Solved] : AX 2012 - No connection could be made because the target machine actively refused it 192.168.10.249:8201