Метод, импортирующий диапазон типов параметров любого - PullRequest
2 голосов
/ 02 июня 2019

Я пытаюсь построить динамический метод, и мне нужно передать ему любую таблицу диапазонов.Поэтому я хочу убедиться, что а) можно передать только диапазон или б) я оставляю обработку, если предоставленная таблица не является диапазоном.Поэтому мой вопрос:

Есть ли способ определить метод, чтобы импортируемый параметр должен был быть таблицей диапазонов ( любой тип таблицы диапазонов )?

Если бы не было ничего хорошего, я бы сделал это так, чтобы проверить, является ли таблица importet диапазоном.

1) Я бы проверил заголовок таблицы.

Methods: this_method
  IMPORTING
    i_table TYPE any table.

IF i_table IS INITIAL.
  "do some code
ENDIF.

Если это не сработает, я возьму более длинный путь.

2) Я бы использовалcl_abap_ * descr классы, чтобы выяснить, есть ли в переданной таблице поля с именами "sign", "option", "low", high ".

1 Ответ

3 голосов
/ 02 июня 2019

Не существует эквивалента типизированного параметра «любая таблица диапазона».

Ваш второй вариант с RTTS будет работать.

Другой вариант сЛучшая производительность, которая может быть подтверждена только в том случае, если параметр не относится к типу таблицы диапазонов, заключается в назначении SIGN, OPTION и т. д. ... компонентов первой строки, если они существуют, и затем проверяет IS NOT ASSIGNED.

...