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.
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.
- 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.
- Î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.
- 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.
- 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.
- 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ă.

