Error message when you try to post an invoice for a purchase order in Microsoft Dynamics AX: “Voucher [voucher number] does not balance”

Description: When you try to post an invoice for a purchase order that has a penny difference of 0.10 in Microsoft Dynamics AX, you receive an error message that resembles one of the following:

Error message 1

Voucher ‘<voucher number>‘ does not balance. The difference is X.XX USD.

Error message 2

Info Posting
Voucher <voucher number>, date <date>, account <account number>, amount currency <amount currency used on the journal>, amount MST <amount of base currency>, alternative amount 0.00, currency <currency>, text Purchase invoice <invoice number>

Warning Posting the transactions on voucher <voucher number> do not balance as per <date>. (Company currency: 0.10 – secondary currency: 0.00)

Error Posting
Posting has been cancelled.


This problem occurs because Microsoft Dynamics AX has not been set up to handle rounding problems that may occur because of foreign currency exchange or general rounding problems. In this example, the maximum penny difference parameter is set to less than the difference of 0.10, which is indicated at the end of the error message. For example, the maximum penny difference parameter is set to 0.05.




To resolve this problem, change the maximum penny difference parameter to a higher amount to allow for the posting. To do this, follow these steps:

  1. Click General ledger, expand Setup, click Parameter, click the Ledgertab, and then type a higher amount than the difference in the journal in the Maximum penny difference For example, you can type 0.20.

    Note If you are using secondary currency, type the same amount in the Maximum penny-rounding in secondary currency field.

  2. Click General ledger, expand Setup, expand Posting, and then click System accounts.

Make sure that account numbers are entered for the “Penny difference in default currency” posting type and for the “Maximum penny rounding in secondary currency” posting type if you are using secondary currency.

How to register Item In Ax 2009 code (using X++)

Last days user created transfer Order to transfer Qty from warehouse to new warehouse, but unfortunately the new warehouse not has default location so The QTY already shipped but could not received at new warehouse.


1- Create default location for new warehouse.

2- Assign default location to each line in transfer order by go to Inventory —> registration


3- Set Default location for new warehouse


4- select auto check box

5- Then click post all.

All steps above you have to it for each line in transfer order, so in case you have many transfer orders it will be tuff task.

In that case I have create below job to register items automatically for transfer order

static void InventTransRegistrationFromCode(Args _args)
    InventTransWMS_Register inventTransWMS_register;
    InventTrans             inventTrans ;

    InventDim               inventDim  ;

    TmpInventTransWMS       tmpInventTransWMS;

    inventmovement          movement;
    Common common;
    InventTransferTable     transferTable;
    inventTransferLine      transferLine;
    int                     row;


    while select transferline where Transferline.TransferId == ‘TRO-180587’

        inventtrans = inventtrans::findTransId(transferline.InventTransIdReceive) ;

        if(inventTrans.StatusReceipt == StatusReceipt::Registered)
            continue ;

        inventDim = inventTrans.inventDim();
        if(!(inventdim.InventLocationId == ‘28995’ && inventDim.wMSLocationId == ”))
            continue ;


        tmpInventTransWMS.InventQty = inventTrans.Qty;
        inventDim.wMSLocationId = ’00’;
        tmpInventTransWMS.InventDimId = inventDim::findOrCreate(inventDim).inventDimId;

        Common = inventTrans ;

        movement = InventMovement::construct(common);

        if (movement.newMovement_TransferReceipt())
            movement = movement.newMovement_TransferReceipt();
            movement = movement.newMovement_TransferIssueReceive() ? movement.newMovement_TransferIssueReceive() : movement;
            movement = movement.newMovement_TransferReceipt() ? movement.newMovement_TransferReceipt() : movement;

        inventTransWMS_register = new inventTransWMS_register( movement , tmpInventTransWMS);

        inventTransWMS_register::updateInvent(inventTransWMS_register, tmpInventTransWMS);



Hint: Kindly in case you have comment or alternative solution please added below.

How to add new action under Context menu in Dynamics AX

Each node in the AOT contains a set of available actions. You can access these actions from the
context menu, which you can open by right-clicking any node.

You can create custom actions for any element in the AOT by enlist a class as a new add-in by following:
1. Create a new menu item and give it a meaningful name, a label, and Help text.
2. Set the menu item’s Object Type property to Class.
3. Set the menu item’s Object property to the name of the class to be invoked by the add-in.
4. Drag the menu item to the SysContextMenu menu.
5. If you want the action available only for certain nodes, you need to modify the verifyItem
method on the SysContextMenu class.

Common prefixes in Microsoft Dynamics AX


Prefix Description
As Microsoft Dynamics AX typed data source
Axd Microsoft Dynamics AX business document
Asset Asset Asset management
BOM Bill of material
COS Cost accounting
Cust Customer Customer
Dir Directory, global address
EcoRes Economic resources
Human resources Human resources
Invent Inventory management
JMG Shop floor control
KM knowledge management
Ledger General Ledger
PBA Product builder
Prod Production
Proj Project
Purch Purchase
Req Requirements
Sales Sales
SMA Service management
SMM Sales and marketing management also called customer relationship management (CRM)
Sys Application frameworks and development tools
Tax Tax engine
Vend Vendor
Web Web framework
WMS Warehouse management

Microsoft Dynamics 365: What You Need to Know

In July 2016, Microsoft announced it would be combining its CRM and ERP solutions into a single cloud-based bundle called Microsoft Dynamics 365. The announcement raised many questions among users about whether it will replace current Microsoft products and how users can implement these solutions.

One thing is clear, though – Dynamics 365 enables employees to work from anywhere at any time through their mobile devices, and Microsoft believes this will be a game changer for its customers. Read on to learn more about Dynamics 365 and mobility.

Microsoft’s New Approach to Business Applications

Microsoft has billed Dynamics 365 as “the next generation of intelligent business applications” that “enable organizations to grow, evolve, and transform.” But, what does that mean in practice?

According to Microsoft spokespeople, Dynamics 365 is a re-architecting and repackaging of the capabilities of Dynamics CRM, Dynamics AX, and a small business SaaS offering called “Project Madeira.” Furthermore, Dynamics 365 complements Microsoft’s current lineup of CRM and ERP solutions (the existing ERP systems will not go away). And, it will connect to Office 365, making it simple for users to communicate, share, and request information from within one platform.

A New Licensing Model

Microsoft offers two licensing models for Dynamics 365: an application-based model and a role-based model.

Under the application-based model, businesses can purchase as many apps as they need, even if it’s only a single app. Conversely, the role-based model enables employees to access mission-critical apps. For example, a salesperson doesn’t just need to use a CRM app. He or she also needs data from field service representatives and the customer service team. The information from those app categories allows the salesperson to not merely do his or her job, but excel at it.

What People Are Saying about Dynamics 365

The Dynamics 365 announcement attracted a great deal of attention from industry analysts. They note that it represents a new approach to CRM and ERP applications from the software giant.

Read More


Get every new post on this blog delivered to your Inbox.

Join other followers:

error: Content is protected !!