Как отобразить фотографию в пользовательском инфо-типе?

Пояснение к вопросу

Как вы, должно быть знаете, для транзакций PA20/PA30 можно выполнить настройку, позволяющую добавить отображение фотографии сотрудника в заголовоке экрана

Для выполнения этой настройки смотри документацию по следующему пункту в SPRO:

IMG: Personnel Management -> Personnel Administration -> Customizing User Interfaces

Фотография, отображаемая в заголовке экрана кадрового инфо-типа, загружается из репозитария Archive Link, успешно справляющегося со многим содержимым, которое через него проходит почти на каждом проекте.

Помимо отображения фотографии в заголовке экрана, вполне себе может появиться задача по отображению этой фотографии в пользовательском инфо-типе. Предлагаю рассмотреть пример реализации такого требования.

N.B. Стоит обратить внимание на то, что предложенный ниже вариант реализации актуален, если для хранения фотографий вы используете вид документа HRICOLFOTO бизнес-объекта PREL

См. Storage Within Personnel Administration (PA-PA)

Решение вопроса

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.

Активируйте внесенные изменения.

4. Тестирование