新语法读取/声明

2020-08-21 02:33发布

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

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


你好,

我结合使用READ TABLE语句和ASSIGNING,现在将其替换为以下代码:

尝试。

 ASSIGN mt_fu_root_data [键=  -target_key]至。

 捕获cx_sy_itab_line_not_found。

 " TBD:错误处理

 ENDTRY。

在此read语句之后,在旧版本中有一个ASSERT sy-subrc = 0。

如何使用新语法启用此功能? 如果我们现在在CATCH语句中绑定ASSERT cx_sy_itab_line_not_found这样的东西,可以替换掉吗?

有什么想法吗?

亲切的问候

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

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


你好,

我结合使用READ TABLE语句和ASSIGNING,现在将其替换为以下代码:

尝试。

 ASSIGN mt_fu_root_data [键=  -target_key]至。

 捕获cx_sy_itab_line_not_found。

 " TBD:错误处理

 ENDTRY。

在此read语句之后,在旧版本中有一个ASSERT sy-subrc = 0。

如何使用新语法启用此功能? 如果我们现在在CATCH语句中绑定ASSERT cx_sy_itab_line_not_found这样的东西,可以替换掉吗?

有什么想法吗?

亲切的问候

付费偷看设置
发送
4条回答
Alawn_Xu
1楼 · 2020-08-21 03:03.采纳回答
  • 您为什么要尝试"替换"所有内容?
  • READ TABLE语句和ASSERT语句没有直接相互链接。
  • 在ASSIGN语句失败后,sy-subrc仍设置为" 4分配未完成。 ",如果无法在各种情况下执行分配,则ASSERT sy-subrc =0。该语句仍适用于您的编码(除非您在ASSIGN和ASSERT之间添加更多可能会更改sy-subrc的编码):
尝试。
   ASSIGN mt_fu_root_data [键=  -target_key]至。
 捕获cx_sy_itab_line_not_found。
 ENDTRY。
 ASSERT sy-subrc = 0。

在其他情况下,您可能希望将其重写为类似内容,以确保分配成功。 这样,您就不必依赖sy-subrc,这也将使其变得更健壮和更直接:

 UNASSIGN 。
 尝试。
   ASSIGN mt_fu_root_data [键=  -target_key]至。
 捕获cx_sy_itab_line_not_found。
   " TBD:错误处理
 ENDTRY。
 ASSERT 已分配。
xfwsx85
2楼-- · 2020-08-21 02:48

从7.53开始,ASSERT有望替代。

如果您了解ASSERT的含义,请不要使用TRY CATCH替换它

hongfeng1314
3楼-- · 2020-08-21 03:07

。如果您使用的是ASSIGN mt_fu_root_data [key = -target_key] TO

然后为什么不检查sy-subrc = 0,或者如果要引发某些异常,则检查sy-subrc <> 0。

ASSIGN mt_fu_root_data [键= -target_key]至

如果sy-subrc = 0。

"做点事情

endif,

OR

ASSIGN mt_fu_root_data [键= -target_key]至

如果sy-subrc <> 0。

"引发异常。

endif。

参考: https://blogs.sap。 com/2015/10/25/abap-740-quick-reference/

此致

Teshan

落灬小鱼
4楼-- · 2020-08-21 02:43

这意味着不可能在断言之后替换读取语句,对吗?

BR

一周热门 更多>