DS 4.2在ECC ABAP数据流的参数中传递(数组)

2020-08-24 18:21发布

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

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


你好

我创建了一个带有where条件的ABAP数据流

CDHDR.OBJECTCLAS = CDPOS.OBJECTCLAS

...

和CDHDR.UDATE> = $ P_DATE_START

和CDHDR.UDATE <= $ P_DATE_STOP

和CDHDR.OBJECTCLAS = $ P_OBJECTCLAS

$ P_OBJECTCLAS由全局变量$ G_OBJECTCLAS('BELEG')

填充

一切都很好,但是现在我必须从CDHDR/CDPOS表中下载仅比'BELEG'更多的东西。

是否有一种动态分辨率,无需查找即可将多个值传递给我的where条件

CDHDR.OBJECTCLAS = $ P_OBJECTCLAS吗?

Thx

霍尔格

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

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


你好

我创建了一个带有where条件的ABAP数据流

CDHDR.OBJECTCLAS = CDPOS.OBJECTCLAS

...

和CDHDR.UDATE> = $ P_DATE_START

和CDHDR.UDATE <= $ P_DATE_STOP

和CDHDR.OBJECTCLAS = $ P_OBJECTCLAS

$ P_OBJECTCLAS由全局变量$ G_OBJECTCLAS('BELEG')

填充

一切都很好,但是现在我必须从CDHDR/CDPOS表中下载仅比'BELEG'更多的东西。

是否有一种动态分辨率,无需查找即可将多个值传递给我的where条件

CDHDR.OBJECTCLAS = $ P_OBJECTCLAS吗?

Thx

霍尔格

付费偷看设置
发送
4条回答
ZJXianG
1楼-- · 2020-08-24 18:32

Denise,我不认为IN运算符在这种情况下会有所帮助。 另外,SAP Note是指Microsoft SQL Server数据库而不是SAP源。

作为一种解决方法,请将OBJECTCLAS值列表放在.txt文件中,并使用ABAP数据流将其与CDHDR进行内部联接。 确保将.txt文件放在SAP工作目录中。

SKY徐
2楼-- · 2020-08-24 18:44

+1

两个好主意。

不,in运算符不会 不起作用,因为您仍在传递单个值。 ($ param)

中的

列等于

column = $ param

如果$ param包含文本'abc' ," cde"," efg",它仍然是与单个字符串的比较。

column ="'abc','cde','efg'"

(找不到)。

在in列表中使用多个 值,您将需要动态sql(在查询执行时创建的sql,并且该SQL会遭受明显的性能损失(更不用说这不能在ABAP数据流中完成))或具有多个参数。

($ param1,$ param,$ param3)中的列

南山jay
3楼-- · 2020-08-24 18:43

嗨,

感谢您的回答。

我在SAP系统中通过表维护对话框创建了一个Z表,并将该表用于我的where条件。

...

和CDHDR.OBJECTCLAS = ZMIS_HELP.WERT_CHAR

和ZMIS_HELP.TABELLE ='CDHDR'

和ZMIS_HELP.SPALTE ='OBJECTCLAS'

我也可以将此帮助表用于其他ABAP数据流中的其他条件。

我不能(没有权利)将txt上载到我们的SAP系统中。

霍尔格

宇峰Kouji
4楼-- · 2020-08-24 18:48

您可以在运算符中使用

https://launchpad.support.sap.com/#/notes/2595002

请检查此项以获取更多详细信息,并确保您使用的是全局变量支持in运算符的版本

一周热门 更多>