Create Transfer Order using X++ in d365fo.
static void CreateTransferOrder(Args _args)
{
inventTransferTable inventTransferTable;
inventTransferLine inventTransferLine;
numberSequenceReference numberSequenceReference;
numberSeq numberSeq;
ProdBom prodBom;
InventTable inventTable;
;
ttsBegin;
numberSeq = NumberSeq::newGetNum(InventParameters::numRefTransferId());
inventTransferTable.clear();
inventTransferTable.initValue();
// inventTransferTable.TransferId='000021';
inventTransferTable.TransferId = numberSeq.num();
numberSeq.used();
// inventTransferTable.InventDim
inventTransferTable.InventLocationIdFrom = '11';
inventTransferTable.modifiedField(fieldNum(InventTransferTable, InventLocationIdFrom));
inventTransferTable.InventLocationIdTo = '13';
inventTransferTable.modifiedField(fieldNum(InventTransferTable, InventLocationIdTo));
inventTransferTable.TransferStatus = InventTransferStatus::Created;
inventTransferTable.insert();
//Line
inventTransferLine.clear();
inventTransferLine.ItemId = 'D0001';
inventTransferLine.initFromInventTable(InventTable::find('D0001'));
inventTransferLine.initFromInventTransferTable(inventTransferTable, NoYes::Yes);
inventTransferLine.QtyTransfer = 10;
inventTransferLine.QtyShipNow = 10;
inventTransferLine.QtyReceiveNow = 10;
inventTransferLine.insert();
ttsCommit;
info(strFmt("%1",inventTransferTable.TransferId));
}
-----------or--------------------
static void CreateTransferOrderLine(Args _args)
{
InventTransferTable inventTransFerTable;
InventTransferLine inventTransFerLine;
InventTable inventTable;
NumberSeq numberSeq;
ttsBegin;
numberSeq = NumberSeq::newGetNum(InventParameters::numRefTransferId());
inventTransferTable.TransferId = numberSeq.num();
numberSeq.used();
inventTransferTable.InventLocationIdFrom = "13";
inventTransferTable.InventLocationIdTo = "11";
inventTransferTable.InventLocationIdTransit = InventLocation::find(inventTransferTable.InventLocationIdFrom).InventLocationIdTransit;
inventTransferTable.initFromAddress();
inventTransferTable.initValue();
inventTransferTable.initDeliveryMode();
inventTransferTable.initToAddress();
inventTransferTable.insert();
inventTransferLine.clear();
inventTransferLine.initFromInventTransferTable(inventTransferTable,NoYes::Yes);
inventTransferLine.ItemId = "D0001";
inventTransFerLine.LineNum = InventTransferLine::lastLineNum(inventTransferTable.TransferId) + 1;
inventTable = InventTable::find(InventTransferLine.ItemId);
inventTransferLine.initFromInventTable(InventTable);
inventTransferLine.QtyTransfer = 1.0;
inventTransferLine.QtyRemainReceive = 1.0;
inventTransferLine.QtyRemainShip = 1.0;
inventTransferLine.insert();
ttsCommit;
info(strFmt("%1",inventTransferTable.TransferId));
}
Keep Daxing!!