:::: МЕНЮ ::::

Перегрузка процедур и методов

Большинство языков программирования высокого уровня позволяют определять несколько функций с одинаковыми названиями в одной области. Язык ABAP такую возможность нам не предоставляет. Однако, ее можно имитировать используя Generic Types и RTTS.

Сразу скажу что не важно что мы собираемся перегрузить: метод класса или процедуру, технология будет одна и та же.

Пример

Допустим, мы хотим написать процедуру show_messages, отображающую список сообщений в модальном окне. Структура таблицы сообщений зависит от решаемой задачи: если необходимо отобразить сообщения, сформировавшиеся в результате выполнения пакетного ввода, то используется структура bdcmsgcoll; для логирования действий может использоваться структура mesg или сторонняя Z* структура и т.п..
Для отображения сообщений будет удобно всегда использовать show_messages не зависимо от типа таблицы. Пример реализации перегрузки ниже.

Заключение

Таким образом, в процедуру мы передаем произвольный тип таблицы, в теле процедуры этот тип определяем, затем передаем управление соответствующей процедуре.


Присоединиться к обсуждению...