如何从变量类型的任何表循环

2020-08-23 16:21发布

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

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


嗨,

我正在尝试使用BAdI(BADI_EAM_RIQMEL20_FCODE_CUS1),它具有一个名为IT_SELECTED_OBJECTS的输入参数,该声明的类型为ANY TABLE,问题很简单,我该如何执行"在IT_SELECTED_OBJECTS处循环"。

我尝试了以下代码:

方法EXECUTE_FUNCTION_CODE的输入参数

 IV_FUNCTION_CODE类型SYUCOMM可选功能代码,由PAI主持
 IV_ACTIVITY_TYPE类型AKTYP默认值'A'在传输中的行为
 IT_SELECTED_OBJECTS TYPE ANY TABLE Selektierte Objekte 

方法代码

数据:T_OBJ类型ZCAU_T_1206_MAPA,
         wa_obj类型ZCAU_1206_MAPA,
         w_dref TYPE REF TO数据。

 * wa_selected_objets,类似于IT_SELECTED_OBJECTS行。
   FIELD-SYMBOLS: TYPE ANY。

   像IT_SELECTED_OBJECTS一样创建数据w_dref。

   将w_dref分配到。

   在it_selected_objects循环并分配。

     wa_obj-tipo ='AVISO'。
     wa_obj-numero =  -qmnum。
     wa_obj-clase =  -qmmart。
     wa_obj-calle = -街道。
     wa_obj-ciudad =  -city1。
     wa_obj-codigo_postal =  -post_code1。

     将wa_obj附加到t_obj。

   结束循环。

编译器抛出以下错误:

数据对象""没有结构,因此没有组件

称为" QMNUM"。

有帮助吗?

谢谢。

胡安

编辑:Sistemes Emaya于2010年9月7日上午11:23

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

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


嗨,

我正在尝试使用BAdI(BADI_EAM_RIQMEL20_FCODE_CUS1),它具有一个名为IT_SELECTED_OBJECTS的输入参数,该声明的类型为ANY TABLE,问题很简单,我该如何执行"在IT_SELECTED_OBJECTS处循环"。

我尝试了以下代码:

方法EXECUTE_FUNCTION_CODE的输入参数

 IV_FUNCTION_CODE类型SYUCOMM可选功能代码,由PAI主持
 IV_ACTIVITY_TYPE类型AKTYP默认值'A'在传输中的行为
 IT_SELECTED_OBJECTS TYPE ANY TABLE Selektierte Objekte 

方法代码

数据:T_OBJ类型ZCAU_T_1206_MAPA,
         wa_obj类型ZCAU_1206_MAPA,
         w_dref TYPE REF TO数据。

 * wa_selected_objets,类似于IT_SELECTED_OBJECTS行。
   FIELD-SYMBOLS: TYPE ANY。

   像IT_SELECTED_OBJECTS一样创建数据w_dref。

   将w_dref分配到。

   在it_selected_objects循环并分配。

     wa_obj-tipo ='AVISO'。
     wa_obj-numero =  -qmnum。
     wa_obj-clase =  -qmmart。
     wa_obj-calle = -街道。
     wa_obj-ciudad =  -city1。
     wa_obj-codigo_postal =  -post_code1。

     将wa_obj附加到t_obj。

   结束循环。

编译器抛出以下错误:

数据对象""没有结构,因此没有组件

称为" QMNUM"。

有帮助吗?

谢谢。

胡安

编辑:Sistemes Emaya于2010年9月7日上午11:23

付费偷看设置
发送
5条回答
三十六小时_GS
1楼 · 2020-08-23 16:45.采纳回答

答案也很简单。 具有静态类型ANY,但具有动态类型,如 IT_SELECTED_OBJECTS 的行。

因此,静态语法检查器无法识别的任何组件,但可以动态识别(表的组件)。 因此,这些组件的访问权限也不能是静态的,而必须是动态的

 " GMNUM静态未知
 wa_obj-numero =  -qmnum。

 " ...但动态已知
 字段符号输入任意。

 将结构的组件'GMNUM'分配给。  " ,如果我们现在的字段
 wa_obj-numero = 

致谢

Marcin

My梦
2楼-- · 2020-08-23 16:47

Woooooowww !!!!

非常感谢!!!

效果很好!!!!

闻人可可
3楼-- · 2020-08-23 17:04

你好胡安,

无需创建数据引用w_dref,您可以直接直接使用通用字段符号。

字段符号:
  TYPE ANY,
  TYPE ANY。

 在it_selected_objects循环并分配。
 " Marcin阐述了为什么以及如何使用ASSIGN COMPONENT
 结束循环。

BR,

Suhas

clever101
4楼-- · 2020-08-23 16:53

好,谢谢,我会解决它。

Aaron 3364
5楼-- · 2020-08-23 17:09

您好,来自互联网的朋友!

也许您正试图找到这个?

 DATA t_table TYPE" ****"。
 使用t_table来执行loop_any_table。


 FORM loop_any_table使用my_table TYPE TABLE。

   环回my_table ASSIGNING FIELD-SYMBOL()。
     BREAK-POINT。
   结局。

 ENDFORM 

一周热门 更多>