This Code For Received Transfer Order With Specific Quantity By X++ D365Fo
static void postTransferOrderReceive(Args _args) { InventTransferUpd inventTransferUpd; InventTransferMultiReceive inventTransferMultiReceive; InventTransferParmTable transferParmTable; InventTransferParmLine transferParmLine; InventTransferLine transferLine; InventDim inventDim; InventTransferTable inventTransferTable; // Parameters InventTransferId transferId = "Tech-000012"; Qty receiveQty = 6; ttsBegin; // Find the transfer order inventTransferTable = InventTransferTable::find(transferId); if (!inventTransferTable) { throw error(strFmt("Transfer order %1 not found.", transferId)); } ttsBegin; // Initialize the transfer receipt inventTransferMultiReceive = InventTransferMultiReceive::construct(); RunBaseMultiParm::initParm(inventTransferMultiReceive); inventTransferMultiReceive.insert(inventTransferTable, transferParmTable); transferParmTable.EditLines = true; transferParmTable.update(); ttsCommit; // Iterate through transfer lines and prepare to receive while select forUpdate transferLine where transferLine.TransferId == transferId && transferLine.ItemId == "#100" // For Specific Item { ttsBegin; transferParmLine.clear(); transferParmLine.initFromInventTransferLine(transferLine); transferParmLine.ParmId = transferParmTable.ParmId; transferParmLine.TransferId = transferParmTable.TransferId; inventDim = InventDim::find(transferParmLine.InventDimId); inventDim.clearNotProductDim(InventDimGroupSetup::newItemId(transferParmLine.ItemId)); inventDim.InventLocationId = inventTransferTable.InventLocationIdTo; inventDim.initFromInventLocation(inventDim.inventLocation()); transferParmLine.InventDimId = InventDim::findOrCreate(inventDim).InventDimId; transferParmLine.InventTransId = transferLine.InventTransIdReceive; transferParmLine.InventTransIdTransit = transferLine.InventTransIdTransitFrom; transferParmLine.QtyReceiveNow = receiveQty; // Quantity to receive transferParmLine.LineNum = transferLine.LineNum; transferParmLine.insert(); ttsCommit; } // Update and run the transfer receipt inventTransferUpd = InventTransferUpdReceive::newParmBuffer(transferParmTable); inventTransferUpd.run(); ttsCommit; info("Transfer order received successfully."); }
This Code Written By Mohamed Elsagher
Comments
Post a Comment