dinsdag 29 mei 2012
WMS in Microsoft Dynamics AX 2009. Outbound Process Setup
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));
while
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);
}
}
}
}