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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

В 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»

Путь анализа. Получение объектов по пути анализа.

Продолжаю рассказывать основы разработки в HCM, для разработчиков из других модулей. Недавно зашел в код программы, которую писал не HR абапер, и у меня чуть не случился приступ. Селекты, конечно, красивые…


Вводная информация.
Объект ОМ – это сущность в организационном менеджменте, которая отображает некий объект реального мира или абстракцию. Различаются они типом объектов. Например S – Штатная должность, O – Организационная единица, A -Рабочее место и так далее. Существование объекта означает наличие записи в инфо-типе 1000 в определенном временном периоде. Остальные инфо-типы хранят свойства этого объекта. Исключение Табельный номер, данные объекты являются объектами PA и ведутся немного в других ИТ.

Читать далее «Путь анализа. Получение объектов по пути анализа.»

SQ01 Устаревший инфо-запрос

После редактирования инфо-набора, инфо-запрос при попытке редактирования может выдавать сообщение – “Разница между запросом и инфо-набором”. А при попытке изменения произойдет дамп “Exception condition “NOT_FOUND” triggered”

Читать далее «SQ01 Устаревший инфо-запрос»