从IBP提取数据| 如果输入参数为空或为NULL,则选择ALL

2020-08-19 13:40发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 我正在从CPI-DS...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我正在从CPI-DS任务的IBP计算方案中提取数据。 如您所知,在从IBP提取数据时,我们需要小心,因为错误的选择查询会影响性能。 想象一下,我想使用" CUSTOMERID"上的where条件查询表。 该客户ID将通过全局变量$ CUSTOMERID作为CPI-DS任务的输入。 如果业务用户提供客户ID作为输入,则此方法很好。 将where条件下推到IBP,但是如果业务用户未对此参数输入,则无论customerid为null还是customerid不为null,cpi-ds仍应从IBP提取所有数据。 如何在CPI-DS中实现这一目标?

当然,当$ customerid为空时,我可以初始化标志$ inputgiven = 0,并使用以下where条件。

(0 = $ inputgiven或ibp.customerid = $ customerid)

但是这种情况不会将 ibp.customerid = $ customerid 下推到IBP,这会影响性能,因为IBP必须先查询所有数据并将其发送到CPI-DS,然后再发送到CPI-DS 应该在数据集上应用where过滤器。

创建多个数据流不是一个选择,因为我可能有很多其他情况,而且我无法为这些过滤器的每个组合都创建数据流。 它只是不可操纵的。

有什么想法吗?

关于,
砂纸

9条回答
打个大熊猫
2020-08-19 14:28

我还尝试在Filter中进行以下操作:

ibp.customerid = nvl($ customerid,ibp.customerid)

这有效,但过滤器未下推至IBP。 对我而言,将此过滤器推至IBP非常重要,因为真正的计算在那里发生。

任何想法 Jeff Kresse 吗?

一周热门 更多>