SAP Proces op waarde & proces op hulpverzoek

⚡ Slimme samenvatting

Process On Value-Request en Process On Help-Request zijn de schermgebeurtenissen achter F4 en F1. SAP ABAP. Deze pagina legt zowel gebeurtenissen uit, de FIELD-instructies die ze activeren, als de functiemodules die documentatie of mogelijke invoerwaarden weergeven.

  • Doel van POH: PROCESS ON HELP-REQUEST reageert op F1 en toont de velddocumentatie die is opgeslagen in het ABAP-woordenboek.
  • 🔎 Doel van het standpunt: PROCESS ON VALUE-REQUEST reageert op F4 en toont de mogelijke invoerwaarden, een controletabel of een zoekhulp.
  • 🧾 Terugvalregel: Als de POH-gebeurtenis ontbreekt, gebruikt het systeem de documentatie van het gegevenselement als referentie en wordt er niets weergegeven als die ook ontbreekt.
  • ???? Transportlimiet: De FIELD-instructie in POH stuurt het schermveld niet door naar het programma, omdat het alleen helpinformatie weergeeft.
  • 📚 Helpmodules: HELP_OBJECT_SHOW_FOR_FIELD toont de documentatie van het gegevenselement, en HELP_OBJECT_SHOW toont alle SAPscriptdocument.
  • 📋 Waardemodules: F4IF_FIELD_VALUE_REQUEST start de invoerhulp voor het woordenboek, en F4IF_INT_TABLE_VALUE_REQUEST toont een lijst die binnen het programma is samengesteld.
  • Retourpad: DYNPPROG, DYNPNR en DYNPROFIELD geven de gekozen waarde weer in het schermveld, terwijl RETURN_TAB deze in een tabel plaatst.

SAP Procedure voor waardebepaling en procedure voor hulpverzoeken

Wat zijn POH en POV?

Om te beginnen, als je niets weet over Screen Flow-logica en het gebruik ervan in SAPWe raden je aan onze handleiding te bekijken over Dialoogprogramma.

POH en POV zijn de twee schermgebeurtenissen die een hulpvraag van de gebruiker beantwoorden. POH reageert op de F1-toets en legt uit wat een veld betekent, terwijl POV reageert op de F4-toets en de waarden weergeeft die het veld accepteert. Beide zijn gedeclareerd in de stroomlogica van het scherm, naast PBO en PAI.

criteria POH (Process On Help-Request) POV (Proces op waardeverzoek)
Veroorzaakt door De F1-toets De F4-toets, of de knop 'Mogelijke invoer'.
Doel Legt de betekenis van het veld uit Geeft de waarden weer die het veld accepteert.
Standaardbron Documentatie van gegevenselementen in het ABAP-woordenboek Vaste waarden, controletabel of zoekhulp
Gegevenstransport Nee, het veld wordt alleen weergegeven. De geselecteerde waarde wordt teruggeschreven naar het schermveld.
Typische functiemodule HELP_OBJECT_SHOW_FOR_FIELD F4IF_INT_TABLE_VALUE_REQUEST

Laten we nu POH en POV in detail bekijken

Proces bij hulpverzoek (POH): F1 Help

  • Wanneer F1 wordt ingedrukt, wordt de POH-gebeurtenis voor het betreffende gegevenselement uitgevoerd.
  • Als de gebeurtenis PROCESS ON HELP-REQUEST niet bestaat in de proceslogica van een scherm, wordt de documentatie van het veld in het ABAP-woordenboek als basis gebruikt en weergegeven. Zelfs als die documentatie niet bestaat, wordt er geen helpinformatie weergegeven.
  • Om de helpdocumentatie voor velden weer te geven, moet u de volgende schermstroomlogica in de POH-gebeurtenis coderen:
PROCESS ON HELP-REQUEST
FIELD <f> [MODULE <mod>] WITH <num>
  • Als er schermspecifieke gegevenselementdocumentatie voor het veld bestaat , kunt u deze weergeven door het nummer ervan op te geven .
  • Het nummer kan een letterlijke of een variabele zijn. De variabele moet worden gedeclareerd en ingevuld in het bijbehorende ABAP-programma.
  • Let op: de FIELD-instructie draagt ​​de inhoud van het schermveld niet over aan het ABAP-programma in het PROCESS ON HELP-REQUEST-evenement. Het toont alleen helpdocumentatie. Dat is het.

De module De module wordt in het ABAP-programma gedefinieerd als een normale PAI-module. De verwerkingslogica van de module moet ervoor zorgen dat er voldoende helpinformatie wordt weergegeven voor het betreffende veld. In plaats van een extra scherm met tekstvelden op te roepen, kunt u een van de volgende functiemodules gebruiken om een ​​geschikte help weer te geven. SAPscriptdocument

HELP_OBJECT_SHOW_FOR_FIELD

  • Deze functiemodule geeft de data-elementdocumentatie weer voor componenten van elke structuur of databasetabel uit het ABAP-woordenboek.
  • U geeft de naam van het onderdeel en de structuur of tabel door aan de importparameters FIELD en TABLE.

HELP_OBJECT_SHOW

  • Gebruik deze functiemodule om eventuele gegevens weer te geven SAPscriptdocument.
  • U moet de documentklasse (bijvoorbeeld TX voor algemene teksten, DE voor data-elementdocumentatie) en de naam van het document doorgeven aan de importparameters DOKCLASS en DOKNAME.
  • Om technische redenen moet u ook een lege interne tabel met regeltype T doorgeven.LINE naar de tabelparameter van de functiemodule.

F1 legt het deelnemersveld uit. Bij het volgende onderdeel wordt vermeld wat er in dat veld mag worden ingeschreven.

Proces op waarde (POV): F4

  • Wanneer de gebruiker de functie Mogelijke invoer (F4) kiest, toont het systeem de mogelijke invoerwaarden voor een veld (waarden, controletabel, matchcode), op voorwaarde dat deze door de ontwikkelaar zijn opgeslagen.
  • De gebeurtenis PROCESS ON VALUE-REQUEST wordt altijd verwerkt als de gebruiker “Mogelijke invoer” heeft aangeroepen.
  • Om mogelijke waarden voor een veld op het scherm te definiëren, moet u het volgende definiëren in de POV-gebeurtenis van de schermstroomlogica:
PROCESS ON VALUE-REQUEST

FIELD field name MODULE module name
  • Voor Mogelijke waarden, binnen de hierboven gedefinieerde module, moet u de algemene functiemodule gebruiken HELP_VALUES_GET_WITH_TABLE om mogelijke waarden uit het ABAP-woordenboek te halen.

Er zijn nog enkele andere functies die ook kunnen worden gebruikt voor invoerhulp:

F4IF_FIELD_VALUE_REQUEST

  • Roept dynamisch de invoerhulp van het ABAP-woordenboek op.
  • In de importparameters TABNAME en FIELDNAME kunt u de componentnamen van een structuur- of databasetabel van het ABAP-woordenboek doorgeven aan het functieblok.
  • De functiemodule start de ABAP-woordenboek invoerhulp voor dit onderdeel. Alle relevante schermvelden worden gelezen.
  • Als u de importparameters DYNPPROG, DYNPNR en DYNPROFIELD opgeeft, wordt de selectie van de gebruiker teruggestuurd naar het overeenkomstige veld op het scherm.
  • Als u de tabelparameter RETURN_TAB opgeeft, wordt de selectie in plaats daarvan teruggestuurd naar de 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

  • Deze functiemodule geeft een invoerlijst weer die u in een ABAP-programma.
  • De waardenlijst wordt als tabelparameter VALUE_TAB aan het functieblok doorgegeven.
  • Als u de importparameters DYNPPROG, DYNPNR en DYNPROFIELD opgeeft, wordt de selectie van de gebruiker teruggestuurd naar het overeenkomstige veld op het scherm.
  • Als u de tabelparameter RETURN_TAB opgeeft, wordt de selectie in plaats daarvan teruggestuurd naar de 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.

Dat is alles voor POH en POV. Laat uw opmerkingen achter in geval van twijfel.

Hoe bouw je een F4-helpfunctie vanuit een interne tabel?

Een waardelijst die niet in het ABAP-woordenboek voorkomt, wordt binnen het programma samengesteld en doorgegeven aan F4IF_INT_TABLE_VALUE_REQUEST. De onderstaande stappen genereren een werkende F4-help voor een schermveld.

  1. Declareer de waardetabel: Maak een interne tabel waarvan de eerste kolom de waarde bevat die naar het scherm wordt teruggestuurd. Vul deze tabel in een PBO-module of in de module voor het opvragen van de waarde zelf.
  2. Registreer het veld in de stroomlogica: Voeg PROCESS ON VALUE-REQUEST toe aan het scherm en verbind het veld met FIELD … MODULE … zodat de module wordt uitgevoerd wanneer op F4 wordt gedrukt.
  3. Roep de functiemodule aan: Geef RETFIELD door met de kolomnaam, DYNPROFIELD met de schermveldnaam en VALUE_ORG = 'S' omdat de lijst als een gestructureerde tabel wordt doorgegeven.
  4. Retourneer de waarde: DYNPPROG en DYNPNR identificeren het programma en het scherm, waardoor de geselecteerde regel direct in het schermveld wordt geschreven zonder verdere code.
  5. Test het: Activeer het scherm, druk op F4 in het veld en controleer of de lijst verschijnt en of de selectie het veld bereikt.
* 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: Lees de waarde van een ander schermveld met de functiemodule DYNP_VALUES_READ voordat de lijst wordt gevuld. Zo wordt een afhankelijke F4-help, zoals verbindingen voor de reeds ingevoerde luchtvaartmaatschappij, opgebouwd.

Veelgestelde vragen

Geen van beide. F1 en F4 onderbreken het scherm en voeren hun eigen gebeurtenis uit, waarna ze terugkeren naar hetzelfde scherm. De reguliere PAI-verwerking start pas wanneer de gebruiker een normale functiecode activeert.

Een zoekhulp die aan het gegevenselement of de controletabel is gekoppeld, genereert al de F4-lijst. POV-codering is alleen nodig wanneer de waarden tijdens de uitvoering worden berekend of afhankelijk zijn van een ander veld op het scherm.

Geef DYNPROFIELD door met de naam van de kolom en gebruik GET CURSOR. LINE om de rij te vinden. De functiemodule schrijft de waarde vervolgens in de juiste rij van het besturingselement op de volgende PBO.

Ja. AI-assistenten in ABAP-ontwikkeltools schrijven de POV-flowlogica, de SELECT-query die de waardetabel vult en de aanroep van F4IF_INT_TABLE_VALUE_REQUEST met de juiste RETFIELD- en DYNPROFIELD-parameters.

Nee. F1 leest nog steeds de documentatie die is opgeslagen in het ABAP-woordenboek. AI-assistenten zoals SAP Joule beantwoordt vragen in begrijpelijke taal naast het scherm, wat een aanvulling is op de velddocumentatie in plaats van deze te vervangen.

Vat dit bericht samen met: