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 с конкретными примерами и мануалами. Ну, а дальше как пойдет.

Источник

Хочу всё знать. Язык 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-разработчики нужны. А для тех кто сомневается — только за последние полтора месяца на HH появилось свыше 100 вакансий, в том числе от ведущих российских и мировых брендов.

ABAP возник в 80-е годы двадцатого века и продолжает развиваться. За три десятка лет он вобрал в себя множество парадигм программирования — тут и процедурное, и событийно-ориентированное и объектно-ориентированное — все это в рамках структурного программирования в стиле Дэйкстры (с непременными ENDIF, ENDCASE, разными другими ENDЧТОТОТАМ и даже ENDSELECT, непривычным для знатоков SQL). Обилие парадигм значительно расширяет кругозор, но немного усложняет изучение языка.

В принципе, если среди вас есть энтузиасты, они могут учить его и по стандартной документации. Хотя это не так просто: нужно писать свои программы, требуется система, которая встанет не на любое железо и не забываем про лицензии, но самое печальное, что это долго. Документации много, и не от сырости — язык за три десятка лет вобрал в себя многое, а выкинуть старое не легко: есть такая «священная корова» — совместимость версий. Для изучения ABAP SAP была разработана специальная программа курсов, охват тем которой с одной стороны несколько превосходит Академию для консультантов TAW10/TAW20, с другой успешное усвоение достаточно для сертификации Associate development consultant. Какие курсы нужны и зачем? Постараюсь ответить на эти вопросы, кратко опишу, через что и, главное, в каком порядке, придется пройти новичкам, ну и, конечно, готов ответить на вопросы. С вами я — ABAP-тренер, since 1998.

Итак, начнем! Если вы не знакомы с устройством SAP платформы в целом, то начинать нужно с букваря. Курс под кодовым названием «SAPTECE. Введение в архитектуру SAP NetWeaver» нужен, чтобы понимать, как SAP работает. Он дает общие сведения об архитектуре технологической платформе SAP NetWeaver: что такое инстанция сервера приложений, чем она занимается, что такое рабочий процесс, какие они бывают и почему так много, что такое разработка, мандант, системный ландшафт, транспортная система и что она делает, самые общие сведения об интеграционных возможностях.

На месте выясняем, что такое транзакция в понимании ABAP (думаете atomicity, consistency, isolation, and durability? …ммм, отнюдь), и какие они бывают, кроме диалоговых. Курс предназначен для разработчиков, но в целом подойдет для будущих администраторов и будет полезен тем, кто планирует специализироваться в области интеграционных технологий и тем, кому по роду своей деятельности приходится объясняться с ABAPерами.

Конечно, простые отчеты можно писать и в процедурном или событийно-ориентированном стилях. Однако объектно-ориентированное программирование используется в новых SAP разработках повсеместно. В частности, создано много классов, осуществляющих элегантное предъявление данных. Гораздо проще использовать эти готовые классы, чем каждый раз изобретать велосипед. Кроме того, новые технологии расширений широко используют объектно-ориентированное программирование. Да и вообще это теперь магистральное направление в ABAP, так что хочешь – не хочешь, а знать придется. Курс «BC401E. ABAP объекты» освещает особенности объектно-ориентированного программировании на ABAP: рассматриваются синтаксические конструкции, инструменты и некоторые направления использования. Объектно-ориентированный ABAP не имеет множественного наследования, вместо чего применяются интерфейсы, так что это курс будет более понятен java-разработчикам. Вот так, например, выглядит классовая диаграмма финального упражнения:

Легко догадаться, что гораздо проще определить нужные типы данных с подходящими к ним интерактивностями централизовано, на уровне создания описаний, чем каждый раз программировать. SAP системы содержат центральное место, где описаны различные типы данных и часто используемые интерактивные службы — Словарь. Его декларации многократно упрощают дальнейшее программирование. Если уж на чем-то экономить, то не на изучении словаря, поскольку императивные языки программирования все-таки более или менее схожи, а Словарь – это отдельная «изюминка». На курсе «BC430E. Словарь-справочник данных» рассматриваются определения доменов, элементов данных, структур, табличных типов, таблиц в базе данных, ракурсов базы и ведения, кластеров ведения, поисковых механизмов и механизмов обеспечения целостности данных: фиксированных значений доменов и внешних ключей.

Медленно, но верно мы движемся к цели — подобрались к курсу «BC402E. Углубленное ABAP программирование» о том, как писать не очень плохие программы. Здесь поднимаются тонкие вопросы, важные для написания эффективных программ: устройство памяти, вызов программ, декларирование и передача данных и параметров, динамические конструкции программирования, динамическое определение типов и динамическое же создание данных, также приводится дополнительные сведения по операторам Open SQL и некоторые другие вкусности.

Зачем же нужен динамизм? Ну вот есть такая таблица, BSEG, она содержит позиции финансовых документов. В ней, к примеру, около 340 полей. Понятно, что обычному пользователю нужны значения далеко не всех полей. Можно получить данные во внутреннюю таблицу полной структуры, но такая структура будет избыточной, ведь пользователю нужны не все данные, а хранить пустое место – это слишком расточительно по памяти. Можно было бы определить заранее несколько структур, комбинирующих нужные поля в нужном порядке. Но таких комбинаций (количество подмножеств множества из 340 элементов) будет 2^(340-1) – 1

10^(329). Это очень большое число. Для сравнения, число атомов в наблюдаемой вселенной оценивается как

10^(81). То есть заранее создать все возможные описания практически невозможно. Вот в таком случае и придется для экономного расходования памяти динамически создавать тип данных нужный именно под эту выборку.

Движемся далее. Классические экраны составляют основу визуального интерфейса SAP-систем. Существует несколько способов создать различные способы их преобразования в html. Но до сих пор основа стандартных диалогов именно они. Да и вообще надо знать, как создаются диалоги. Курс «ВС410. Разработка диалоговых программ» освещает технологию стандартных диалоговых экранов Dynpro. Этот курс нужен всем тем, кто будет создавать диалоги. Среди прочего будет рассмотрено программирование подэкранов, картотечных блоков и экранных таблиц, программирование реакции на ошибки. Всю неделю будет писаться одна одноэкранная диалоговая транзакция. Примерно вот с таким экраном.

Что-то подобное уже было в курсе BC400E? Там был грид, навигация по которому обрабатывается локально на клиентском рабочем месте, стало быть сервер приложений (и исполняемая на нем ABAP-программа) ничего не знает про навигацию. Здесь же экранная таблица, навигация по которой обрабатывается на сервере приложений. Соответственно транзакции, использующие экранные таблицы могут быть пригодны для пакетного ввода. Плюс программирование картотечных блоков, проверок корректности ввода, да и другие прибамбасы.

Конечно, у владельцев SAP-систем есть возможность и право модифицировать программы в соответствии со специфическими требования своего бизнеса. А вот когда от SAP придет новая версия программного обеспечения, тут начинается корректировка модификаций (modification adjustment). Принять решение требуется по каждой из модификаций. SAP предусмотрел набор технологий, позволяющий так изменять работу стандартного программного обеспечения, что корректировка модификаций не потребуется. Это и называется расширением. Курс «BC425E. Расширения и модификации» рассматривает классические технологии расширений: расширения словарных определений, кастомер-экзиты и BAdI. Кроме расширения программ, рассматриваются расширения меню и экранов, также рассматриваются модификации, в том числе юзер-экзиты. Курс нужен всем, кто будет обогащать стандарт собственными расширениями.

Для доступа к стандартной функциональности SAP, использующей классические экраны, описанные в курсе BC410E требуется специальное клиентское программное обеспечение — SAP GUI. Такое ПО устанавливается на рабочих местах сотрудников. Но трудно ожидать, что любой клиент, желающий просмотреть, например, прайс-лист компании, будет устанавливать у себя этот самый SAP GUI. А вот Web браузеры – вещь, распространенная практически повсеместно. Интерфейс Web Dynpro позволяет осуществлять доступ к функциональности SAP непосредственно из web-браузера. Так вот курс «NET310E. Основы ABAP Web Dynpro» дает начальные сведения о технологии и учит создавать довольно развитые приложения. Рассматриваются следующие темы: компоненты архитектуры, определение внешнего формата, программирование контроллеров, модуляризация Web Dynpro, динамическая модификация, конфигурация, персонализация, расширения. Вот пример Web Dynpro приложения с этого курса:

В целом, я описал основные курсы по ABAP, все они входя в программу «ABAP2 Сертифицированный ABAPер». Есть и другие тренинги по более узким и наоборот широким вопросам с дистанционным обучением.

Источник

BC100 Введение в программирование (с ABAP)

Длительность курсов

Код курса

Язык обучения

Язык материалов

Целевая аудитория

Специалисты по разработке
Консультанты по разработке
Специалисты групп поддержки

Программа

• Основы программирования на ABAP
— Разработка простой программы на ABAP
— Введение в синтаксис ABAP
— Создание простой диалоговой программы
— Настройка редактора ABAP
• Написание и отладка программ на ABAP
— Определения переменных
— Определение текстовых символов, выполнение арифметических операций с использованием переменных
— Использование системных переменных
— Отладка программ
— Создание ABAP-списков (ABAP Lists)
— Обработка символьных строк
• Управляющие структуры в ABAP
— Реализация условий
— Реализация циклов
• Ошибки во время исполнения и обработка ошибок
— Анализ ошибок во время исполнения
— Реализация обработки ошибок
• Дополнительные вопросы программирования на ABAP
— Получение данных из базы данных
— Модульное программирование на ABAP
— Использование функциональных модулей

Версия программного обеспечения

SAP ECC 6.07 (SAP NetWeaver 7.40)

• Введение в программирование (на основе ABAP)
• Поиск и устранение простых ошибок в программах

Примечания

Семинар по программированию BC400 (ABAP Workbench Foundations) требует понимая основ программирования, описанных в данном семинаре

Источник

SAP — язык программирования (ABAP)

В этой главе дается обзор ABAP — языка программирования, используемого в SAP для разработки поддержки и разработки бизнес-приложений.

ABAP (Расширенное программирование бизнес-приложений)

ABAP — это язык программирования, работающий в среде выполнения SAP ABAP, созданный и используемый SAP для разработки прикладных программ, включая:

Все приложения R / 3 и даже части его базовой системы были разработаны в ABAP.

ABAP — это язык программирования, управляемый событиями. Действия пользователя и системные события управляют выполнением приложения.

ABAP также называется ABAP / 4. «4» в ABAP / 4 означает «язык четвертого поколения» или 4GL.

ABAP Workbench

ABAP Workbench используется SAP для разработки стандартного и специального прикладного программного обеспечения. ABAP Workbench также используется для создания объектов словаря. Он состоит из следующих компонентов —

ABAP Editor используется для поддержки программ.

Словарь ABAP используется для поддержки объектов Dictionary.

Браузер репозитория используется для отображения иерархической структуры компонентов в пакете.

Меню Painter используется для разработки графических пользовательских интерфейсов, включая строки меню и панели инструментов.

Screen Painter используется для поддержки компонентов экрана для онлайн-программ.

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

ABAP Editor используется для поддержки программ.

Словарь ABAP используется для поддержки объектов Dictionary.

Браузер репозитория используется для отображения иерархической структуры компонентов в пакете.

Меню Painter используется для разработки графических пользовательских интерфейсов, включая строки меню и панели инструментов.

Screen Painter используется для поддержки компонентов экрана для онлайн-программ.

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

Примечание. Инструментальные средства ABAP раньше назывались инструментальными средствами разработки ABAP / 4.

Составление отчетов

Программы отчетов создают списки и могут быть разделены на классические отчеты и интерактивные отчеты.

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

Интерактивные отчеты позволяют взаимодействие с пользователем; следовательно, пользователь может создавать вторичные подробные списки базового списка, выбирая соответствующие данные и запрашивая дополнительную информацию.

SAP Query или Ad-hoc Query или InfoSet Query — это инструмент, который позволяет конечному пользователю создавать различные запросы на основе разных входных и выходных параметров в системе SAP в соответствии с требованиями. Это один из инструментов отчетности, который в основном используется в модуле управления персоналом для извлечения данных из реляционных баз данных. InfoSet Query подходит для создания отчетов во всех областях системы SAP R / 3.

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

Интерактивные отчеты позволяют взаимодействие с пользователем; следовательно, пользователь может создавать вторичные подробные списки базового списка, выбирая соответствующие данные и запрашивая дополнительную информацию.

SAP Query или Ad-hoc Query или InfoSet Query — это инструмент, который позволяет конечному пользователю создавать различные запросы на основе разных входных и выходных параметров в системе SAP в соответствии с требованиями. Это один из инструментов отчетности, который в основном используется в модуле управления персоналом для извлечения данных из реляционных баз данных. InfoSet Query подходит для создания отчетов во всех областях системы SAP R / 3.

Специальный запрос предоставляет три различных вида отчетов:

Основной список — Простые отчеты.

Статистика — отчеты со статистическими функциями, такими как среднее, процент и т. Д.

Ранжированный список — для аналитических отчетов.

Основной список — Простые отчеты.

Статистика — отчеты со статистическими функциями, такими как среднее, процент и т. Д.

Ранжированный список — для аналитических отчетов.

Код транзакции, используемый для доступа к специальным запросам —

SQ01 — Ведение запросов

SQ02 — Показать инфо-набор

SQ03 — Ведение групп пользователей

SQ01 — Ведение запросов

SQ02 — Показать инфо-набор

SQ03 — Ведение групп пользователей

Ввод данных

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

Данные могут быть перенесены из SAP в SAP или SAP в не-SAP-системы (устаревшая система). Данные также могут быть переданы с помощью ручного ввода. Инструменты, используемые для передачи данных, следующие:

печать

SAP создает различные документы, такие как заказы на поставку, заказы на продажу, счета-фактуры, платежные ведомости и т. Д. Вы можете распечатать эти документы, когда это необходимо. На следующем рисунке показано, как работает процесс печати в системе SAP.

В системе SAP требуются различные методы печати, такие как —

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

Общее программирование

Программы могут быть написаны в интерактивном режиме с использованием возможностей системы R / 3. Программы могут выполняться как онлайн, так и в фоновом режиме. Фоновые задания также можно запланировать на определенные интервалы.

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

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

ABAP содержит операторы, которые соответствуют стандартам CPI-C (Common Program Interface — Communications). Они используются для программирования коммуникационных программ.

ABAP может читать и записывать последовательные наборы данных.

Источник

Операционные системы и программное обеспечение