Как отобразить фотографию в пользовательском инфо-типе?
Пояснение к вопросу
Как вы, должно быть знаете, для транзакций PA20/PA30 можно выполнить настройку, позволяющую добавить отображение фотографии сотрудника в заголовоке экрана
Для выполнения этой настройки смотри документацию по следующему пункту в SPRO:
IMG: Personnel Management -> Personnel Administration -> Customizing User Interfaces
Фотография, отображаемая в заголовке экрана кадрового инфо-типа, загружается из репозитария Archive Link, успешно справляющегося со многим содержимым, которое через него проходит почти на каждом проекте.
Помимо отображения фотографии в заголовке экрана, вполне себе может появиться задача по отображению этой фотографии в пользовательском инфо-типе. Предлагаю рассмотреть пример реализации такого требования.
N.B. Стоит обратить внимание на то, что предложенный ниже вариант реализации актуален, если для хранения фотографий вы используете вид документа HRICOLFOTO бизнес-объекта PREL
Решение вопроса
1. Создание пользовательского инфо-типа
Чтобы рассмотреть пример такой реализации мне необходимо создать какой-нибудь инфо-тип кадрового администрирования
См. заметку Создание PA инфо-типа
Для демонстрации в этой заметке я буду использовать инфо-тип 9219, выглядящий вот так вот незатейливо
Согласно представленным требованиям, он может иметь тот вид, который необходим бизнес-пользователю.
2. Изменение экрана инфо-типа для отображения фотографии
Для того, чтобы вывести фотографию сотрудника в новом инфо-типе, необходимо добавить для этого соответствующее поле. На следующем видеофрагменте приведена последовательность действий, которую необходимо выполнить для выполнения этой операции. Изменения выполняются через транзакцию SE51
3. Вывод фотографии в инфо-тип
В пуле модулей вашего инфо-типа найдите include, с комментарием Output Modules
Для вывода фотографии нам подойдет стандартный ФМ HR_IMAGE_INIT. Внесите в инклюд следующий код
DATA: sv_handle TYPE i.
CALL FUNCTION 'HR_IMAGE_RESET'
EXPORTING
handle = sv_handle
EXCEPTIONS
OTHERS = 0.
CALL FUNCTION 'HR_IMAGE_INIT'
EXPORTING
p_pernr = p9219-pernr
begda = '19000101'
endda = '99991231'
container = 'PHOT_EMPL' " наименование поля экрана для отображения фотографии
IMPORTING
handle = sv_handle
EXCEPTIONS
no_document = 1
internal_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
CLEAR sv_handle.
ENDIF.
Активируйте внесенные изменения.