что такое abap программирование

Хочу всё знать. Язык ABAP

Краткая справка

ABAP/4 – проприетарный (т.е. не распространяющийся свободно) язык программирования высокого уровня, разработанный немецкой софтверной компанией SAP и предназначенный исключительно для работы с выпускаемым ей ПО. В январском рейтинге популярности языков ABAP/4 занимает 22 место прямо перед Scratch.

Он был разработан в 1983 году для работы с внутренней системой SAP R/2. Цифра 4, которая присутствует в названии, не имеет практического смысла и лишь указывает, что язык относится к 4 поколению. SAP R/2 – это система управления предприятием, предполагающая стандартную связь между клиентской базой и сервером. Позднее была заменена трёхзвенной системой R/3 – клиент, сервер приложений и система управления базами данных.

Синтаксис

Во многих источниках вы можете найти замечание про схожесть синтаксиса ABAP с COBOL. Однако не стоит принимать это за чистую монету, схожесть касается исключительно внешнего вида, в то время как структура и возможности совсем разные. Сравните базовый код любого программиста “Hello World”:

WRITE / ‘Hello World’.

DISPLAY «Hello, world.».

END PROGRAM HELLO-WORLD.

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

Область применения

Работа

Если ABAP не является языком, вечно мелькающим в списке требований работодателей, если его не изучают в университетах, то это совсем не означает, что он не востребован. ABAP имеет свою аудиторию, эко-систему, поэтому требует от соискателей осознанного выбора будущей деятельности. Прямо сейчас на популярном рекрутинговом ресурсе вы можете найти свыше 100 вакансий, причём среди них есть те, где знание продуктов компании SAP и опыт работы с ABAP – едва ли не единственное требование.

Полезные ссылки

ABAP Community – официальное сообщество разработчиков;

ABAP-blog – один из немногих очень качественных и визуально приятных отечественных ресурсов, где можно почитать про программирование на ABAP;

Викиучебник – основы на русском языке;

Habrahabr SAP ERP ABAP – дополнительный набор справочных ресурсов по ABAP и всему, что его касается;

Habrahabr Course Guide – путеводитель по онлайн-курсам ABAP.

Книги

Мы продолжаем говорить о не самых популярных языках программирования, заслуживающих тем не менее внимания настоящих гиков. В этот раз речь пойдёт о языке ABAP/4 или просто ABAP. О том, что эта самая четвёрка в названии означает, зачем нужен этот язык, а главное где и как ему обучиться – далее.

Краткая справка

ABAP/4 – проприетарный (т.е. не распространяющийся свободно) язык программирования высокого уровня, разработанный немецкой софтверной компанией SAP и предназначенный исключительно для работы с выпускаемым ей ПО. В январском рейтинге популярности языков ABAP/4 занимает 22 место прямо перед Scratch.

Он был разработан в 1983 году для работы с внутренней системой SAP R/2. Цифра 4, которая присутствует в названии, не имеет практического смысла и лишь указывает, что язык относится к 4 поколению. SAP R/2 – это система управления предприятием, предполагающая стандартную связь между клиентской базой и сервером. Позднее была заменена трёхзвенной системой R/3 – клиент, сервер приложений и система управления базами данных.

Синтаксис

Во многих источниках вы можете найти замечание про схожесть синтаксиса ABAP с COBOL. Однако не стоит принимать это за чистую монету, схожесть касается исключительно внешнего вида, в то время как структура и возможности совсем разные. Сравните базовый код любого программиста “Hello World”:

WRITE / ‘Hello World’.

DISPLAY «Hello, world.».

END PROGRAM HELLO-WORLD.

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

Область применения

Работа

Если ABAP не является языком, вечно мелькающим в списке требований работодателей, если его не изучают в университетах, то это совсем не означает, что он не востребован. ABAP имеет свою аудиторию, эко-систему, поэтому требует от соискателей осознанного выбора будущей деятельности. Прямо сейчас на популярном рекрутинговом ресурсе вы можете найти свыше 100 вакансий, причём среди них есть те, где знание продуктов компании SAP и опыт работы с ABAP – едва ли не единственное требование.

Полезные ссылки

ABAP Community – официальное сообщество разработчиков;

ABAP-blog – один из немногих очень качественных и визуально приятных отечественных ресурсов, где можно почитать про программирование на ABAP;

Викиучебник – основы на русском языке;

Habrahabr SAP ERP ABAP – дополнительный набор справочных ресурсов по ABAP и всему, что его касается;

Habrahabr Course Guide – путеводитель по онлайн-курсам ABAP.

Книги

Источник

Введение в ABAP

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

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

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

Типизация

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

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

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

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

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

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

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

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

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), вводим название своей программы:

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

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

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

И запускаем:

Результат:

Заключение

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

Источник

ru.knowledgr.com

Введение

ABAP является одним из многих специфичных для приложений языков четвертого поколения (4GL), впервые разработанных в 1980-х годах. Первоначально это был язык отчетов для системы R/2, платформы, которая позволила крупным корпорациям создавать основные бизнес-приложения для управления материальными потоками и финансового и управленческого учета. ABAP устанавливает интеграцию между независимым программным обеспечением.

Текущая платформа разработки SAP NetWeaver поддерживает как ABAP, так и Java.

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

В настоящее время SAP Netweaver работает в системах UNIX (AIX, HP-UX, Solaris, Linux), Microsoft Windows, i5/OS в IBM System i (ранее iSeries, AS/400) и z/OS в IBM System z (ранее zSeries, S/390). Поддерживаемые базы данных: HANA, SAP ASE (ранее Sybase), IBM DB2, Informix, MaxDB, Oracle и Microsoft SQL Server (поддержка Informix была отключена в SAP Basis версии 7.00).

Среда выполнения ABAP

Все ABAP-программы находятся в базе данных SAP. Они не хранятся в отдельных внешних файлах, таких как программы Java или C++. В базе данных весь ABAP-код существует в двух формах: исходный код, который можно просматривать и редактировать с помощью инструментов ABAP Workbench, и сгенерированный код, бинарное представление, которое можно сравнить с байт-кодом Java. ABAP-программы выполняются под управлением исполняющей системы, являющейся частью ядра SAP. Исполняющая система отвечает за обработку ABAP-инструкций, управление логикой потока экранов и реагирование на события (например, пользователя на экранной кнопке), в этом отношении она может рассматриваться как Виртуальная машина, сопоставимая с Java VM. Ключевым компонентом ABAP-исполняющей системы является Интерфейс базы данных, который превращает не зависящие от базы данных ABAP-операторы («Open SQL&quot);, понимаемые под SQL. Интерфейс базы данных обрабатывает всю связь с реляционной базой данных от имени ABAP-программ, он также содержит дополнительные функции, такие как буферизация таблиц и часто используемые данные в локальной памяти сервера приложений.

SAP-системы и среды

Все данные SAP существуют, и все программное обеспечение SAP выполняется в контексте SAP-системы. Система состоит из центральной реляционной базы данных и одного или нескольких приложений («экземпляров&quot);, обращающихся к данным и программам в этой базе данных. SAP-система содержит, по крайней мере, один экземпляр, но может содержать большее количество экземпляров, главным образом по причинам размера и производительности. В системе с несколькими экземплярами балансировка нагрузки мс обеспечивает равномерное распределение нагрузки по доступным серверам приложений.

Установка сервера веб-приложений (среды) обычно включает в себя три системы: одну для разработки, одну для тестирования и обеспечения качества и одну для производства. Ландшафт может содержать больше систем (например, отдельные системы для модульного тестирования и предсерийного тестирования) или может содержать f (например, только разработка и производство, без отдельного QA), тем не менее три являются наиболее распространенной конфигурацией. ABAP-программы создаются и проходят первое тестирование в системе разработки. После этого они распределяются по другим системам в ландшафте. Эти действия осуществляются под контролем системы изменения и транспортировки (CTS), которая отвечает за контроль параллелизма (например, предотвращение одновременного изменения одного и того же кода двумя разработчиками), управление версиями и управление программами в системах обеспечения качества и производства.

Сервер веб-приложений состоит из трех уровней: уровня базы данных, уровня приложений и уровня представления. Эти слои могут работать на одной и той же или на разных физических машинах. Уровень базы данных содержит реляционную базу данных и программное обеспечение базы данных. Знание прикладного уровня содержит экземпляр или экземпляры системы. Все прикладные процессы, включая бизнес-операции и разработку ABAP, выполняются на уровне приложений. Уровень представления обрабатывает взаимодействие с пользователями системы. Оперативный доступ к серверам приложений ABAP может осуществляться через собственный графический интерфейс, называемый «SAP GUI», или через веб-браузер.

Программисты

Программное обеспечение ABAP представляет собой компоненты программного обеспечения, примеры которых:

Операции

Типы ABAP-программ

Как и в других языках программирования, ABAP-программа является либо исполняемым модулем, либо библиотекой, которая предоставляет повторно используемый код другим программам и не является независимой исполняемой.

ABAP различает два типа исполняемых программ:

Отчеты следуют относительно простой модели программирования, в которой пользователь опционально вводит набор параметров (например, выбор по субнабору данных), и программа затем использует входные параметры для создания отчета в форме интерактивного списка. Термин «отчет» может вводить в заблуждение в том смысле, что отчеты также могут быть разработаны для уточнения данных; причина, по которой эти программы называются отчетами, заключается в «ориентированном на список» характере выходных данных, которые они производят.

Пулы модулей определяют более сложные схемы взаимодействия пользователей с помощью набора экранов. Термин «экран» относится к фактическому физическому изображению, которое видит пользователь. Каждый экран также имеет «логику потока», которая относится к ABAP-коду, непроизвольно вызываемому экранами, который делится на раздел «PBO» (Процесс перед выводом) и «PAI» (Процесс после ввода). В документации SAP термин «dynpro» (динамическая программа) относится к комбинации экрана и его логики потока.

Не выполняемые типы программ:

Получает, включенный во время генерации в вызывающий блок, часто используется для субдивидирования больших мс. Содержат ABAP-подпрограммы (блоки кода, заколотые инструкциями FORM/ENDFORM и вызываемые с помощью PERFORM). являются библиотеками автономных модулей функций (закомплексованные с помощью FUNCT и вызываемые с помощью CALL FUNFFUNCUNCTION TION.). Являются библиотеки автономными модулями, автономными модулями автономными модулями функций (модули).

ABAP-программы состоят из отдельных приговоров (инструкций). Первое слово в операторе называется ABAP ke ord. Каждая инструкция заканчивается точкой. Слова всегда должны разделяться по крайней мере одним пробелом. Инструкции могут быть отступлены по желанию. При использовании клавиш, дополнений и операндов ABAP-исполняющая система не различает верхний и нижний регистры.

Операторы могут выходить за пределы одной строки. В одной строке может быть несколько операторов (хотя это не рекомендуется). Строки, начинающиеся с астериска * в первом столбце, распознаются ABAP-исполняющей системой как строки комментариев и игнорируются. Двойные кавычки (&quot); указывают, что остаток строки является комментарием.

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

Существует два возможных способа разработки в ABAP. Доступность зависит от версии системы ABAP.

ABAP-инструментальные средства

ABAP-инструментальные средства являются частью ABAP-системы и доступны через SAP GUI. Они содержат различные инструменты для редактирования программ. Наиболее важными из них являются (коды транзакций показаны в параграфах):

Навигатор объектов (транзакция SE80) обеспечивает единый интегрированный интерфейс в эти различные инструменты.

Средства разработки ABAP

ABAP Development Tools (ADT), формально известный как «ABAP в Eclipse», представляет собой набор plugins для платформы Eclipse для разработки ABAP.

В этом scenario разработчик ABAP устанавливает необходимые инструменты на свой компьютер и работает локально, в то время как выполняется непрерывная синхронизация с бэкендом.

ABAP-словарь

ABAP-словарь содержит все метаданные о данных в SAP-системе. Он тесно связан с ABAP-инструментальными средствами в том смысле, что любая ссылка на данные (например, таблица, ракурс или тип данных) будет получена из словаря. Для просмотра и ведения этих метаданных разработчики используют транзакции ABAP Dictionary (непосредственно или через навигатор объектов SE80 в ABAP Workbench).

При изменении объекта-словаря программа, которая ссылается на измененный объект, автоматически ссылается на новую версию при следующем запуске программы. Поскольку ABAP интерпретируется, нет необходимости перекомпилировать программы, ссылающиеся на измененные дикциональные объекты.

Ниже приводится краткое описание наиболее важных типов дикциональных объектов:

ABAP синтакс

Это краткое описание ABAP syntax начинается с ubiquitous «H world» программы.

Х мир

ТЕСТ ОТЧЕТА. WRITE ‘Haxhighlight’. Этот пример содержит два оператора: и. Программа отображает список на экране. При этом список состоит из одиночной строки «H World». Инструкция указывает, что эта программа является отчетом. Эта программа может быть пулом модулей после инструкции с.

Цепные операторы

Последовательные операторы с идентификационной первой (leftmost) частью могут быть объединены в «цепной» оператор с помощью оператора цепочки. Общая часть операторов записывается слева от двоеточия, разностные части записываются справа от двоеточия и разделяются запятыми. Оператор двоеточия присоединен непосредственно к предшествующему токену, без пробела (то же самое относится к запятым в списке токена на, как можно видеть в примерах ниже).

ВЫБЕРИТЕ * ИЗ GHTIN ГДЕ КЛАСС = ‘Y’ «Y = эконом ИЛИ КЛАСС = ‘C’.» C = бизнес (. )

Пространства

Код в ABAP чувствителен к пробелам. x = a + b (c). assigns to variable x подстрока переменной a, начиная с b с длины, определенной переменной c. x = a + b (c). assigns для метода вызова переменной sigc.

ABAP-операторы

В отличие от таких языков, как C/C + + или Java, которые определяют ограниченный набор специфичных для языка операторов и предоставляют большинство функций через библиотеки, ABAP содержит большое количество встроенных операторов. Эти утверждения похожие на предложения структуры и символы, что делает ABAP-программы относительно подробными. Однако в более поздних версиях языка ABAP возможен стиль terser.

Пример syntax на основе оператора (синтакс которого происходит в COEXUS) и syntax на основе выражения (как в C/Java): ADD TAX TO PRICE.

Типы данных и переменные

ABAP предоставляет набор встроенных типов данных. Кроме того, для ввода переменной можно использовать каждую структуру, таблицу, представление или элемент данных, определенные в ABAP Dictionary. Кроме того, в качестве типов можно использовать классы объектов и интерфейсы.

Встроенные типы данных:

Переменные даты или константы (тип D) содержат количество дней с 1 января, 1 AD. Переменные времени или константы (тип T) содержат количество секунд с полуночи. Особой характеристикой обоих типов является то, что к ним можно обращаться как в виде целых чисел, так и в виде символьных строк (с внутренним форматом «YYYYMMDD» для дат и «hhmmss» для времени), которые могут использоваться для обработки даты и времени. Например, приведенный ниже код snipppet вычисляет последний день предыдущего месяца (примечание: SY-DATUM является определяемой системой переменной, содержащей текущую дату): DATA LAST _ EOM TYPE D «последняя дата конца месяца

LAST _ EOM = SY-ОПОРНЫЙ ЭЛЕМЕНТ.

LAST _ EOM + 6 (2) = ’01’.

WRITE: ‘Последний день предыдущего месяца был’, LAST _ EOM. Для использования все переменные ABAP должны быть предельно точно объявлены. Они могут быть объявлены либо с отдельными инструкциями и вводом exlici, либо, начиная с ABAP 7.40, с вводом in.

Действительное типизированное объявление

Как правило, все объявления помещаются в верхней части модуля кода (программа, подпрограмма, функция) перед первым исполняемым оператором; это размещение является соглашением, а не принудительно применяемым правилом syntax. Объявление состоит из имени, типа, длины (где применимо), дополнительных fiers (например, количество imp decimals для упакованного десятичного поля) и опционально начального значения:

ДАННЫЕ: СЧЕТЧИК ТИП I, ДЕЙСТВИТЕЛЬНОСТЬ ТИП I ЗНАЧЕНИЕ 60, TAXRATE (3) ТИП P ДЕСЯТИЧНЫЕ ЧИСЛА 1, LASTNAME (20) ТИП C, ОПИСАНИЕ ТИП СТРОКИ.

ДАННЫЕ: СТРАНА ПРОИСХОЖДЕНИЯ.

ДАННЫЕ: ТАБЛИЦА ТИПОВ T _ FLIGHTS ДЛЯ ТАБЛИЦЫ ТИПА T _ LOOKUP HASHED ДЛЯ ТАБЛИЦЫ FLT _ LOOKUP.

DATA: BOOKING TYPE REF TO CL _ FLT _ BOOKING. Обратите внимание на использование двоеточия для объединения последовательных операторов DATA.

Встроенное объявление

Поскольку ABAP 7.40, переменные могут быть объявлены в соответствии со следующим syntax: DATA (имя _ переменной) = ‘VALUE’.

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

ABAP-объекты

Язык ABAP поддерживает объектно-ориентированное программирование с помощью функции, известной как «ABAP Objects». Это помогает приложения и сделать их более управляемыми.

ABAP Objects полностью совместим с существующим языком, поэтому можно использовать существующие инструкции и единицы модуляции в программах, использующих ABAP Objects, а также можно использовать ABAP Objects в существующих ABAP ms. Проверка Syntax является строкой в программах ABAP Objects, и некоторые синтактические формы (обычно старые) определенных инструкций не допускаются.

В объектно-ориентированном программировании объекты обычно имеют следующие свойства:

Представления CDS

Модели данных определяются с использованием языка определения данных (DCL) и языка управления данными (DCL), предоставленных в ABAP CDS в ABAP CDS syntax. Объекты, определенные с помощью этих языков, также интегрируются в ABAP Dictionary и управляются здесь.

Исходный код CDS может быть запрограммирован только в ABAP Development Tools (ADT) на основе Eclipse. Язык определения данных (DCL) и язык управления данными (DCL) используют разные редакторы.

Особенности

Внутренние таблицы в ABAP

Внутренние таблицы являются важной особенностью языка ABAP. Внутренняя таблица определяется аналогично вектору структур в C++ или вектору объектов в Java. Основное отличие этих языков заключается в том, что ABAP предоставляет набор инструкций для легкого доступа к содержимому внутренних таблиц и управления им. Следует отметить, что ABAP не поддерживает arrais; единственным способом определения многоэлементного объекта данных является использование внутренней таблицы.

Внутренние таблицы являются способом хранения наборов переменных данных фиксированной структуры в рабочей памяти ABAP и обеспечивают функцию динамических arrais. Данные хранятся по строкам, где каждая строка имеет одинаковую структуру.

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

В следующем примере определяется внутренняя таблица с двумя полями в формате таблицы базы данных VBRK.

ТИПЫ: НАЧАЛО t _ vbrk, ТИП VBRK-VB, ТИП ONR VBRK- ONR, КОНЕЦ t _ vbrk.

ДАННЫЕ: gt _ vbrk ТИП СТАНДАРТНАЯ ТАБЛИЦА t _ vbrk, gt _ vbrk _ 2 ТИП СТАНДАРТНАЯ ТАБЛИЦА t _ vbrk «. легко определить больше таблиц

ДАННЫЕ: gs _ vbrk TYPE t _ vbrk, gs _ vbrk2 LIKE LINE OF gt _ vbrk2.

TYPES tt _ vbrk СТАНДАРТНАЯ ТАБЛИЦА ТИПОВ t _ vbrk.

История

Источник

Понравилась статья? Поделиться с друзьями:

Не пропустите наши новые статьи:

  • Что такое 1024 для программиста
  • что такое 32 бит и 64 бит windows
  • Что такое 12 шаговая программа
  • что такое 12 шаговая программа для алкоголиков
  • что такое 12 шагов для алкоголиков программа

  • Операционные системы и программное обеспечение
    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest
    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии