点击此处---> 群内免费提供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
霍尔格
Denise,我不认为IN运算符在这种情况下会有所帮助。 另外,SAP Note是指Microsoft SQL Server数据库而不是SAP源。
作为一种解决方法,请将OBJECTCLAS值列表放在.txt文件中,并使用ABAP数据流将其与CDHDR进行内部联接。 确保将.txt文件放在SAP工作目录中。
+1
两个好主意。
不,in运算符不会 不起作用,因为您仍在传递单个值。 ($ param)
中的
列等于
column = $ param
如果$ param包含文本'abc' ," cde"," efg",它仍然是与单个字符串的比较。
column ="'abc','cde','efg'"
(找不到)。
在in列表中使用多个 值,您将需要动态sql(在查询执行时创建的sql,并且该SQL会遭受明显的性能损失(更不用说这不能在ABAP数据流中完成))或具有多个参数。
($ param1,$ param,$ param3)中的列
嗨,
感谢您的回答。
我在SAP系统中通过表维护对话框创建了一个Z表,并将该表用于我的where条件。
...
和CDHDR.OBJECTCLAS = ZMIS_HELP.WERT_CHAR
和ZMIS_HELP.TABELLE ='CDHDR'
和ZMIS_HELP.SPALTE ='OBJECTCLAS'
我也可以将此帮助表用于其他ABAP数据流中的其他条件。
我不能(没有权利)将txt上载到我们的SAP系统中。
霍尔格
您可以在运算符中使用
https://launchpad.support.sap.com/#/notes/2595002
请检查此项以获取更多详细信息,并确保您使用的是全局变量支持in运算符的版本
一周热门 更多>