АБАП
![]() | В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
Парадигма | Объектно-ориентированный , структурированный , императивный |
---|---|
Разработано | SAP SE |
Впервые появился | 1983 год |
Стабильная версия | 7.58 [1]
/ 26 октября 2023 г |
Дисциплина набора текста | Статический , сильный , безопасный , именительный падеж. |
ТЫ | Кросс-платформенный |
Веб-сайт | сообщество |
Основные реализации | |
SAP R/2 , SAP R/3 , SAP S/4HANA | |
Под влиянием | |
Цель-С , [ нужна ссылка ] КОБОЛ , [ нужна ссылка ] SQL [ нужна ссылка ] |
ABAP (Расширенное программирование бизнес-приложений, первоначально Allgemeiner Reports-Aufafafungs-Processor , на немецком языке означает «процессор общей подготовки отчетов»). [2] ) — язык программирования высокого уровня, созданный немецкой программного обеспечения компанией-разработчиком SAP SE . В настоящее время он позиционируется, наряду с Java , как язык программирования сервера приложений SAP NetWeaver , который является частью платформы SAP NetWeaver для создания бизнес-приложений.
Введение
[ редактировать ]ABAP — один из многих специализированных языков четвертого поколения ( 4GL ), впервые разработанных в 1980-х годах. Первоначально это был язык отчетов для SAP R/2 , платформы, которая позволяла крупным корпорациям создавать бизнес-приложения для мэйнфреймов для управления материальными потоками, а также финансового и управленческого учета.
раньше был аббревиатурой от , ABAP что по-немецки позже означает был « «Общий процессор подготовки отчетов» обобщенный процессор подготовки отчетов», но [ когда? ] English Advanced Business Application Programming в . переименован ABAP был одним из первых языков, включивших концепцию логических баз данных (LDB), которая обеспечивает высокий уровень абстракции от базовых уровней баз данных, которые поддерживают каждую платформу, язык и модули.
Язык ABAP изначально использовался разработчиками для разработки платформы SAP R/3 . Он также предназначался для использования клиентами SAP для улучшения приложений SAP — клиенты могут разрабатывать собственные отчеты и интерфейсы с помощью ABAP-программирования. Язык был ориентирован на более технических клиентов с опытом программирования.
ABAP остается языком создания программ для системы клиент-сервер R/3 , которую SAP впервые выпустила в 1992 году. По мере развития компьютерного оборудования в 1990-е годы все больше и больше приложений и систем SAP было написано на ABAP. К 2001 году все функции, кроме самых основных, были написаны на ABAP. В 1999 году SAP выпустила объектно-ориентированное расширение ABAP под названием ABAP Objects вместе с версией R/3 4.6.
Текущая платформа разработки 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). [3]
Среда выполнения ABAP
[ редактировать ]Все программы ABAP находятся в базе данных SAP. Они не хранятся в отдельных внешних файлах, таких как программы Java или C++. В базе данных весь код ABAP существует в двух формах: исходный код, который можно просматривать и редактировать с помощью инструментов ABAP Workbench; и сгенерированный код, двоичное представление, в некоторой степени сравнимое с байт-кодом Java . Программы ABAP выполняются под управлением системы выполнения, которая является частью ядра SAP. Система времени выполнения отвечает за обработку операторов ABAP, управление логикой потока экранов и реагирование на события (например, нажатие пользователем кнопки на экране); в этом отношении ее можно рассматривать как виртуальную машину, сравнимую с виртуальной машиной Java. Ключевым компонентом системы выполнения ABAP является интерфейс базы данных, который превращает независимые от базы данных операторы ABAP («Открытый SQL») в операторы, понятные базовой СУБД («Нативный SQL»). Интерфейс базы данных обрабатывает всю связь с реляционной базой данных от имени программ ABAP; Он также содержит дополнительные функции, такие как буферизация таблиц и часто используемых данных в локальной памяти сервера приложений.
Системы SAP и ландшафты
[ редактировать ]Все данные SAP существуют, и все программное обеспечение SAP работает в контексте системы SAP . Система состоит из центральной реляционной базы данных и одного или нескольких серверов приложений («экземпляров»), имеющих доступ к данным и программам в этой базе данных. Система SAP содержит по крайней мере один экземпляр, но может содержать и больше, в основном из соображений размера и производительности. В системе с несколькими экземплярами механизмы балансировки нагрузки обеспечивают равномерное распределение нагрузки по доступным серверам приложений.
Установки сервера веб-приложений ( ландшафты ) обычно состоят из трех систем: одна для разработки; один для тестирования и обеспечения качества; и один для производства. Ландшафт может содержать больше систем (например, отдельные системы для модульного тестирования и предпроизводственного тестирования) или меньше (например, только разработка и производство, без отдельного контроля качества); тем не менее, три — наиболее распространенная конфигурация. ABAP-программы создаются и проходят первое тестирование в системе разработки. После этого они распределяются по другим системам в ландшафте. Эти действия происходят под контролем системы изменений и транспорта (CTS), которая отвечает за контроль параллелизма (например, предотвращение одновременного изменения двумя разработчиками одного и того же кода), управление версиями и развертывание программ в отделе контроля качества и производственные системы.
Сервер веб-приложений состоит из трех уровней: уровень базы данных; прикладной уровень; и уровень представления. Эти уровни могут работать на одной или разных физических машинах. Уровень базы данных содержит реляционную базу данных и программное обеспечение базы данных. Знания «прикладного уровня» содержат экземпляр или экземпляры системы. Все процессы приложений, включая бизнес-транзакции и разработку ABAP, выполняются на уровне приложений. Уровень представления управляет взаимодействием с пользователями системы. Онлайн-доступ к серверам приложений ABAP может осуществляться через собственный графический интерфейс, который называется «SAP GUI», или через веб-браузер.
Уровни программного обеспечения
[ редактировать ]Программное обеспечение ABAP развертывается в виде программных компонентов. Примеры:
- SP_BASIS — это технический базовый уровень, который необходим в каждой системе ABAP.
- SAP_ABA содержит функции, необходимые для всех видов бизнес-приложений, таких как управление деловыми партнерами и адресами.
- SAP_UI предоставляет функциональные возможности для создания приложений SAP UI5.
- BBPCRM — это пример бизнес-приложения, в данном случае приложения CRM.
- SAP ABAP — это язык программирования ERP.
Транзакции
[ редактировать ]Транзакция в терминологии SAP — это выполнение программы. Обычный способ выполнения кода ABAP в системе SAP — это ввод кода транзакции (например, VA01 — это код транзакции для «Создания заказа на продажу»). Общие коды транзакций (T-коды), используемые разработчиком ABAP: SE38, SE09, SE10, SE24, SE11, SE16N, SE80, SE37, ST22 и т. д. [4] [5] Транзакции можно вызывать через определяемые системой или пользователем ролевые меню. Их также можно запустить, введя код транзакции непосредственно в поле команды, которое присутствует на каждом экране SAP. Транзакции также можно вызывать программно с помощью операторов ABAP CALL TRANSACTION и LEAVE TO TRANSACTION. Общее понятие транзакции в терминологии SAP называется логической единицей работы (LUW).
Типы ABAP-программ
[ редактировать ]Как и в других языках программирования, программа ABAP представляет собой либо исполняемый модуль, либо библиотеку, которая предоставляет повторно используемый код другим программам и не является независимо исполняемой.
ABAP различает два типа исполняемых программ:
- Отчеты
- Пулы модулей
Отчеты следуют относительно простой модели программирования, при которой пользователь опционально вводит набор параметров (например, выбор из поднабора данных), а затем программа использует входные параметры для создания отчета в форме интерактивного списка. Термин «отчет» может вводить в заблуждение, поскольку отчеты также могут быть предназначены для изменения данных; Причина, по которой эти программы называются отчетами, заключается в «ориентированном на списки» характере выдаваемых ими результатов.
Пулы модулей определяют более сложные шаблоны взаимодействия с пользователем, используя набор экранов. Термин «экран» относится к реальному физическому изображению, которое видит пользователь. Каждый экран также имеет «логику потока», которая относится к коду ABAP, неявно вызываемому экранами, который разделен на разделы «PBO» (процесс перед выводом) и «PAI» (процесс после ввода). В документации SAP термин «dynpro» (динамическая программа) относится к комбинации экрана и его логики потока.
Неисполняемые типы программ:
- ВКЛЮЧИТЬ модули — они включаются во время генерации в вызывающий модуль; он часто используется для разделения больших программ.
- Пулы подпрограмм . Они содержат подпрограммы ABAP (блоки кода, заключенные в операторы FORM/ENDFORM и вызываемые с помощью PERFORM).
- Группы функций . Это библиотеки автономных функциональных модулей (заключенных в FUNCTION/ENDFUNCTION и вызываемых с помощью CALL FUNCTION).
- Классы объектов . Они похожи на классы и интерфейсы Java; первые определяют набор методов и атрибутов, вторые содержат «пустые» определения методов, для которых любой класс, реализующий интерфейс, должен предоставить явный код.
- Интерфейсы — такие же, как классы объектов.
- Пулы типов . Они определяют коллекции типов данных и констант.
Программы ABAP состоят из отдельных предложений (операторов). Первое слово в операторе называется ключевым словом ABAP. Каждое утверждение заканчивается точкой. Слова всегда должны быть разделены хотя бы одним пробелом. Выражения можно располагать по своему усмотрению. Что касается ключевых слов, дополнений и операндов, система времени выполнения ABAP не различает верхний и нижний регистр.
Операторы могут выходить за пределы одной строки. Вы можете разместить несколько операторов в одной строке (хотя это не рекомендуется). Строки, начинающиеся со звездочки * в первом столбце, распознаются системой выполнения ABAP как строки комментариев и игнорируются. Двойные кавычки («») указывают, что оставшаяся часть строки является комментарием.
Среда разработки
[ редактировать ]Существует два возможных способа разработки на ABAP. Доступность зависит от версии системы ABAP.
ABAP-инструментарий
[ редактировать ]ABAP Workbench является частью системы ABAP, доступ к которой осуществляется через графический интерфейс SAP . Он содержит различные инструменты для редактирования программ. Наиболее важными из них являются (коды транзакций указаны в скобках):
- ABAP-редактор для написания и редактирования отчетов, пулов модулей, включений и пулов подпрограмм (SE38)
- Словарь ABAP для обработки определений таблиц базы данных и получения глобальных типов (SE11)
- Menu Painter для проектирования пользовательского интерфейса (строка меню, стандартная панель инструментов, панель инструментов приложения, назначение функциональных клавиш) (SE41)
- Screen Painter для проектирования экранов и логики потока (SE51)
- Построитель функций для функциональных модулей (SE37)
- Построитель классов для классов и интерфейсов объектов ABAP (SE24)
Навигатор объектов (транзакция SE80) обеспечивает единый интегрированный интерфейс для этих различных инструментов.
Инструменты разработки ABAP
[ редактировать ]Инструменты разработки ABAP ( ADT ), официально известные как «ABAP в Eclipse», представляют собой набор плагинов для Eclipse IDE для разработки объектов ABAP. [6]
В этом сценарии ABAP-разработчик устанавливает на свой компьютер необходимые инструменты и работает локально, при этом выполняется непрерывная синхронизация с бэкендом.
ABAP-словарь
[ редактировать ]Словарь ABAP содержит все метаданные о данных в системе SAP. Он тесно связан с ABAP Workbench, поскольку любая ссылка на данные (например, таблицу, представление или тип данных) будет получена из словаря. Разработчики используют транзакции словаря ABAP (напрямую или через навигатор объектов SE80 внутри ABAP Workbench) для отображения и обслуживания этих метаданных.
При изменении объекта словаря программа, ссылающаяся на измененный объект, автоматически ссылается на новую версию при следующем запуске программы. Поскольку ABAP интерпретируется, нет необходимости перекомпилировать программы, ссылающиеся на измененные объекты словаря.
Ниже приводится краткое описание наиболее важных типов словарных объектов:
- Таблицы — это контейнеры данных, существующие в базовой реляционной базе данных. В большинстве случаев между определением таблицы в ABAP-словаре и определением той же таблицы в базе данных (то же имя, те же столбцы) существует связь 1-к-1. Эти таблицы известны как «прозрачные». Существует два типа непрозрачных таблиц: «объединенные» таблицы существуют как независимые объекты в словаре ABAP, но они сгруппированы в большие физические таблицы («пулы») на уровне базы данных. Объединенные таблицы часто представляют собой небольшие таблицы, содержащие, например, данные конфигурации. «Кластерные» таблицы физически группируются в «кластеры» на основе их первичных ключей; например, предположим, что кластеризованная таблица H содержит данные «заголовка» о счетах-фактурах продаж, тогда как другая кластеризованная таблица D содержит позиции счетов-фактур. Затем каждая строка H будет физически сгруппирована со связанными строками из D внутри «кластерной таблицы» в базе данных. Этот тип кластеризации, предназначенный для повышения производительности, также существует в качестве встроенной функции в некоторых, хотя и не во всех, системах реляционных баз данных.
- Индексы обеспечивают ускоренный доступ к данным таблицы для часто используемых условий выбора. Каждая таблица SAP имеет «первичный индекс», который создается неявно вместе с таблицей и используется для обеспечения уникальности первичного ключа. Могут быть определены дополнительные индексы (уникальные или неуникальные); они называются «вторичными индексами».
- Представления имеют ту же цель, что и базовая база данных: они определяют подмножества столбцов (и/или строк) из одной или – используя условие соединения – нескольких таблиц. Поскольку представления представляют собой виртуальные таблицы (они ссылаются на данные в других таблицах), они не занимают много места.
- Структуры — это сложные типы данных, состоящие из нескольких полей (сравнимо со структурой в C/C++).
- Элементы данных предоставляют семантическое содержимое поля таблицы или структуры. Например, десятки таблиц и структур могут содержать поле, указывающее цену (готового продукта, сырья, ресурса и т. д.). Все эти поля могут иметь один и тот же элемент данных «ЦЕНА».
- Домены определяют структурные характеристики элемента данных. Например, элемент данных ЦЕНА может иметь назначенный домен, который определяет цену как числовое поле с двумя десятичными знаками. Домены также могут нести семантическое содержимое, предоставляя список возможных значений. Например, домен «BOOLEAN» может определять поле типа «символ» длиной 1 и без учета регистра, но также ограничивает возможные значения «T» (истина) или «F» (ложь).
- Средства поиска (преемники ныне устаревших «кодов поиска») предоставляют расширенные стратегии поиска, когда пользователь хочет увидеть возможные значения для поля данных. Среда выполнения ABAP обеспечивает неявную помощь (путем перечисления всех значений поля, например, всех существующих номеров клиентов), но для уточнения этой функциональности можно использовать помощь при поиске, например, обеспечивая поиск клиентов по географическому местоположению, кредитному рейтингу и т. д.
- Объекты блокировки реализуют блокировку на уровне приложения при изменении данных.
Синтаксис ABAP
[ редактировать ]Это краткое описание синтаксиса ABAP начинается с вездесущего «Hello» .
Привет, мир
[ редактировать ]REPORT TEST.
WRITE 'Hello, World!'.
Этот пример содержит два утверждения: REPORT
и WRITE
. Программа выводит список на экран. В данном случае список состоит из одной строки «Hello, World!». REPORT
Оператор указывает, что эта программа представляет собой отчет. Эта программа может быть пулом модулей после замены REPORT
заявление с PROGRAM
.
Связанные утверждения
[ редактировать ]Последовательные операторы с одинаковой первой (крайней левой) частью можно объединить в «связанный» оператор с помощью оператора цепочки. :
. Общая часть высказываний записывается слева от двоеточия, различающиеся части пишутся справа от двоеточия и разделяются запятыми. Оператор двоеточие присоединяется непосредственно к предыдущему токену, без пробела (то же самое относится и к запятым в списке токенов, как видно в примерах ниже).
Цепочка часто используется в WRITE
заявления. WRITE
принимает только один аргумент, поэтому, если, например, вы хотите отобразить три поля из структуры под названием FLIGHTINFO, вам придется написать:
WRITE FLIGHTINFO-CITYFROM.
WRITE FLIGHTINFO-CITYTO.
WRITE FLIGHTINFO-AIRPTO.
Объединение операторов в цепочку приводит к более читабельной и интуитивно понятной форме:
WRITE: FLIGHTINFO-CITYFROM, FLIGHTINFO-CITYTO, FLIGHTINFO-AIRPTO.
В операторе цепочки первая часть (перед двоеточием) не ограничивается только именем оператора. Вся общая часть последовательных операторов может помещаться перед двоеточием. Пример:
REPLACE 'A' WITH 'B' INTO LASTNAME.
REPLACE 'A' WITH 'B' INTO FIRSTNAME.
REPLACE 'A' WITH 'B' INTO CITYNAME.
можно переписать в связанной форме так:
REPLACE 'A' WITH 'B' INTO: LASTNAME, FIRSTNAME, CITYNAME.
Комментарии
[ редактировать ]В ABAP есть два способа определения текста в виде комментария :
- Звездочка . (*) в крайнем левом столбце строки делает всю строку комментарием
- Двойные кавычки ("") в любом месте строки превращают остальную часть строки в комментарий.
Пример:
***************************************
** Program: BOOKINGS **
** Author: Joe Byte, 07-Jul-2007 **
***************************************
REPORT BOOKINGS.
* Read flight bookings from the database
SELECT * FROM FLIGHTINFO
WHERE CLASS = 'Y' "Y = economy
OR CLASS = 'C'. "C = business
(...)
Пространства
[ редактировать ]Код в ABAP чувствителен к пробелам.
x = a+b(c).
присваивает переменной x подстроку переменной a, начиная с b, с длиной, определенной переменной c.
x = a + b( c ).
присваивает переменной x сумму переменной a и результата вызова метода b с параметром c.
ABAP-заявления
[ редактировать ]В отличие от таких языков, как C/C++ или Java, которые определяют ограниченный набор специфичных для языка операторов и обеспечивают большую часть функциональности посредством библиотек, ABAP содержит обширное количество встроенных операторов. В этих утверждениях традиционно использовались структуры, подобные предложениям, и избегались символы, что делало программы ABAP относительно многословными. Однако в более поздних версиях языка ABAP возможен более краткий стиль. [7]
Пример синтаксиса на основе операторов (синтаксис которого зародился в COBOL) и синтаксиса на основе выражений (как в C/Java):
ADD TAX TO PRICE.
* is equivalent to
PRICE = PRICE + TAX .
Типы данных и переменные
[ редактировать ]ABAP предоставляет набор встроенных типов данных. Кроме того, для ввода переменной можно использовать каждую структуру, таблицу, представление или элемент данных, определенные в словаре ABAP. Кроме того, в качестве типов можно использовать классы объектов и интерфейсы.
Встроенные типы данных:
Тип | Описание |
---|---|
я | Целое число |
П | Упакованный десятичный |
Ф | Плавающая точка |
Н | Числовой символ |
С | Характер |
Д | Дата |
Т | Время |
Х | Шестнадцатеричный (необработанный байт) |
НИТЬ | Строка переменной длины |
XSTRING | Массив необработанных байтов переменной длины |
Переменные или константы даты (тип D) содержат количество дней, прошедших с 1 января 1 года нашей эры. Переменные времени или константы (тип T) содержат количество секунд, прошедших с полуночи. Особенностью обоих типов является то, что к ним можно получить доступ как в виде целых чисел, так и в виде строк символов (с внутренним форматом «ГГГГММДД» для дат и «ччммсс» для времени), которые можно использовать для обработки даты и времени. Например, приведенный ниже фрагмент кода вычисляет последний день предыдущего месяца (примечание: SY-DATUM — это определяемая системой переменная, содержащая текущую дату):
DATA LAST_EOM TYPE D. "last end-of-month date
* Start from today's date
LAST_EOM = SY-DATUM.
* Set characters 6 and 7 (0-relative) of the YYYYMMDD string to "01",
* giving the first day of the current month
LAST_EOM+6(2) = '01'.
* Subtract one day
LAST_EOM = LAST_EOM - 1.
WRITE: 'Last day of previous month was', LAST_EOM.
все переменные ABAP должны быть явно объявлены Для использования . Их можно объявлять либо с помощью отдельных операторов и явной типизации, либо, начиная с ABAP 7.40, встроенными с предполагаемой типизацией .
Явно типизированное объявление
[ редактировать ]Обычно все объявления размещаются в верхней части модуля кода (программы, подпрограммы, функции) перед первым исполняемым оператором; такое размещение является соглашением, а не обязательным синтаксическим правилом. Объявление состоит из имени, типа, длины (где применимо), дополнительных модификаторов (например, количества подразумеваемых десятичных знаков для упакованного десятичного поля) и, необязательно, начального значения:
* Primitive types:
DATA: COUNTER TYPE I,
VALIDITY TYPE I VALUE 60,
TAXRATE(3) TYPE P DECIMALS 1,
LASTNAME(20) TYPE C,
DESCRIPTION TYPE STRING.
* Dictionary types:
DATA: ORIGIN TYPE COUNTRY.
* Internal table:
DATA: T_FLIGHTS TYPE TABLE OF FLIGHTINFO,
T_LOOKUP TYPE HASHED TABLE OF FLT_LOOKUP.
* Objects:
DATA: BOOKING TYPE REF TO CL_FLT_BOOKING.
Обратите внимание на использование двоеточия для объединения последовательных операторов DATA.
Встроенное объявление
[ редактировать ]Начиная с ABAP 7.40, переменные можно объявлять встроенными, используя следующий синтаксис:
DATA(variable_name) = 'VALUE'.
Для этого типа объявления должна быть возможность статически определить тип, например, по сигнатуре метода или структуре таблицы базы данных.
Этот синтаксис также возможен в операторах OpenSQL:
SELECT * FROM ekko into @DATA(lt_ekko) WHERE ebeln EQ @lv_ebeln.
ABAP-объекты
[ редактировать ]Язык ABAP поддерживает объектно-ориентированное программирование посредством функции, известной как «Объекты ABAP». [8] Это помогает упростить приложения и сделать их более управляемыми.
Объекты ABAP полностью совместимы с существующим языком, поэтому можно использовать существующие операторы и модули модуляризации в программах, использующих объекты ABAP, а также можно использовать объекты ABAP в существующих программах ABAP. Проверка синтаксиса более сильна в программах ABAP Objects, и некоторые синтаксические формы (обычно более старые) определенных операторов не допускаются.
Объекты образуют капсулу, которая объединяет характер и соответствующее поведение. Объекты должны позволять программистам однозначно отображать реальную проблему и ее предлагаемое программное решение. Типичными объектами в бизнес-среде являются, например, «Клиент», «Заказ» или «Счет». Начиная с версии 3.1, репозиторий бизнес-объектов (BOR) сервера веб-приложений SAP ABAP содержит примеры таких объектов. Объектная модель BOR будет интегрирована в объекты ABAP в следующем выпуске путем миграции типов объектов BOR в библиотеку классов ABAP. Подробное введение в объектную ориентацию в целом выходит далеко за рамки этого введения в объекты ABAP. В этой документации представлен набор терминов, которые универсально используются в объектной ориентации, а также встречаются в объектах ABAP. В последующих разделах более подробно обсуждается, как эти термины используются в объектах ABAP. В конце этого раздела содержится список дополнительной литературы с подборкой заголовков об объектной ориентации.
- Объекты являются экземплярами классов. Они содержат данные и предоставляют услуги. Данные формируют атрибуты объекта. Службы известны как методы (также известные как операции или функции). Обычно методы работают с личными данными (атрибутами или состоянием объекта), которые видны только методам объекта. Таким образом, атрибуты объекта не могут быть изменены пользователем напрямую, а только методами объекта. Это гарантирует внутреннюю согласованность объекта.
- Классы описывают объекты. С технической точки зрения объекты — это экземпляры класса во время выполнения. Теоретически можно создать любое количество объектов на основе одного класса. Каждый экземпляр (объект) класса имеет уникальный идентификатор и собственный набор значений его атрибутов.
- Ссылки на объекты — это уникальные адреса, которые можно использовать для идентификации объектов в программе и указания на них. Ссылки на объекты обеспечивают доступ к атрибутам и методам объекта.
В объектно-ориентированном программировании объекты обычно имеют следующие свойства:
- Инкапсуляция. Объекты ограничивают видимость своих ресурсов (атрибутов и методов) для других пользователей. У каждого объекта есть интерфейс, который определяет, как с ним могут взаимодействовать другие объекты. Реализация объекта инкапсулирована, то есть невидима вне самого объекта.
- Наследование. Существующий класс может использоваться для создания нового класса. Производные классы наследуют данные и методы суперкласса. Однако они могут перезаписывать существующие методы, а также добавлять новые.
- Полиморфизм. Идентичные (с одинаковыми именами) методы ведут себя по-разному в разных классах. В объектах ABAP полиморфизм реализуется путем переопределения методов во время наследования и использования конструкций, называемых интерфейсами.
Просмотры CDS
[ редактировать ]Базовые службы данных ABAP (ABAP CDS) представляют собой реализацию общей концепции CDS для AS ABAP. ABAP CDS позволяет определять семантические модели данных в центральной базе данных сервера приложений. В AS ABAP эти модели можно определить независимо от системы базы данных. Сущности этих моделей предоставляют расширенные функции доступа по сравнению с существующими таблицами и представлениями базы данных, определенными в словаре ABAP, что позволяет оптимизировать приложения на основе Open SQL. Это особенно очевидно, когда AS ABAP использует базу данных SAP HANA, поскольку ее характеристики в памяти могут быть реализованы оптимальным образом.
Модели данных определяются с использованием языка определения данных (DDL) и языка управления данными (DCL), предусмотренных в ABAP CDS в синтаксисе ABAP CDS. Объекты, определенные с помощью этих языков, интегрируются в словарь ABAP и также управляются здесь.
Исходный код CDS можно программировать только в инструментах разработки ABAP (ADT) на базе Eclipse. Язык определения данных (DDL) и язык управления данными (DCL) используют разные редакторы. [9]
Функции
[ редактировать ]SAP СЗ ABAP | SQL-соединения | Операции над наборами SQL | ВЫБЕРИТЕ пункты |
---|---|---|---|
7.40 СП05 |
|
|
|
7.40 СП08 | |||
7.50 | |||
7.51 |
|
SAP СЗ ABAP | Литералы | Арифметические операторы | Условные выражения |
---|---|---|---|
7.40 СП05 |
|
|
|
7.40 СП08 |
|
||
7.50 | |||
7.51 |
|
SAP СЗ ABAP | Агрегатные функции | Числовые функции | Строковые функции |
---|---|---|---|
7.40 СП05 |
|
|
|
7.40 СП08 |
|
| |
7.50 |
| ||
7.51 |
|
|
|
SAP СЗ ABAP | Функции байтовой строки | Функции даты и времени | Другие функции |
---|---|---|---|
7.40 СП05 |
| ||
7.40 СП08 |
| ||
7.50 |
|
|
|
7.51 |
|
|
SAP СЗ ABAP | Условные (CASE) выражения | Расширяемость | (Неуправляемые) ассоциации |
---|---|---|---|
7.40 СП05 |
|
|
|
7.40 СП08 |
|
|
|
7.50 |
|
|
|
7.51 |
|
|
|
SAP СЗ ABAP | Переменные сеанса | Входные параметры | Другой |
---|---|---|---|
7.40 СП05 |
| ||
7.40 СП08 |
|
||
7.50 |
|
|
|
7.51 |
|
|
Внутренние таблицы в ABAP
[ редактировать ]Внутренние таблицы — важная особенность языка ABAP. Внутренняя таблица определяется аналогично вектору структур в C++ или вектору объектов в Java. Основное отличие этих языков заключается в том, что ABAP предоставляет набор операторов для легкого доступа и управления содержимым внутренних таблиц. Обратите внимание, что ABAP не поддерживает массивы; единственный способ определить многоэлементный объект данных — использовать внутреннюю таблицу. [ нужна ссылка ]
Внутренние таблицы представляют собой способ хранения наборов переменных данных фиксированной структуры в рабочей памяти ABAP и обеспечивают функциональность динамических массивов. Данные хранятся построчно, где каждая строка имеет одинаковую структуру.
Внутренние таблицы предпочтительно используются для хранения и форматирования содержимого таблиц базы данных изнутри программы. Более того, внутренние таблицы в сочетании со структурами являются важным средством определения сложных структур данных в программе ABAP.
В следующем примере определяется внутренняя таблица с двумя полями в формате таблицы базы данных VBRK.
* First define structured type
TYPES: BEGIN OF t_vbrk,
VBELN TYPE VBRK-VBELN,
ZUONR TYPE VBRK-ZUONR,
END OF t_vbrk.
* Now define internal table of our defined type t_vbrk
DATA : gt_vbrk TYPE STANDARD TABLE OF t_vbrk,
gt_vbrk_2 TYPE STANDARD TABLE OF t_vbrk. "easy to define more tables
* If needed, define structure (line of internal table)
* Definition with type or with reference to internal table:
DATA : gs_vbrk TYPE t_vbrk,
gs_vbrk_2 LIKE LINE OF gt_vbrk_2.
* You can also define table type if needed
TYPES tt_vbrk TYPE STANDARD TABLE OF t_vbrk.
История
[ редактировать ]Следующий список дает лишь приблизительный обзор некоторых важных вех в истории языка ABAP. Дополнительные сведения см. в разделе ABAP — Изменения, специфичные для выпуска .
Версия | Дата выпуска | Основные изменения |
---|---|---|
4,6С | май 2000 г. |
|
6.40 | 2004 | |
7.0 | 2006 |
|
7.02 |
| |
7.40 | 2012-11-29 |
|
7.40 СП05 | декабрь 2013 г. |
|
7.40 СП08 | Сентябрь 2014 г. |
|
7.50 | ноябрь 2015 г. |
|
7.51 | Октябрь 2016 г. |
|
7.52 | Сентябрь 2017 г. |
|
7.54 | сентябрь 2019 г. |
|
7.55 | сентябрь 2020 г. |
|
7.56 | октябрь 2021 г. |
|
7.57 | Октябрь 2022 г. |
|
7.58 | октябрь 2023 г. |
|
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ ABAP - Изменения, специфичные для выпуска: изменения в выпусках 7.5x, заархивированные 24 октября 2020 г. на Wayback Machine.
- ^ « «История ABAP». SAP-technical.com » . Архивировано из оригинала 15 ноября 2017 г. Проверено 9 августа 2010 г.
- ^ См. матрицу доступности продуктов , заархивированную 28 сентября 2016 г. на Wayback Machine.
- ^ «Список кодов транзакций» . Справочный портал SAP . Проверено 9 сентября 2023 г.
- ^ «Полный список кодов транзакций в S4/HANA — docsfortec.com» . docsfortec.com . Архивировано из оригинала 14 мая 2024 г. Проверено 14 мая 2024 г.
- ^ «Начало работы с инструментами разработки ABAP для SAP NetWeaver | Блоги SAP» . 19 июня 2012 года. Архивировано из оригинала 28 июня 2015 года . Проверено 15 июня 2015 г.
- ^ «Пример программы ABAP со множеством выражений» . Архивировано из оригинала 19 июня 2015 г. Проверено 19 июня 2015 г.
- ^ «Классы» , SAP NetWeaver 7.0 , заархивировано из оригинала 28 ноября 2009 г. , получено 10 августа 2009 г.
- ^ «Документация по ключевым словам ABAP» . Архивировано из оригинала 11 июля 2019 г. Проверено 11 июля 2019 г.
- ^ «Матрица функций ABAP Core Data Services (CDS) | Блоги SAP» . 2 февраля 2015 года. Архивировано из оригинала 11 июля 2019 года . Проверено 11 июля 2019 г.
Внешние ссылки
[ редактировать ]- ABAP — документация по ключевым словам
- Справочный портал SAP
- по разработке ABAP Обсуждения, блоги, документы и видео в сети сообщества SAP (SCN)