Set up excise taxes in Dynamics AX

In regard to implementing Excise tax in Saudi Arabia, I would like to share the link below to all companies have been implemented Dynamics AX 2012

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

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

Join other followers:

error: Content is protected !!