SAP Обработка на стойност и обработка на молба за помощ

⚡ Умно обобщение

Процес на заявка за стойност и Процес на заявка за помощ са екранните събития зад F4 и F1 в SAP ABAP. Тази страница обяснява както събитията, така и FIELD операторите, които ги задействат, и функционалните модули, които показват документация или възможни записи.

  • Цел на POH: ПРОЦЕСЪТ ПРИ ЗАЯВКА ЗА ПОМОЩ реагира на F1 и показва документацията на полето, съхранена в ABAP речника.
  • ???? Цел на гледната точка: ПРОЦЕСЪТ ПО ЗАЯВКА ЗА СТОЙНОСТ реагира на 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 (Обработка по заявка за стойност)
Задействано от Клавишът 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 в събитието ПРОЦЕС ПРИ ЗАЯВКА ЗА ПОМОЩ. Той просто показва помощна документация. Това е.

Модулът е дефиниран в програмата ABAP като нормален PAI модул. Логиката на обработка на модула трябва да гарантира, че се показва адекватна помощ за въпросното поле. Вместо да извиквате допълнителен екран с текстови полета, трябва да използвате един от следните функционални модули, за да покажете подходяща SAPскриптов документ

HELP_OBJECT_SHOW_FOR_FIELD

  • Този функционален модул показва документацията на елемента от данни за компоненти на всяка структура или таблица на база данни от ABAP речника.
  • Подавате името на компонента и структурата или таблицата към параметрите за импортиране FIELD и TABLE.

HELP_OBJECT_SHOW

  • Използвайте този функционален модул, за да покажете всякакви SAPскриптов документ.
  • Трябва да предадете класа на документа (например TX за общи текстове, DE за документация на елемент от данни) и името на документа към параметрите за импортиране DOKCLASS и DOKNAME.
  • По технически причини трябва да предадете и празна вътрешна таблица с тип ред 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 помощ, като например връзки за вече въведената авиокомпания.

Въпроси и Отговори

Нито едното, нито другото. F1 и F4 прекъсват екрана и изпълняват собствено събитие, след което се връщат към същия екран. Редовната обработка на PAI започва само когато потребителят задейства нормален функционален код.

Помощ за търсене, прикачена към елемента от данни или към таблицата за проверка, вече генерира F4 списъка. POV кодирането е необходимо само когато стойностите се изчисляват по време на изпълнение или зависят от друго поле на екрана.

Предайте DYNPROFIELD с името на колоната и използвайте GET CURSOR LINE за да намери реда. След това функционалният модул записва стойността в правилния ред на контролата на следващия PBO.

Да. AI асистентите в ABAP инструментите за разработка пишат логиката на POV потока, SELECT, който запълва таблицата със стойности, и извикването на F4IF_INT_TABLE_VALUE_REQUEST с правилните параметри RETFIELD и DYNPROFIELD.

Не. F1 все още чете документацията, съхранявана в ABAP речника. Асистенти с изкуствен интелект, като например SAP Джоул отговаря на въпроси на разбираем език до екрана, което допълва полевата документация, а не я замества.

Обобщете тази публикация с: