ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 03.04.2021
Просмотров: 769
Скачиваний: 3
41
Глава 5: Динамические программы
Содержание
Эта глава покажет структуру более сложных программ с интегрированными экранами.
Вы создадите новую программу, которая выбирает и показывает сведения о, об
одном из авиарейсов из базы данных SAP. Здесь вы воспользуетесь технологией
dynpro
(экранов).
Обоснование
Так как большая часть транзакций SAP все еще разрабатывается на ABAP и dynpro,
эта глава является одной из наиболее важных для понимания логики SAP.
Требования
Вы должны уметь пользоваться словарем ABAP и SQL-запросам.
42
Задание 1: Вход в систему SAP
Краткое описание
: Используя SAPGui, войдите в систему с вашим именем
пользователя и паролем
Запустите SAPGui и войдите в систему, используя предоставленное имя
пользователя и пароль. Вы можете найти их в главе 1.
Задание 2: Создание первой программы с несколькими экранами (dynpros)
Краткое описание:
Создайте программу, которая использует 2 экрана, чтобы
отобразить сведения об авиарейсе из базы SAP
Запустите Навигатор по объектам из меню SAP Easy Access, используя следующий
путь:
Инструменты
•
ABAP-
инструментальные средства
•
Обзор
• Навигатор по
объектам
.
Код данной транзакции –
SE80
Создайте новую программу «
ZY_*##_DYNPRO
». Поставьте галочку «с
TOP INCL.
».
Измените название TOP-include на «
ZY_*##_DYNPRO_TOP
‟.
Совет:
Заметьте, что система SAP автоматически предложила имя для
top include
, которое
не начиналось с обязательной буквы
Z
, обозначающей клиентский
top include
. В
будущем, во время разработки вы часто будете сталкиваться с ситуацией, когда
система предлагает название не из клиентского пространства имен. Будьте
внимательны!
В следующем окне вы видите все свойства программы. Выберите статус
«Тестовая»
и Приложение «
Общее для всех приложений»
. Нажмите
«Enter»
, затем присвойте
программу пакету «
ZY_*##
» и своему транспортному запросу. Система дважды
спрашивает запрос переноса, так как первый относится к программе, а второй к
top
include
.
Откройте
top include
, дважды щелкнув на нем. На этом шаге вы должны определить
все глобальные переменные. Такие переменные доступны для всей программы и
каждый экран имеет доступ к ним. Такими переменными будут таблица
SPFLI
,
Вход
Путь в меню
TOP INCL
Совет
Свойства
Создайте
переменные
43
системная переменная
ok_code
и рабочая переменная
wa_flight
. Определите их в
the
top include
:
Следующий шаг – создание первого экрана (dynpro). Нажмите правой клавишей мыши
по названию программы в дереве навигации и создайте новый экран с номером
100
.
Теперь вы должны определить свойства нового экрана. Введите описание, а также
экран «
200»
в качестве
«Следующего экрана»
. Это позволит программе перейти к
экрану 200 после того, как PAI-модуль 100-го экрана будет выполнен. Да, вы еще не
создали экран 200, но вы сделаете это позже.
Создайте
экран
Свойства
44
На следующем шаге вы создадите внешний вид экрана. Для этого запустите редактор
экранов, нажав кнопку
на панели инструментов. Пока редактор экранов
включен, вы не можете пользоваться SAPGui. Вы можете вернуться в SAPGui, нажав
кнопку
«Назад»
в редакторе экранов.
Нажмите кнопку текстового поля
и нарисуйте текстовое поле на экране. Назовите
его «
TXT_INSTRUCTION
»
и введите текст:
«Пожалуйста, выберите авиакомпанию
и номер рейса»
. Экран должен выглядеть следующим образом:
Пользователь программы должен выбрать авиакомпанию и номер рейса на данном
экране. Эта информация хранится в таблице
SPFLI
. Чтобы создать два поля ввода со
справкой по значениям вы должны сослаться на таблице
SPFLI
из словаря данных.
Сделать это очень легко нажав кнопку
«Окно словаря/полей программы»
на
панели инструментов. Введите название
SPFLI
и нажмите
«Вызвать из словаря».
Так как ваше приложение должно предоставлять пользователю 2 поля ввода для
авиакомпании и для рейса, выберите строки «
CARRID
» и «
CONNID
» и нажмите Enter.
Это действие изменит внешний вид курсора и позволит разместить два поля ввода на
экране. Экран должен получить следующий вид:
Запустите
редактор
экранов
Вызов словаря
Выберите
CARRID
и CONNID
45
На следующем шаге нужно добавить кнопку перехода на второй экран. Добавьте
кнопку и назовите ее «
BTN_SELECT
», текст на кнопке выберите сами. После ввода
информации вы заметите, что кнопка все еще подсвечена красным. Это означает, что
системе недостаточно предоставленной информации.
Совет:
Если элемент в редактор экранов подсвечен красным, это означает, что для
корректной работы требуются дополнительные данные. Дважды щелкнув по
элементу, можно получить справку по данной конкретной проблеме.
Так как новая кнопка все еще подсвечена красным, вам необходимо ввести код
функции. Дважды щелкните по кнопке. Это действие откроет свойства, где будет одно
красное поле ввода, куда нужно ввести код функции (
«КодФкц»
)
«SELECT
» и нажать
enter
. Позже в программе нажатие кнопки должно будет автоматически присваивать
переменной
«ok_code»
значение «
SELECT
». Эта переменная доступна из всех
модулей программы, так как была объявлена в top include. Но пока что связь между
кодом функции и переменной
«ok_code»
отсутствует. Чтобы добавить эту связь,
нажмите кнопку
«Окно списка элементов»
на панели инструментов. Откроется
окно со списком элементов редактируемого экрана.
Вновь вы видите красное поле, показывающее, что чего-то не хватает. Рядом с
красным полем есть маленький OK-символ, представляющий переменную «
ok_code
».
Введите «
OK_CODE
», чтобы создать связь с глобальной переменной «
ok_code
».
Сохраните экран и вернитесь в навигатор по объектам. Чтобы упростить
использование программы, создайте для нее код транзакции. Нажмите правой
кнопкой мыши по названию программы в дереве навигации и выберите:
Создать
•
Транзакция
:
Совет
Список
элементов
OK_CODE
Создайте
транзакцию