Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > 1C: Предприятие, SAP, ERP и учётные системы > Инструментарий ABAP-разработчика


Автор: batigoal 24.2.2005, 18:39
 Инструментарий ABAP-разработчика

Сразу оговорюсь – мой опыт работы в R/3 крайне невелик, и эти заметки – лишь первый взгляд на инструментарий ABAP-разработчика. Не судите строго.
В этом тексте я не буду касаться непосредственно операторов и принципов языка как такового, надеюсь, что по этому вопросу появится отдельная статья. В этот же раз я намерен лишь описать инструментарий программиста в системе SAP R/3.

Общие сведения

Итак, что же такое ABAP/4 (Advanced Buisness Application Programming 4GL)? Это внутренний язык написания приложений для системы R/3 компании SAP AG, появившийся на свет в середине 80-х. В соответствии с утверждением разработчиков, он произошел непосредственно от ассемблера, но на него сильно повлияли языки Cobol и Pascal. Язык развивался, и в середине 90-х, под влиянием C++ и Java, он приобрел черты объектно-ориентированного языка. 

ERP-система SAP R/3 построена на основе трехзвенной архитектуры, в соответствии с которой нижнему уровню соответствует система управления базой данных (database level), средний – уровень приложений (application level) и верхний – уровень представления (presentation level). Программы на языке ABAP исполняются на уровне приложений, результаты их работы, как правило, представляются пользователю на уровне представления, хотя это и не обязательно – программа не всегда имеет графический интерфейс. Язык является платформенно-независимым, так как выполняется в рамках исполняющей (ABAP run-time system).

Области применения языка:
•    Бизнес-операции;
•    Создание интерфейса для конечного пользователя;
•    Работа с базой данных.

Все программы хранятся в едином системном репозитарии, который является специфической частью БД. Это очень удобно при работе в команде разработчиков, т.к. каждый член команды имеет доступ ко всему архиву программ (разумеется, при наличии соответствующих полномочий). Каждая программа принадлежит определенному классу разработок (например, TEST). Для написания продуктивных программ необходимо приобрести у компании SAP так называемый «ключ разработчика», но при программировании в песочнице (модели системы не для реального использования) можно обойтись и без него.

Инструментальные средства

Каждая программа на языке ABAP имеет доступ к словарю (ABAP Dictionary), который является специфической частью БД. В нем хранятся типы данных, структур, таблиц, которые являются едиными в пределах системы и могут использоваться в любом ее месте. Никакие операторы, соответствующие «import» или «include» в традиционных языках программирования, для этого не требуются. На рис. 1 приведен пример просмотра таблицы, хранящейся в словаре, на рис. 2 – просмотр определенного пользователем типа данных:

user posted image
рис. 1


user posted image
рис. 2


Для типа данных существует логическое разделение на элемент данных и домен. Первый отражает семантику данного типа (например, краткое описание), второй – физическую реализацию (тип, длина, …).

Главным инструментом программиста является ABAP Editor – среда для написания, компиляции и запуска программ. Его внешний вид приведен на рис. 3.

user posted image
рис. 3


Панель слева предназначена для быстрой навигации по программе, перехода к определениям типов, полей, обработчикам событий, интерфейсным блокам и т.д. Из своего недолгого опыта работы могу отметить неудобство среды для людей, привыкших к более мощным пакетам разработки традиционного программирования (отсутствие средств рефакторинга, collapse/expand и прочие дорогие сердцу мелочи). Впрочем, никто и не требует подобных возможностей от узкоспециализированного приложения. Из удобств могу отметить возможность автоматической коррекции мелких синтаксических ошибок (SELECTION-SCREEN вместо SELECTION_SCREEN и т.п.) при проверке кода.

Для отладки программ предусмотрены следующие средства:
•    Debugger (отладка приложений);
•    Runtime Analisyst (анализ производительности программы);
•    SQL Trace (трассировщик SQL-запросов);
•    CATT (средство для автоматического тестирования программ с автоматическим вводом большого количества данных).

Внешний вид отладчика приведен на рис. 4, пример результата работы Runtime Analisyst – на рисунке 5.

user posted image
рис. 4



user posted image
рис. 5



Разработчики системы SAP R/3 отводят важную роль так называемым функциональным модулям. Это выделенные в отдельные блоки подпрограммы, удобные своей независимостью и универсальностью. Приводятся следующие преимущества использования функциональных модулей:
•    они могут быть запущены как последовательно, так и параллельно;
•    они могут инкапсулировать функции и диалоговые окна;
•    они могут быть вызваны с помощью Remote Function Call (удаленный вызов функции), что позволяет обеспечить доступ к модулю через Интернет, из другой системы R/3 или даже из приложения, написанного на другом языке (VB, Java или С++).
Предусмотрено специальное средство создания функциональных модулей, которое позволяет редактировать следующие элементы:
•    административную информацию (название, описание, функциональная группа, создатель, дата изменения, класс разработки…);
•    интерфейс (входные и выходные параметры и таблицы, исключения, интерфейсное описание);
•    исходный код;
•    документацию.

Внешний вид приложения не имеет смысла приводить, это просто набор вкладок с таблицами и текстовыми полями.

Для создания графического интерфейса пользователя (GUI) существует сразу несколько средств, я привожу примеры редакторов меню (рис. 6) и экрана (рис. 7):

user posted image 
рис. 6


Помимо меню приложения с различной степенью вложенности, можно отредактировать application bar (строку с кнопками, специфичными для данной программы), стандартную панель инструментов и назначенные определенным операциям функциональные клавиши.

user posted image
рис. 7


Набор элементов управления, которые можно включать в экран, вполне стандартный и привычный: статический текст, текстовое поле, флажок, переключатель, кнопка, вкладки и таблица.

Напоследок приведу пример средства, предназначенного для визуального представления данных. Оно представляет собой некий аналог UML-диаграмм. Разумеется, существует возможность детально просмотреть поля и свойства выбранной таблицы.

user posted image
рис. 8


Большое спасибо за прочтение этой статьи. Большая просьба присылать появившиеся замечания (как по форме, так и по содержанию). 

(фотографии размещены на хостинге http://www.flickr.com/.)

Автор: Kesh 24.2.2005, 21:02
Статья однозначно хорошая... А главное - все понятно... Одно огорчает... - попробовать бы... smile

Автор: stron 24.2.2005, 21:43
Кстати, а как обстоят дела с Help'ом?
Насколько он хорош?

Автор: batigoal 25.2.2005, 12:01
Help я не использовал, у меня были материалы официальных курсов (тс-с-с, это низя!)
А вообще он не очень хорош хотя бы тем, что открывается справка только по текущей транзакции (транзакция - одна неделимая программа, имеющая идентификатор).
Хотя, наверное, если вываливать сразу все - это будет слишком много, да и файл справки, скорее всего, находится на сервере, и передавать все разом - невзможно.

Автор: ElectricalStorm 7.7.2005, 17:19
help - нормальный.... по синтаксису, семантике итд...
опять же транзакция abapdocu есть, есть примеры производительности, есть транзакции LIBS
BIBS....


Автор: Kesh 7.7.2005, 20:39
Вот... точно... Надо добавить в статью рассказ о транзакциях... ИМХО, немаловажно... smile

Автор: batigoal 7.7.2005, 20:47
Цитата(Kesh @ 7.7.2005, 21:39)
Надо добавить в статью рассказ о транзакциях...

Что именно, не совсем понял?..

Anyway, у меня больше нет доступа к SAP'у. smile

Автор: batigoal 8.7.2005, 11:38
Думаю, полезно было бы описать ABAP Editor, Screen Editor и Repository Browser.

Автор: stron 18.11.2005, 12:45
Модератор:
обсуждение транзакций перенесено в отдельную тему http://forum.vingrad.ru/index.php?showtopic=71218

Автор: mixancho 14.11.2006, 20:33
Цитата(batigoal @ 8.7.2005,  11:38)
Думаю, полезно было бы описать ABAP Editor, Screen Editor и Repository Browser.

Да это было бы очень интересно.
 
А также интересует такое как ALVGRID. 

Автор: ElectricalStorm 22.3.2007, 00:57
по Абап можно задавать мне вопросы в личку так как я очень редко имею возиожность тут бывать...

Автор: Weez 6.6.2007, 08:56
Картинки умерли, а жаль

Автор: batigoal 6.6.2007, 17:27
Цитата(Weez @  6.6.2007,  09:56 Найти цитируемый пост)
Картинки умерли, а жаль 

Перезалил.

Автор: mvvti 9.9.2007, 19:00
Всем привет! Я хочу начать самостоятельно изучать ABAP, на сколько это реально и какие средства и знания необходимы для этого?

Автор: batigoal 10.9.2007, 08:45
mvvti, я начал изучать по официальной доке к ABAP'у.

Средства - доступ к SAP'у.

Знания - желателен SQL, а лучше - один из его процедурных диалектов (PL/SQL и т.п.)

Автор: mvvti 26.9.2007, 07:52
где я могу прокачать инфу для самостоятельного изучения ABAP и программную среду языка.

Автор: Kesh 1.10.2007, 11:29
mvvti, ты можешь это сделать на sdn.sap.com - SAP Developer Network.
Только вот изучения ABAP без реально установленной тестовой системы практически невозможно...
Тут можно попробовать заказать книжку у SAP Press по ABAP - там иногда базис к книге прилагается. Как ERP система он пуст, но для обучения ABAP вполне подойдет...

Автор: Zlatogorov 16.1.2008, 15:29
Вот удобняшка SAP ABAP http://www.ct-software.de/.
Коротко:
представляет собой набор редакторов и утилит для програмирования в среде абап. 
Редактор кода похож на MS VisualStudio. Есть подсветка комманд к примеру и многое другое.
Для программирования и отладки необходима система с установленным SAP R3. 
Какоето время назад раздавали бесплатно - для тестирования,  как сейчас незнаю.
____
Насчёт книг: рекомендую книги издательства Galileo - доходчиво и ясно. Правда дороговато, примерно 60-120 евро книга.

Автор: vga1 8.3.2008, 23:25
Цитата(mvvti @ 26.9.2007,  07:52)
где я могу прокачать инфу для самостоятельного изучения ABAP и программную среду языка.

Потренироваться в ABAP можно на системах
http://www.sapnet.ru/viewforum.php?f=44
К сожалению в тестовой системе нет никаких прикладных модулей.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)