Меню

Новости ABAP (D75AW)

Язык ABAP неуклонно развивается, постоянно обогащаясь все новыми и новыми возможностями. Серьезные изменения произошли с версии 7.0 по версию 7.5. Хочется отметить расширение возможностей использования выражений. Расширилась возможность работы с базами данных. Появилась возможность передавать данные между программами «на лету».

Язык ABAP неуклонно развивается, постоянно обогащаясь все новыми и новыми возможностями. Серьезные изменения произошли с версии 7.0 по версию 7.5. Хочется отметить расширение возможностей использования выражений. Расширилась возможность работы с базами данных. Появилась возможность передавать данные между программами «на лету». Наряду с наращиванием мощности языка произошло и значительное увеличения инструментальных средств, расширились возможности существующих инструментов и появились инструменты новые. Изменениям, произошедшим с версии 7.0 по версию 7.5 посвящен новый семинар «Delta ABAP Workbench SAP NetWeaver 7.0 to SAP NetWeaver 7.5». Продолжительность - 3 дня. Семинар предназначен для ABAP-разработчиков и консультантов по разработке, может быть полезен специалистам по сопровождению и безопасности. Знание тем, затронутых в семинаре, нужно всем, кому придется серьезно программировать на ABAP. Необходимой предпосылкой для семинара является опыт процедурно- и объектно-ориентированного программирования на ABAP.

Инструменты проверки программного кода: проверка синтаксиса, расширенная проверка, инспектор кода — выдают предупреждения по чисто формальным признакам. Лишние предупреждения могут мешать выделить существенное. Для подавления предупреждений начиная с версии 7.02 можно использовать прагмы. В одной ABAP команде может быть несколько прагм. Прагмы начинаются с двух знаков «#», например, прагма ##NO_TEXT подавит сообщение о том, что текстовый литерал хорошо бы заменить символом текстовой переменной.

Построитель классов (транзакция SE24) и соответствующая функциональность навигатора по объектам (транзакция SE80) получили с версии 7.02 возможность показывать исходный текст всего класса целиком, а не только имплементации отдельных методов. Также появилась возможность завершения кода по нажатию кнопок Ctrl-Space и Ctrl-Shift-Enter.

Средства поиска (Search help) могут быть созданы с опцией предложения для полей ввода. Такое средство поиска будет ограничивать спектр предлагаемых значений маской уже введенной части значения. В сочетании с нестрогим поиском (доступным в данный момент только для БД SAP HANA) это позволяет создавать средства поиска, нечувствительные к мелким ошибкам ввода, что ускоряет ввод данных оператором.

Инструментарий ABAP Development Tools for Eclipse (ADT, появился с версии 7.31) позволяет вести ABAP разработки в среде Eclipse. Зачастую этот инструментарий предоставляет больше возможностей, чем соответствующие традиционные средства. Например, ADT редактор классов имеет широкие возможности рефакторинга, недоступные в SE24 или SE80. В то время как из-под ADT доступна вся функциональность традиционных средств разработки, ряд новых возможностей доступен только в ADT. В частности, Core Data Services (о них чуть позже) могут быть созданы только с помощью ADT.

Все большую роль в ABAP играют выражения. В условной команде IF можно теперь использовать результаты выражений. Результат выражения также может быть аргументом встроенной функции и функционального метода.

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

До седьмой версии всякий объект данных (константу, переменную, филд-символ) требовалось явным образом объявлять до первого применения. Теперь же появились операторы инлайновой декларации data(имя_переменной) и fieldsymbol(имя), позволяющие сделать объявление ровно в тот момент, когда соответствующие переменная или филд-симбол понадобятся. Эти декларативные операторы можно использовать внутри ABAP команд, например, GET RUN TIME FIELD DATA(t1).

Непосредственно внутри выражений можно создавать объекты данных с помощью операторов-конструкторов: NEW, VALUE, CONV, CORRESPONDING, CAST, REF, EXACT, REDUCE, FILTER, COND, SWITCH. Хочется особо подчеркнуть появление (наконец-то!) оператора-конструктора CONV, позволяющего осуществить явное приведение типов. Например:

DATA(A) = '.2' + '.2'.
DATA(B) = CONV DECFLOAT16(  '.2'  ) + CONV DECFLOAT16(  '.2'  ).

 

В результате переменная A будет рана 0, а переменная B 0.4.

Новые команды CASE TYPE OF и WHEN TYPE <type1> INTO <type2> позволяют выразительно и компактно организовать селекторное приведение типов, что особенно приятно при работе со ссылочными данными.

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

Значительные новации касаются обработки внутренних таблиц. Динамическое условие WHERE(имя_переменной) команды LOOP AT позволяет формировать условие исполнение цикла по внутренней таблице во время выполнения программы.

С версии 7.02 дополнительные (secondary) ключи позволяют создать внутреннюю таблицу, обладающую одновременно несколькими ключами. Разумеется, при необходимости использования дополнительного ключа для чтения (команды READ TABLE и LOOP) или изменения (команда MODIFY) имя ключа и значения нужных полей должны быть явно указаны.

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

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

Войти