1

有没有办法访问传入功能模块的导入参数而不单独处理它们?ABAP 是否将它们存储在某个内部表中,以便我可以通过循环某个表中的行或结构的字段来使用它们?

我们可以使用 PATTERN 函数,只知道函数模块的名称,让 ABAP 为我们打印出函数模块的接口,所以我想知道这些信息存储在哪里,一旦加载了函数组,我是否可以使用它进入记忆。

提前致谢!

4

2 回答 2

2

您可以通过功能模块RPY_FUNCTIONMODULE_READ获取功能模块的参数结构信息,然后动态访问参数。这有几个缺点 - 最明显的是,这样做的用户将需要(额外的)S_DEVELOP授权,并且以这种方式记录通常会产生严重的性能影响。

我宁愿手动将函数模块参数添加到日志记录/跟踪函数中 - 使用足够通用的方法调用,这并不难。我还倾向于将单个参数分组到结构中,以方便以后的增强。

于 2016-12-30T18:58:18.863 回答
0

PARAMETER-TABLE自古以来ABAP中就存在construct,它允许批量传递参数:

应该创建两个类型的参数表,abap_func_parmbind_tababap_func_excpbind_tab像这样填充它们:

DATA: ptab TYPE abap_func_parmbind_tab,
      etab TYPE abap_func_excpbind_tab,
      itab TYPE TABLE OF string.

ptab = VALUE #( 
         ( name  = 'FILENAME' kind  = abap_func_exporting value = REF #( 'c:\text.txt' ) )
         ( name  = 'FILETYPE' kind  = abap_func_exporting value = REF #( 'ASC' ) )
         ( name  = 'DATA_TAB' kind  = abap_func_tables    value = REF #( itab ) )
         ( name  = 'FILELENGTH' kind  = abap_func_importing value = REF #( space ) ) ).

etab = VALUE #( ( name = 'OTHERS' value = 10 ) ) .

CALL FUNCTION 'GUI_DOWNLOAD'
  PARAMETER-TABLE ptab
  EXCEPTION-TABLE etab.
于 2020-04-07T11:54:48.077 回答