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

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


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

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

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

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

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

ЛБД PNPCE

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

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

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

ЛБД PCH

Для разработчиков, не знакомых с HCM, будет полезным узнать подходе к разработке, основанном на логических базах данных.
Если кратко, то ЛБД позволяет извлекать типовые данные HCM, не используя SELECT и даже FM-ы для чтения. Они, конечно, используются в глубине логики ЛБД, но скрыты от разработчика.
Небольшая оговорка для не HCM программистов - когда вы используете для доступа к инфо-типам SELECT, в 99% случаях вы делаете не правильно. Бегом читать курс HR350. Модуль HCM работает с персональными данными людей, данная информация всегда жестко защищена законодательством и несанкционированный доступ к ней карается. Если вы не используете ЛБД или специализированные ФМ-мы необходимо проверять полномочия отдельно.
Кроме того, ЛБД создает экран программы(рис 1.), который удовлетворяет большинство потребностей HCM приложений. Будем честны, как правило, они не так уж и сложны. При этом экран можно настраивать.
Разберем создание отчета на базе ЛБД PCH, данная ЛБД используется для доступа к данным организационного менеджмента, т.к. очень хорошо работает с организационной структурой.

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

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


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

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

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

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

Заменим на COND:

Пример с CASE:

Замена на SWITH:

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

 

Coding Challenge

The site was offered a task.


Challenge Directions:

Start with this line of code as the first line in your application. Requirement: make sure to cut and paste this line of code and NOT type it.

Using the value in the variable sentence, programmatically determine the number of words in this variable and then count the number of UNIQUE letters in each word.

Your output should look like this:

 

My result 6 rows.
Answer:

Читать далее «Coding Challenge»

boolc и xsdbool ABAP

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

Пример:

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

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

 

 

 

Получить унаследованное значение BUKRS\KOSTL

В транзакциях PPOSE\PPOME на вкладке "Контировка" мы можем увидеть значения, унаследованные от вышестоящих организационных единиц в структуре. При этом для текущей единицы записи в ИТ 1008 не создается.
Многие пытаются писать свои велосипеды для поиска значений.

Получить значения, а также их периоды можем при помощи ФМ RH_ACC_FIND_OM


ALV редактирование\запрет редактирования отдельной ячейки

Если в ALV необходимо редактировать отдельные ячейки, а не весь столбец уже мало просто отметить возможность редактирования в каталоге полей.

Читать далее «ALV редактирование\запрет редактирования отдельной ячейки»