2016-12-30 32 views
0

有没有办法访问传入一个功能模块的导入参数,而无需单独解决它们? ABAP是否将它们存储在某个内部表中,所以我可以通过循环遍历某些表中的行或结构的字段来处理它们?ABAP如何存储关于功能模块接口的信息?

我们可以使用PATTERN函数,只知道函数模块的名字,让ABAP为我们打印出函数模块的接口,所以我想知道这些信息存储在哪里,如果我可以使用它的函数组已加载到内存中。

在此先感谢!

+0

是否要检查接口或使用动态参数调用功能模块? – vwegert

+0

我想使用传递给功能模块的参数,而不是逐个解决它们。说,把它们传递给FM内的一个子程序是很好的,不用单独提及它们就能做到。那有意义吗? –

+0

原因...?在我们的环境中,SAP功能通过我们的SOA应用程序通过RFC访问 - 为了验证/调试目的,返回导入参数的值以及FM的实际输出将非常有用。我发现自己创建子程序来完成这个任务,并将所有提供给FM的参数传递给它们。我想我只是懒惰/寻找更好的方法。我感谢你看我的问题! –

回答

2

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

我宁愿手动将功能模块参数添加到日志记录/跟踪功能一次 - 通过充分通用的方法调用,这并不困难。我也倾向于将各个参数分组为结构以便于以后的增强。

+0

非常感谢! –

+0

我还发现这个CL_FB_FUNCTION_UTILITY类有一个方法METH_GET_INTERFACE,它将获得所有参数及其数据类型。 –

+0

请注意,属于非SAP_BASIS软件组件的某些实用程序类和函数可能在所有系统中都不可用。 – vwegert