HR_MAINTAIN_MASTERDATA не сохраняет отдельные записи ИТ при проведении мероприятий

Была поставлена задача – проводить мероприятия в системе при помощи HR_MAINTAIN_MASTERDATA. Мероприятия работали корректно. После проведения все инфо-типы записывались. Однако, при проведении увольнения инфо-типы 0000 и 0001 не сохранялись. Ошибки при этом никакой не возникало, на первый взгляд все отрабатывало штатно. Пробовал менять параметр LUW_MODE, сбрасывал буфер перед вызовом ИТ, запускал в отдельном потоке и прочее. Результата это никакого не дало.
Нашел два выхода из этой проблемы:

1.) По какой-то причине внутри ФМ HR_MAINTAIN_MASTERDATA в обязательном порядке устанавливается параметр PSPAR-PBPFL = ‘X’. Он то и влияет на сохранение этих ИТ. Если его выставить в FALSE, все отработает корректно. Но я решил не трогать его т.к. возможно, он влияет на какую-либо другую логику при сохранении ФМ.  Похожая проблема на sap.com

2). Второй способ мне понравился больше. При проведении мероприятия в BADI HRPAD00INFTY, получаю значения экрана (Исходные не годятся т.к. пользователь мог что-то поменять в диалоговом режиме). И после успешной отработки ФМ HR_MAINTAIN_MASTERDATA , вызываю ФМ HR_INFOTYPE_OPERATION для 0000 и 0001 ИТ-ов.

Пример вызова ФМ HR_MAINTAIN_MASTERDATA. Для тех, кто его не использовал

В таблицу proposed_values можно передавать значения для полей инфо-типов.

UPD.
При проведении мероприятий HR_MAINTAIN_MASTERDATA игнорирует операцию LIS9. Например, при увольнении лимиты 2006 не ограничиваются. За это отвечает флаг ASKEY. Если его почистить, то ФМ будет работать как в pa40.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *