- •Типы модулей abap/4.
- •Что такое событие. Основные события.
- •Программа драйвера.
- •Порядок выполнения событий, определенный программой драйвера.
- •События abap/4, распределенные по категориям.
- •Операторы, используемые для прекращения событий.
- •Типы подпрограмм.
- •Определение и вызов внутренних подпрограмм.
- •Особенности оператора form.
- •Синтаксис оператора perform.
- •Операторы, используемые для выхода из подпрограммы.
- •Определение глобальных переменных.
- •Определение локальных переменных.
- •Определение рабочей области tables.
- •Передача параметров без контроля типов.
- •Передача типизированных параметров.
- •Синтаксис передачи типизированных параметров.
- •Передача Field Strings.
- •Способы передачи параметров.
- •Дополнения оператора form и получающийся метод передачи параметров:
- •Передача по значению.
- •Передача по ссылке.
- •Передача значения и результата.
- •Передача внутренних таблиц как параметров, синтаксис каждого метода передачи.
- •Методы и результаты передачи внутренней таблицы в подпрограмму:
- •Синтаксис каждого метода передачи внутренней таблицы в подпрограмму:
- •Синтаксис описания внутренней таблицы в подпрограмме.
- •Синтаксис описания внутренней таблицы подпрограмме:
- •Передача внутренней таблицы со строкой заголовка.
- •Вызов внешних подпрограмм.
- •Оператор include.
- •Представление функциональных модулей.
- •Функциональные группы.
- •Определение функционального интерфейса модуля
- •Создание функционального модуля.
- •Использование releasing в функциональном модуле.?
- •Установка значения sy-subrc по возвращению из функционального модуля.
- •Оператор message ... Raising.
Оператор message ... Raising.
Использование оператора message ... raising
У оператора message ... raising есть два режима работы:
если имя исключения после raising не обработано оператором call function, и others не закодировано, пользователю выдается сообщение
если имя исключения после raising обработано оператором call function, сообщение пользователю не выдается — вместо этого управление возвращается к оператору call function, и исключение обрабатывается так же, как и оператором raise
Синтаксис оператора message ... raising:
message tnnn(cc) [with v1 v2 ...] raising xname.
где:
t — тип сообщения (e, w, i, s, a или x)
nnn — номер сообщения
(cc) — класс сообщения
v1 и v2 — значения, которые будут вставлены в текст сообщения
xname — имя исключения, которое будет выполнено
Особенности оператора:
xname — имя исключения как и в операторе raise
если класс сообщения не определен здесь, он должен быть определен в операторе function-pool в TOP include для функциональной группы через дополнение message-id
установлены следующие sy-переменные: sy-msgid, sy-msgty, sy-msgno и sy-msgv1 через sy-msgv4. Они могут быть использованы в пределах программы запроса (после возвращения)
При выполнении оператора message ... raising поток управления зависит от типа сообщения и от того, обработано ли условие вызывающей программой (определенное в списке исключений в программе запроса):
Если условие обработано вызывающей программой, управление возвращается к вызывающей программе. Значения переменных sy-msg установлены. Значения экспорта, который передаются по значению, не возвращены
Если условие не обработано вызывающей программой для типов сообщений e, w и a, происходит выход из функционального модуля, и программа запроса немедленно завершается. Сообщение отображено, и список вывода пуст. Когда пользователь нажимает клавишу ENTER, пустой список удаляется, и пользователь возвращается к экрану, из которого была вызвана программа
Если условие не обработано вызывающей программой для типа сообщения i, в диалоговом окне отображается сообщение пользователю. Когда пользователь нажимает клавишу ENTER, управление возвращается к функциональному модулю к оператору, следующему за оператором message. Функциональный модуль продолжает обрабатываться, и оператором endfunction управление возвращается к программе запроса. Значения переменных sy-msg установлены, и значения экспорта, которые передаются по значению, возвращаются
Если условие не обработано вызывающей программой для типа сообщения s, сообщение хранится в системной области. Управление продолжается в пределах функционального модуля в операторе, следующем за оператором message. Функциональный модуль продолжает обрабатываться, и оператором endfunction управление возвращается к программе запроса. Значения переменных sy-msg установлены, и значения экспорта, которые передаются по значению, возвращаются. Когда отображается список, сообщение появляется внизу списка в строке состояния
Если условие не обработано вызывающей программой для типа сообщения x, происходит выход из функционального модуля, и программа запроса немедленно заканчивается. Сгенерировано и отображено пользователю сообщение об ошибке времени выполнения
