SAP Proces dotyczący wartości i procesu na prośbę o pomoc
⚡ Inteligentne podsumowanie
Proces w żądaniu wartości i Proces w żądaniu pomocy to zdarzenia ekranowe za F4 i F1 w SAP ABAP. Ta strona wyjaśnia oba zdarzenia, instrukcje FIELD, które je wyzwalają, oraz moduły funkcji wyświetlające dokumentację lub możliwe wpisy.

Czym są POH i POV?
Po pierwsze, jeśli nie wiesz nic o logice Screen Flow i jej zastosowaniach w SAP, zalecamy zapoznanie się z naszym poradnikiem Program Dialogowy.
POH i POV to dwa zdarzenia ekranowe, które odpowiadają na prośbę o pomoc od użytkownika. POH reaguje na klawisz F1 i wyjaśnia znaczenie pola, natomiast POV reaguje na klawisz F4 i wyświetla listę wartości akceptowanych przez pole. Oba są deklarowane w logice przepływu ekranu, obok PBO i PAI.
| kryteria | POH (Proces na żądanie pomocy) | POV (Proces na żądanie wartości) |
|---|---|---|
| Wyzwalane przez | Klawisz F1 | Klawisz F4 lub przycisk Możliwe wpisy |
| Cel | Wyjaśnia znaczenie pola | Oferuje wartości akceptowane przez pole |
| Domyślne źródło | Dokumentacja elementów danych w słowniku ABAP | Stałe wartości, sprawdź tabelę lub wyszukaj pomoc |
| Transport danych | Brak, pole jest tylko wyświetlane | Wybrana wartość jest zapisywana z powrotem w polu ekranowym |
| Typowy moduł funkcyjny | HELP_OBJECT_SHOW_FOR_FIELD | F4IF_INT_TABLE_VALUE_REQUEST |
Przyjrzyjmy się teraz szczegółowo POH i POV
Przetwarzanie prośby o pomoc (POH): Pomoc F1
- Za każdym razem, gdy naciśnięty zostanie klawisz F1, wykonywane jest zdarzenie POH dla określonego elementu danych.
- Jeśli zdarzenie PROCESS ON HELP-REQUEST nie istnieje w logice procesu danego ekranu, dokumentacja pola w słowniku ABAP jest brana za podstawę i wyświetlana. Nawet jeśli to nie nastąpi, pomoc nie zostanie wyświetlona.
- Aby wyświetlić dokumentację pomocy terenowej, należy zakodować następującą logikę przepływu ekranu w zdarzeniu POH:
PROCESS ON HELP-REQUEST FIELD <f> [MODULE <mod>] WITH <num>
- Jeśli dla tego pola istnieje dokumentacja elementów danych specyficzna dla ekranu , możesz go wyświetlić, podając jego numer .
- Numer może być literałem lub zmienną. Zmienną należy zadeklarować i wypełnić w odpowiednim programie ABAP.
- Należy zauważyć, że instrukcja FIELD nie przenosi zawartości pola ekranowego do programu ABAP w zdarzeniu PROCESS ON HELP-REQUEST. Pokazuje tylko dokumentację pomocy. Otóż to.
Moduł jest zdefiniowany w programie ABAP jak normalny moduł PAI. Logika przetwarzania modułu musi zapewniać wyświetlanie odpowiedniej pomocy dla danego pola. Zamiast wywoływać dodatkowy ekran z polami tekstowymi, należy użyć jednego z poniższych modułów funkcyjnych, aby wyświetlić odpowiednią pomoc. SAPdokument skryptowy
HELP_OBJECT_SHOW_FOR_FIELD
- Ten moduł funkcyjny wyświetla dokumentację elementów danych dla komponentów dowolnej struktury lub tabeli bazy danych ze Słownika ABAP.
- Do parametrów importu FIELD i TABLE przekazujesz nazwę komponentu i struktury lub tabeli.
HELP_OBJECT_SHOW
- Użyj tego modułu funkcyjnego, aby wyświetlić dowolne SAPdokument skryptowy.
- Należy przekazać klasę dokumentu (np. TX dla tekstów ogólnych, DE dla dokumentacji elementów danych) i nazwę dokumentu do parametrów importu DOKCLASS i DOKNAME.
- Ze względów technicznych należy również przekazać pustą tabelę wewnętrzną z typem linii TLINE do parametru tables modułu funkcyjnego.
F1 wyjaśnia pole. Następne zdarzenie wyświetla listę tego, co można w nim wpisać.
Proces na wartości (POV): F4
- Po wybraniu przez użytkownika funkcji Możliwe wpisy (F4) system wyświetla możliwe wartości wejściowe dla pola (wartości, tabela kontrolna, kod dopasowania), o ile zostały zapisane przez programistę.
- Zdarzenie PROCES NA ŻĄDANIE WARTOŚCI jest zawsze przetwarzane, jeśli użytkownik wywołał „Możliwe wpisy”.
- Aby zdefiniować Możliwe wartości dla pola na ekranie, należy zdefiniować następujące elementy w zdarzeniu POV logiki przepływu ekranu:
PROCESS ON VALUE-REQUEST FIELD field name MODULE module name
- Dla opcji Możliwe wartości w ramach modułu zdefiniowanego powyżej należy skorzystać z modułu funkcji ogólnych HELP_VALUES_GET_WITH_TABLE aby uzyskać możliwe wartości ze słownika ABAP.
Istnieje kilka innych funkcji, które można również wykorzystać jako pomoc przy wprowadzaniu danych:
F4IF_FIELD_VALUE_REQUEST
- Dynamicznie wywołuje pomoc dotyczącą wprowadzania danych słownika ABAP.
- Nazwy komponentów struktury lub tabeli bazy danych Słownika ABAP można przekazać do modułu funkcyjnego w parametrach importu TABNAME i FIELDNAME.
- Moduł funkcyjny uruchamia Słownik ABAP pomoc wejściowa dla tego komponentu. Odczytywane są wszystkie odpowiednie pola ekranowe.
- Jeśli określisz parametry importu DYNPPROG, DYNPNR i DYNPROFIELD, wybór użytkownika zostanie zwrócony do odpowiedniego pola na ekranie.
- Jeśli określisz parametr tabeli RETURN_TAB, wybór zostanie zamiast tego zwrócony do tabeli.
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
- Ten moduł funkcyjny wyświetla listę wartości utworzoną w pliku programu ABAP.
- Lista wartości przekazywana jest do modułu funkcyjnego jako parametr tabeli VALUE_TAB.
- Jeśli określisz parametry importu DYNPPROG, DYNPNR i DYNPROFIELD, wybór użytkownika zostanie zwrócony do odpowiedniego pola na ekranie.
- Jeśli określisz parametr tabeli RETURN_TAB, wybór zostanie zamiast tego zwrócony do tabeli.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST' EXPORTING RETFIELD = 'CONNID' DYNPPROG = PROGNAME DYNPNR = DYNNUM DYNPROFIELD = 'CONNECTION' VALUE_ORG = 'S' TABLES VALUE_TAB = VALUES_TAB.
To wszystko, jeśli chodzi o POH i POV. W razie wątpliwości zostaw swoje uwagi.
Jak zbudować pomoc F4 z tabeli wewnętrznej
Lista wartości, która nie istnieje w słowniku ABAP, jest tworzona w programie i przekazywana do F4IF_INT_TABLE_VALUE_REQUEST. Poniższe kroki generują działającą pomoc F4 dla pola ekranowego.
- Deklaracja tabeli wartości: Zbuduj tabelę wewnętrzną, której pierwsza kolumna zawiera wartość zapisywaną na ekranie. Wypełnij ją w module PBO lub w samym module żądania wartości.
- Zarejestruj pole w logice przepływu: Dodaj PROCESS ON VALUE-REQUEST do ekranu i połącz pole z FIELD … MODULE …, aby moduł uruchamiał się po naciśnięciu klawisza F4.
- Wywołanie modułu funkcji: Przekaż RETFIELD z nazwą kolumny, DYNPROFIELD z nazwą pola ekranu i VALUE_ORG = 'S', ponieważ lista jest przekazywana jako tabela strukturalna.
- Zwróć wartość: Polecenia DYNPPROG i DYNPNR identyfikują program i ekran, dzięki czemu wybrany wiersz jest zapisywany bezpośrednio w polu ekranu bez konieczności wprowadzania dalszego kodu.
- Sprawdź to: Aktywuj ekran, naciśnij klawisz F4 na polu i sprawdź, czy lista się wyświetli i czy zaznaczenie dotrze do pola.
* 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.
💡 Wskazówka: Przed wypełnieniem listy należy odczytać wartość innego pola ekranu za pomocą modułu funkcyjnego DYNP_VALUES_READ. W ten sposób budowana jest zależna pomoc F4, np. połączenia dla linii lotniczych już wprowadzonych.
