有关在表表达式中使用Assign语句的问题

2020-08-31 12:30发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)这里是所有ABAP专家的一个简单...

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

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


这里是所有ABAP专家的一个简单问题。
对于以下代码,我应该对ASSIGN关键字使用SY-SUBRC = 0还是对表表达式使用CATCH CX_SY_ITAB_LINE_NOT_FOUND? 不确定其工作原理...感谢您的见解!

"检查是否在BPC主数据昏暗表中找到了员工
ASSIGN [(lc_id)= ]到FIELD-SYMBOL()。
6条回答
SAP砖家
2020-08-31 12:57

我只想在这里再增加1点,如果您在表表达式(table [number])中使用索引,则可以将其包装起来 用TRY ... CATCH编码,但是如果您要使用组件名称(作为示例)而组件名称错误,那么它将成为不可捕获的异常。 因此,我认为使用组件名称的最佳方法是首先检查组件的存在:

 DATA(ref)= NEW flighttab()。
 将ref-> *分配给FIELD-SYMBOL()。
 选择* FROM sflight进入表@ 。
 "尝试。
 尝试。
     将 [1/0]指定为FIELD-SYMBOL()。
   捕获cx_root。
     BREAK-POINT。
 ENDTRY。
 "倾倒
 尝试。
     将 [('CARRRID')='AA']分配到场符号()。
   捕获cx_root。
     BREAK-POINT。
 ENDTRY。