ABAP - ABAP

ABAP / 4
ПарадигмаОбъектно-ориентированный, структурированный, императив
РазработаноSAP SE
Впервые появился1983; 37 лет назад (1983)
Стабильный выпуск
7.55[1] / 2 сентября 2020 г.; 3 месяца назад (2020-09-02)[2]
Печатная дисциплинаСтатический, сильный, безопасный, именительный падеж
Операционные системыКроссплатформенность
Интернет сайтscn.sap.com/community/abap
Основной реализации
SAP R / 2, SAP R / 3, SAP S / 4HANA
Под влиянием
Цель-C,[нужна цитата ] КОБОЛ,[нужна цитата ] SQL[нужна цитата ]

ABAP (Расширенное программирование бизнес-приложений, первоначально Allgemeiner Berichts-Aufbereitungs-Prozessor, Немецкий язык для "общего процессора создания отчетов"[3]) это язык программирования высокого уровня создан немецким программного обеспечения Компания SAP SE. Он извлечен из базовых языков программирования Java, C, C ++ и Python. В настоящее время он находится рядом с Ява, как язык программирования Сервер приложений SAP NetWeaver, который является частью SAP NetWeaver платформа для создания бизнес-приложений.

Вступление

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

ABAP раньше было аббревиатурой от Аllgemeiner Berichts-Аufbereitungs-пРозессор, По-немецки "универсальный процессор подготовки отчетов", но позже[когда? ] переименован в английский Апродвинутый Bпрактичность Априменение ппрограммирование. ABAP был одним из первых языков, в котором была включена концепция Логические базы данных (LDB), который обеспечивает высокий уровень абстракции от базового уровня (уровней) базы данных, который поддерживает каждую платформу, язык и единицы измерения.

Язык ABAP изначально использовался разработчиками для разработки SAP R / 3 Платформа. Он также был предназначен для использования клиентами SAP для улучшения приложений SAP - клиенты могут разрабатывать собственные отчеты и взаимодействовать с программированием ABAP. Язык был ориентирован на более технических клиентов с опытом программирования.

ABAP остается языком для создания программ клиент-сервер. R / 3 system, которую SAP впервые выпустила в 1992 году. По мере развития компьютерного оборудования на протяжении 1990-х годов все больше и больше приложений и систем SAP писались на ABAP. К 2001 году все функции, кроме самых основных, были написаны на ABAP. В 1999 году SAP выпустила объектно-ориентированное расширение для ABAP под названием ABAP Objects, вместе с версией 4.6 R / 3.

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

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

SAP Netweaver в настоящее время работает на UNIX (AIX, HP-UX, Солярис, Linux ), Майкрософт Виндоус, 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).[4]

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

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

Системы и ландшафты SAP

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

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

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

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

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

  • SAP_BASIS это необходимый технический базовый уровень, который требуется в каждой системе ABAP.
  • SAP_ABA содержит функции, необходимые для всех видов бизнес-приложений, таких как управление бизнес-партнерами и адресами.
  • SAP_UI предоставляет функциональные возможности для создания приложений SAP UI5.
  • BBPCRM является примером бизнес-приложения, в данном случае приложения CRM
  • SAP ABAP это язык программирования ERP ....

Сделки

Транзакция в терминологии SAP - это выполнение программы. Обычный способ выполнения кода ABAP в системе SAP - ввод кода транзакции (например, VA01 - это код транзакции для «Создать заказ на продажу»). Транзакции можно вызывать через определяемые системой или определяемые пользователем меню на основе ролей. Их также можно запустить, введя код транзакции непосредственно в поле команды, которое присутствует на каждом экране SAP. Транзакции также можно вызывать программно с помощью операторов ABAP CALL TRANSACTION и LEAVE TO TRANSACTION. сделка в терминологии SAP называется логической единицей работы (LUW);[нужна цитата ] краткая форма кода транзакции T-код.

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

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

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

  • Отчеты
  • Модульные пулы

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

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

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

  • ВКЛЮЧИТЬ модули
  • Подпрограммные пулы
  • Функциональные группы
  • Классы объектов
  • Интерфейсы
  • Типы бассейнов

An ВКЛЮЧИТЬ модуль включается во время генерации в вызывающий модуль; его часто используют для разделения больших программ.
Подпрограммные пулы содержат подпрограммы ABAP (блоки кода, заключенные в операторы FORM / ENDFORM и вызываемые с помощью PERFORM).
Функциональные группы являются библиотеками автономных функциональных модулей (заключенных в FUNCTION / ENDFUNCTION и вызываемых с помощью CALL FUNCTION).
Классы объектов и интерфейсы похожи на классы и интерфейсы Java; первые определяют набор методов и атрибутов, вторые содержат определения «пустых» методов, для которых любой класс, реализующий интерфейс, должен предоставлять явный код.
Пулы типов определяют коллекции типов данных и констант.

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

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

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

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

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

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

  • Редактор ABAP для написания и редактирования отчетов, пулов модулей, включений и пулов подпрограмм (SE38)
  • Словарь ABAP для обработки определений таблиц базы данных и получения глобальных типов (SE11)
  • Художник меню для разработки пользовательского интерфейса (строка меню, стандартная панель инструментов, панель инструментов приложения, назначение функциональных клавиш) (SE41)
  • Экранный художник для проектирования экранов и логики потока (SE51)
  • Конструктор функций для функциональных модулей (SE37)
  • Конструктор классов для классов и интерфейсов объектов ABAP (SE24)

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

Инструменты разработки ABAP

В Инструменты разработки ABAP (ADT), формально известный как «ABAP в Eclipse», представляет собой набор подключаемых модулей для Платформа Eclipse разработать ABAP.[5]

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

Словарь ABAP

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

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

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

  • Столы представляют собой контейнеры данных, которые существуют в базовой реляционной базе данных. В большинстве случаев существует взаимосвязь 1: 1 между определением таблицы в словаре ABAP и определением той же таблицы в базе данных (то же имя, те же столбцы). Эти таблицы известны как «прозрачные». Существует два типа непрозрачных таблиц: «объединенные» таблицы существуют как независимые объекты в словаре ABAP, но сгруппированы вместе в большие физические таблицы («пулы») на уровне базы данных. Объединенные таблицы часто представляют собой небольшие таблицы, содержащие, например, данные конфигурации. «Кластерные» таблицы физически группируются в «кластеры» на основе их первичных ключей; например, предположим, что кластерная таблица ЧАС содержит данные «заголовка» о счетах-фактурах, тогда как другая кластерная таблица D содержит позиции счета-фактуры. Каждая строка H затем будет физически сгруппирована со связанными строками из D внутри «таблицы кластеров» в базе данных. Этот тип кластеризации, предназначенный для повышения производительности, также существует как встроенная функция в некоторых, хотя и не во всех, системах реляционных баз данных.
  • Индексы обеспечить ускоренный доступ к данным таблицы для часто используемых условий выбора. Каждая таблица SAP имеет «первичный индекс», который создается неявно вместе с таблицей и используется для обеспечения уникальности первичного ключа. Могут быть определены дополнительные индексы (уникальные или неуникальные); они называются «вторичными индексами».
  • Взгляды имеют ту же цель, что и в базовой базе данных: они определяют подмножества столбцов (и / или строк) из одной или - с использованием условия соединения - нескольких таблиц. Поскольку представления представляют собой виртуальные таблицы (они относятся к данным в других таблицах), они не занимают значительного места.
  • Структуры сложные типы данных, состоящие из нескольких полей (сопоставимые с структура в C / C ++).
  • Элементы данных предоставить семантическое содержимое для поля таблицы или структуры. Например, десятки таблиц и структур могут содержать поле с ценой (готового продукта, сырья, ресурса и т. Д.). Все эти поля могут иметь один и тот же элемент данных "PRICE".
  • Домены определить структурные характеристики элемента данных. Например, элементу данных PRICE может быть назначен домен, который определяет цену как числовое поле с двумя десятичными знаками. Домены также могут нести семантическое содержание, предоставляя список возможных значений. Например, домен «BOOLEAN» может определять поле типа «символ» с длиной 1 и без учета регистра, но также ограничивает возможные значения до «T» (истина) или «F» (ложь).
  • Поиск помогает (преемники уже устаревших "кодов соответствия") предоставляют расширенные стратегии поиска, когда пользователь хочет увидеть возможные значения для поля данных. Среда выполнения ABAP предоставляет неявную помощь (путем перечисления всех значений поля, например, всех существующих номеров клиентов), но для уточнения этой функциональности можно использовать поисковые подсказки, например путем поиска клиентов по географическому положению, кредитному рейтингу и т. д.
  • Заблокировать объекты реализовать блокировку на уровне приложения при изменении данных.

Синтаксис ABAP

Это краткое описание синтаксиса ABAP начинается с повсеместного "Привет, мир "программа.

Привет, мир

ОТЧЕТ ТЕСТ.ЗАПИСЫВАТЬ 'Привет, мир'.

Этот пример содержит два утверждения: ОТЧЕТ и ЗАПИСЫВАТЬ. Программа отображает список на экране. В этом случае список состоит из единственной строки «Hello World». В ОТЧЕТ оператор указывает, что эта программа является отчетом. Эта программа может быть пулом модулей после замены ОТЧЕТ заявление с ПРОГРАММА.

Связанные заявления

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

Цепочка часто используется в ЗАПИСЫВАТЬ заявления. ЗАПИСЫВАТЬ принимает только один аргумент, поэтому, если, например, вы хотите отобразить три поля из структуры с именем FLIGHTINFO, вам придется закодировать:

ЗАПИСЫВАТЬ FLIGHTINFO-CITYFROM.ЗАПИСЫВАТЬ FLIGHTINFO-CITYTO.ЗАПИСЫВАТЬ FLIGHTINFO-АЭРОПТО.

Объединение операторов в цепочку приводит к более удобочитаемой и интуитивно понятной форме:

ЗАПИСЫВАТЬ: FLIGHTINFO-CITYFROM, FLIGHTINFO-CITYTO, FLIGHTINFO-АЭРОПТО.

В операторе цепочки первая часть (перед двоеточием) не ограничивается только именем оператора. Вся общая часть последовательных операторов может быть помещена перед двоеточием. Пример:

ЗАМЕНЯТЬ 'А' С 'B' В ФАМИЛИЯ.ЗАМЕНЯТЬ 'А' С 'B' В ИМЯ.ЗАМЕНЯТЬ 'А' С 'B' В НАЗВАНИЕ ГОРОДА.

можно переписать в цепочке как:

ЗАМЕНЯТЬ 'А' С 'B' В: ФАМИЛИЯ, ИМЯ, НАЗВАНИЕ ГОРОДА.

Комментарии

В ABAP есть 2 способа определения текста как комментарий:

  • An звездочка (*) в крайнем левом столбце строки делает всю строку комментарием
  • А двойная кавычка (") в любом месте строки делает оставшуюся часть этой строки комментарием

Пример:

***************************************** Программа: БРОНИРОВАНИЕ **** Автор: Джо Байт, 7 июля 2007 г. *****************************************ОТЧЕТ БРОНИРОВАНИЕ.* Чтение бронирований рейсов из базы данныхВЫБРАТЬ * ИЗ FLIGHTINFO  КУДА УЧЕБНЫЙ КЛАСС = 'Y'       "Y = экономика  ИЛИ ЖЕ    УЧЕБНЫЙ КЛАСС = 'C'.      "C = бизнес(...)

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

Код в ABAP чувствителен к пробелам.

Икс = а+б(c).

присваивает переменной x подстроку переменной a, начиная с b с длиной, определяемой переменной c.

Икс = а + б( c ).

присваивает переменной x сумму переменной a и результат вызова метода b с параметром c.

Заявления ABAP

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

Пример синтаксиса на основе операторов (синтаксис которого происходит в COBOL) и синтаксиса на основе выражений (как в C / Java):

ДОБАВИТЬ НАЛОГ К ЦЕНА.* эквивалентноЦЕНА = ЦЕНА + НАЛОГ .

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

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

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

ТипОписание
яЦелое число
пУпакованный десятичный
FПлавающая точка
NЧисловой символ
CХарактер
DДата
ТВремя
ИксШестнадцатеричный (необработанный байт)
НИТЬСтрока переменной длины
XSTRINGНеобработанный байтовый массив переменной длины

Переменные или константы даты (тип D) содержат количество дней, прошедших с 1 января 1 года нашей эры. Временные переменные или константы (тип T) содержат количество секунд, прошедших с полуночи. Особенностью обоих типов является то, что к ним можно обращаться как в виде целых чисел, так и в виде символьных строк (с внутренним форматом «ГГГГММДД» для дат и «ччммсс» для времени), которые можно использовать для обработки даты и времени. Например, в приведенном ниже фрагменте кода вычисляется последний день предыдущего месяца (примечание: SY-DATUM - это системная переменная, содержащая текущую дату):

ДАННЫЕ LAST_EOM    ТИП D.  "последняя дата конца месяца* Начать с сегодняшней даты  LAST_EOM = SY-DATUM.* Установите символы 6 и 7 (относительно 0) строки ГГГГММДД на «01»,* указывается первый день текущего месяца  LAST_EOM+6(2) = '01'.* Вычтите один день  LAST_EOM = LAST_EOM - 1.  ЗАПИСЫВАТЬ: "Последний день предыдущего месяца был", LAST_EOM.

Все переменные ABAP должны быть явно объявлен для того, чтобы быть использованным. Они могут быть объявлены либо с отдельными операторами и явной типизацией, либо, начиная с ABAP 7.40, встроенными с предполагаемой типизацией.

Явно типизированное объявление

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

* Примитивные типы:ДАННЫЕ: ПРИЛАВОК      ТИП я,      СРОК ДЕЙСТВИЯ     ТИП я ЦЕНИТЬ 60,      СТАВКА НАЛОГА(3)   ТИП п ДЕСЯТИЧНЫЕ ЧИСЛА 1,      ФАМИЛИЯ(20) ТИП C,      ОПИСАНИЕ  ТИП НИТЬ.* Типы словарей:ДАННЫЕ: ИСТОЧНИК       ТИП СТРАНА.* Внутренняя таблица:ДАННЫЕ: T_FLIGHTS    ТАБЛИЦА ТИПОВ FLIGHTINFO,      T_LOOKUP     ТИП HASHED TABLE FLT_LOOKUP.* Объекты:ДАННЫЕ: БРОНИРОВАНИЕ      ТИП ССЫЛКА НА CL_FLT_BOOKING.

Обратите внимание на использование двоеточия для объединения последовательных операторов DATA.

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

Начиная с ABAP 7.40, переменные могут быть объявлен встроенным со следующим синтаксисом:

ДАННЫЕ(имя_переменной) = 'ЦЕНИТЬ'.

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

Этот синтаксис также возможен в операторах OpenSQL:

ВЫБРАТЬ * ИЗ Экко в @ДАННЫЕ(lt_ekko) КУДА Ebeln Эквалайзер @lv_ebeln.

Объекты ABAP

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

Объекты 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 Dictionary и также управляются здесь.

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

Функции

SAP NW ABAPСоединения SQLОперации с наборами SQLSELECT пункты
7.40 SP05
  • ВНУТРЕННЕЕ СОЕДИНЕНИЕ
  • ЛЕВОЕ НАРУЖНОЕ СОЕДИНЕНИЕ
  • ПРАВО НАРУЖНОЕ СОЕДИНЕНИЕ
  • СОЮЗ
  • СОЮЗ ВСЕ
  • КУДА
  • ГРУППА ПО
  • ИМЕЕТ
  • В КАЧЕСТВЕ
7.40 SP08
7.50
7.51
  • КРЕСТНОЕ СОЕДИНЕНИЕ
SAP NW ABAPЛитералыАрифметические операторыУсловные выражения
7.40 SP05
  • В списке SELECT, например буквальный как FieldName
  • Как значение RHS
  • +
  • -
  • Логические операторы
    • НЕ, И, ИЛИ
  • Операторы сравнения
    • МЕЖДУ, =, <>, <,>, <=,> =, НРАВИТСЯ
    • IS [NOT] NULL (только в условии WHERE)
7.40 SP08
  • / (Деление с плавающей запятой)
7.50
7.51
  • Функция как значение RHS
SAP NW ABAPАгрегатные функцииЧисловые функцииСтроковые функции
7.40 SP05
  • СРЕДНЕЕ ([ОТЛИЧИТЕЛЬНО])
  • МАКСИМУМ
  • MIN
  • СУММ ([ОТЛИЧИТЕЛЬНЫЙ])
  • COUNT ([DISTINCT])
  • СЧИТАТЬ(*)
  • CEIL
  • MOD
  • ПОДСТАВКА
  • LPAD
7.40 SP08
  • АБС
  • DIV (целочисленное деление)
  • DIVISION (деление на десятичные дроби)
  • ЭТАЖ
  • КРУГЛЫЙ
  • КОНКАТ
  • ЗАМЕНЯТЬ
7.50
  • CONCAT_WITH_SPACE
  • INSTR
  • ОСТАВИЛИ
  • ДЛИНА
  • LTRIM
  • ВЕРНО
  • RPAD
  • RTRIM
7.51
  • AVG ([AS]) для указания типа возврата.
  • FLTP_TO_DEC
  • ВЕРХНИЙ
  • НИЖЕ
SAP NW ABAPФункции с байтовой строкойФункции даты и времениПрочие функции
7.40 SP05
  • CAST для встроенных типов DDIC, например abap.fltp
7.40 SP08
  • КОАЛЕС
  • ОБМЕН ВАЛЮТЫ
  • UNIT_CONVERSION
  • DECIMAL_SHIFT
7.50
  • BINTOHEX
  • HEXTOBIN
  • DATS_DAYS_BETWEEN
  • DATS_ADD_DAYS
  • DATS_ADD_MONTHS
  • DATS_IS_VALID
  • TIMS_IS_VALID
  • TSTMP_IS_VALID
  • TSTMP_CURRENT_UTCTIMESTAMP
  • TSTMP_SECONDS_BETWEEN
  • TSTMP_ADD_SECONDS
  • В РОЛЯХ
    • к элементам данных, например CHAR80
    • могут быть вложенными
7.51
  • ABAP_SYSTEM_TIMEZONE
  • ABAP_USER_TIMEZONE
  • TSTMP_TO_DATS
  • TSTMP_TO_TIMS
  • TSTMP_TO_DST
  • DATS_TIMS_TO_TSTMP
  • В РОЛЯХ
    • КОНСЕРВНЫЙ ТИП
    • SSTRING на другие типы
    • CLNT, LANG, TIMS, UNIT для элементов данных типа CHAR и SSTRING
    • CHAR, SSTRING, NUMC в ACCP и наоборот
    • Агрегатная функция как операнд
SAP NW ABAPУсловные (CASE) выраженияРасширяемость(Неуправляемые) ассоциации
7.40 SP05
  • «Простой» СЛУЧАЙ (действует как оператор switch)
  • Вложенные операторы CASE
  • $ EXTENSION. * (Поддержка расширений таблиц базы данных)
  • Выражения пути в
    • ВЫБРАТЬ список
    • Предложение FROM
    • Предложение WHERE
    • Пункт HAVING
  • Условия фильтрации в выражениях пути, например Products._Texts [lagu = 'EN'] как english_name
7.40 SP08
  • CASE "искал" (ведет себя как если ... иначе, если)
  • РАСШИРЯТЬ ВИД
7.50
  • Выражения CASE могут использоваться как операнды в функциях CAST
  • РАСШИРЕНИЕ ВИДА с входными параметрами, выражениями пути, преобразованиями, функциями даты и времени
7.51
  • Функция как значение RHS
  • РАСШИРЕНИЕ ВИДА с агрегатными функциями, предложениями GROUP BY и UNION
  • Определения ассоциаций в представлениях с UNION
  • Фильтры по умолчанию для ассоциаций (С ФИЛЬТРОМ ПО УМОЛЧАНИЮ)
  • Количество элементов "ко многим" (* :) можно указать в фильтрах пути.
SAP NW ABAPПеременные сеансаВходные параметрыДругой
7.40 SP05
  • Ключевые элементы
7.40 SP08
  • входные параметры на большинстве БД
7.50
  • $ session.user (sy-uname)
  • $ session.client (sy-mandt)
  • $ session.system_language (sy-язык)
  • Входные параметры на AnyDB
  • Табличная функция (только SAP HANA)
7.51
  • $ session.system_date (sy-данные)
  • Расширения метаданных

[9]

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

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

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

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

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

* Сначала определите структурированный типТИПЫ: НАЧАЛО t_vbrk,         ВБЕЛН ТИП ВБРК-ВБЕЛН,         ЗУОНР ТИП ВБРК-ZUONR,       КОНЕЦ ЧЕГО-ЛИБО t_vbrk.* Теперь определите внутреннюю таблицу нашего определенного типа t_vbrkДАННЫЕ : gt_vbrk ТИП СТАНДАРТНАЯ ТАБЛИЦА t_vbrk,       gt_vbrk_2 ТИП СТАНДАРТНАЯ ТАБЛИЦА t_vbrk.   "легко определить больше таблиц* При необходимости определите структуру (строка внутренней таблицы)* Определение с типом или со ссылкой на внутреннюю таблицу:ДАННЫЕ : gs_vbrk ТИП t_vbrk,       gs_vbrk2 КАК СТРОКА gt_vbrk2.* Вы также можете определить тип таблицы, если необходимоТИПЫ tt_vbrk ТИП СТАНДАРТНАЯ ТАБЛИЦА t_vbrk.

История

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

ВерсияДата выходаСерьезные изменения
4.6CМай 2000 г.
  • Объекты ABAP
6.402004
7.02006
  • Платформа переключателя / концепция расширения
7.02
  • Выражения вроде
    проверить lcl=>ми(1) + пресс( -2 ) >= 3.
7.402012-11-29
  • «Раскрытие кода» - использование дополнительных функций из базовой базы данных.
  • Выражения конструктора (NEW, VALUE, REF, CONV, CAST, EXACT, COND, SWITCH)
  • Частично реализованные интерфейсы тестовых классов
  • Табличные выражения
  • Функции существования строки внутренней таблицы / индекса строки
7.40 SP05Декабрь 2013
  • MOVE-CORRESPONDING для внутренних таблиц
  • Выражение LET в выражениях конструктора
  • КОРРЕСПОНДИНГ оператор
  • CDS Просмотры
  • Процедуры управляемой базы данных ABAP
7.40 SP08Сентябрь 2014 г.
  • FOR выражения
  • Оператор-конструктор REDUCE
  • Начальное значение для выражений конструктора
  • GROUP BY для внутренних таблиц
  • Выражения фильтра и значения по умолчанию для табличных выражений
  • Открывать встроенные объявления SQL после оператора INTO
  • Дополнительные методы интерфейса
7.50Ноябрь 2015
  • Новый встроенный тип данных INT8
  • Выражение отношения - ЭТО ИНСТАНЦИЯ
  • Открытые выражения хоста SQL
  • Откройте выражения SQL ROUND, CONCAT, LPAD, LENGTH, REPLACE, RIGHT, RTRIM и SUBSTRING
  • Открытые выражения пути SQL
  • Открыть SQL SELECT UNION
  • Открыть SQL INSERT FROM подзапрос
7.51Октябрь 2016
  • Перечисления
  • Общие табличные выражения в Open SQL
  • Открыть SQL / CDS CROSS JOIN
  • Обслуживание клиентов CDS
  • Расширения метаданных в CDS
  • Дата и время в открытом SQL / CDS
  • Плавающая точка в Open SQL / CDS
7.52Сентябрь 2017 г.
  • Виртуальная сортировка внутренних таблиц
7.54Сентябрь 2019
  • Новые встроенные типы данных
  • Новый встроенный тип ABAP utclong
  • Расчетные задания
  • Десятичные знаки в отметках времени
  • Работа с клиентами
  • Расширения В Пункт
  • Определение ассоциаций
  • Новая функция агрегирования STRING_AGG
  • Новые встроенные функции
  • Добавление ОТЧЕТЛИВЫЙ Необязательно в функции агрегирования СЧИТАТЬ
  • Оконные выражения
  • Условия SQL пересмотрены
  • Временные иерархии
  • Новые навигаторы иерархии
  • Агрегатные выражения в выражениях SQL
  • В РОЛЯХ Матрица пересмотрена
  • Строгий режим при проверке синтаксиса
  • Проверка синтаксиса литералов и констант хоста
  • Аннотация для подсказок базы данных
  • Аннотации для освобождения элементов
  • Указание объектов CDS после С ПОМОЩЬЮ
  • Кавычки для логических схем
  • Добавление на месте Заявления поздняя нумерация
  • Добавление в классе ... уникальный
  • Внешнее имя действия
  • Управление статическим полем
  • Произвольное имя для методов-обработчиков
  • Пул поведения без исключений
  • Язык манипулирования сущностями
  • ТИП СТРУКТУРЫ ДЛЯ
  • Ответная информация
  • Абсолютные имена типов
  • Бизнес Сервис
  • Проверки авторизации в обновлениях
  • Неявный тип сообщения в IF_T100_DYN_MSG
  • Использование тестовых классов
  • Добавление КОМБИНИРОВАННЫЙ РЕЖИМ ИЛИ | И Заявления ВЫБОР ГРАНТА ВКЛ
  • Добавление ПЕРЕОПРЕДЕЛЕНИЕ Заявления ВЫБОР ГРАНТА ВКЛ
  • Предикат ПУСТОТА
  • Добавление В СЦЕНАРИИ Заявления ВЫБОР ГРАНТА ВКЛ
  • Условие общего аспекта утверждения ОПРЕДЕЛЕНИЕ РОЛИ
  • Новый вариант УСЛОВИЯ НАСЛЕДОВАНИЯ ОТ SUPER
  • Разные ЗАМЕНА Операторы
  • Определение общего аспекта
  • Ограничения DCL для иерархий ABAP CDS
  • Ограничения DCL для объектов представления транзакционной проекции

Смотрите также

Рекомендации

  1. ^ ABAP - Изменения, связанные с выпуском: Изменения в версиях 7.5x
  2. ^ Новое поколение представлений CDS: объекты представления CDS
  3. ^ ""История ABAP ». SAP-technical.com". Архивировано из оригинал на 2017-11-15. Получено 2010-08-09.
  4. ^ Видеть Матрица доступности продуктов
  5. ^ http://scn.sap.com/docs/DOC-29297
  6. ^ Пример программы ABAP со многими выражениями
  7. ^ «Классы». SAP NetWeaver 7.0. [1] по состоянию на 10 августа 2009 г.
  8. ^ https://help.sap.com/doc/abapdocu_740_index_htm/7.40/en-US/index.htm?file=ABENCDS.htm
  9. ^ https://blogs.sap.com/2015/02/02/core-data-services-cds-abap-feature-matrix/

внешняя ссылка