SAP Процесс по ценности и процесс по запросу о помощи

⚡ Умное резюме

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

  • Назначение POH: Функция PROCESS ON HELP-REQUEST реагирует на нажатие клавиши F1 и отображает документацию по полям, хранящуюся в словаре ABAP.
  • 🔎 Цель POV: Функция PROCESS ON VALUE-REQUEST реагирует на клавишу F4 и отображает возможные варианты ввода, определяемые значениями, контрольную таблицу или справку по поиску.
  • 🧾 Резервное правило: Если событие POH отсутствует, система переключается на документацию элемента данных и ничего не отображает, если она также отсутствует.
  • ???? Ограничение на транспортировку: Оператор FIELD в POH не передает содержимое экранного поля в программу, поскольку он отображает только справку.
  • 📚 Модули справки: HELP_OBJECT_SHOW_FOR_FIELD отображает документацию по элементу данных, а HELP_OBJECT_SHOW отображает любой SAPдокумент сценария.
  • 📋 Модули ценности: Функция F4IF_FIELD_VALUE_REQUEST запускает справку по вводу словаря, а функция F4IF_INT_TABLE_VALUE_REQUEST отображает список, созданный внутри программы.
  • 🇧🇷 Обратный путь: Функции DYNPPROG, DYNPNR и DYNPROFIELD возвращают выбранное значение в поле на экране, а RETURN_TAB — в таблицу.

SAP Обработка запросов на помощь и обработка запросов на помощь

Что такое 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 для поля экрана.

  1. Объявите таблицу значений: Создайте внутреннюю таблицу, первый столбец которой будет содержать значение, выводимое на экран. Заполните её в модуле PBO или в самом модуле запроса значения.
  2. Зарегистрируйте поле в логике потока: Добавьте на экран команду PROCESS ON VALUE-REQUEST и свяжите поле с FIELD … MODULE … так, чтобы модуль запускался при нажатии клавиши F4.
  3. Вызовите функциональный модуль: Передайте RETFIELD имя столбца, DYNPROFIELD имя поля экрана и VALUE_ORG = 'S', поскольку список передается в виде структурированной таблицы.
  4. Верните значение: DYNPPROG и DYNPNR идентифицируют программу и экран, поэтому выбранная строка записывается непосредственно в поле экрана без дополнительного кода.
  5. Попробуй это: Активируйте экран, нажмите клавишу 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, например, информация о рейсах уже введенной авиакомпании.

Часто задаваемые вопросы (FAQ)

Ни то, ни другое. Нажатия F1 и F4 прерывают отображение экрана и запускают собственное событие, после чего возвращаются к тому же экрану. Обычная обработка PAI начинается только тогда, когда пользователь активирует обычный функциональный код.

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

Передайте в поле DYNPROFIELD имя столбца и используйте GET CURSOR. LINE чтобы найти строку. Затем функциональный модуль записывает значение в соответствующую строку элемента управления в следующем PBO.

Да. Искусственный интеллект-ассистенты в инструментах разработки ABAP пишут логику потока POV, оператор SELECT, заполняющий таблицу значений, и вызов функции F4IF_INT_TABLE_VALUE_REQUEST с правильными параметрами RETFIELD и DYNPROFIELD.

Нет. F1 по-прежнему считывает документацию, хранящуюся в словаре ABAP. Искусственные интеллекты-помощники, такие как... SAP Ответы Joule на вопросы отображаются простым языком рядом с экраном, что дополняет полевую документацию, а не заменяет ее.

Подведем итог этой публикации следующим образом: