Параметр несовместим по типу с формальным параметром при вызове метода из FM

#methods #abap #saprfc #function-module

#методы #abap #saprfc #функция-модуль

Вопрос:

Статический метод открытого класса zcl_abc=>dosomething имеет импортирующий параметр

it_lines тип TLINE_T необязательный

И есть FM с именем zfm_dosame . Он имеет параметр

ТАБЛИЦЫ IT_LINES ТИП TLINE_T НЕОБЯЗАТЕЛЬНЫЙ

zfm_dosame вызывает zcl_abc=>dosomething и пытается передать it_lines в it_lines . Однако синтаксическая ошибка:

IT_LINES несовместим по типу с формальным параметром IT_LINES.

Эта ошибка сводит меня с ума. Я понятия не имею, как это произошло… Пожалуйста, помогите!

Ответ №1:

Часть таблиц функционального интерфейса создает внутренние таблицы со строкой заголовка во время выполнения. Поэтому, чтобы передать всю таблицу, а не только одну рабочую область, вы должны передать IT_LINES[] вместо IT_LINES метода, который вы вызываете.

Ответ №2:

Трудно сказать, не имея дополнительной информации, такой как полный исходный код вашего функционального модуля, функциональной группы и класса, но я предположу: скорее всего, ваш тип TLINE_T не является глобальным типом, а вместо этого определяется локально (и по-разному) как в функциональной группе, так и в функциональном модулеи в классе.

Попробуйте дважды щелкнуть по типу TLINE_T в обоих местах и посмотреть, к чему это приведет. Если он приводит вас к глобальному типу (который вы также должны видеть в SE11) в обоих местах, тогда я ошибаюсь, и происходит что-то еще.

Комментарии:

1. TLINE_T это тип словаря, используемый функциями SAPscript.