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.

  • POH-formål: PROCESS ON HELP-QUEST reagerer på F1 og viser feltdokumentationen, der er gemt i ABAP-ordbogen.
  • 🔎 POV Formål: PROCESS ON VALUE-REQUEST reagerer på F4 og viser de mulige poster defineret af værdier, en kontroltabel eller en søgehjælp.
  • 🧾 Reserveregel: Når POH-hændelsen mangler, vender systemet tilbage til dataelementdokumentationen og viser ingenting, når den også mangler.
  • 🚫 Transportgrænse: FIELD-sætningen i POH transporterer ikke skærmfeltet til programmet, fordi den kun viser hjælp.
  • 📚 Hjælpemoduler: HELP_OBJECT_SHOW_FOR_FIELD viser dokumentation af dataelementer, og HELP_OBJECT_SHOW viser enhver SAPscript dokument.
  • ???? Værdimoduler: F4IF_FIELD_VALUE_REQUEST starter ordbogsindtastningshjælpen, og F4IF_INT_TABLE_VALUE_REQUEST viser en liste, der er bygget ind i programmet.
  • ↩️ Retursti: DYNPPROG, DYNPNR og DYNPROFIELD returnerer den valgte værdi til skærmfeltet, mens RETURN_TAB returnerer den i en tabel.

SAP Proces baseret på værdi og proces baseret på anmodning om hjælp

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.

  1. 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.
  2. 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.
  3. Kald funktionsmodulet: Send RETFIELD med kolonnenavnet, DYNPROFIELD med skærmfeltnavnet, og VALUE_ORG = 'S', fordi listen sendes som en struktureret tabel.
  4. 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.
  5. 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.

Ofte Stillede Spørgsmål

Ingen af ​​delene. F1 og F4 afbryder skærmen og kører deres egen hændelse, hvorefter de vender tilbage til den samme skærm. Normal PAI-behandling starter kun, når brugeren udløser en normal funktionskode.

En søgehjælp, der er knyttet til dataelementet eller kontroltabellen, producerer allerede F4-listen. POV-kodning er kun nødvendig, når værdierne beregnes under kørsel eller afhænger af et andet felt på skærmen.

Send DYNPROFIELD med navnet på kolonnen og brug GET CURSOR LINE for at finde rækken. Funktionsmodulet skriver derefter værdien ind i den korrekte række i kontrolelementet på den næste PBO.

Ja. AI-assistenter i ABAP-udviklingsværktøjer skriver POV-flowlogikken, den SELECT, der udfylder værditabellen, og kaldet af F4IF_INT_TABLE_VALUE_REQUEST med de korrekte RETFIELD- og DYNPROFIELD-parametre.

Nej. F1 læser stadig dokumentationen, der er gemt i ABAP-ordbogen. AI-assistenter som f.eks. SAP Joule besvarer spørgsmål i et letforståeligt sprog ved siden af ​​skærmen, hvilket supplerer feltdokumentationen snarere end at erstatte den.

Opsummer dette indlæg med: