SAP Процесс по ценности и процесс по запросу о помощи
⚡ Умное резюме
События Process On Value-Request и Process On Help-Request — это события экрана, происходящие после нажатия клавиш F4 и F1. SAP ABAP. На этой странице объясняется, что представляют собой события, какие операторы FIELD их запускают, а также функциональные модули, отображающие документацию или возможные варианты ввода.

Что такое POH и POV?
Во-первых, если вы ничего не знаете о логике Screen Flow и её применении, имейте в виду, что для начала вам ничего не нужно знать. SAPМы рекомендуем вам ознакомиться с нашим руководством по этой теме. Диалоговая программа.
POH и POV — это два события экрана, отвечающие на запрос пользователя о помощи. POH реагирует на клавишу F1 и объясняет значение поля, а POV реагирует на клавишу F4 и перечисляет значения, которые принимает поле. Оба события объявляются в логике потока экрана, рядом с PBO и PAI.
| Критерии | POH (Процесс обработки запроса на помощь) | POV (Process On Value-Request) |
|---|---|---|
| Вызваны | Клавиша F1 | Клавиша F4 или кнопка «Возможные варианты» |
| Цель | Разъясняет значение данного поля. | Предлагает значения, принятые в данной области. |
| Источник по умолчанию | Документация по элементам данных в словаре ABAP | Фиксированные значения, контрольная таблица или справка по поиску |
| Передача данных | Нет, поле только отображается. | Выбранное значение записывается обратно в поле на экране. |
| Типичный функциональный модуль | HELP_OBJECT_SHOW_FOR_FIELD | F4IF_INT_TABLE_VALUE_REQUEST |
Теперь давайте подробно рассмотрим POH и POV.
Обработка запроса на помощь (POH): Справка F1
- При каждом нажатии клавиши F1 выполняется событие POH для указанного элемента данных.
- Если событие PROCESS ON HELP-REQUEST отсутствует в логике обработки экрана, в качестве основы используется и отображается документация по этому полю в словаре ABAP. Даже если такой документации нет, справка не отображается.
- Чтобы отобразить справочную документацию по полям, необходимо закодировать следующую логику потока экрана в событии POH:
PROCESS ON HELP-REQUEST FIELD <f> [MODULE <mod>] WITH <num>
- Если для поля имеется документация по элементу данных для конкретного экрана , вы можете отобразить его, указав его номер .
- Номер может быть литералом или переменной. Переменная должна быть объявлена и заполнена в соответствующей ABAP-программе.
- Обратите внимание: оператор FIELD не передает содержимое поля экрана. к программе ABAP в событии PROCESS ON HELP-REQUEST. Он просто показывает справочную документацию. Вот и все.
Модуль Модуль PAI определяется в программе ABAP как обычный модуль PAI. Логика обработки модуля должна обеспечивать отображение адекватной справки для соответствующего поля. Вместо вызова дополнительного экрана с текстовыми полями следует использовать один из следующих функциональных модулей для отображения подходящей справки. SAPдокумент сценария
HELP_OBJECT_SHOW_FOR_FIELD
- Этот функциональный модуль отображает документацию по элементам данных для компонентов любой структуры или таблицы базы данных из словаря ABAP.
- Вы передаете имя компонента и структуру или таблицу в параметры импорта FIELD и TABLE.
HELP_OBJECT_SHOW
- Используйте этот функциональный модуль для отображения любого SAPдокумент сценария.
- В параметры импорта DOKCLASS и DOKNAME необходимо передать класс документа (например, TX для общих текстов, DE для документации по элементам данных) и имя документа.
- По техническим причинам необходимо также передать пустую внутреннюю таблицу с типом строки T.LINE к параметру tables функционального модуля.
Нажатие клавиши F1 поясняет значение поля. В следующем событии перечислены параметры, которые можно в него ввести.
Процесс по ценности (POV): F4
- Когда пользователь выбирает функцию Возможные записи (F4), система отображает возможные входные значения для поля (значения, проверочная таблица, код соответствия), при условии, что они были сохранены разработчиком.
- Событие PROCESS ON VALUE-REQUEST обрабатывается всегда, если пользователь вызвал «Возможные записи».
- Чтобы определить возможные значения для поля на экране, вам необходимо определить следующее в событии POV логики потока экрана:
PROCESS ON VALUE-REQUEST FIELD field name MODULE module name
- Для возможных значений в модуле, определенном выше, вы должны использовать общий функциональный модуль HELP_VALUES_GET_WITH_TABLE чтобы получить возможные значения из словаря ABAP.
Есть и другие функции, которые также можно использовать для помощи при вводе:
F4IF_FIELD_VALUE_REQUEST
- Динамически вызывает справку по вводу словаря ABAP.
- Вы можете передать имена компонентов структуры или таблицы базы данных словаря ABAP в функциональный модуль в параметрах импорта TABNAME и FIELDNAME.
- Функциональный модуль запускает ABAP-словарь введите справку для этого компонента. Все соответствующие поля экрана считываются.
- Если указать параметры импорта DYNPPROG, DYNPNR и DYNPROFIELD, выбор пользователя возвращается в соответствующее поле на экране.
- Если вы укажете параметр таблицы RETURN_TAB, вместо этого выборка будет возвращена в таблицу.
MODULE VALUE_CARRIER INPUT. CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST' EXPORTING TABNAME = 'DEMOF4HELP' FIELDNAME = 'CARRIER1' DYNPPROG = PROGNAME DYNPNR = DYNNUM DYNPROFIELD= 'CARRIER'. ENDMODULE.
F4IF_INT_TABLE_VALUE_REQUEST
- Этот функциональный модуль отображает список значений, созданный вами в ABAP-программа.
- Список значений передается функциональному модулю как параметр таблицы VALUE_TAB.
- Если указать параметры импорта DYNPPROG, DYNPNR и DYNPROFIELD, выбор пользователя возвращается в соответствующее поле на экране.
- Если вы укажете параметр таблицы RETURN_TAB, вместо этого выборка будет возвращена в таблицу.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST' EXPORTING RETFIELD = 'CONNID' DYNPPROG = PROGNAME DYNPNR = DYNNUM DYNPROFIELD = 'CONNECTION' VALUE_ORG = 'S' TABLES VALUE_TAB = VALUES_TAB.
Это все для POH и POV. Оставляйте свои комментарии в случае каких-либо сомнений.
Как создать справку по клавише F4 из внутренней таблицы
В программе формируется список значений, отсутствующий в словаре ABAP, который передается функции F4IF_INT_TABLE_VALUE_REQUEST. Описанные ниже шаги позволяют получить работающую справку F4 для поля экрана.
- Объявите таблицу значений: Создайте внутреннюю таблицу, первый столбец которой будет содержать значение, выводимое на экран. Заполните её в модуле PBO или в самом модуле запроса значения.
- Зарегистрируйте поле в логике потока: Добавьте на экран команду PROCESS ON VALUE-REQUEST и свяжите поле с FIELD … MODULE … так, чтобы модуль запускался при нажатии клавиши F4.
- Вызовите функциональный модуль: Передайте RETFIELD имя столбца, DYNPROFIELD имя поля экрана и VALUE_ORG = 'S', поскольку список передается в виде структурированной таблицы.
- Верните значение: DYNPPROG и DYNPNR идентифицируют программу и экран, поэтому выбранная строка записывается непосредственно в поле экрана без дополнительного кода.
- Попробуй это: Активируйте экран, нажмите клавишу F4 на поле и убедитесь, что список появился и что выделенный фрагмент отображается в поле.
* Flow logic of the screen PROCESS ON VALUE-REQUEST. FIELD spfli-connid MODULE f4_connid. * Module in the ABAP program MODULE f4_connid INPUT. DATA: lt_values TYPE STANDARD TABLE OF spfli. SELECT * FROM spfli INTO TABLE lt_values WHERE carrid = spfli-carrid. CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST' EXPORTING retfield = 'CONNID' dynpprog = sy-repid dynpnr = sy-dynnr dynprofield = 'SPFLI-CONNID' value_org = 'S' TABLES value_tab = lt_values. ENDMODULE.
💡 Совет: Перед заполнением списка считайте значение другого поля экрана с помощью функционального модуля DYNP_VALUES_READ. Именно так формируется зависимая справка по клавише F4, например, информация о рейсах уже введенной авиакомпании.
