Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Vvedenie_v_ABAP

.pdf
Скачиваний:
97
Добавлен:
21.05.2015
Размер:
2.85 Mб
Скачать

Чтобы окончательно переделать экран в подэкран, вы должны удалить несколько записей в модуле «status_0200». Перейдите во вкладку «ЛогикаВыполн» и дважды щелкните по модулю «status_0200». Удалите обе инструкции SET, чтобы код модуля выглядел следующим образом:

Сохраните изменения и перейдите в модуль „USER_COMMAND_0200‟. Удалите следующие строки из конструкции case. Удаленные OK-коды будут обрабатываться в логике выполнения основного экрана.

WHEN 'LEAVE'.

LEAVE PROGRAM.

WHEN 'BACK'.

Не удаляйте вызовы функций ENQUEUE и DEQUEUE. Сохраните и активируйте все измененные модули.

Подготовив экран 200, вы можете создать панель вкладок и новый экран. Создайте экран «300». Этот экран будет использоваться, в качестве главного окна и будет содержать панель вкладок и подэкраны.

Введите краткое описание (выберите самостоятельно) и запустите редактор экранов.

Начните создание панели вкладок с помощью . Обратите внимание, что в русскоязычной версии SAPGui вместо понятия «Панель вкладок» используется понятие «Картотека». Помощник спросит всю необходимую информацию:

Название картотеки (поле «Имя закладки»): MyTabStrip

Введите три текста закладки: “Сведения на экране”, “Сведения на вебстранице”, “Отслеживание в реальном времени”

Введите номера подэкранов: “Сведения на экране” 200, “Сведения на вебстранице” 302, “Отслеживание в реальном времени” 303

Не меняйте коды функций

Не меняйте includes

81

После завершения работы помощника, в поле Редактора экранов появится новая картотека, и вы сможете изменить ее размер. Перейдите в список элементов и введите «OK_CODE» в поле OK-кода.

Выйдите из редактора экранов и перейдите в «Логику выполнения» экрана 300. Вы увидите, что в результате создания картотеки (панели вкладок), система автоматически добавила 5 строк кода в логику выполнения. Этот код отвечает за вызов подэкранов и определение includes для подэкранов.

Теперь вы должны определить два модуля: «STATUS_0300» и «USER_COMMAND_0300». Начните создавать первый из них, раскомментировав соответствующую строчку и сделав двойной щелчок мышью.

Измените название include, добавив «ZY_» в начало. Так как вы уже создали панель статуса и строку заголовка для экрана 200, то вы воспользуетесь ими здесь вновь.

82

Теперь сохраните модуль и вернитесь к логике выполнения. Раскомментируйте модуль «USER_COMMAND_0300» и создайте его двойным щелчком мыши. Не забудьте изменить название include, добавив «ZY_» в начало.

Теперь необходимо добавить инструкцию CASE для обработки ok_code панели статуса. ok_code экрана 300 может фактически иметь лишь одно значение: «LEAVE». Поэтому напишите следующее:

Сохраните, проверьте и активируйте все новые модули.

Теперь откройте экран «100», начальный экран программы. Здесь поменяйте следующий экран на «300».

83

Сохраните и активируйте всю программу. При тестировании вы увидите панель вкладок. Но пока что, лишь одна вкладка не пуста. Это логично, ведь мы еще не создавали содержимое двух других вкладок.

Теперь вы хотите добавить BSP-приложение из главы 7 в свое экранное приложение. Для этого нужно воспользоваться специальным управляющим элементом, чтобы создать контейнер, который будет использоваться для создания средства просмотра HTML. Откройте экран «302» и перейдите в Редактор экрана. Удалите текстовое поле

и поместите на экран специальный управляющий элемент . Откройте окно свойств двойным щелчком мыши по элементу.

84

Совет:

Как вы уже заметили, невозможно нарисовать внешний вид вкладки в основной программе или картотеке. Если хотите изменить вкладку, то вам нужно изменить присвоенный вкладке подэкран.

В окне свойств введите элемента «HTML_BSP». Сохраните экран и вернитесь к логике выполнения.

Вы добавили специальный элемент управления на экран 302, и теперь нужно изменить TOP INCLUDE так, чтобы основная программа знала о существовании этого элемента и вы смогли запустить средство просмотра HTML.

Сохраните, проверьте и активируйте top include.

Теперь откройте логику выполнения экрана «302». Раскомментируйте модуль «STATUS_0110» и создайте его двойным щелчком. Не забудьте изменить название нового include.

В только что созданном модуле вы не нужно определять панель статуса и строку заголовка. Вместо этого определите специальный элемент управления.

85

Перепишите код с рисунка. Этот код создает объекты специального элемента управления во время выполнения программы.

К данному моменту вы определили специальный элемент управления и элемент управления средством просмотра HTML. Если вы запустите тестирование, то увидите во второй вкладке чистый экран. Чтобы присвоить этой вкладке BSP-приложение, нужно определить несколько переменных:

urlbsp – эта переменная хранит URL сайта в виде строки

url – эта хранит URL в типе данных URL

l_appl – название BSP-приложения

l_page – название BSP-страницы

t_pars – необходимая таблица, содержащая начальные параметры для элемента управления средством просмотра HTML

s_pars – это рабочая переменная, используемая для присвоения начального параметра SAP-CLIENT таблице t_pars

После определения переменных добавьте код, изображенный на следующем рисунке:

Код делает следующее: сначала создаются объекты и определяются переменные. Затем определяется стартовая страница BSP-приложения, которая должна быть выведена на экран. После создается URL для BSP-приложения, и это приложение вызывается средством просмотра HTML.

Сохраните, проверьте и активируйте программу. Протестируйте ее.

Задание 3: Использование внешних URL

Краткое описание: Расширьте функционал приложения использованием внешнего URL для отслеживания авиарейса в реальном времени.

86

Последнее задание главы – это третья вкладка в приложении. Запустите Навигатор по объектам из меню SAP Easy Access, используя следующий путь:

Инструменты ABAP-инструментальные средства Обзор • Навигатор по объектам.

Код данной транзакции – SE80

Откройте программу «ZY_*##_DYNPRO» и найдите экран «303». Откройте экран и перейдите в графический редактор экрана с помощью кнопки «Формат». Удалите текстовое поле и поместите новый специальный элемент управления. Измените его размер и назовите «HTML_TRACKING».

Сохраните экран и перейдите в TOP INCLUDE основной программы. Как и в предыдущем задании, вы должны добавить специальный элемент управления и элемент управления средством просмотра HTML в TOP INCLUDE:

Сохраните TOP INCLUDE и активируйте его. Перейдите в логику выполнения экрана «303». Раскомментируйте модуль «STATUS_0110» и измените название на «STATUS_0303». Затем создайте модуль двойным щелчком.

87

Как всегда, добавьте «ZY_» в начало названия нового include. Удалите инструкции SET. В качестве внешнего URL, используйте следующий: http://rasp.yandex.ru/map.html Этот URL дает возможность отслеживать местоположение самолета в реальном времени. Но для этого необходимо передать номер рейса и код авиакомпании. Воспользуйтесь методами HTTP-GET. Предварительно преобразуйте номер рейса в строку. Код должен выглядеть следующим образом:

Сохранив и активировав все измененные и созданные модули, протестируйте программу. Результат выполнения программы должен выглядеть похожим образом:

88

Глава 9: Обработка исключений

Содержание

Глава об обработке исключений. Вы научитесь создавать и обрабатывать исключения на основе класса.

Обоснование

Обработка исключений – важная часть программирования на ABAP.

Исключения необходимы, чтобы создавать более надежные, гибкие и удобные в использовании приложения.

Требования

Вы должны завершить все упражнения из лавы 3.

89

Задание 1: Вход в систему SAP

Краткое описание: Используя SAPGui, войдите в систему с вашим именем пользователя и паролем

Запустите SAPGui и войдите в систему, используя предоставленное имя пользователя и пароль. Вы можете найти их в главе 1.

Задание 2: Создание класса исключения

Краткое описание: Воспользуйтесь инструментальными средствами SAP, чтобы создать исключения на основе класса

В этой главе вы добавите исключения в пример создания калькулятора из главы 3. Исключения должны обрабатывать 3 различные ситуации:

Неверный символ оператора (не является ничем из +, -, *, / )

Результат превышает определенную границу (1000 в данном случае)

Деление на ноль.

Случай деления на ноль будет обработан системой автоматически. Необходимый класс уже существует.

Для случаев 1 и 2 классы еще необходимо создать. Так как оба исключения являются некоторой разновидностью исключения калькуляции, лучше создать родительский класс и воспользоваться наследованием.

Запустите Навигатор по объектам из меню SAP Easy Access, используя следующий путь:

Инструменты ABAP-инструментальные средства Обзор • Навигатор по объектам.

Код данной транзакции – SE80

Создайте новый класс для родительского класса наших исключений. Назовите его

«ZCX_*##_CALC_EXCEPTION». Выберите «Класс исключения» в поле «Тип исключения». Поставьте наследование от «CX_STATIC_CHECK». Снимите галочку

«Конечный».

Сохраните класс, добавив его, как обычно, в свой пакет и запрос переноса.

90

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]