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

Vvedenie_v_ABAP

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

61

Глава 7: Объекты ABAP и страницы бизнес-сервера

Содержание

Данная глава объясняет основные принципы объектно-ориентированного программирования и их адаптацию к ABAP. Также объясняются принципы работы страниц бизнес-сервера (Business Server Pages (BSPs)), а также связанные с этим понятием темы использования BAPI, HTMLB и MVC-шаблона.

Обоснование

Данная глава рассказывает, как создавать простые программы с помощью объектов ABAP. Также она показывает процесс создания и выполнения BSP-приложений. Кроме того эта глава объясняет как адаптировать архитектурный шаблон MVC к приложениям BSP.

Требования

Вы должны хорошо знать ABAP, а также хорошо ориентироваться в системе SAP.

62

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

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

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

Задание 2: Работа с объектами ABAP

Краткое описание: Воспользуйтесь объектом ABAP в программе.

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

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

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

Создайте новую программу «ZY_*##_OBJECTS». Не добавляйте TOP-Include и установите статус программы – «Тестовая».

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

Для начала добавьте строку «INCLUDE ZY_*##_CLASS_INCLUDE.» в программу и создайте соответствующий include, дважды щелкнув по названию. Новый include будет включать в себя определение локального класса LCL_AIRPLANE.

Начните с объявления класса. Вам нужен метод set_attributes и метод get_attibutes с общим доступом. Метод set_attribute включает в себя входной параметр im_name названия самолета и входной параметр im_planetype для типа самолета. Оба признака должны быть определены в защищенной секции private section.

Метод set_attributes должен устанавливать значения переменных name и planetype согласно входным параметрам. Метод get_attributes должен выводить на экран значения атрибутов класса для определенного объекта с помощью команды WRITE. Код обоих методов показан ниже.

63

Вернитесь к основной программе. Теперь вы создадите несколько самолетов и сохраните указатели на них во внутренней таблице, чтобы впоследствии иметь возможность обратиться к этим данным. Указатель r_plane будет ссылаться на локальный класс LCL_AIRPLANE, используя инструкцию TYPE REF TO. Тем же способом внутренняя таблица it_plane_list определяется как таблица указателей на этот локальный класс. Объявление данных в программе «ZY_*##_OBJECTS» представлено ниже:

Теперь начните блок «START-OF-SELECTION» созданием объекта командой CREATE OBJECT, на который указывает переменная r_plane. Вызовите метод set_attribute, используя этот указатель, и присвойте название и тип самолета новому объекту с помощью соответствующих параметров метода. Добавьте указатель в таблицу it_plane_list с помощью команды APPEND. При добавлении указателя, адрес созданного объекта сохраняется в таблице и мы можем использовать указатель r_plane для других объектов. Теперь создайте еще один самолет и также добавьте его в таблицу.

64

И, наконец, пройдите циклом по таблице и выведите на экран данные по каждому самолету методом get_attribute.

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

Задание 3: Создание простой страницы бизнес-сервера (BSP)

Краткое описание: Создайте новое BSP-приложение.

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

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

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

Откройте свой пакет, выбрав «Пакет» из выпадающего списка и введя название пакета.

65

Создайте новое BSP-приложение «ZY_*##_BSP», используя путь: Создать BSPбиблиотека BSP-приложение в контекстном меню пакета. В появившемся окне введите имя приложения и краткое описание.

Присвойте все создаваемые объекты своему пакету и запросу переноса. Сохраните BSP-приложение. В дереве навигации появилась новая ветвь BSP-библиотека, в которой вы можете найти подветвь BSP-приложения.

Создайте новую страницу display.htm с помощью контекстного меню приложения. В

поле «Тип страницы» выберите «Страница с логикой выпол.».

Переключитесь на вкладку «Формат», чтобы увидеть код страницы. Удалите весь автоматически сгенерированный код. Введите язык, обрабатываемый на сервере, в данном случае это ABAP. С помощью обычного HTML создайте новую страницу и ее заголовок. Добавьте объявление переменных для внутренней таблицы и рабочей переменной с указанием таблицы SPFLI в ABAP. Объявление должно быть обозначено тэгами <% и %>. Также добавьте запрос SELECT, который копирует все данные из SPFLI в таблицу it_flights:

66

Теперь добавьте HTML-таблицу. Первая строка содержит заголовки столбцов для авиакомпании, рейса, аэропорта вылета, аэропорта прилета и времени вылета. Остальные столбцы будут создаваться по ходу выполнения и заполняться из таблицы it_flights.

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

67

Задание 4: Использование BAPI на странице бизнес-сервера (BSP)

Краткое описание: Воспользуйтесь BAPI в своем BSP-приложении, чтобы получить данные из другой системы SAP.

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

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

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

Для этого задания вновь используйте свое приложение ZY_*##_BSP. Создайте новую страницу call_bapi.htm, в поле «Тип страницы» выберите «Страница с логикой выпол.».

После подтверждения вы окажетесь во вкладке «Формат» новой BSP-страницы. Сперва удалите некоторые строки так, чтобы ваш код выглядел следующим образом:

68

Как вы видите, для этой страницы используется HTMLB. Но так как пока здесь нет HTMLB-специфичных элементов, мы не будем касаться особенностей HTMLB на этом шаге.

Теперь вы хотите добавить вызов BAPI. На этом шаге надо узнать, какие входящие и исходящие параметры необходимы для вызова. Переключитесь в BAPI-браузер,

нажав Перейти к BAPI-браузер.

Совет:

Открытие BAPI-браузера может вызвать ошибку ABAP при использовании русского языка входа в SAPGui. В случае возникновения ошибки, выйдите из системы, затем зайдите вновь, но уже с английским языком SAPGui и запустите BAPI-браузер

В браузере BAPI идите вниз по списку, пока не найдете ветвь «T01». Показанные ветви также называются RFC-соединениями (remote function calls, удаленный вызов функций), которые используются для переноса данных между SAP-системами, а также для передачи данных внутри системы. Откройте ветвь «T01» и найдите функцию «BAPI_USER_GET_DETAIL». Она находится ближе к концу списка.

69

По двойному щелчку откроется описание и примеры вызова функции. Вы хотите воспользоваться ей, чтобы ответить на 2 вопроса:

Когда пользователь был в последний раз изменен?

Заблокирован ли пользователь?

Чтобы вызвать BAPI-функцию в BSP нужно выполнить «CALL FUNCTION». Возвращаемые функцией данные будут сохранены во временные переменные. Следующий снимок экрана демонстрирует код ABAP вашей страницы:

70

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