Recently, I had a requirement to ship transfer automatically when picked, but almost everything on the internet talked about automating the whole process.
This is the code I wrote, this work brilliantly with Tasklet and as long as this is added just after the MOB_postPickOrder.process() after the
case #PickWMSPickRouteOrderPrefix : // WMS Pick Order, picking Transfer Order will automatically ship it. Just pass wmsOrderTrans.inventTransRefId as a parameter to the following function.
static void PostInventTransferOrderShip(Args _args)
{
inventTransferParmUpdate inventTransferParmUpdate;
ParmId parmID;
InventTransferTable inventTransferTable;
InventTransferParmTable inventTransferParmTable;
InventTransferMultiShip inventTransferMultiShip;
select inventTransferTable
where inventTransferTable.TransferId == "WHATEVER TRANSFER ORDER";
parmId = RunBaseMultiParm::getSysParmId();
inventTransferParmTable.clear();
inventTransferParmUpdate.ParmId = parmID;
inventTransferParmUpdate.insert();
inventTransferParmTable.initValue();
inventTransferParmTable.ParmId = parmId;
inventTransferParmTable.TransferId = inventTransferTable.TransferId;
inventTransferParmTable.ShipUpdateQty = InventTransferShipUpdateQty::All;
inventTransferParmTable.EditLines = NoYes::Yes;
inventTransferParmTable.AutoReceiveQty = NoYes::No;
inventTransferParmTable.UpdateType = InventTransferUpdateType::Shipment;
inventTransferParmTable.insert();
//Transfer Order created above should have status as shipped
inventTransferMultiShip = InventTransferMultiShip::construct();
inventTransferMultiShip.runUpdate(inventTransferParmTable);
}
This is the code I wrote, this work brilliantly with Tasklet and as long as this is added just after the MOB_postPickOrder.process() after the
case #PickWMSPickRouteOrderPrefix : // WMS Pick Order, picking Transfer Order will automatically ship it. Just pass wmsOrderTrans.inventTransRefId as a parameter to the following function.
static void PostInventTransferOrderShip(Args _args)
{
inventTransferParmUpdate inventTransferParmUpdate;
ParmId parmID;
InventTransferTable inventTransferTable;
InventTransferParmTable inventTransferParmTable;
InventTransferMultiShip inventTransferMultiShip;
select inventTransferTable
where inventTransferTable.TransferId == "WHATEVER TRANSFER ORDER";
parmId = RunBaseMultiParm::getSysParmId();
inventTransferParmTable.clear();
inventTransferParmUpdate.ParmId = parmID;
inventTransferParmUpdate.insert();
inventTransferParmTable.initValue();
inventTransferParmTable.ParmId = parmId;
inventTransferParmTable.TransferId = inventTransferTable.TransferId;
inventTransferParmTable.ShipUpdateQty = InventTransferShipUpdateQty::All;
inventTransferParmTable.EditLines = NoYes::Yes;
inventTransferParmTable.AutoReceiveQty = NoYes::No;
inventTransferParmTable.UpdateType = InventTransferUpdateType::Shipment;
inventTransferParmTable.insert();
//Transfer Order created above should have status as shipped
inventTransferMultiShip = InventTransferMultiShip::construct();
inventTransferMultiShip.runUpdate(inventTransferParmTable);
}
No comments:
Post a Comment