SAP Procesare la valoare și procesare la cerere de ajutor

⚡ Rezumat inteligent

Proces la cerere de valoare și Proces la cerere de ajutor sunt evenimentele de ecran din spatele tastelor F4 și F1 în SAP ABAP. Această pagină explică atât evenimentele, instrucțiunile FIELD care le declanșează, cât și modulele de funcții care afișează documentația sau posibilele intrări.

  • Scopul POH: PROCESUL LA CERERE-AJUTOR reacționează la F1 și afișează documentația câmpului stocată în dicționarul ABAP.
  • 🔎 Scopul punctului de vedere: PROCESUL LA CERERE-VALOARE reacționează la F4 și afișează intrările posibile definite de valori, un tabel de verificare sau un ajutor la căutare.
  • 🧾 Regula de rezervă: Când evenimentul POH lipsește, sistemul revine la documentația elementului de date și nu afișează nimic atunci când acesta lipsește.
  • 🚫 Limită de transport: Instrucțiunea FIELD din POH nu transportă câmpul de ecran către program, deoarece afișează doar ajutor.
  • 📚 Module de ajutor: HELP_OBJECT_SHOW_FOR_FIELD afișează documentația elementului de date, iar HELP_OBJECT_SHOW afișează orice SAPdocument script.
  • 📋 Module de valoare: F4IF_FIELD_VALUE_REQUEST pornește ajutorul pentru introducerea datelor din dicționar, iar F4IF_INT_TABLE_VALUE_REQUEST afișează o listă construită în cadrul programului.
  • ↩️ Calea de intoarcere: DYNPPROG, DYNPNR și DYNPROFIELD returnează valoarea aleasă în câmpul de pe ecran, în timp ce RETURN_TAB o returnează într-un tabel.

SAP Proces pe bază de valoare și proces pe bază de cerere de ajutor

Ce sunt POH și POV?

În primul rând, dacă nu știți nimic despre logica Screen Flow și utilizările acesteia în SAP, vă recomandăm să consultați tutorialul nostru despre Program de dialog.

POH și POV sunt cele două evenimente de ecran care răspund la o solicitare de ajutor din partea utilizatorului. POH reacționează la tasta F1 și explică ce înseamnă un câmp, în timp ce POV reacționează la tasta F4 și listează valorile pe care le acceptă câmpul. Ambele sunt declarate în logica de flux a ecranului, lângă PBO și PAI.

Criterii POH (Proces la cerere de ajutor) POV (Proces la cerere de valoare)
Declanșat de Tasta F1 Tasta F4 sau butonul Intrări posibile
Scop Explică semnificația câmpului Oferă valorile pe care le acceptă câmpul
Sursa implicită Documentația elementelor de date în Dicționarul ABAP Valori fixe, tabel de verificare sau ajutor pentru căutare
Transportul de date Niciunul, câmpul este afișat doar Valoarea selectată este scrisă înapoi în câmpul de ecran
Modul funcțional tipic HELP_OBJECT_SHOW_FOR_FIELD F4IF_INT_TABLE_VALUE_REQUEST

Acum, să analizăm POH și POV în detaliu

Proces la cererea de ajutor (POH) : Ajutor F1

  • Ori de câte ori se apasă tasta F1, se execută evenimentul POH pentru elementul de date specificat.
  • Dacă evenimentul PROCESS ON HELP-REQUEST nu există în logica de proces a unui ecran, se ia ca bază și se afișează documentația câmpului din Dicționarul ABAP. Chiar dacă acest lucru nu se încheie, nu se afișează niciun ajutor.
  • Pentru a afișa documentația de ajutor de câmp, trebuie să codificați următoarea logică a fluxului de ecran în evenimentul POH:
PROCESS ON HELP-REQUEST
FIELD <f> [MODULE <mod>] WITH <num>
  • Dacă există documentație pentru elementele de date specifice ecranului pentru câmp , îl puteți afișa specificând numărul acestuia .
  • Numarul poate fi un literal sau o variabilă. Variabila trebuie declarată și completată în programul ABAP corespunzător.
  • Rețineți că instrucțiunea FIELD nu transferă conținutul câmpului de ecran la programul ABAP în evenimentul PROCES LA CERERE AJUTOR. Arată doar documentația de ajutor. Asta este.

Modulul este definit în programul ABAP ca un modul PAI normal. Logica de procesare a modulului trebuie să asigure afișarea unui ajutor adecvat pentru câmpul în cauză. În loc să apelați un ecran suplimentar cu câmpuri de text, ar trebui să utilizați unul dintre următoarele module funcționale pentru a afișa un ajutor adecvat SAPdocument script

HELP_OBJECT_SHOW_FOR_FIELD

  • Acest modul funcțional afișează documentația elementului de date pentru componentele oricărei structuri sau tabel de bază de date din Dicționarul ABAP.
  • Treceți numele componentei și structurii sau tabelului parametrilor de import FIELD și TABLE.

HELP_OBJECT_SHOW

  • Utilizați acest modul funcțional pentru a afișa oricare SAPdocument script.
  • Trebuie să treceți clasa documentului (de exemplu, TX pentru texte generale, DE pentru documentația elementului de date) și numele documentului la parametrii de import DOKCLASS și DOKNAME.
  • Din motive tehnice, trebuie să transmiteți și un tabel intern gol cu ​​tipul de linie T.LINE la parametrul tables al modulului de funcții.

F1 explică câmpul. Următorul eveniment listează ce poate fi introdus în acesta.

Proces pe valoare (POV): F4

  • Atunci când utilizatorul alege funcția Intrări posibile (F4), sistemul afișează valorile posibile de intrare pentru un câmp (valori, tabel de verificare, cod de potrivire), cu condiția să fie stocate de dezvoltator.
  • Evenimentul PROCESS ON VALUE-REQUEST este întotdeauna procesat dacă utilizatorul a apelat „Intrari posibile”.
  • Pentru a defini valorile posibile pentru un câmp de pe ecran, trebuie să definiți următoarele în evenimentul POV al logicii fluxului de ecran:
PROCESS ON VALUE-REQUEST

FIELD field name MODULE module name
  • Pentru Valorile posibile, în cadrul modulului definit mai sus, ar trebui să utilizați modulul de funcție generală HELP_VALUES_GET_WITH_TABLE pentru a obține valori posibile din dicționarul ABAP.

Există și alte funcții care pot fi utilizate și pentru ajutor de intrare:

F4IF_FIELD_VALUE_REQUEST

  • Apelează în mod dinamic ajutorul de intrare al Dicționarului ABAP.
  • Puteți trece numele componentelor unei structuri sau a unui tabel de bază de date din Dicționarul ABAP către modulul de funcție în parametrii de import TABNAME și FIELDNAME.
  • Modulul funcțional pornește Dicţionar ABAP ajutor de intrare pentru această componentă. Toate câmpurile relevante ale ecranului sunt citite.
  • Dacă specificați parametrii de import DYNPPROG, DYNPNR și DYNPROFIELD, selecția utilizatorului este returnată în câmpul corespunzător de pe ecran.
  • Dacă specificați parametrul de tabel RETURN_TAB, selecția este returnată în tabel.
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

  • Acest modul funcțional afișează o listă de valori pe care ați creat-o într-un program ABAP.
  • Lista de valori este transmisă modulului funcțional ca parametru de tabel VALUE_TAB.
  • Dacă specificați parametrii de import DYNPPROG, DYNPNR și DYNPROFIELD, selecția utilizatorului este returnată în câmpul corespunzător de pe ecran.
  • Dacă specificați parametrul de tabel RETURN_TAB, selecția este returnată în tabel.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING

RETFIELD         =  'CONNID'
DYNPPROG         =  PROGNAME
DYNPNR           =  DYNNUM
DYNPROFIELD      =  'CONNECTION'
VALUE_ORG        = 'S'
TABLES
VALUE_TAB        = VALUES_TAB.

Asta e tot pentru POH și POV. Lasă-ți comentariile în caz de îndoieli.

Cum se construiește un ajutor F4 dintr-un tabel intern

O listă de valori care nu există în Dicționarul ABAP este construită în cadrul programului și transmisă comenzii F4IF_INT_TABLE_VALUE_REQUEST. Pașii de mai jos produc o listă de ajutor F4 funcțională pentru un câmp de ecran.

  1. Declarați tabelul de valori: Construiți un tabel intern a cărui primă coloană conține valoarea care este scrisă înapoi pe ecran. Completați-l într-un modul PBO sau în modulul de solicitare a valorii.
  2. Înregistrați câmpul în logica fluxului: Adăugați PROCESS ON VALUE-REQUEST pe ecran și conectați câmpul cu FIELD … MODULE … astfel încât modulul să ruleze când se apasă F4.
  3. Apelați modulul funcției: Transmiteți RETFIELD cu numele coloanei, DYNPROFIELD cu numele câmpului de ecran și VALUE_ORG = 'S' deoarece lista este transmisă ca tabel structurat.
  4. Returnează valoarea: DYNPPROG și DYNPNR identifică programul și ecranul, astfel încât rândul selectat este scris direct în câmpul ecranului fără cod suplimentar.
  5. Testați-l: Activați ecranul, apăsați F4 pe câmp și verificați dacă apare lista și dacă selecția ajunge în câmp.
* 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.

💡 Sfat: Citiți valoarea unui alt câmp de ecran cu modulul funcțional DYNP_VALUES_READ înainte de a completa lista. Așa se construiește un ajutor F4 dependent, cum ar fi conexiunile pentru compania aeriană deja introdusă.

Întrebări frecvente

Niciuna. F1 și F4 întrerup ecranul și rulează propriul eveniment, apoi revin la același ecran. Procesarea PAI obișnuită începe doar atunci când utilizatorul declanșează un cod de funcție normal.

Un ajutor de căutare atașat elementului de date sau tabelului de verificare produce deja lista F4. Codificarea POV este necesară numai atunci când valorile sunt calculate în timpul execuției sau depind de un alt câmp al ecranului.

Transmiteți DYNPROFIELD cu numele coloanei și utilizați GET CURSOR LINE pentru a găsi rândul. Modulul funcțional scrie apoi valoarea în rândul corect al controlului pe următorul PBO.

Da. Asistenții inteligenți artificiali din instrumentele de dezvoltare ABAP scriu logica fluxului POV, comanda SELECT care umple tabelul de valori și apelul F4IF_INT_TABLE_VALUE_REQUEST cu parametrii RETFIELD și DYNPROFIELD corecți.

Nu. F1 citește în continuare documentația stocată în Dicționarul ABAP. Asistenții AI, cum ar fi SAP Joule răspunde la întrebări într-un limbaj simplu lângă ecran, ceea ce completează documentația de teren, în loc să o înlocuiască.

Rezumați această postare cu: