SAP Prosess på verdi & prosess på hjelpe-forespørsel
⚡ Smart oppsummering
Prosess ved verdiforespørsel og Prosess ved hjelpforespørsel er skjermhendelsene bak F4 og F1 i SAP ABAP. Denne siden forklarer både hendelser, FIELD-setningene som utløser dem, og funksjonsmodulene som viser dokumentasjon eller mulige oppføringer.

Hva er POH og POV?
Først, for å begynne med hvis du ikke vet noe om Screen Flow-logikk og bruken av den i SAP, anbefaler vi at du sjekker veiledningen vår om Dialogprogram.
POH og POV er de to skjermhendelsene som svarer på en hjelpeforespørsel fra brukeren. POH reagerer på F1-tasten og forklarer hva et felt betyr, mens POV reagerer på F4-tasten og viser verdiene som feltet godtar. Begge er deklarert i flytlogikken på skjermen, ved siden av PBO og PAI.
| Kriterier | POH (Prosess på forespørsel om hjelp) | POV (Prosess på verdiforespørsel) |
|---|---|---|
| Utløst av | F1-tasten | F4-tasten eller knappen Mulige oppføringer |
| Formål | Forklarer betydningen av feltet | Tilbyr verdiene feltet godtar |
| Standardkilde | Dokumentasjon av dataelementer i ABAP-ordboken | Faste verdier, sjekk tabell eller søk i hjelp |
| Datatransport | Ingen, feltet vises bare | Den valgte verdien skrives tilbake til skjermfeltet |
| Typisk funksjonsmodul | HELP_OBJECT_SHOW_FOR_FIELD | F4IF_INT_TABLE_VALUE_REQUEST |
La oss nå se nærmere på POH og POV
Prosess ved hjelp-forespørsel (POH): F1 Hjelp
- Hver gang F1 trykkes, utføres POH-hendelsen for det angitte dataelementet.
- Hvis hendelsen PROCESS ON HELP-REQUEST ikke finnes i prosesslogikken til et skjermbilde, tas dokumentasjonen for feltet i ABAP-ordboken som grunnlag og vises. Selv om den ikke avsluttes, vises ingen hjelp.
- For å vise felthjelpedokumentasjon må du kode følgende skjermflytlogikk i POH-hendelsen:
PROCESS ON HELP-REQUEST FIELD <f> [MODULE <mod>] WITH <num>
- Hvis det er skjermspesifikk dataelementdokumentasjon for feltet , kan du vise den ved å angi nummeret .
- Antallet kan være en bokstavelig eller en variabel. Variabelen må deklareres og fylles ut i det tilsvarende ABAP-programmet.
- Merk at FIELD-setningen ikke overfører innholdet i skjermfeltet til ABAP-programmet i PROCESS ON HELP-REQUEST-hendelsen. Det viser bare hjelpedokumentasjon. Det er det.
Modulen er definert i ABAP-programmet som en vanlig PAI-modul. Modulens behandlingslogikk må sørge for at det vises tilstrekkelig hjelp for det aktuelle feltet. I stedet for å kalle opp et ekstra skjermbilde med tekstfelt, bør du bruke en av følgende funksjonsmoduler for å vise en passende SAPmanusdokument
HELP_OBJECT_SHOW_FOR_FIELD
- Denne funksjonsmodulen viser dataelementdokumentasjonen for komponenter i enhver struktur eller databasetabell fra ABAP-ordboken.
- Du sender navnet på komponenten og strukturen eller tabellen til importparameterne FIELD og TABLE.
HELP_OBJECT_SHOW
- Bruk denne funksjonsmodulen til å vise evt SAPmanusdokument.
- Du må sende dokumentklassen (for eksempel TX for generelle tekster, DE for dataelementdokumentasjon) og navnet på dokumentet til importparameterne DOKCLASS og DOKNAME.
- Av tekniske årsaker må du også sende en tom intern tabell med linjetypen T.LINE til tabellparameteren til funksjonsmodulen.
F1 forklarer feltet. Den neste hendelsen viser hva som kan legges inn i det.
Prosess på verdi (POV): F4
- Når brukeren velger funksjonen Mulige oppføringer (F4), viser systemet de mulige inngangsverdiene for et felt (verdier, sjekktabell, matchkode), forutsatt at de er lagret av utvikleren.
- Hendelsen PROSESS PÅ VERDI-REQUEST behandles alltid hvis brukeren har kalt "Mulige oppføringer".
- For å definere mulige verdier for et felt på skjermen, må du definere følgende i POV-hendelse for skjermflytlogikk:
PROCESS ON VALUE-REQUEST FIELD field name MODULE module name
- For mulige verdier, innenfor modulen definert ovenfor, bør du bruke den generelle funksjonsmodulen HELP_VALUES_GET_WITH_TABLE for å få mulige verdier fra ABAP Dictionary.
Det er noen andre funksjoner som også kan brukes til inndatahjelp:
F4IF_FIELD_VALUE_REQUEST
- Kaller inn inndatahjelpen til ABAP Dictionary dynamisk.
- Du kan sende komponentnavnene til en struktur eller databasetabell i ABAP-ordboken til funksjonsmodulen i importparameterne TABNAME og FIELDNAME.
- Funksjonsmodulen starter ABAP-ordbok inndatahjelp for denne komponenten. Alle de relevante skjermfeltene leses.
- Hvis du spesifiserer importparametrene DYNPPROG, DYNPNR og DYNPROFIELD, returneres brukerens valg til det tilsvarende feltet på skjermen.
- Hvis du spesifiserer tabellparameteren RETURN_TAB, returneres utvalget 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
- Denne funksjonsmodulen viser en verdiliste som du opprettet i en ABAP-program.
- Verdilisten sendes til funksjonsmodulen som tabellparameteren VALUE_TAB.
- Hvis du spesifiserer importparametrene DYNPPROG, DYNPNR og DYNPROFIELD, returneres brukerens valg til det tilsvarende feltet på skjermen.
- Hvis du spesifiserer tabellparameteren RETURN_TAB, returneres utvalget 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. Legg igjen kommentarer i tilfelle du er i tvil.
Slik bygger du en F4-hjelp fra en intern tabell
En verdiliste som ikke finnes i ABAP-ordboken bygges inne i programmet og sendes til F4IF_INT_TABLE_VALUE_REQUEST. Trinnene nedenfor produserer en fungerende F4-hjelp for et skjermfelt.
- Deklarer verditabellen: Bygg en intern tabell der den første kolonnen inneholder verdien som skrives tilbake til skjermen. Fyll den ut i en PBO-modul eller i selve verdiforespørselsmodulen.
- Registrer feltet i flytlogikken: Legg til PROCESS ON VALUE-REQUEST på skjermen og koble feltet med FIELD … MODULE … slik at modulen kjører når F4 trykkes.
- Kall funksjonsmodulen: Send RETFIELD med kolonnenavnet, DYNPROFIELD med skjermfeltnavnet, og VALUE_ORG = 'S' fordi listen sendes som en strukturert tabell.
- Returner verdien: DYNPPROG og DYNPNR identifiserer programmet og skjermbildet, slik at den valgte raden skrives direkte inn i skjermfeltet uten ytterligere kode.
- Test det: Aktiver skjermen, trykk F4 på feltet, og sjekk at listen vises og at utvalget når frem til 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.
💡 Tips: Les verdien av et annet skjermfelt med funksjonsmodulen DYNP_VALUES_READ før du fyller ut listen. Slik bygges en avhengig F4-hjelp, for eksempel forbindelser for flyselskapet som allerede er angitt.
