Ansicht
Dokumentation

DYNPFIELD_VALUE_SELECT - FIELD VALUE SELECT

DYNPFIELD_VALUE_SELECT - FIELD VALUE SELECT

Fill RESBD Structure from EBP Component Structure   RFUMSV00 - Advance Return for Tax on Sales/Purchases  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

- 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 )