0

我正在尝试使用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");

这是正确的还是首选的方法?

inventDim 在这里有什么用?我正在将此产品从仓库 A 转移到仓库 B,这些产品在所选标题中指定,即 InventTransferTable 记录。

我不确定这两行:

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

RemainReceive 从哪里接收?我不知道他们指的是什么。

4

1 回答 1

1

你或多或少都很好。你好像抄袭了别人的做法,这很好。

还有其他方法,一种使用AxInventTransferTable...Line类,另一种使用TransferOrderCreateService服务。如果在 AX 内部工作,没有人会给您带来太多竞争优势。

InventDim请参阅白皮书)包含项目的库存、存储和跟踪维度。如果项目需要按照项目和产品的指定,您将需要设置更多字段。

  • 产品尺寸。物品尺寸、颜色、尺寸和配置。
  • 存储维度。它们是站点、仓库、位置和托盘。
  • 跟踪维度。这些是批号和序列号。

装运是一个两步的事情。首先,您从源站点/仓库发货。稍后您会在目标站点/仓库收到该项目。QtyRemainShip和字段表示每个步骤的QtyRemainReceive剩余数量。

于 2016-01-11T07:59:53.690 回答