Средство поиска ABAP

При необходимости принудительного вызова средства поиска ABAP в ALV таблице, например, при нажатии кнопки или по какому-либо событию используется Функциональный модуль F4IF_FIELD_VALUE_REQUEST. Вызов этого ФМ позволяет создать диалог с пользователем SAP. В нужный момент вызывается средство поиска ABAP и обработать ответ пользователя. Анализируя, была ли выбрана пользователем запись и если выбрана, то какая именно.

Средство поиска ABAP в ALV таблице

 

F4IF_FIELD_VALUE_REQUEST

Подробнее рассмотрим вызов этого функционального модуля и его возможности. Для примера я выбрал принудительный вызов средства поиска для поля KUNNR – дебитора. С помощью данного ФМ мы будем вызывать пользовательское средство поиска “ZSD_KUNNR”. ФМ получает на вход следующие параметры:

  • tabname – имя таблицы либо ракурс справки, как в нашем случае. Из этого ракурса или таблицы будут извлекаться доступные значения для выбора.
  • fieldname – имя поля таблицы tabname, в котором хранится поле.
  • searchhelp – средство поиска для принудительного вызова.
  • multiple_choice – поле отвечает за возможность множественного выбора значений.

Так же другие параметры влияющие на вызов данного средство поиска можно посмотреть перейдя в параметры.

Итоговый код программы ABAP выглядит следующим образом:

 

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

Так же этот код можно было записать короче, если использовать новый синтаксис ABAP. Например, используя инлайновую декларацию мы можем отказаться от предварительного объявления переменной lr_kunnr_ret. И использовать код:

 

Как используется ФМ F4IF_FIELD_VALUE_REQUEST в реальных задачах?

  • По нажатию кнопки в панели ALV таблицы мы принудительно вызываем средство поиска ABAP и в нём выбираем, например, нужный код завода. После выбора этого кода мы, например, определённым образом производим начальное заполнение строки или другой вариант.

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