Ansicht
Dokumentation
DYNPFIELD_VALUE_SELECT - FIELD VALUE SELECT
Fill RESBD Structure from EBP Component Structure RFUMSV00 - Advance Return for Tax on Sales/PurchasesDiese Dokumentation steht unter dem Copyright der SAP AG.
- FIELD VALUES, FIELD SELECT
Varianten:
1. FIELD f VALUES ($[$[NOT$] val1$], $[$[NOT$] val2$], ...
$[$[NOT$] BETWEEN vali AND valj$], ...).
2. FIELD f SELECT *
FROM dbtab
WHERE col1 = f1 AND col2 = f2 ...
$[INTO wa$]
WHENEVER $[NOT$] FOUND
SEND ${ERRORMESSAGE$|WARNING$} $[num $[WITH p1 ... p4$]$].
Wirkung
Diese Varianten der Anweisung FIELD sind im Ereignisblock zu PAI der Dynpro-Ablauflogik möglich und vergleichen den Inhalt eines Dynpro-Feldes f entweder mit Einträgen einer Werteliste oder mit den Ergebnissen eines Datenbankzugriffs.
Diese Formen der Eingabeüberprüfung in der Dynpro-Ablauflogik werden nach den automatischen Eingabeüberprüfungen und vor den selbst programmierten Eingabeüberprüfungen im ABAP-Programm durchgeführt. Die angegebene Werteliste bzw. die Ergebnismenge des Datenbankzugriffs übersteuern die automatischen Eingabehilfen des ABAP Dictionary und werden von den Ereignissen POH und POV übersteuert. Die Zusätze VALUES und SELECT beeinflussen nicht die Wirkung der Anweisung FIELDS auf den Datentransport vom Dynpro an das ABAP-Programm.
Hinweis
Diese Varianten werden nur noch aus Kompatibilitätsgründen unterstützt und sollten durch Prüfungen im ABAP-Programm ersetzt werden.
Variante 1
FIELD f VALUES ($[$[NOT$] val1$], $[$[NOT$] val2$], ...
$[$[NOT$] BETWEEN vali AND valj$], ...).
Wirkung
Eine Werteliste wird durch eingeklammerte und durch Kommata getrennte Einträge hinter dem Zusatz VALUES angegeben.
Der Inhalt des Dynpro-Feldes f kann mit einzelnen Werten val1,val2 ... und mit Werteintervallen $[vali,valj$] verglichen werden. Das Ergebnis jedes einzelnen Vergleichs kann durch den Operator NOT negiert werden. Die Vergleichsfelder val müssen in Hochkommata eingeschlossen sein und in Großschreibung angegeben werden. Der Inhalt muss aus dem Wertebereich der Datentypen CHAR oder NUMC des ABAP Dictionary sein.
Falls ein Vergleich nicht wahr ist, wird eine Fehlermeldung in der Statusleiste des aktuellen GUI-Fensters angezeigt und das zugehörige Eingabefeld wieder eingabebereit gemacht.
Beispiel
Überprüfung des Eingabefeldes für eine Fluggesellschaft.
PROCESS AFTER INPUT.
FIELD carrier
VALUES ('AA', NOT 'BA', BETWEEN 'QF' AND 'UA').
Variante 2
FIELD f SELECT *
FROM dbtab
WHERE col1 = f1 AND col2 = f2 ...
$[INTO wa$]
WHENEVER $[NOT$] FOUND
SEND ${ERRORMESSAGE$|WARNING$} $[num $[WITH p1 ... p4$]$].
Wirkung
Der Zusatz SELECT sucht bei Ausführung der Anweisung FIELD eine Zeile der Datenbanktabelle dbtab, deren Primärschlüsselfelder col1 col2 ... den Inhalten der Dynpro-Felder f1 f2 ... entsprechen. Die Datenbanktabelle dbtab muss im ABAP Dictionary definiert sein. In der WHERE-Bedingung müssen alle Primärschlüsselfelder der Datenbanktabelle in mit AND verknüpften Vergleichen mit Gleichheitszeichen (=) angegeben werden.
Je nachdem, ob der Zusatz NOT angegeben ist oder nicht, wird, falls entweder kein oder ein Eintrag in der Datenbanktabelle gefunden wurde, eine Fehlermeldung oder eine Warnung gesendet, wobei das Eingabefeld für das Dynpro-Feld f wieder eingabebereit gemacht wird. Die Nachrichtenklasse der zu sendenden Nachricht muss zweistellig sein und wird den ersten beiden Stellen der Angabe hinter dem Zusatz MESSAGE-ID der programmeinleitenden Anweisung des zugehörigen ABAP-Programms entnommen. Falls dort keine Nachrichtenklasse angegeben ist, wird eine Standardnachricht gesendet. Die Nachrichtennummer kann als Zahlenliteral num angegeben werden. Falls die Nachricht Platzhalter enthält, können diese wie bei der ABAP-Anweisung MESSAGE mit dem Zusatz WITH mit maximal vier Werten p1 bis p4 versorgt werden, die entweder als Textliterale oder Dynpro-Felder angegeben werden können.
Falls eine Zeile gefunden wird, kann ihr Inhalt einem Tabellenarbeitsbereich wa zugewiesen werden, dessen Struktur mit dem Zeilentyp von dbtab übereinstimmen muss. Ein solcher Tabellenarbeitsbereich wird im Dynpro durch die Übernahme von Dynpro-Feldern aus dem ABAP Dictionary deklariert.
Hinweise
- Ohne Verwendung des Zusatzes INTO ist der Zusatz SELECT in etwa mit einer Subquery in vergleichbar. Wird der Zusatz INTO verwendet, kann obige SELECT-Syntax auch als eigenständige Anweisung, d.h. ohne die Anweisung FIELD, in der Dynpro-Ablauflogik verwendet werden. Die Verwendung einer Dynpro-Anweisung SELECT ist aber ebenfalls obsolet und durch die entsprechende -Anweisung im ABAP-Programm zu ersetzen.
- Bei Verwendung des Zusatzes SELECT zur Anweisung FIELD der Dynpro-Ablauflogik ist falls eingeschaltet die Tabellenpufferung wirksam.
- Für die automatischen Eingabeüberprüfungen von Dynpros über Prüftabellen werden intern entsprechende FIELD-Anweisungen mit dem Zusatz SELECT generiert. Bei den Zugriffen auf Prüftabellen ist daher falls für diese eingeschaltet ebenfalls die Tabellenpufferung wirksam.
Beispiel
Überprüfung, ob es für die Dynpro-Felder carrier und connect eine Zeile mit dem gleichen Primärschlüssel in der Datenbanktabelle spfli gibt. Das zugehörige ABAP-Programm muss in der programmeinleitenden Anweisung einen geeigneten Zusatz MESSAGE-ID enthalten.
PROCESS AFTER INPUT.
FIELD connect
SELECT *
FROM spfli
WHERE carrid = carrier AND connid = connect
WHENEVER NOT FOUND SEND ERRORMESSAGE 107
WITH carrier connect.
TXBHW - Original Tax Base Amount in Local Currency BAL Application Log Documentation
Diese Dokumentation steht unter dem Copyright der SAP AG.
Length: 9113 Date: 20240523 Time: 173414 sap01-206 ( 135 ms )