vrijdag 14 september 2012

How to: Search Application Object Properties


Source: http://msdn.microsoft.com/en-us/library/aa661186(v=ax.50).aspx

  1. Click the node that you want to search in the Application Object Tree (AOT).
    For example, click the Tables node to search for a table property.

  2. Press Ctrl+F to open the Find dialog box.

  3. Set the Search field to All nodes.

  4. Type an expression in the Containing text field of the format:

    PropertyName : *#PropertyValue

    For example, to find all instances where the TableGroup property is set to Parameter, type:

    TableGroup: *#Parameter

dinsdag 29 mei 2012

WMS in Microsoft Dynamics AX 2009. Outbound Process Setup

Picking over multiple warehouses can be setup in the shipment reservation sequence.

Shipment reservation sequence

The shipment reservation sequence defines how and where the shipment reservation process reserves. You set up shipment reservation processes under [Inventory management > Setup > Distribution > Shipment reservation sequence].

In this example, the reservation sequence at first tries to reserve inventory from Warehouse 23 and if this warehouse does not have enough physical inventory, Warehouse 22 is the next.

The shipment reservation process contains different layers: Reservation sequence -> Reservation combinations -> Reservation methods.

The reservation combination must be enabled for pallet transports and picking route logic.

Outbound rules

To control the process after picking, an outbound rule must be used and associated with the shipment. In this case, the picked inventory must be delivered to the shipment staging area and it must be loaded before the shipment can be sent.

Source: http://blogs.msdn.com/b/dynamicsaxscm/archive/2009/04/26/wms-in-microsoft-dynamics-ax-2009-outbound-process-setup.aspx

woensdag 16 mei 2012

List tables with changed data as of certain date


static void ADU_BMS_TableDataChanged(Args _args)
    TableId         tableId;
    Dictionary      dict = new Dictionary();
    SysDictTable    dictTable;
    Common          common;

    TimeZone        tz;
    TransDate       fromDate;
    UtcDateTime     fromDateTime;

    DataArea        dataArea;

    fromDate = str2date("16042012", 123);
    fromDateTime = datetobeginUtcDateTime(fromDate, tz);

    info(strfmt("Tables with changed data as of %1", fromDateTime));

    select  dataArea
    where   !dataArea.isVirtual
        changeCompany (dataArea.Id)
            // Clear used variables
            tableId     = 0;
            dictTable   = null;
            common      = null;

            // Actions for company
            tableId = dict.tableNext(0);

            while( tableId)
                dictTable = new DictTable(tableId);

                if (!dictTable.isTmp() && !dictTable.isMap() && !dictTable.isView())
                    common = dictTable.makeRecord();

                    select  count(RecId)
                    from    common
                    where   common.createdDateTime  >= fromDateTime
                        ||  common.modifiedDateTime >= fromDateTime;

                    if (common.RecId)
                        info(strfmt("%1:%2 - %3 changes", dataArea.Id, dictTable.name(), common.RecId ));

                tableId = dict.tableNext(tableId);



woensdag 25 januari 2012

What is MST?

MST is short for "Monetary Standard".

Or also:
MST = Master = Currency of the Company
Cur = Currency (needs also a transdate or exchangeratefield)

AmountMST refers to the base currency you keep your records of the system in, i.e. "Company currency".
So for example when recording an invoice you keep the amounts both in your company currency, i.e. MST (for example DKK), and the invoice currency, for example EUR.

source: http://blogs.msdn.com/b/palle_agermark/archive/2007/04/24/what-is-mst.aspx

maandag 16 januari 2012

Inventory Transaction modifications


When stock physically enters or leaves AX, it passes through class InventUpd_Physical.

  • UpdatePhysicalReceipt (stock entering)
  • UpdatePhysicalIssue (stock leaving)

Both at line “updPhysical+= inventTrans.Qty”

You can use the movement variable to ask whatever you need to enter into / modify the inventTrans record.


Financial values for these transactions are handled the same way, through class InventUpd_Financial.

  • UpdateFinancialReceipt
  • UpdateFinancialIssue