SAP Proces på Værdi & Proces på Hjælp-anmodning
⚡ Smart opsummering
Process On Value-Request og Process On Help-Request er skærmbegivenhederne bag F4 og F1 i SAP ABAP. Denne side forklarer både hændelser, de FIELD-sætninger, der udløser dem, og de funktionsmoduler, der viser dokumentation eller mulige poster.
Hvad er POH og POV?
For det første, til at begynde med, hvis du ikke ved noget om Screen Flow-logik og dens anvendelser i SAP, anbefaler vi, at du tjekker vores vejledning om Dialogprogram.
POH og POV er de to skærmhændelser, der besvarer en hjælpeanmodning fra brugeren. POH reagerer på F1-tasten og forklarer, hvad et felt betyder, mens POV reagerer på F4-tasten og viser de værdier, som feltet accepterer. Begge er deklareret i skærmflowlogikken ved siden af PBO og PAI.
| Kriterier | POH (Process On Help-Request) | POV (Process On Value-Request) |
|---|---|---|
| Udløst af | F1-tasten | F4-tasten eller knappen Mulige indtastninger |
| Formål | Forklarer betydningen af feltet | Angiver de værdier, som feltet accepterer |
| Standardkilde | Dokumentation af dataelementer i ABAP-ordbogen | Faste værdier, tjek tabellen eller søg i hjælp |
| Datatransport | Ingen, feltet vises kun | Den valgte værdi skrives tilbage til skærmfeltet |
| Typisk funktionsmodul | HELP_OBJECT_SHOW_FOR_FIELD | F4IF_INT_TABLE_VALUE_REQUEST |
Lad os nu se nærmere på POH og POV
Proces ved hjælp-anmodning (POH): F1 Hjælp
- Hver gang der trykkes på F1, udføres POH-hændelsen for det angivne dataelement.
- Hvis PROCESS ON HELP-REQUEST-hændelsen ikke findes i proceslogikken på et skærmbillede, tages dokumentationen af feltet i ABAP-ordbogen som grundlag og vises. Selv hvis den ikke afsluttes, vises der ingen hjælp.
- For at vise felthjælpsdokumentation skal du kode følgende skærmflowlogik i POH-hændelsen:
PROCESS ON HELP-REQUEST FIELD <f> [MODULE <mod>] WITH <num>
- Hvis der er skærmspecifik dataelementdokumentation for feltet , kan du vise den ved at angive dens nummer .
- Nummeret kan være en bogstavelig eller en variabel. Variablen skal deklareres og udfyldes i det tilsvarende ABAP-program.
- Bemærk, FIELD-sætningen overfører ikke indholdet af skærmfeltet til ABAP-programmet i begivenheden PROCESS ON HELP-REQUEST. Det viser blot hjælpedokumentation. Det er det.
Modulet er defineret i ABAP-programmet som et normalt PAI-modul. Modulets behandlingslogik skal sikre, at der vises tilstrækkelig hjælp til det pågældende felt. I stedet for at kalde et ekstra skærmbillede med tekstfelter, bør du bruge et af følgende funktionsmoduler til at vise et passende SAPscript dokument
HELP_OBJECT_SHOW_FOR_FIELD
- Dette funktionsmodul viser dataelementdokumentationen for komponenter i enhver struktur eller databasetabel fra ABAP-ordbogen.
- Du videregiver navnet på komponenten og strukturen eller tabellen til importparametrene FIELD og TABLE.
HELP_OBJECT_SHOW
- Brug dette funktionsmodul til at vise evt SAPscript dokument.
- Du skal videregive dokumentklassen (f.eks. TX for generelle tekster, DE for dataelementdokumentation) og navnet på dokumentet til importparametrene DOKCLASS og DOKNAME.
- Af tekniske årsager skal du også overføre en tom intern tabel med linjetypen T.LINE til funktionsmodulets tabeller-parameter.
F1 forklarer feltet. Den næste hændelse viser, hvad der kan indtastes i det.
Process on Value (POV): F4
- Når brugeren vælger funktionen Mulige indtastninger (F4), viser systemet de mulige inputværdier for et felt (værdier, kontroltabel, matchkode), forudsat at de er gemt af udvikleren.
- Hændelsen PROCESS ON VALUE-REQUEST behandles altid, hvis brugeren har kaldt "Mulige indtastninger".
- For at definere mulige værdier for et felt på skærmen skal du definere følgende i POV-hændelse af skærmflowlogik:
PROCESS ON VALUE-REQUEST FIELD field name MODULE module name
- For Mulige værdier, inden for det ovenfor definerede modul, skal du bruge det generelle funktionsmodul HELP_VALUES_GET_WITH_TABLE for at få mulige værdier fra ABAP Dictionary.
Der er nogle andre funktioner, der også kan bruges til inputhjælp:
F4IF_FIELD_VALUE_REQUEST
- Kalder indtastningshjælpen til ABAP-ordbogen dynamisk.
- Du kan videregive komponentnavnene for en struktur eller databasetabel i ABAP Dictionary til funktionsmodulet i importparametrene TABNAME og FIELDNAME.
- Funktionsmodulet starter ABAP ordbog input hjælp til denne komponent. Alle de relevante skærmfelter læses.
- Hvis du angiver importparametrene DYNPPROG, DYNPNR og DYNPROFIELD, returneres brugerens valg til det tilsvarende felt på skærmen.
- Hvis du angiver tabelparameteren RETURN_TAB, returneres markeringen til tabellen i stedet.
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
- Dette funktionsmodul viser en værdiliste, som du har oprettet i en ABAP program.
- Værdilisten sendes til funktionsmodulet som tabelparameteren VALUE_TAB.
- Hvis du angiver importparametrene DYNPPROG, DYNPNR og DYNPROFIELD, returneres brugerens valg til det tilsvarende felt på skærmen.
- Hvis du angiver tabelparameteren RETURN_TAB, returneres markeringen til tabellen i stedet.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST' EXPORTING RETFIELD = 'CONNID' DYNPPROG = PROGNAME DYNPNR = DYNNUM DYNPROFIELD = 'CONNECTION' VALUE_ORG = 'S' TABLES VALUE_TAB = VALUES_TAB.
Det er alt for POH og POV. Efterlad dine kommentarer i tilfælde af tvivl.
Sådan opbygger du en F4-hjælp fra en intern tabel
En værdiliste, der ikke findes i ABAP-ordbogen, bygges inde i programmet og sendes til F4IF_INT_TABLE_VALUE_REQUEST. Trinene nedenfor genererer en fungerende F4-hjælp til et skærmfelt.
- Deklarer værditabellen: Byg en intern tabel, hvis første kolonne indeholder den værdi, der skrives tilbage til skærmen. Udfyld den i et PBO-modul eller i selve værdianmodningsmodulet.
- Registrer feltet i flowlogikken: Tilføj PROCESS ON VALUE-REQUEST til skærmen, og forbind feltet med FIELD … MODULE …, så modulet kører, når der trykkes på F4.
- Kald funktionsmodulet: Send RETFIELD med kolonnenavnet, DYNPROFIELD med skærmfeltnavnet, og VALUE_ORG = 'S', fordi listen sendes som en struktureret tabel.
- Returner værdien: DYNPPROG og DYNPNR identificerer programmet og skærmbilledet, så den valgte række skrives direkte ind i skærmfeltet uden yderligere kode.
- Test det: Aktiver skærmen, tryk F4 på feltet, og kontroller at listen vises, og at det markerede element når feltet.
* 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.
💡 Tip: Læs værdien af et andet skærmfelt med funktionsmodulet DYNP_VALUES_READ, før listen udfyldes. Sådan opbygges en afhængig F4-hjælp, såsom forbindelser til det allerede indtastede flyselskab.

