Hi,
Might be little late, but worth to share.
I had a similar issue where i was unable to post shipment for the transfer order which has been picked manually and using x++ i was trying to post the shipment.
I realized the Table/WMSPickingRoute/finishMulti gets called when we manually do picking list registration.
In such scenario, add a logic to check the expeditionStatus of this table and if its set to activated, call the above method(finishMulti) to set the status.
An example would look like below-
private void updateWMSStatus(InventTransferId _transferOrderId)
{
WMSPickingRoute wmsPickingRoute;
List wmsPickingRouteList = new List(Types::String);
select firstOnly RecId, expeditionStatus, PickingRouteID from wmsPickingRoute
index ParmIdx
where wmsPickingRoute.transRefId == _transferOrderId
&& wmsPickingRoute.transType == InventTransType::TransferOrderShip;
if (wmsPickingRoute.RecId && (wmsPickingRoute.expeditionStatus == WMSExpeditionStatus::Activated))
{
wmsPickingRouteList.addEnd(wmsPickingRoute.PickingRouteID);
WMSPickingRoute::finishMulti(wmsPickingRouteList.pack());
}
}
Hope it helps!