Usually you get this error when your code is not in transaction begin and commit.
Write your code between ttsbegin and ttscommit
Ex:
ttsbegin;
salesLine.initFromSalesTable(_retOrdSalesTable);
salesLine.ItemId = itemId;
salesLine.SalesUnit = InventTableModule::find(itemId, ModuleInventPurchSales::Invent).UnitId;
salesLine.SalesPrice = unitPrice;
if(salesLine.SalesPrice == 0.00)
{
inventDimPrice.clear();
inventDimPrice.InventSiteId = inventSiteId;
inventDimPrice = InventDim::findOrCreate(inventDimPrice);
salesLine.setPriceAgreement(inventDimPrice);
}
salesLine.LineAmount = salesLine.calcLineAmount();
salesLine.SalesQty = 0;
inventBatch = InventBatch::find('999', itemId);
if(!inventBatch)
{
select firstfast inventBatch order by
createdDateTime desc where inventBatch.itemId == itemId
&& inventBatch.inventBatchId != '';
}
inventDimGet.InventLocationId = inventLocationId;
inventDimGet.InventSiteId = inventSiteId;
inventDimGet.wMSLocationId = wMSLocationId;
inventDimGet.inventBatchId = inventBatch.inventBatchId;
inventDimGet = InventDim::findOrCreate(inventDimGet);
// find inventDim
salesLine.InventDimId = inventDimGet.inventDimId;
salesLine.createLine(true, true, true, false, false, false, false, false);
salesLine.selectForUpdate(true);
salesLine.ExpectedRetQty = -qty;
salesLine.update();
ttscommit;