Подпрограмма — это многократно используемый раздел кода. Это модуль модуляризации в программе, где функция инкапсулирована в виде исходного кода. Вы выводите часть программы в подпрограмму, чтобы получить более полное представление об основной программе и многократно использовать соответствующую последовательность операторов, как показано на следующей диаграмме.
У нас есть программа X с 3 различными блоками исходного кода . Каждый блок имеет одинаковые операторы ABAP. По сути, это одни и те же блоки кода. Чтобы облегчить поддержку этого кода, мы можем инкапсулировать код в подпрограмму. Мы можем вызывать эту подпрограмму в наших программах столько раз, сколько пожелаем. Подпрограмма может быть определена с помощью операторов Form и EndForm.
Ниже приводится общий синтаксис определения подпрограммы.
FORM <subroutine_name>. <statements> ENDFORM.
Мы можем вызвать подпрограмму с помощью оператора PERFORM. Элемент управления переходит к первому исполняемому оператору в подпрограмме <имя-подпрограммы>. Когда встречается ENDFORM, управление возвращается к оператору, следующему за оператором PERFORM.
пример
Шаг 1 — Перейти к транзакции SE80. Откройте существующую программу и затем щелкните правой кнопкой мыши программу. В данном случае это «ZSUBTEST».
Шаг 2 — Выберите Создать, а затем выберите Подпрограмма. Запишите имя подпрограммы в поле и нажмите кнопку «Продолжить». Имя подпрограммы «Sub_Display», как показано на следующем снимке экрана.
Шаг 3 — Напишите код в блоке операторов FORM и ENDFORM. Подпрограмма была успешно создана.
Нам нужно включить оператор PERFORM для вызова подпрограммы. Давайте посмотрим на код —
REPORT ZSUBTEST. PERFORM Sub_Display. * Form Sub_Display * --> p1 text * <-- p2 text FORM Sub_Display. Write: 'This is Subroutine'. Write: / 'Subroutine created successfully'. ENDFORM. " Sub_Display
Шаг 4 — Сохраните, активируйте и запустите программу. Приведенный выше код производит следующий вывод —
Subroutine Test: This is Subroutine Subroutine created successfully
Следовательно, использование подпрограмм делает вашу программу более функционально-ориентированной. Он разбивает задачу программы на подфункции, так что каждая подпрограмма отвечает за одну подфункцию. Ваша программа становится проще в обслуживании, поскольку изменения в функциях часто должны быть реализованы только в подпрограмме.