我正在尝试构建一个动态方法,我需要将任何范围表传递给它。所以我想确保 a( 只能传递一个范围,或者 b( 如果提供的表不是范围,我离开处理。所以我的问题是:
有没有办法定义一种方法,以便导入参数必须是范围表(任何类型的范围表(?
如果没有任何好处,我会这样做来检查导入表是否是一个范围。
1(我会检查表头。
Methods: this_method
IMPORTING
i_table TYPE any table.
IF i_table IS INITIAL.
"do some code
ENDIF.
如果这不起作用,我会采取更长的路。
2(我会使用cl_abap_*descr类来找出传递的表是否具有名为"符号","选项","低","高"的字段。
没有等效的"任何范围表"类型参数。
您的第二个选择RTTS
将起作用。
另一个性能更好的选项只有在参数不是范围表类型时才能批准,是分配第一行的SIGN
、OPTION
等组件(如果存在(,然后检查IS NOT ASSIGNED
。