导入 TransferOrder 行 (InventTransferLine)
Import TransferOrder lines (InventTransferLine)
我正在尝试使用来自 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,这些在所选 header 中指定,表示 InventTransferTable 记录。
我不确定这两行:
1. inventTransferLine.QtyRemainReceive = inventTransferLine.QtyTransfer;
2. inventTransferLine.QtyRemainShip = inventTransferLine.QtyTransfer;
Remain从哪里接收?我不知道他们指的是什么。
你差不多可以走了。
你似乎有copied what others have done,这很好。
还有其他方法,一种使用 AxInventTransferTable
和 ...Line
类,另一种使用 TransferOrderCreateService
服务。如果在 AX 中工作,None 会给您带来很大的竞争优势。
InventDim
(参见 white paper)包含项目的库存、存储和跟踪维度。如果该项目需要在项目和产品上指定,您将需要设置更多字段。
- 产品尺寸。项目尺寸、颜色、大小和配置。
- 存储尺寸。这些是站点、仓库、位置和托盘。
- 跟踪维度。这些是批号和序列号。
发货是 two-step 的事情。首先,您从来源 site/warehouse 运送物品。稍后您会在目标 site/warehouse 处收到物品。
QtyRemainShip
和 QtyRemainReceive
字段表示每个步骤的剩余数量。
我正在尝试使用来自 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,这些在所选 header 中指定,表示 InventTransferTable 记录。
我不确定这两行:
1. inventTransferLine.QtyRemainReceive = inventTransferLine.QtyTransfer;
2. inventTransferLine.QtyRemainShip = inventTransferLine.QtyTransfer;
Remain从哪里接收?我不知道他们指的是什么。
你差不多可以走了。 你似乎有copied what others have done,这很好。
还有其他方法,一种使用 AxInventTransferTable
和 ...Line
类,另一种使用 TransferOrderCreateService
服务。如果在 AX 中工作,None 会给您带来很大的竞争优势。
InventDim
(参见 white paper)包含项目的库存、存储和跟踪维度。如果该项目需要在项目和产品上指定,您将需要设置更多字段。
- 产品尺寸。项目尺寸、颜色、大小和配置。
- 存储尺寸。这些是站点、仓库、位置和托盘。
- 跟踪维度。这些是批号和序列号。
发货是 two-step 的事情。首先,您从来源 site/warehouse 运送物品。稍后您会在目标 site/warehouse 处收到物品。
QtyRemainShip
和 QtyRemainReceive
字段表示每个步骤的剩余数量。