语法检查警告

2020-09-16 08:04发布

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

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


 

大家好,

我正在更新tcode以添加两个要过滤的字段。 下面的代码显示运行正常,但是我收到了语法检查警告,提示键字段" MJAHR"的条件未测试是否相等。 有点奇怪,我没有使用该字段。 有人可以帮我解释为什么会这样吗?

非常感谢!

此致

林恩

清除lv_mseg_lgort。
 选择单个lgort进入lv_mseg_lgort
 从mseg
 其中mblnr = ls_output-refbn和
       zeile = ls_output-refbz。
 如果sy-subrc = 0。
       ls_output-lgort = lv_mseg_lgort。
 其他。
       ls_output-lgort =''。
 万一。
 

"语法检查警告
此警告仅在SLIN中显示
在" SELECT SINGLE ..."中,键字段" MJAHR"的WHERE条件不会
测试是否相等。因此, 该单个记录可能不是
唯一。
内部消息代码:MESSAGE GSB"

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

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


 

大家好,

我正在更新tcode以添加两个要过滤的字段。 下面的代码显示运行正常,但是我收到了语法检查警告,提示键字段" MJAHR"的条件未测试是否相等。 有点奇怪,我没有使用该字段。 有人可以帮我解释为什么会这样吗?

非常感谢!

此致

林恩

清除lv_mseg_lgort。
 选择单个lgort进入lv_mseg_lgort
 从mseg
 其中mblnr = ls_output-refbn和
       zeile = ls_output-refbz。
 如果sy-subrc = 0。
       ls_output-lgort = lv_mseg_lgort。
 其他。
       ls_output-lgort =''。
 万一。
 

"语法检查警告
此警告仅在SLIN中显示
在" SELECT SINGLE ..."中,键字段" MJAHR"的WHERE条件不会
测试是否相等。因此, 该单个记录可能不是
唯一。
内部消息代码:MESSAGE GSB"

付费偷看设置
发送
7条回答
四川大学会员
1楼 · 2020-09-16 08:26.采纳回答

这是在告诉您,从技术上讲,数据库中可能有多个具有相同MBLNR的条目,每个条目都属于不同的MJAHR。 结合SELECT SINGLE,它告诉您,在这种情况下,您将只获得随机结果。

只有添加MJAHR,才能保证获得您想要的记录。

nice_wp
2楼-- · 2020-09-16 08:19

Lynn,

还在where子句中使用MJAHR,这将满足主键要求,同时结果将保持一致。

K.Kiran。

一只江湖小虾
3楼-- · 2020-09-16 08:16

嗨琳,

选择单个通常是从表中获取唯一行,即传递完整键。

当键为部分键时,扩展检查将显示错误,因为它可能会拾取随机行。

您可以在

处获得更多信息。

https://help.sap .com/doc/abapdocu_751_index_htm/7.51/zh-CN/abapselect_single.htm

要解决此问题,您可以在where子句中传递完整密钥,也可以使用最多选择1行

CPLASF-自律
4楼-- · 2020-09-16 08:33

感谢Kiran解决了问题:)

黑丝骑士
5楼-- · 2020-09-16 08:26

https://blogs.sap.com/ 2015/03/11/从数据库表中选择一行/

"该语法记录了程序中语句的语义,如果未指定完整键,则扩展程序检查会警告您。"

槿木_熙
6楼-- · 2020-09-16 08:12

感谢Matthew,您说得对,我应该弄清楚为什么。

干杯

lyn

Alawn_Xu
7楼-- · 2020-09-16 08:24

Hi Himanshu,

问题已解决,谢谢您的帮助:)

一周热门 更多>