BOL – добавление полей даты

Для добавление Z полей даты на экран необходимо сделать следующие действия.:
Добавим новые даты в SPRO

Читать далее «BOL – добавление полей даты»

Изменение доступности опций выбора в Select-Options.

Практически в каждом отчете мы используем Select-options. При этом по умолчанию нам доступны все опции выбора.

Но  что делать если нам нужен только четкое равенство? Постоянно проверять ввод с экрана? Нет, можно убрать ненужные опции выбора.
для этого напишем следующий код:

Читать далее «Изменение доступности опций выбора в Select-Options.»

Регулярные выражения в ABAP

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

Нет смысла лишний раз описывать операторы, ознакомится с ним можно в документации.

Рассмотрим несколько простых примеров для поиска на конкретных примерах. Так будет немного понятнее.

Читать далее «Регулярные выражения в ABAP»

Ракурс ведения таблицы. Изменить размер экрана.

При создании экрана ведения для таблицы ширина блока вывода по умолчанию составляет 80 колонок. Что составляет примерно половину экрана. Это далеко не всегда удобно.
При необходимости увеличить область вывода первое, что делает разработчик, заходит в редактор экрана и меняет ширину в ручную. Такой подход часто достаточен, но при перегенерации ракурса ведения, все ручные изменения исчезают, экран приобретает свой стандартный размер. Мелочь, а неприятно.
Недавно наткнулся на способ, позволяющий каждый раз не восстанавливать размер экрана руками, а единожды прописать ФМ, который будет сравнивать текущий размер области с необходимым и в случае несовпадения перегенерировать его с заданным размером на лету.

Читать далее «Ракурс ведения таблицы. Изменить размер экрана.»

ABAP Daemon Framework

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

Попробуем создать простой демон для примера. Он будет следить за входом пользователя в указанную транзакцию.  По большому, счету это повторение демо-примера от SAP. Можно сразу смотреть там.

Для остальных ниже:
Читать далее «ABAP Daemon Framework»

Виртуальная сортировка внутренней таблицы

В abap 7.52 появилась возможность получить порядок записи внутренней таблицы не меняя исходные данные. Т.е., например, можно  виртуально отсортировать таблицу в import параметре по интересующему нас ключу.
Для этого был добавлен метод VIRTUAL_SORT класса cl_abap_itab_utilities.
Рассмотрим пример:

Читать далее «Виртуальная сортировка внутренней таблицы»

TRY … RETRY, CLEANUP, RESUME

Разберем несколько операторов в блокe TRY... ENDTRY.

Retry -  позволяет выполнить блок TRY  еще раз. Перед  перезапуском блока  необходимо  исправить ситуацию, из-за которой случилась ошибка. В противном случае, попадем в бесконечный цикл.  

RESUME - возобновляемое исключение. Программа возвращается к работе после исключения.

Читать далее «TRY … RETRY, CLEANUP, RESUME»

LOOP AT itab – GROUP BY

Оператор GROUP BY позволяет группировать значения в цикле по ключу. В чем-то это похоже на оператор AT NEW.

Давайте попробуем обработать записи таблицы splfi по уникальным значениям carrid. Для этого пропишем следующий код:

Читать далее «LOOP AT itab – GROUP BY»

Оператор FILTER

ABAP 7.4 вышел уже очень давно, однако, его операторы мало кто использует. Рассмотрим сегодня оператор FILTER который позволяет выбирать данные из одной внутренней таблицы в другую по ключам.
Читать далее «Оператор FILTER»