D365 转移单的流程(装箱-装运-接受-登记)
public void InventTranfer()
{
System.Exception ex;
InventTransferUpd invTranUpd;
InventTransferParmTable invTransParmTable;
InventTransferParmTable invTransParmTbl;
InventTransferParmUpdate inventTransferParmUpdate;
InventTransferUpdPick InventTransferUpdPick;
InventTransferUpdShip InventTransferUpdShip;
InventTransferUpdReceive InventTransferUpdReceive;
InventTransferParmLine line;
ParmID parmId;
InventTransferTable inventTranstable = InventTransferTable::find(_transferId);
parmId = RunBaseMultiParm::getSysParmId();
invTransParmTable.clear();
invTransParmTable.initValue();
invTransParmTable.ParmId = parmId;
invTransParmTable.TransferId = inventTranstable.TransferId;
invTransParmTable.insert();
invTransParmTable.AutoReceiveQty = NoYes::No;
invTransParmTable.UpdateType = _type;//InventTransferUpdateType::PickingList;
invTransParmTable.PickUpdateQty = InventTransferPickUpdateQty::All;
invTransParmTable.ShipUpdateQty = InventTransferShipUpdateQty::All;
invTransParmTable.ReceiveUpdateQty = InventTransferReceiveUpdateQty::All;
invTransParmTable.EditLines = NoYes::Yes;
invTransParmTable.AutoReceiveQty = NoYes::No;
invTransParmTable.TransDate = systemDateGet();
invTransParmTable.modifiedField(fieldNum(InventTransferParmTable, ShipUpdateQty));
switch(invTransParmTable.UpdateType)
{
case InventTransferUpdateType::PickingList:
InventTransferUpdPick = InventTransferUpdPick::newParmBuffer(invTransParmTable);
if(InventTransferUpdPick.validate())
{
InventTransferUpdPick.run();
}
break;
case InventTransferUpdateType::Shipment:
InventTransferUpdShip = InventTransferUpdShip::newParmBuffer(invTransParmTable);
if(InventTransferUpdShip.validate())
{
InventTransferUpdShip.run();
}
break;
case InventTransferUpdateType::Receive:
InventTransferUpdReceive = InventTransferUpdReceive::newParmBuffer(invTransParmTable);
if(InventTransferUpdReceive.validate())
{
InventTransferUpdReceive.run();
}
break;
default:
}
}
public void register(InventTransferId _transferId)
{
WMSPickingRoute localWMSPickingRoute;
List list = new List(Types::String);
//全部领料单登记
while select localWMSPickingRoute
where localWMSPickingRoute.transType == InventTransType::TransferOrderShip &&
localWMSPickingRoute.transRefId == _transferId
{
list.addEnd(localWMSPickingRoute.PickingRouteID);
}
WMSPickingRoute::finishMulti(list.pack()); //Note - this is not in a single tts, so some routes might be posted and others fail
}
public void ReleaseToWarehouse(InventTransferId _transferId)
{
InventTransferTable InventTransferTable = InventTransferTable::find(_transferId);
WHSWarehouseRelease::transferOrderFormRelease(InventTransferTable);
}
}
浙公网安备 33010602011771号