Search code examples
axaptadynamics-ax-2012dynamics-ax-2012-r3

Import TransferOrder lines (InventTransferLine)


I am trying to import a transfer order line with this code from Transfer Orders Import:

InventDim inventDim;
InventTransferLine inventTransferLine;
#define.ShipDate("1/1/2016")
#define.ReceiveDate("1/1/2016")

//Order line
inventDim.clear();
inventDim.InventSiteId = "GENERAL";
inventDim.InventLocationId = "103";

inventTransferLine.clear();
inventTransferLine.initValue();

inventTransferLine.ItemId = "A01103472";
inventTransferLine.InventDimId = InventDim::findOrCreate(inventDim).inventDimId;
inventTransferLine.QtyTransfer = 2;

inventTransferLine.initFromInventTableModule(InventTableModule::find(inventTransferLine.ItemId,ModuleInventPurchSales::Invent));

inventTransferLine.QtyRemainReceive = inventTransferLine.QtyTransfer;
inventTransferLine.QtyRemainShip = inventTransferLine.QtyTransfer;

inventTransferLine.ShipDate = str2Date(#ShipDate, 213);
inventTransferLine.ReceiveDate = str2Date(#ReceiveDate, 213);

inventTransferLine.initFromInventTransferTable(inventTransferTable, false);
inventTransferLine.LineNum = InventTransferLine::lastLineNum(inventTransferLine.TransferId) + 1.0;

if (inventTransferLine.validateWrite())
{
    inventTransferLine.insert();
}
else
    throw error("Order line");

Is this the correct or the preferred way to do it?

What's the use of inventDim here? I am transferring this product from warehouse A to warehouse B and those are specified in the selected header, meaning the InventTransferTable record.

And i am not sure about these two lines:

1. inventTransferLine.QtyRemainReceive = inventTransferLine.QtyTransfer;
2. inventTransferLine.QtyRemainShip = inventTransferLine.QtyTransfer;

RemainReceive from where? i can't figure out what are they referring to.


Solution

  • You are more or less good to go. You seems to have copied what others have done, which is good.

    There are other ways to it, one using AxInventTransferTable and ...Line classes, another using the TransferOrderCreateService service. None will give you much competitive advantage, if working from within AX.

    The InventDim (see white paper) contains the inventory, storage, and tracking dimensions of the item. You will need to set more fields if the item requires it as specified on the item and product.

    • Product dimensions. Item dimensions, color, size and configuration.
    • Storage dimensions. These are Site, Warehouse, Location, and Pallet.
    • Tracking dimensions. These are Batch number and Serial number.

    A shipment is a two-step thing. First you ship the item from the source site/warehouse. Later you receive the item at the target site/warehouse. The QtyRemainShipand QtyRemainReceive fields represents the quantity remaining for each step.