如何为Acumatica现有视图添加带OR的额外WHERE条件?
解决Acumatica中添加带OR的筛选条件的BQL编译错误
问题描述
在为Release Production Orders页面添加SOOrderNbr筛选字段时,修改视图的BQL代码出现编译错误。现有视图代码及修改后的错误代码如下:
现有视图代码
public PXProcessingJoin<AMProdItem, InnerJoin<Branch, On<AMProdItem.branchID, Equal<Branch.branchID>>>, Where<AMProdItem.released, Equal<False>, And<AMProdItem.lastOperationID, IsNotNull, And<AMProdItem.hold, Equal<False>, And<Branch.baseCuryID, Equal<Current<AccessInfo.baseCuryID>>, And<Where<AMProdItem.function, Equal<OrderTypeFunction.regular>, Or<AMProdItem.function, Equal<OrderTypeFunction.disassemble>>>>>>>> PlannedOrds;
错误的修改代码
public PXProcessingJoin<AMProdItem, InnerJoin<Branch, On<AMProdItem.branchID, Equal<Branch.branchID>>>, Where<AMProdItem.released, Equal<False>, And<AMProdItem.lastOperationID, IsNotNull, And<AMProdItem.hold, Equal<False>, And<Branch.baseCuryID, Equal<Current<AccessInfo.baseCuryID>>, And<Where<AMProdItem.function, Equal<OrderTypeFunction.regular>, Or<AMProdItem.function, Equal<OrderTypeFunction.disassemble>>>, And<Where<Current<PlannedOrdsFilter.sOOrderNbr>, IsNull, Or<AMProdItem.ordNbr, Equal<Current<PlannedOrdsFilter.sOOrderNbr>>>>>>>>>>> PlannedOrds;
错误原因
- 多余的
Where嵌套:在已有的Where块内,不需要额外嵌套Where来包裹Or条件,Acumatica BQL允许直接在And连接的条件中使用Or组合子条件。 - 语法括号不匹配:添加的代码片段未正确闭合泛型参数的尖括号,导致编译失败。
正确的实现代码
将筛选条件直接作为And的一个子条件,用Or组合“筛选字段为空”和“订单号匹配”两个逻辑,无需额外Where:
public PXProcessingJoin<AMProdItem, InnerJoin<Branch, On<AMProdItem.branchID, Equal<Branch.branchID>>>, Where<AMProdItem.released, Equal<False>, And<AMProdItem.lastOperationID, IsNotNull, And<AMProdItem.hold, Equal<False>, And<Branch.baseCuryID, Equal<Current<AccessInfo.baseCuryID>>, And<AMProdItem.function, Equal<OrderTypeFunction.regular>, Or<AMProdItem.function, Equal<OrderTypeFunction.disassemble>>, And<Current<PlannedOrdsFilter.sOOrderNbr>, IsNull, Or<AMProdItem.ordNbr, Equal<Current<PlannedOrdsFilter.sOOrderNbr>>>>>>>> PlannedOrds;
关键说明
- 当需要添加“可选筛选”(即筛选字段为空时显示全部,不为空时匹配对应值)的逻辑,直接在
And后添加Or组合的两个条件即可,无需嵌套Where。 - 确保所有泛型尖括号
<>正确闭合,每个BQL操作符(And/Or/Equal等)的参数都完整。
内容的提问来源于stack exchange,提问作者pmfith
相关产品推荐
相关产品推荐

