- •Типы модулей abap/4.
- •Что такое событие. Основные события.
- •Программа драйвера.
- •Порядок выполнения событий, определенный программой драйвера.
- •События abap/4, распределенные по категориям.
- •Операторы, используемые для прекращения событий.
- •Типы подпрограмм.
- •Определение и вызов внутренних подпрограмм.
- •Особенности оператора form.
- •Синтаксис оператора perform.
- •Операторы, используемые для выхода из подпрограммы.
- •Определение глобальных переменных.
- •Определение локальных переменных.
- •Определение рабочей области tables.
- •Передача параметров без контроля типов.
- •Передача типизированных параметров.
- •Синтаксис передачи типизированных параметров.
- •Передача Field Strings.
- •Способы передачи параметров.
- •Дополнения оператора form и получающийся метод передачи параметров:
- •Передача по значению.
- •Передача по ссылке.
- •Передача значения и результата.
- •Передача внутренних таблиц как параметров, синтаксис каждого метода передачи.
- •Методы и результаты передачи внутренней таблицы в подпрограмму:
- •Синтаксис каждого метода передачи внутренней таблицы в подпрограмму:
- •Синтаксис описания внутренней таблицы в подпрограмме.
- •Синтаксис описания внутренней таблицы подпрограмме:
- •Передача внутренней таблицы со строкой заголовка.
- •Вызов внешних подпрограмм.
- •Оператор include.
- •Представление функциональных модулей.
- •Функциональные группы.
- •Определение функционального интерфейса модуля
- •Создание функционального модуля.
- •Использование releasing в функциональном модуле.?
- •Установка значения sy-subrc по возвращению из функционального модуля.
- •Оператор message ... Raising.
Представление функциональных модулей.
Функциональный модуль — последний из четырех основных модулей ABAP/4. Он напоминает внешнюю подпрограмму в том, что:
оба находятся во внешних программах
оба дают возможность передавать и возвращать параметры
параметры могут передаваться по значению, по значению и результату или по ссылке
Основные различия между функциональными модулями и внешними подпрограммами следующие:
функциональные модули используют специальный экран для определения атрибутов параметров, они не определяются с помощью операторов ABAP/4
рабочие области tables не разделены между функциональным модулем и программой запроса
для вызова функционального модуля и вызова подпрограммы используется различный синтаксис
выход из функционального модуля осуществляется с помощью оператора raise вместо check, exit или stop
Имя функционального модуля должно содержать от 3 до 30 символов. Функциональные модули пользователя должны начаться с Y_ или Z_. Имя каждого функционального модуля уникально в пределах всей системы R/3.
Функциональные группы.
Функциональная группа — программа, которая содержит функциональные модули. С каждой системой SAP R/3 поставляется более 5 000 существующих функциональных групп. Всего они содержат более 30 000 функциональных модулей. Если требуемые функциональные возможности уже не охвачены этими поставляемыми SAP функциональными модулями, то можно также создать свои собственные функциональные группы и функциональные модули.
Каждая функциональная группа задается четырехсимвольным идентификатором, который назвается функциональным кодом группы. При создании собственной функциональной группы нужно выбирать функциональный код группы, который начинается с Y или Z. Идентификатор должен быть длиной точно четыре символа и не может содержать пробелы или специальные символы.
Определение функционального интерфейса модуля
Для передачи параметров в функциональный модуль, нужно определить интерфейс функциональный модуля. Интерфейс функционального модуля — описание параметров, которые передаются в- и возвращаются из- функционального модуля. Его называют также просто интерфейс.
Для определения параметров нужно задать их на экранах определения параметров:
Import Parameter Interface
Export Parameter Interface
Changing Parameters
Table Parameters Interface
Exceptions Interface
Параметры импорта.
Входные параметры (Import parameters) — переменные или Field Strings, которые содержат значения, передаваемые в функциональный модуль из вызывающей программы. Эти значения задаются за пределами функционального модуля, и они импортируются в него.
Параметры экспорта.
Выходные параметры (Export parameters) — переменные или Field Strings, которые содержат значения, возвращаемые из функционального модуля. Эти значения задаются в функциональном модуле, и они экспортируются из него.
Изменяющиеся параметры.
Изменяющиеся параметры (Changing parameters) — переменные или Field Strings, которые содержат значения, передаваемые в функциональный модуль, изменяющиеся в функциональном модуле и затем возвращающиеся из него. Эти значения определяются вне функционального модуля, затем передаются в него, изменяются и возвращаются обратно.
Параметры таблицы.
Параметры таблицы (Table parameters) — внутренние таблицы, которые передаются функциональному модулю, изменяются в нем и возвращаются из него. Внутренние таблицы должны быть определены в вызывающей программе.
Исключение.
Исключение (exception) — имя ошибки, которая происходит в функциональном модуле.
Вызов функциональных модулей.
Для вызова функционального модуля используется оператор call function:
1 report ztx1904.
2
3 write: / 'Before Call'.
4 call function 'Z_TX_1901'.
5 write: / 'After Call'.
Before Call
Hi from Z_TX_1901
After Call
В строке 4 управление передается на начало функционального модуля z_tx_1901 (в этом примере функциональный модуль находится в некоторой группе функций ztxa; SAPLztxa — основная программа этой группы функций — действует как контейнер для z_tx_1901)
Выполняется код функционального модуля
Последняя строка функционального модуля возвращает управление оператору call function. Обработка продолжается следующим оператором после call function
