Меню

Начинаем изучать ABAP. (BC400)

Обзор семинаров об ABAP.

Программисту, приступающему к изучению языка программирования ABAP и уже знакомому с основами архитектуры SAP NetWeaver Application Server, имеет смысл начинать с участия в семинаре «BC400. Основы ABAP-инструментальных средств». Продолжительность - 5 дней. Это введение в ABAP-разработки, оно посвящено основным инструментам и наиболее часто используемым синтаксическим конструкциям языка ABAP. Оно также затрагивает те из смежных вопросов, которые непременно должны быть ясны для разработчика. . Семинар специально предназначен для разработчиков и системных администраторов, но весьма полезен архитекторам решений и руководителям, связанным с разработкой, поскольку дает хороший обзор средств и методов, особо не затрагивая технических подробностей. Он также может быть полезен тем консультантам и работникам службы поддержки, которые участвуют в постановке задач на разработку, расширение функциональности и исправление ошибок, для того, чтобы дать этим работникам общий язык для общения с разработчиками. Семинар предоставляет сведения, необходимые для дальнейшего изучения языка ABAP.

Необходимыми предпосылками для участия в  семинаре являются знакомство с основами архитектуры системы и опыт программирования на любом из языков (бэйсик на школьном уровне тоже подойдет, если еще не забыт). Для тех, кто не программировал даже в школе или уже забыл, как это делается есть семинар «BC100. Введение в программирование (с ABAP)». Обзор архитектуры системы дается в семинаре «SAPTEC. Основы SAP NetWeaver Application Server».

В первую очередь следует рассмотреть работу ABAP-программы: и инструментарий разработчика, в частности, усвоить понятия манданта, системного ландшафта и транспортной системы. Участники делают первый учебный проект, в составе которого создается пакет, программа и транзакция. Да, программа эта, конечно же «Hello World!», но она работает! Ну а транзакция в ABAP – это не транзакция сервера базы данных, а способ запуска ABAP-программы. Так вот уже в первый день участники семинара приобретают практический опыт успешно завершенного проекта, пусть и учебного. Попутно участники получают первый опыт персонализации системы.

Объекты данных (переменные и константы) в ABAP должны быть объявлены до своего первого употребления1. Для определения объектов данных существуют декларативные операторы (увы, сложилась порочная традиция термины «statement» и «operator» переводить на русский язык одним и тем же словом «оператор», ну да в контексте статьи это не особенно важно).

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

В языке ABAP существует три категории процессинговых единиц, которые можно вызвать из ABAP-программы: подпрограммы, локализованные в программах; функциональные модули, глобальные для всей системы; методы (методы классов локальных по программе и глобальных по всей системе). Раз их можно вызвать, в них можно передавать, а из них можно получать параметры. Передавать параметры можно по ссылке или по значению. Синтаксис определений и вызовов подпрограмм, функциональных модулей и методов различен. Существуют специальные инструменты для создания и ведения глобальных процессинговых единиц – построители функциональных модулей и классов. ABAP допускает как процедурное, так и объектно-ориентированное программирование3.

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

ABAP-программы могут обращаться к таблицам базы данных. Такие таблицы должны быть объявлены в особом инструменте разработчика – словаре данных. В словаре данных могут также быть даны технические и семантические определения скалярных типов данных, определения структурированных и табличных типов данных, в словаре могут быть также определены интерактивные службы, такие как документация по полю, справка по допустимым значениям5. Для доступа к таблицам базы данных используется набор ABAP-операторов – Open SQL. При первом знакомстве с ABAP рассматриваются наиболее простые варианты команды SELECT, позволяющей получить данные из таблицы базы данных в структуры и внутренние таблицы6.

Отчеты – весьма распространенный тип ABAP-программ. Обычно отчеты предъявляют результаты через списки (листинг), а исходные данные можно ввести посредством селекционного экрана. Особый интерес представляет способ организации отчета с использованием блоков обработки событий. Блоки обработки событий это еще одна категория процессинговых единиц. Блоки обработки событий исполняются в тот момент, когда исполнительная система сочтет, что событие наступило. Их нельзя законным образом напрямую вызвать из ABAP-программы, а значит у них не может быть интерфейсных параметров. Оказывается, в языке ABAP кроме процедурного и объектно-ориентированного программирование реализована еще и парадигма событийно-ориентированного программирования. Воистину ABAP велик7!

Списки и селекционные экраны предназначены для организации простой интерактивности и реализуются просто, с помощью ABAP-операторов. Если возникает необходимость в более сложной интерактивности, нужно более развитое средство – диалоговые экраны. Для их создания есть специальный инструмент – редактор экранов. Экран содержит не только экранные элементы, например, поля ввода-вывода и нажимные кнопки, но еще и логику исполнения. Эта логика исполнения экранов описывается не на ABAP­е, а на особом языке. Из этой логики исполнения экрана можно вызывать процессинговые блоки еще одной категории – модули (не следует путать с функциональными модулями). Для примера создадим простую двухэкранную диалоговую транзакцию8. Для предъявления табличных данных можно использовать методы класса SAP List Viewer. Это позволяет значительно облегчить разработку9

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

Если хотите прочитать статью полностью и оставить свои комментарии присоединяйтесь к sapland

У вас уже есть учетная запись?

Войти