Пользователь
0,0
рейтинг
7 декабря 2012 в 15:34

Разработка → Введение в ABAP из песочницы

Привет, Хабр!

Так как статей об 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. Практически всю документацию можно найти тут.
Илья @whydrae
карма
5,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разработка

Комментарии (16)

  • –5
    Замечательно. Можете посоветовать с какой литературы лучше начать? Я консультант по ММ со стажем, но до этого никогда не программировал.
    p.s. За плечами курс BC400
    • 0
      В конце топика ведь написал небольшой список литературы.
      • –2
        В тех книгах подразумевается что человек с программированием уже знаком. Я же написал, что никогда ни на чем не писал.
        • +1
          BC100 Введение в программирование (для новичков в программировании)
  • +2
    туториал наскоком, вот впечатление. Прежде чем писать что то, нужно разобраться со структурой системы и языка (домен, структура), потом познакомить пользователя с понятием отчет, ФМ, экран (PBO, PAI и т… д.) и все в этом духе. А так получилось после прочтения у новичка представление не сложится о системе и разработки под неё. Статья получилась не полной, выдранный кусок.
    • +1
      Я боялся, что если я бы стал все это описывать, то статья получилась бы очень громоздкой. Хотелось наподобие «hello world» статьи написать. Но спасибо, постараюсь в следующей со всем этим поподробней и с примерами.
  • 0
    Курсы это дело хорошее, но вы новичку советуете BC400, но не упомянули что необходимо для этого курса (какие знания уже нужно иметь, что бы понимать о чем там речь)
    Обязательно • BC100 Введение в программирование (для новичков в программировании) или знания в области программирования • SAPTEC Основы SAP Web Application Server


    Друзья, если нужно посмотреть учебную программ, какой либо курс и необходимые для него знания, его описание, то посетите training.sap.com/ru/en/courses-and-curricula
    • 0
      Благодарю. Поправил список литературы.
  • +1
    Всякие «se38» в сапе — это жесть!
    • +1
      Что там не жесть, скажите? А дробные числа, которые необходимо записывать в кавычках, потому что точка и запятая — заняты синтаксисом, и это ведь только эпическое начало для новичка.
      • 0
        SAP — это месть Гитлера за Сталинград.
  • +1
    ABAP — это способ отбить всё желание программировать, и вообще даже иметь дело с программированием. Вообще вся система R/3 для разработки это сплошной АД.
    • –1
      Такой суровый энтерпрайз.
  • 0
    Был приятно удивлен что мой блог отметили, благодарю :)
  • 0
    подскажите, какую версию гуи используете (а конкретно, интересует темная тема в se80)?

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