Salesline salesline;
InventTransOrigin inventTransOrigin;
InventTrans inventTrans;
while select salesline
where salesline.SalesId == 'YOURSALESID'
&& salesline.SalesStatus == SalesStatus::BackOrder
//&& salesline.LineNum == 'YOURLINENUM'
join inventTransOrigin
where InventTransOrigin.inventTransid == salesline.InventTransId
join inventTrans
where inventTrans.inventTransOrigin == inventTransOrigin.RecId
&& (inventTrans.StatusIssue == StatusIssue::ReservOrdered ||
inventTrans.StatusIssue == StatusIssue::ReservPhysical)
{
WHSRemoveReservationParameters tempParams = WHSRemoveReservationParameters::construct();
tempParams.parmInventTransId(salesline.InventTransId);
tempParams.parmItemId(salesLine.ItemId);
tempParams.parmInventDimId(inventTrans.InventDimId);
tempParams.parmQty(-inventTrans.Qty);
tempParams.parmSourceType(InventTransType::Sales);
tempParams.parmSourceRefId(salesline.SalesId);
tempParams.parmSourceTransId('');
tempParams.parmRemoveReservedPhysical(true);
tempParams.parmSkipStatusValidation(true);
WHSReservation::staticRemoveReservationForParams(tempParams);
info(strFmt("Reservations removed for sales order %1, line %2, item %3",salesline.SalesId,salesline.LineNum,salesline.itemid));
}