Обзор SAP BSP (Business Server Pages)
BSP (Business Server Pages) приложения представляют собой автономные web-приложения с разделенной логикой на уровне представления и потоков данных. Во многих отношениях, BSPs аналогичны технологии server pages (xSP) от других производителей программного обеспечения, таких как Active Server Pages (ASP) от Microsoft и Java Server Pages (JSP) от Sun Microsystems (Oracle). Эта технология стала относительно широко распространена в области web-разработки благодаря различным преимуществам.
Полноценные BSP-приложения разработаны на платформе SAP Web Application Server с использованием встроенного в SAP инструментария -Web Application Builder. Данная среда доступна в транзакции SE80. Уровень представления (presentation level) для приложений такого типа формируется из последовательности web-страниц. В целом любое приложение состоит из следующих элементов:
- Статические web-страницы — не содержат сценариев, выполняемых на сервере
- Динамически генерируемые web-страницы — содержат сценарии, выполняющиеся на стороне сервера и формирующиеся только по запросу клиента, в течении времени работы сервера приложений.
- Объекты MIME — эти объекты включают в себя графику, символы, звуковые файлы, и таблицы стилей, которые могут быть включены в web-страницы.
Кроме того, JavaScript код может выполняться на стороне клиента для динамического действий предназначенных для временного хранения информации или повышения удобства использования web-страницы. Поэтому web-приложение в целом может работать на клиенте, ряд компонентов и механизмов для этого не требуется.
Для того чтобы клиент смог понять ответ сервера на поступивший запрос, BSP приложение состоит из нескольких компонентов:
Рисунок 7. Компоненты BSP приложения
BSP страницы формируют основу для контента, который в конечном счете отображается в браузере клиента. Они могут содержать статический HTML-код и вставки скриптового кода (в данном случае ABAP, в ASP технологии это может быть C#). Этот скриптовый код преобразуется в код, который браузер может понять (HTML) в момент обработки запроса на сервере приложений. Это дает возможность определить окончательный вид страницы в стадии выполнения, то есть на момент запроса. Страница BSP может содержать следующие компоненты:
- Страница с управлением логикой работы приложения содержит обработчики событий, которые контролируют взаимодействие с пользователем. Фактически это напоминает обработку событий пользовательских элементов формы в обычном десктоп-приложении. Кроме того для данных страниц задаются общие параметры и глобальные переменные и атрибуты доступные в течении работы приложения. Данные атрибуты доступны обработчикам событий во время обработки запроса к базе данных. Атрибуты могут принимать какие-либо элементарные типы данных доступные в SAP. Страницы с управлением логикой работы могут быть доступны с помощью указанного URL-адреса.
- Фрагмент страницы создается так же, как и обычная HTML-страница и может быть включен в страницу приложения с помощью директивы <include>. Используются для возможности повторного использования страниц и сокращения количества кода приложения.
- Представление (View) имеет много общего с управляемыми страницами, также содержит атрибуты и переменные, но не может быть заполнено данными автоматически, а только с использованием контроллера. Назначенный контроллер отвечает за заполнение атрибутов страницы, для приема поступающих запросов, а также управление логикой работы страницы.
MIME (Multipurpose Internet Mail Extensions) является эволюцией оригинального протокола электронной почты для Интернета, позволяющего обмениваться различными типами данных в Интернете. К ним относятся аудио, видео и графические данные, таблицы стилей, прикладные программы и текстовые файлы. Браузеры способны обрабатывать эти типы объектов, либо с помощью плагинов, либо с использованием интегрированных приложений. Это означает, что для распространенных браузеров, графический формат будет отображаться без внешних утилит. Другие же типы объектов, такие как флэш-анимации требуют установки дополнительных компонентов в систему.
При создании BSP приложения, в ERP системе создается каталог (репозиторий) в который помещаются все объекты специфичные для данного приложения.
Необходимо также упомянуть о BSP extensions – директивах, позволяющих значительно облегчить труд разработчика. BSP расширение является контейнером для элементов приложения. Каждому элементу присваивается класс на языке ABAP доступный в контексте приложения BSP. Встроенные в этом классе функции предназначаются для создания кода, который будет выполняться на стороне клиента. По сути это библиотека компонент с привязкой к бизнес-логике. Использование BSP расширений – HTMLB (HTML Business for BSP) дает следующие преимущества:
- HTML код необходимо разработать только один раз. При изменении дизайна нет необходимости менять все страницы
- ABAP класс (класса элемента), который присваивается элементу может содержать дополнительную логику для генерации HTML кода. Это позволяет избежать браузер-зависимого кода в макете.
- Стилевые таблицы могут находиться в элементе класса, поэтому при создании HTML кода элементы будут обращаться к одному файлу
- Стандартный XML может разобран и проверен уже до стадии преобразования кода, это помогает избежать многих ошибок.
Работа BSP приложения может быть проиллюстрирована на следующем рисунке:
Рисунок 8. Схема работы BSP-приложения
На рисунке 8 используется упрощенный сценарий работы приложения. При нажатии кнопки «Найти адрес» срабатывает обработчик кнопки – onlnputProcessing (). В этом событии имя для которого осуществляется поиск адреса передается как атрибут страницы. Onlnitialization событие вызывает приложение класса, который, в свою очередь, контролирует вызов RFC функции для сбора данных из базы данных. Результат возвращается в класс приложения, где он становится доступным из обработчика событий. Заполненные атрибуты страницы выводится в макет автоматически и появляются в форме браузера клиента как HTML страница.