Всем привет!

Некоторое время назад мы уже говорили об Инфо-типе 0006 Адреса и дополнительных полях из ИТ 3433 Дополнительные адресные данные (RU).

Сегодня я хочу рассказать вам как программно добавить запись в ИТ 3433.

На написание этого поста меня подтолкнул коллега @Denis Startsev. Денис, если ты это читаешь — привет!

Итак, в чем же особенность записи данных в ИТ 3433 и почему на этом стоит заострять внимание?

Abap-разработчикам, которые пишут программы для модуля HCM должно быть известно, что при выполнении операций CRUD с Инфо-типами принято использовать ФМ-ы. Работа с таблицами инфотипов через Open SQL считается моветоном. Во многом это обусловлено тем, что в ФМ-ах реализованы всевозможные проверки (консистентность, полномочия).

Для добавления записей в Инфо-типы часто используется ФМ ‘HR_INFOTYPE_OPERATION’.

Здесь мы подходим к нашему первоначальному вопросу. Рассмотрим пример.

Допусти нам необходимо добавить адрес постоянного места жительства сотрудника. В адресе есть поле Номер строения. Мы с вами выяснили, что это поле на самом деле хранится в ИТ 3433 Дополнительные адресные данные (RU). Называется оно P3433-STRUCNUM.

Рис 1 — Экран инфо-типа 0006 Адреса

Если используя ФМ ‘HR_INFOTYPE_OPERATION’ попытаться добавить запись в ИТ 3433 как на примере ниже, то ничего не выйдет. Если вы не один из двенадцати моих подписчиков, подозреваю, что именно поэтому вы и читаете этот пост :^)

Для того, чтобы добавить запись правильно, необходимо использовать входные параметры VIEW_IDENTIFIER и SECONDARY_RECORD. Меньше слов, больше дела.

Доработаем наш пример.

Рис 2 — Результат работы — заполненное поле Номер строения

Обратите внимание!

Если запись в ИТ 0006 уже существует, а в ИТ 3433 после выполнения этого кода не добавляется, попробуйте сначала запустить отчет RPUPAV00. Для каждой существующей записи ИТ 0006 он добавит пустую запись ИТ 3433. После этого достаточно будет ее изменить.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.