
- •Типы модулей abap/4.
- •Что такое событие. Основные события.
- •Программа драйвера.
- •Порядок выполнения событий, определенный программой драйвера.
- •События abap/4, распределенные по категориям.
- •Операторы, используемые для прекращения событий.
- •Типы подпрограмм.
- •Определение и вызов внутренних подпрограмм.
- •Особенности оператора form.
- •Синтаксис оператора perform.
- •Операторы, используемые для выхода из подпрограммы.
- •Определение глобальных переменных.
- •Определение локальных переменных.
- •Определение рабочей области tables.
- •Передача параметров без контроля типов.
- •Передача типизированных параметров.
- •Синтаксис передачи типизированных параметров.
- •Передача Field Strings.
- •Способы передачи параметров.
- •Дополнения оператора form и получающийся метод передачи параметров:
- •Передача по значению.
- •Передача по ссылке.
- •Передача значения и результата.
- •Передача внутренних таблиц как параметров, синтаксис каждого метода передачи.
- •Методы и результаты передачи внутренней таблицы в подпрограмму:
- •Синтаксис каждого метода передачи внутренней таблицы в подпрограмму:
- •Синтаксис описания внутренней таблицы в подпрограмме.
- •Синтаксис описания внутренней таблицы подпрограмме:
- •Передача внутренней таблицы со строкой заголовка.
- •Вызов внешних подпрограмм.
- •Оператор include.
- •Представление функциональных модулей.
- •Функциональные группы.
- •Определение функционального интерфейса модуля
- •Создание функционального модуля.
- •Использование releasing в функциональном модуле.?
- •Установка значения sy-subrc по возвращению из функционального модуля.
- •Оператор message ... Raising.
Типы модулей abap/4.
Модуль (modularization unit) — оболочка, в которую можно поместить код. Он позволяет отделить группу строк программы от остальных, а затем выполнять их в определенное время. Строки программы в пределах модуля действуют как минипрограмма, которую можно вызвать из другой программы.
ABAP/4 предлагает три типа модулей:
события (Events)
подпрограммы (Subroutines)
функциональные модули (Function modules)
Модули используются для устранения избыточного кода в программах и их лучшей читаемости. Например, если в нескольких различных местах в программе есть последовательность операторов, которые производят одинаковые действия, то вместо дублирования кода в программе, лучше поместить этот код в модуль и вызывать его всякий раз, когда нужно произвести упомянутые действия.
Что такое событие. Основные события.
Событие (event) — тэг, который идентифицирует раздел кода. Раздел кода, связанный с событием, начинается с имени события и заканчивается тогда, когда встречается имя следующего события. Основные события:
initialization
start-of-selection
end-of-selection
Имена событий — зарезервированные слова. Нельзя создать новые события — можно использовать только существующие.
Программа драйвера.
Программа драйвера (driver program) — это программа, которая управляет другой (управляемой, driven) программой. SAP поставляет программы драйвера вместе с системой R/3. Вы поставляете управляемую (driven) программу.
Когда Вы запускаете свою программу, программа драйвера всегда стартует первой, а затем она вызывает события в Вашей программе, т.е. когда Вы запускаете свою программу, программа драйвера управляет Вашей программой, вызывая события в ее пределах.
Код, связанный с событием, вызывается оператором в программе драйвера. События вызываются программой драйвера в предопределенной и предсказуемой последовательности:
Затем программа драйвера выполняет следующую последовательность шагов:
Она вызывает событие initialization, вызывая к выполнению код, принадлежащий initialization. Если Вы не закодировали событие initialization в своей программе, программа драйвера пропускает этот шаг
Она отображает экран выбора (selection screen) для Вашей программы (экран выбора — экран, который содержит входные поля для Ваших операторов parameter). Если у Вашей программы нет экрана выбора, она пропускает этот шаг
Она вызывает событие start-of-selection, вызывая к выполнению код, принадлежащий этому событию. Если Вы не закодировали событие start-of-selection в своей программе, она пропускает этот шаг
Она вызывает событие end-of-selection в Вашей программе, выполняя весь код, принадлежащий ему. Если Вы не закодировали end-of-selection, она пропускает этот шаг
Она отображает пользователю список вывода (list)
Порядок выполнения событий, определенный программой драйвера.
Порядок выполнения событий определен программой драйвера, а не Вашей программой. Поэтому, можно записывать события в любом порядке, однако порядок выполнения событий будет одним и тем же. Порядок событий в программе не имеет значения; они всегда будут вызываться программой драйвера в этой же последовательности:
1 report ztx1702.
2 data f1 type i value 1.
3
4 end-of-selection.
5 write: / '3. f1 =', f1.
6
7 start-of-selection.
8 write: / '2. f1 =', f1.
9 f1 = 99.
10
11 initialization.
12 write: / '1. f1 =', f1.
13 add 1 to f1.
1. f1 = 1
2. f1 = 2
3. f1 = 99
При запуске ztx1702 программа драйвера стартует первой
Она вызывает событие initialization
Выполняется код, связанный с initialization (строки 12 и 13). Выводится значение f1, и к нему добавляется 1. Затем управление возвращается к программе драйвера
Программа драйвера ищет экран выбора. Его нет в этой программе, поэтому она ищет событие start-of-selection. Она находит его в строке 7 и выполняет переход к строке 8 программы ztx1702. Выполняются строки 8 и 9, и затем управление возвращается к драйверу
Затем программа драйвера ищет событие end-of-selection. Найдя его в строке 4, она передает управление строке 5 программы ztx1702. Событию end-of-selection принадлежит только строка 5, поэтому она выполняется, и затем управление возвращается к драйверу
Затем драйвер выводит пользователю список вывода