Acumatica 为什么要从数据库中选择的BQL返回当前屏幕的“”记录?

Acumatica 为什么要从数据库中选择的BQL返回当前屏幕的“”记录?,acumatica,Acumatica,我在销售订单屏幕SO301000中有BLC代码,它使用RowSelected事件来确定另一个客户是否存在CustomerOrderNbr,为此,我使用以下BQL来获取以前保存的记录: //Retrieving the order related to the customer order number SOOrder soorder2 = PXSelect<SOOrder, Where<SOOrder.customerOrderNbr, Equa

我在销售订单屏幕SO301000中有BLC代码,它使用RowSelected事件来确定另一个客户是否存在CustomerOrderNbr,为此,我使用以下BQL来获取以前保存的记录:

//Retrieving the order related to the customer order number
SOOrder soorder2 = PXSelect<SOOrder,
                   Where<SOOrder.customerOrderNbr, Equal<Required<SOOrder.customerOrderNbr>>,
                   And<SOOrder.customerID, Equal<Required<SOOrder.customerID>>,
                   And<Where<SOOrder.orderType, Equal<Constants.qt>,
                       Or<SOOrder.orderType, Equal<Constants.fi>,
                       Or<SOOrder.orderType, Equal<Constants.fo>,
                       Or<SOOrder.orderType, Equal<Constants.fr>>>>>>>>>.Select(Base, soorder.CustomerOrderNbr, soorder.CustomerID);
直到2019 R2,我们才注意到这个问题——此时,BQL select正在返回屏幕上当前的记录,作为OrderNbr。我不想要这个-我想要保存在数据库中的东西


如何阻止此BQL返回未保存的当前屏幕记录?

您可以使用tstamp字段将其过滤掉:


记录将具有空tstamp值,直到它们被保存到数据库中。

但问题仍然存在-为什么它会返回未保存的屏幕信息,包括订单号?。。。我不太确定,如果记录被插入缓存中,我可以看到它们是如何与DB记录合并的。
Where<SOOrder.tstamp, IsNotNull>