
- •Типы модулей abap/4.
- •Что такое событие. Основные события.
- •Программа драйвера.
- •Порядок выполнения событий, определенный программой драйвера.
- •События abap/4, распределенные по категориям.
- •Операторы, используемые для прекращения событий.
- •Типы подпрограмм.
- •Определение и вызов внутренних подпрограмм.
- •Особенности оператора form.
- •Синтаксис оператора perform.
- •Операторы, используемые для выхода из подпрограммы.
- •Определение глобальных переменных.
- •Определение локальных переменных.
- •Определение рабочей области tables.
- •Передача параметров без контроля типов.
- •Передача типизированных параметров.
- •Синтаксис передачи типизированных параметров.
- •Передача Field Strings.
- •Способы передачи параметров.
- •Дополнения оператора form и получающийся метод передачи параметров:
- •Передача по значению.
- •Передача по ссылке.
- •Передача значения и результата.
- •Передача внутренних таблиц как параметров, синтаксис каждого метода передачи.
- •Методы и результаты передачи внутренней таблицы в подпрограмму:
- •Синтаксис каждого метода передачи внутренней таблицы в подпрограмму:
- •Синтаксис описания внутренней таблицы в подпрограмме.
- •Синтаксис описания внутренней таблицы подпрограмме:
- •Передача внутренней таблицы со строкой заголовка.
- •Вызов внешних подпрограмм.
- •Оператор include.
- •Представление функциональных модулей.
- •Функциональные группы.
- •Определение функционального интерфейса модуля
- •Создание функционального модуля.
- •Использование releasing в функциональном модуле.?
- •Установка значения sy-subrc по возвращению из функционального модуля.
- •Оператор message ... Raising.
Вызов внешних подпрограмм.
Внешняя подпрограмма — та, которая находится в другой программе, а не в той, в которой находится вызывающий подпрограмму оператор perform:
Когда perform обращается к внешней подпрограмме:
загружается внешняя программа, содержащая подпрограмму
внешняя программа проверяется на синтаксис
управление переходит к form во внешней программе
выполняются операторы во внешней подпрограмме
endform возвращает управление оператору после perform
Проверка синтаксиса происходит во время выполнения по следующим двум причинам:
для проверки соответствия типов передаваемых параметров
для проверки наличия синтаксических ошибок
Внешние подпрограммы очень похожи на внутренние подпрограммы:
обе позволяют передачу параметров
обе позволяют типизованные формальные параметры
обе позволяют передачу параметров по значению, по значению и результату и по ссылке
обе позволяют локальные определения переменных
Различия между внутренними и внешними подпрограммами:
Глобальная переменная, определенная с использованием data, известна только в программе, в которой она определена. Например, в иллюстрации оператор data f1 есть в обеих программах. Он определяет две области памяти с именем f1. f1, определенная в ztx1811, доступна только изнутри ztx1811. f1, определенная в ztx1812, доступна только изнутри ztx1812
Глобальные переменные с одинаковыми именами, определенные в обеих программах с использованием оператора tables, доступны в обеих программах. Изменение в этой переменной в одной программе затрагивает переменную другой. Область памяти с именем ztxlfa1 разделена между обеими программами. Любое изменение в этой рабочей области немедленно отражается в обеих программах.
Оператор include.
Включаемая программа (include program) — программа, которая спроектирована для использования другой программой. Другие программы используют код, который содержит включаемая программа, копируя в себя строки включаемой программы. Копирование происходит во время выполнения с помощью оператора include.
Программу, включающую другую программу, называют как включающей программой (including program).
Синтаксис оператора include
include ipgm.
где:
ipgm — программа типа i
Особенности оператора:
включаемая программа должна быть типа i (тип программы определяется в поле Type на экране Program Attributes при создании программы)
включаемая программа может быть включена в одну или более включающих программ
программа типа i не может содержать частичных или неполных операторов
Оператор include копирует код включаемой программы во включающую программу. Код из включаемой программы копируется один к одному и заменяет оператор include во время генерации включающей программы:
Во время генерации строки 5 программы ztx1901 из программы ztx1902 копируется код в ztx1901; вставляемый код заменяет строку 5
Во время генерации строки 6 программы ztx1901 из программы ztx1903 копируется код в ztx1901; вставляемый код заменяет строку 6
При выполнении программа ztx1901 ведет себя как единая программа, как будто строки из включаемых программ были набраны непосредственно в ztx1901
SAP использует include для уменьшения избыточности кода и разделения очень больших программ на меньшие модули.