点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家们, 我们需要为组织中的某...
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家们, 我们需要为组织中的某...
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
专家们,
我们需要为组织中的某些规则创建BRF +应用程序。
我需要从 Billing标头表(DFKKINVBILL_H)中获取多个记录,然后获取相应的 Billing订单项明细(DFKKINVBILL_I)(使用键BILLDOCNO) ,然后获取相应的提供商合同详细信息(DFKK_VT_I)(使用VTREF键)。 在这个级别上,我需要验证每个账单文档详细信息(账单标题和项目)以及提供者合同详细信息的一些规则。
我使用规则集创建了一个函数,其中使用 DBlookup for DFKKINVBILL_H 获取所有账单文档标题,然后对于每个账单文档标题,我使用 NESTED LOOPs和DBlookup将DFKKINVBILL_I和DFKK_VT_I
。因为有3个DBlookups和2个嵌套循环,所以我认为这不是一个好主意,因为DFKKINVBILL_I和DFKK_VT_I的DBlookup将针对每个帐单文档进入数据库。 这肯定会导致性能问题。
它与循环内的SELECT语句相同,但这根本不是一个好方法。
示例:在我的情况下,嵌套循环和多个DBlookup
功能:Zvalidate_data
循环1从DFKKINVBILL_H以上开始。
第二个DBlookup DFKKINVBILL_I正在比较billdocno
循环2从上面的DFKKINVBILL_I
开始第三个DBlookup DFKK_VT_I。 比较vtref
=>"此处执行规则验证" <=
循环2结束。
循环1结束。
从性能的角度来看,你们中的任何人都可以提出最佳解决方案吗? 我们是否没有像内部联接/所有条目之类的东西或实现它的任何其他方法?
请注意: 我不想在ABAP层中收集上述表格数据,因为我们希望这些规则应独立于ABAP,并且将来如果 企业希望使用其他WHERE条件获取表数据,那么他们可以直接添加BRF +而不是ABAP。 我们正在寻找独立于编码的规则引擎。 因此,业务人员可以轻松地在BRF +中维护规则。
此致
王子
嗨,Derk,
我没有时间对此作出回应。
是的,规则运行器概念(event-> consumer)在那里。 但是它如何满足我避免嵌套循环的要求?
此外,确实应该在ABAP中而不是在BRF +中编写所有应用程序逻辑,如果是这种情况,我应该编写用于ABAP中所有条目的所有选择查询,然后将值传递给 BRF +执行一些验证?
因为BRF +为DBlookup提供了选项,所以我认为只获取BRF +中的所有数据并也执行验证。 因此,如果他们想更改where子句或想为规则过滤掉一些数据,则无需任何技术人员参与。
请您提出建议。
此致
王子
一周热门 更多>