How to post transfer order from code X++
It took me to post transfer order from X++, and i dont find astandart method to do it. There is some code to do it. This is for Dax 2012 R3 version
static void postTransferOrder(Args _args) { InventTransferUpd inventTransferUpd; InventTransferMultiShip inventTransferMultiShip; InventTransferParmTable transferParmTable; InventTransferParmLine transferParmLine ; InventTransferJour inventTransferJourShiped; InventTransferLine transferLine ; InventDim inventDim; LineNum lineNum; //+ Create InventTransferParmTable //InventTransferMultiReceive //InventTransferMultiPick inventTransferMultiShip = InventTransferMultiShip::construct();//use diffrent classes for ship, receive and pick RunBaseMultiParm::initParm(inventTransferMultiShip); inventTransferMultiShip.insert(inventTransferTable, transferParmTable); transferParmTable.EditLines = true; transferParmTable.PickUpdateQty = InventTransferPickUpdateQty::All; transferParmTable.update(); //- Create InventTransferParmTable //create InventTransferParmLine this code from InventTransferParmLine::createReceiveLines you can use it for full qty posting { lineNum++; 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.InventLocationIdFrom; inventDim.initFromInventLocation(inventDim.inventLocation()); transferParmLine.InventDimId = InventDim::findOrCreate(inventDim).InventDimId; if (transferLine.inventDim().InventProfileId_RU) { inventDim = transferLine.inventDim(); inventDim.InventProfileId_RU = transferLine.inventDim().InventProfileId_RU; inventDim = InventDim::findOrCreate(inventDim); transferParmLine.InventDimId = inventDim.InventDimId; } transferParmLine.InventTransId = transferLine.InventTransId; transferParmLine.InventTransIdTransit = transferLine.InventTransIdTransitTo; transferParmLine.QtyShipNow = 1; // qty for ship transferParmLine.LineNum = lineNum; transferParmLine.insert(); } //post transfer order inventTransferUpd = InventTransferUpdShip::newParmBuffer(transferParmTable); inventTransferUpd.run(); }
Comments
Post a Comment