Pull to refresh

Введение в ABAP

Programming *
Sandbox
Привет, Хабр!

Так как статей об ABAP'е на хабре совсем мало, а статьи вида «Hello, World!» совсем нету, решил немного написать об этом. Если вам интересно узнать про этот язык или же подумываете заниматься разработкой на ABAP'е, то добро пожаловать под кат.

ABAP (Advanced Business Application Programming) – внутренний язык высокого уровня программирования в среде SAP. Углубляться в историю особенно не хочется, но отмечу лишь, что язык синтаксис языка наиболее близок к языку программирования COBOL.

Язык позволяет работать с внутренними структурами данных, интерфейсами пользователя, транзакциями, отчётами, интерфейсами загрузки, выгрузки данных (word, excel, pdf, …); стоит отметить, что можно использовать объектно-ориентированные конструкции (ABAP Objects); существует множество технологий связи с другими системами (BAPI, RFC, …) для выгрузки и загрузки данных (или же сторонней обработки).

Типизация

Переменные в ABAP обычно объявляются с помощью конструкции DATA.

DATA: count TYPE i. " объявляем переменную count типа integer 

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

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

DATA: count TYPE i,
	    sum TYPE i.

Внутри программы можно использовать типы, заложенные в ABAP-словаре, а так же создавать собственные типы и структуры, используя конструкцию TYPES.

TYPES: person_code(15) TYPE c. " объявляем символьный тип длинной 15 символов
DATA: iv_person_code TYPE person_code. " объявляем переменную созданного нами типа

Пример со структурой:

TYPES: BEGIN OF struct,
	       name(10) type C, " символьная переменная длинной 10 символов
	       post(15) type C,
END OF struct.

DATA: wa_struct TYPE STANDARD TABLE OF struct. " таблица объявленного нами типа
DATA: name_person LIKE wa_struct-name.  " ссылка на элемент name объявленной структуры 

В динамическом программировании принято использовать поля типа FIELD SYMBOLS (аналог указателя):

FIELD-SYMBOLS <fs> TYPE ANY.
DATA: field TYPE string VALUE 'Bob Marley'.
ASSIGN field TO <fs>.
WRITE <fs>.

Таблицы можно объявлять как из словаря ABAP, так же и из своих внутренних типов структур:

DATA: gt_0001 TYPE TABLE OF pa0001. " из словаря
DATA: BEGIN OF t_tab,
            name TYPE string,
            count TYPE I,
END OF t_tab.

DATA: gt_tab LIKE TABLE OF T_TAB WITH HEADER LINE.  " это дополнение обозначает создание строки заголовка таблицы аналогичной структуры, которую можно использовать для работы с таблицей (циклы и т.д.).

Среда разработки

ABAP имеет свою собственную среду разработки, которая называется ABAP Workbench, имеющую отладчик, средства трассировки, систему контроля версий, средства работы с буфером, журналы использования, и так далее.
В 2012 году разработчики интегрировали ABAP со всем известной IDE Eclipse. Правда работает это на последних версиях ядра, что есть не на всех проектах.



Предисловие перед «Hello, World»

На самом деле не хочу, чтобы статья была длинной. Вкратце напишу, что ABAP поддерживает работу со всеми арифметическими, строковыми операциями, имеет стандартный набор операторов условий, циклов, обработку исключений, имеет множество технологиями отчетности, поддерживает работу с базой данных (OPEN SQL) и так далее.

В абапе существуют подпрограммы, функциональные модули, макросы, работа с вебом (Web Dynpro, BSP), выгрузка данных в word, excel (посредством OLE), пользовательские интерфейсы, диалоги и так далее. Существует даже несколько сертификаций разработчиков. Об этом всем постараюсь рассказать в следующих постах.

Hello, World!

Итак, если же вам посчастливилось получить доступ к системе разработки SAP или же вы нашли виртуальную машину, на всем любимом русском трекере по запросу «mini sap on vmware (abap)», то дальше я покажу как создать свою программу.

Первым делом заходим в систему SAP (через SAP GUI):


Далее в окошке вводим транзакцию se38:


В соответствии с именованием пользовательский программ (начиная с Z), вводим название своей программы:



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



Выбираем пакет сохранения (для тестов советую выбирать пакет $TMP или же сохранять кнопкой «Локальный объект»)



Далее мы попадаем в окно ABAP-редактора. Вводим код нашей программы:

REPORT Z_TEST_4. "Название отчета

DATA: write_it TYPE string.
write_it = 'Hello, World!'.
WRITE: write_it.
*А можно и так
WRITE:/ 'Hello, World!'.

Активируем программу:


И запускаем:


Результат:


Заключение

В этой статье я написал немного про ABAP, его синтаксис ну и, конечно же, программку Hello, World!
В следующих статьях планирую описать арифметические, строковые операции, работу с базой данных и познакомить с построением отчетности в ABAP с конкретными примерами и мануалами. Ну, а дальше как пойдет.

Немного литературы:

Для начинающих:
Курсы:
  • BC100: Введение в программирование (c ABAP)
  • BC400: Инструментальные средства, основы
  • SAPTEC: Основы SAP Web Application Server

Книги:
  • SAP R/3 Программирование на языке АВАР/4 – Вольфганг Вейс, Рюдигер Кречмер.

Для продвинутых:
Курсы:
  • BC401 – ABAP объекты
  • BC402 – Углубленное ABAP программирование
  • BC411 – Advanced ABAP programming

Книги:
  • Object-oriented Programming with ABAP objects – James Wood,
  • ABAK cookbook – James Wood.

Интернет источники:
  • sapnet.ru — форум ABAP консультантов. Тут можно найти интересные материалы по ABAP, спросить совета у гуру, помочь кому-то и так далее.
  • sapboard.ru — русскоязычный форум по различным модулям SAP а так же по ABAP.
  • abap-blog.ru — очень интересный блог ABAP-разработчика. Пишет про различные новые технологии и интересные вещи в ABAP.
  • abaphr.ru — блог разработки приложений в модуле ABAP HR. (но на самом деле и не только).
  • www.sapdev.co.uk — зарубежный сайт разработчиков ABAP. Частенько нахожу тут интересующие меня темы.
  • help.sap.com — официальный help SAP. Практически всю документацию можно найти тут.
Tags:
Hubs:
Total votes 17: ↑10 and ↓7 +3
Views 114K
Comments Comments 16