点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
我在AMDP中使用标记了CDS表函数的逻辑。 我可以使用表函数访问数据,并且没有任何问题。 我的问题是EKKO.LOEKZ =''。 这种情况不起作用。 我曾尝试使用 IS NULL 和 LOEKZ ='',但是在这种情况下不会过滤记录。 当我在HANA存储过程中使用相同的查询时,这些空条件可以正常工作而没有任何问题,并且可以过滤数据。 请让我知道在where子句中使用NULL或空白时是否需要照顾AMDP或数据库功能。
CLASS zcl_openpo_amdp定义 上市 最后 创建公众。 公共部分。 接口:if_amdp_marker_hdb。 CLASS-METHODS get_po用于表功能zibp_cdstf_openpo。 受保护的部分。 专用部分。 ENDCLASS。 类别zcl_openpo_amdp实施。 HDB语言SQLSCRIPT选项的数据库功能方法get_po只读。 lt_openpo =选择ekpo.matnr作为产品,选择ekpo.werks作为产品, 来自" SCHEMA1"。" EKPO"作为ekpo内部加入" SDIERP"。" EKKO"作为ekko在ekko.mandt = ekpo.mandt上 ekko.ebeln = ekpo.ebeln ekko.bsart在('NB','KV')和 ekko.loekz =''; 返回:lt_openpo; 终结法。 ENDCLASS。
嗨
我相信您正在排除已删除的项目。 使用以下语句
此致
Venkat
Hi Siva,
您确定在引号之间没有留出多余的空格吗?
在摘要中,您使用的是loekz =''而不是loekz =''。
Siva Kalaiselvan ,
请注意,SPACE和NULL之间是有区别的。
让我用一个小例子来说明。
考虑一下 包含两个字段F1和F2的表,可以说我们向该表添加了5个条目。
现在您有一个包含2个字段和5个条目的表。 假设我们将另一个字段F3添加到该表中,而如果未选中IS INITIAL复选框,则添加此字段,则所有当前存在的条目将为字段F3保留NULL值。
现在,如果添加第六个条目而不填充F3,则该字段将保留空格值。
因此在上述情况下,如果使用IS NULL查询,将获得5个条目;如果使用Space查询,则将获得 一个条目。 如果在添加新字段F3时选中了" IS INITIAL"复选框,则所有条目都将保留空格值,并且不会有任何NULL值。
希望这解释了NULL和SPACE之间的区别。/p>
现在回到您的问题,我的以下代码运行正常。 粘贴以供您参考:
很少有建议:
1)我看不到任何USING子句作为您方法实现的一部分,这是必需的。
2)都检查一下
3)尝试使用其他表示法。 (例如,不等于X)
希望信息对您有所帮助!
致谢!
您说"不起作用"和"不起作用" 在这种情况下被过滤掉了",但您不会说您得到了什么。 您是说得到"零行"还是"就好像LOEKZ =''不在那儿"还是其他?
此外,LOEKZ =''和LOEKZ IS NULL的条件完全不同并返回 完全不同的行,但是您没有解释两种情况下的结果。
使用不同的SCHEMA1和SDIERP模式是正常的吗?
一周热门 更多>