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

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

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

ЛБД PNPCE

ЛБД PNPCE служит для выбора данных модуля PA и является более новой версией ЛБД PNP c функциями для работы с центральным лицом(CE). На сегодняшний день в 100% случаях используется именно она, даже если работа с CE вам не нужна.
Как и в случае с организационным менеджментом при разработке отчетов для администрирования персонала необходимо использовать ЛБД. Не буду повторятся о необходимости использования, почитайте.

Это не полное руководство, а лишь обзор ЛБД PNPCE

Читать далее «ЛБД PNPCE»

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»