Okas ... lo que se puede validar son 2 cosas los embarques y las salidas de inventario no liberadas.
para el de embarques tenemos que ver la tabla soshipline, para el de la salida de inventarios tenemos que checar intran.
Para la de embarques veremos primero las lÃneas embarcadas que tengas abiertas.
select InvtID,QtyBO,QtyFuture,QtyOrd,QtyPick,QtyPrevShip,QtyShip,ShipperID,*
from SOShipLine where Status = 'O'
Lo que verÃamos son los artÃculos abiertos dentro de embarques, luego lo que hice fue unir con la tabla del encabezado soshipheader, para ver el estado del embarque, porque puede ser que las lÃneas estén abiertas y el embarque cancelado, en el query estoy agregando las columnas de Inbatnbr, que es el número de lote de salida de inventarios, para poder rastrear si la salida se ha liberado.
select a.InvtID,a.QtyBO,a.QtyFuture,a.QtyOrd,a.QtyPick,
a.QtyPrevShip,a.QtyShip,a.ShipperID,b.INBatNbr,b.ARBatNbr,b.ShipRegisterID,b.Status,
b.Cancelled, b.AdminHold
from SOShipLine a, SOShipHeader b where a.ShipperID = b.ShipperID and a.Status = 'O'
Ya que descartes los embarques veamos ahora las salidas de inventario, checaremos intran con este query.
select batnbr, InvtID, Qty, SiteID, WhseLoc, PerEnt, PerPost, *
from INTran where Rlsed = 0javascript:void(0);
Con eso sabrÃas si tienes artÃculos pendientes por liberar los cuales te están afectado el campo qtynotship