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.

  • POH-formål: PROSESS PÅ HJELPEFORESPØRSEL reagerer på F1 og viser feltdokumentasjonen som er lagret i ABAP-ordboken.
  • 🔎 POV Formål: PROSESS PÅ VERDIFORSØKELSE reagerer på F4 og viser mulige oppføringer definert av verdier, en kontrolltabell eller søkehjelp.
  • 🧾 Reserveregel: Når POH-hendelsen mangler, går systemet tilbake til dokumentasjonen for dataelementet, og viser ingenting når den heller mangler.
  • 🚫 Transportgrense: FIELD-setningen i POH transporterer ikke skjermfeltet til programmet, fordi den bare viser hjelp.
  • 📚 Hjelpemoduler: HELP_OBJECT_SHOW_FOR_FIELD viser dokumentasjon av dataelementer, og HELP_OBJECT_SHOW viser eventuelle SAPmanusdokument.
  • ???? Verdimoduler: F4IF_FIELD_VALUE_REQUEST starter hjelpen med ordbokens inndata, og F4IF_INT_TABLE_VALUE_REQUEST viser en liste som er innebygd i programmet.
  • ↩️ Returvei: DYNPPROG, DYNPNR og DYNPROFIELD returnerer den valgte verdien til skjermfeltet, mens RETURN_TAB returnerer den til en tabell.

SAP Prosess basert på verdi og prosess basert på forespørsel om hjelp

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.

  1. 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.
  2. 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.
  3. Kall funksjonsmodulen: Send RETFIELD med kolonnenavnet, DYNPROFIELD med skjermfeltnavnet, og VALUE_ORG = 'S' fordi listen sendes som en strukturert tabell.
  4. Returner verdien: DYNPPROG og DYNPNR identifiserer programmet og skjermbildet, slik at den valgte raden skrives direkte inn i skjermfeltet uten ytterligere kode.
  5. 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.

Spørsmål og svar

Ingen av delene. F1 og F4 avbryter skjermen og kjører sin egen hendelse, før de går tilbake til samme skjerm. Vanlig PAI-behandling starter bare når brukeren utløser en vanlig funksjonskode.

En søkehjelp knyttet til dataelementet eller kontrolltabellen produserer allerede F4-listen. POV-koding er bare nødvendig når verdiene beregnes under kjøring eller er avhengige av et annet felt på skjermen.

Send DYNPROFIELD med navnet på kolonnen og bruk GET CURSOR LINE for å finne raden. Funksjonsmodulen skriver deretter verdien inn i riktig rad i kontrollen på neste PBO.

Ja. AI-assistenter i ABAP-utviklingsverktøy skriver POV-flytlogikken, SELECT-en som fyller verditabellen og kallet av F4IF_INT_TABLE_VALUE_REQUEST med de riktige RETFIELD- og DYNPROFIELD-parameterne.

Nei. F1 leser fortsatt dokumentasjonen som er lagret i ABAP-ordboken. AI-assistenter som SAP Joule svarer på spørsmål i et enkelt språk ved siden av skjermen, noe som utfyller feltdokumentasjonen snarere enn å erstatte den.

Oppsummer dette innlegget med: