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

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

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

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

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

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

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

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

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

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

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

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

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 и ведутся немного в других ИТ.

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

Mesh или немного синтаксического сахара.


Mesh - это специальный тип который представляет собой связанные внутренние таблицы(узлы). Структура в целом похожа на структуру БД.
Mesh появился в ABAP 7.40 бла-бла-бла... Основная проблема в том ,что он не прижился, возможно из-за слабой осведомленности разработчиков, возможно из-за не перспективности подхода. Однако, в некоторых случаях данная концепция ложится довольно хорошо. 

Читать далее «Mesh или немного синтаксического сахара.»

Операторы SWITCH .. COND..

В abap давно уже есть функциональные операторы SWITH и COND которые являются альтернативой CASE и IF соответственно.
Операторы умеют определять возвращаемый тип из контекста. Если это не возможно, необходимо указать его в ручную.
Также возможно использование LET.
Пример с IF:

Заменим на COND:

Пример с CASE:

Замена на SWITH:

Пример использования cond

 

boolc и xsdbool ABAP

В abap 7.40 появились новые логические функции boolc() и xsdbool() они определяют истинность логического выражения в аргументе boolc( логическое выражение )/ xsdbool ( логическое выражение ).
Отличаются тем, что boolc( ) имеет тип данных "С" в качестве возвращаемого параметра, а xsdbool() возвращает тип abap_bool.

Пример:

Тоже самое с использованием xsdbool():

Еще удобно можно передавать  результат на вход метода.

 

 

 

Создать RANGE в словаре ABAP

Для создания типа таблицы диапазонов выполним следующую последовательность действий:
1. Перейти в транзакцию se11
2. Вводим название нового типа

Читать далее «Создать RANGE в словаре ABAP»