2016-12-30 6 views
0

Есть ли способ доступа к параметрам импорта, переданным в функциональный модуль без их индивидуального адреса? Сохраняет ли ABAP их в какой-либо внутренней таблице, поэтому я могу работать с ними, перебирая строки в какой-либо таблице или в поля структуры?Как ABAP хранит информацию о интерфейсе функционального модуля?

Мы можем использовать функцию PATTERN, зная только имя функционального модуля, чтобы ABAP распечатал интерфейс функционального модуля для нас, поэтому мне интересно, где хранится эта информация, и если я могу работать с ней, как только функция группа загружена в память.

Заранее благодарен!

+0

Вы хотите изучить интерфейс или вызвать функциональный модуль с динамическими параметрами? – vwegert

+0

Я хотел бы работать с параметрами, переданными в функциональный модуль, без обращения к ним один за другим. Скажем, передача их в подпрограмму внутри FM была бы неплохой, если бы не касаться их по отдельности. Имеет ли это смысл? –

+0

Причина, почему ...? В нашей среде функциональность SAP осуществляется через RFC с помощью наших приложений SOA - становится полезным возвращать значения параметров импорта вместе с фактическим выводом FM для проверки/отладки. Я нахожу себе создание подпрограмм для этого и передаю им все параметры, которые были предоставлены FM. Наверное, я просто ленив/ищу лучший способ. Я ценю, что вы смотрите на мой вопрос! –

ответ

2

Вы можете использовать функциональный модуль RPY_FUNCTIONMODULE_READ для получения информации о структуре параметров функционального модуля, а затем динамически обращаться к параметрам. У этого есть несколько недостатков - наиболее заметно, что пользователь, который делает это, потребует (дополнительных) S_DEVELOP авторизации, и регистрация этого способа обычно наносит серьезный эффект.

Я бы скорее добавил параметры функционального модуля к функции ведения журнала/трассировки вручную один раз - при достаточно общем вызове метода это не так сложно. Я также склонен группировать отдельные параметры в структуры, чтобы облегчить последующие улучшения.

+0

Большое спасибо! –

+0

Я также нашел этот класс CL_FB_FUNCTION_UTILITY, который имеет метод METH_GET_INTERFACE, который получит все параметры и их типы данных. –

+0

Просто имейте в виду, что некоторые классы и функции утилиты, относящиеся к программным компонентам, отличным от SAP_BASIS, могут быть недоступны во всех системах. – vwegert