In a customization, I have overridden the behavior of a SO Line inventory ID RowUpdating event, so that the Alternate ID is set to a different value for a certain condition. To do so, I created a new attribute class that inherits from AlternativeItemAttribute and use the new class for an AlternateID instead. The new attribute class overrides the RowUpdating method to do so.
In the overridden method I perform some queries with Fluent BQL, and they just appear to hang. Example:
InventoryItemMaint itemGraph = PXGraph.CreateInstance<InventoryItemMaint>();
InventoryItem item = itemGraph.Item.Select<InventoryItem>()
.Where(i => i.InventoryID == newRow.InventoryID)
.FirstOrDefault();
I ended up replacing it with regular BQL to resolve it (see below), but I'd rather use F-BQL, plus I'd like to know if I'm doing something wrong.
InventoryItem item = new PXSelectReadonly<InventoryItem,
Where<InventoryItem.inventoryID, Equal<Required<InventoryItem.inventoryID>>>>(itemGraph)
.SelectSingle(newRow.InventoryID);