ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 03.04.2021

Просмотров: 743

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

 

41 

 

Глава 5: Динамические программы 

 

Содержание 

Эта глава покажет структуру более сложных программ с интегрированными экранами. 
Вы  создадите  новую  программу,  которая  выбирает  и  показывает  сведения  о,  об 
одном  из  авиарейсов  из  базы  данных  SAP.  Здесь  вы  воспользуетесь  технологией 
dynpro 

(экранов). 

 

Обоснование 

Так как большая часть транзакций SAP все еще разрабатывается на  ABAP и dynpro, 
эта глава является одной из наиболее важных для понимания логики SAP. 
 

Требования 

Вы должны уметь пользоваться словарем ABAP и SQL-запросам. 


background image

 

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 

Совет 

Свойства 

Создайте 

переменные 


background image

 

43 

системная  переменная 

ok_code

 

и  рабочая  переменная 

wa_flight

.  Определите  их  в 

the 

top include

 

 

 
Следующий шаг – создание первого экрана (dynpro). Нажмите правой клавишей мыши 
по названию программы в дереве навигации и создайте новый экран с номером 

100

.  

 

 
Теперь  вы  должны  определить  свойства  нового  экрана.  Введите  описание,  а  также 
экран  «

200»

 

в  качестве 

«Следующего  экрана»

.  Это  позволит  программе  перейти  к 

экрану 200 после того, как PAI-модуль 100-го экрана будет выполнен. Да, вы еще не 
создали экран 200, но вы сделаете это позже. 
 

 

 

Создайте 

экран 

Свойства 


background image

 

44 

На следующем шаге вы создадите внешний вид экрана. Для этого запустите редактор 
экранов,  нажав  кнопку 

 

на  панели  инструментов.  Пока  редактор  экранов 

включен, вы не можете пользоваться SAPGui. Вы можете вернуться в SAPGui, нажав 
кнопку 

«Назад»

 

в редакторе экранов. 

Нажмите кнопку текстового поля 

 

и нарисуйте текстовое поле на экране. Назовите 

его «

TXT_INSTRUCTION

»

 

и введите текст:

 

«Пожалуйста, выберите авиакомпанию 

и номер рейса»

. Экран должен выглядеть следующим образом: 

 

 

 
Пользователь  программы  должен  выбрать  авиакомпанию  и  номер  рейса  на  данном 
экране. Эта информация хранится в таблице 

SPFLI

. Чтобы создать два поля ввода со 

справкой  по  значениям  вы  должны  сослаться  на  таблице 

SPFLI 

из словаря  данных. 

Сделать  это  очень  легко  нажав  кнопку 

«Окно  словаря/полей  программы»

 

на 

панели инструментов. Введите название 

SPFLI 

и нажмите 

«Вызвать из словаря».

  

 

 

 
Так  как  ваше  приложение  должно  предоставлять  пользователю  2  поля  ввода  для 
авиакомпании и для рейса, выберите строки «

CARRID

» и «

CONNID

» и нажмите Enter. 

Это действие изменит внешний вид курсора и позволит разместить два поля ввода на 
экране. Экран должен получить следующий вид: 

 

 

Запустите 

редактор 

экранов 

Вызов словаря 

Выберите 

CARRID 

и CONNID 


background image

 

45 

На  следующем  шаге  нужно  добавить  кнопку  перехода  на  второй  экран.  Добавьте 
кнопку  и  назовите  ее  «

BTN_SELECT

»,  текст  на  кнопке  выберите  сами.  После  ввода 

информации вы заметите, что кнопка все еще подсвечена красным. Это означает, что 
системе недостаточно предоставленной информации. 
 
Совет: 
Если  элемент  в  редактор  экранов  подсвечен  красным,  это  означает,  что  для 
корректной  работы  требуются  дополнительные  данные.  Дважды  щелкнув  по 
элементу, можно получить справку по данной конкретной проблеме.  
 
Так  как  новая  кнопка  все  еще  подсвечена  красным,  вам  необходимо  ввести  код 
функции. Дважды щелкните по кнопке. Это действие откроет свойства, где будет одно 
красное поле ввода, куда нужно ввести код функции (

«КодФкц»

)

 

«SELECT

» и нажать 

enter

.  Позже  в  программе  нажатие  кнопки  должно  будет  автоматически  присваивать 

переменной 

«ok_code»

 

значение  «

SELECT

».  Эта  переменная  доступна  из  всех 

модулей программы, так как была объявлена в  top include. Но пока что связь между 
кодом  функции  и  переменной 

«ok_code»

 

отсутствует.  Чтобы  добавить  эту  связь, 

нажмите  кнопку 

«Окно  списка  элементов»

 

на  панели  инструментов.  Откроется 

окно со списком элементов редактируемого экрана. 
 

 

 
Вновь  вы  видите  красное  поле,  показывающее,  что  чего-то  не  хватает.  Рядом  с 
красным полем есть маленький OK-символ, представляющий переменную «

ok_code

». 

Введите «

OK_CODE

», чтобы создать связь с глобальной переменной «

ok_code

». 

 

 

 
Сохраните  экран  и  вернитесь  в  навигатор  по  объектам.  Чтобы  упростить 
использование  программы,  создайте  для  нее  код  транзакции.  Нажмите  правой 
кнопкой мыши по названию программы в дереве навигации и выберите: 
 

Создать 

 

Транзакция

 

Совет 

Список 

элементов 

OK_CODE 

Создайте 

транзакцию