
Wenn am User Interface einer Business-Anwendung ein eingabebereites Feld gefüllt wird, liegen diese Zeichen zunächst in einem für die Web-Dynpro-ABAP-Anwendung externen Format vor. Erst mit Beginn des Verarbeitungsablaufes werden diese Zeichen in ein passendes internes Format übertragen und dabei gleichzeitig geprüft.
Für das InputField, welches die Zeichen entgegennimmt, muss bei Preisen und Mengen immer ein Währungs- bzw. ein Mengen-Referenzfeld existieren, welches den Datentypen für das interne Format bereitstellt. Wenn also in ein InputField die Zahl 50 eingegeben wurde, legt der Wert des Referenzfeldes fest, ob es sich in diesem Fall um 50 Dollar oder japanische Yen handelt. Erst nach der Feststellung des richtigen Datentypen kann eine Prüfung, zum Beispiel auf die korrekte Anzahl der Nachkommastellen, stattfinden.
Für das InputField, welches die Zeichen entgegennimmt, muss bei Preisen und Mengen immer ein Währungs- bzw. ein Mengen-Referenzfeld existieren, welches den Datentypen für das interne Format bereitstellt. Wenn also in ein InputField die Zahl 50 eingegeben wurde, legt der Wert des Referenzfeldes fest, ob es sich in diesem Fall um 50 Dollar oder japanische Yen handelt. Erst nach der Feststellung des richtigen Datentypen kann eine Prüfung, zum Beispiel auf die korrekte Anzahl der Nachkommastellen, stattfinden.

Daten und Datentypen: Preis und Währung
Hinweis
Das Context-Attribut für den Wert der Eingabe und das Context-Attribut für die jeweilige Währung müssen immer in einem gemeinsamen Knoten liegen (hier im Knoten input_node), ansonsten kann die Zuordnung von Wert und Datentyp nicht erfolgen.
Wenn Sie den Knoten z.B. mit Hilfe des Wizards aus einer existierenden ABAP-Dictionary-Struktur erzeugen, wird die benötigte Referenz des Werte-Attributs auf das Datentyp-Attribut in der Regel automatisch angelegt, da die Referenz-Struktur normalerweise gleich der Dictionary-Struktur ist. In seltenen Ausnahmefällen kann jedoch die Referenz-Struktur aus einer anderen Dictionary-Struktur gezogen werden. In diesem Fall kann die Referenz-Struktur nicht in dem durch den Wizard automatisch erzeugten Knoten liegen, der Refenrenztyp ist dann zur Laufzeit unbekannt. Sie müssen dann die Referenz manuell einrichten. Dafür enthält das Interface IF_WD_CONTEXT_NODE_INFO die Methode SET_ATTRIBUTE_REFERENCE_FIELD. Wenn ein Referenzfeld zur Laufzeit nicht vorhanden ist oder nicht erkannt wird, greift automatisch eine Default-Formatierung mit zwei Nachkommastellen.
Achtung
Der Wert eines Preis- bzw- Mengenfeldes muss immer eine gepackte Zahl (also im BCD-Format) sein.
Hinweis
Da die Anwendung später unter Umständen auch mit Währungen eingesetzt wird, die nicht mit zwei Nachkommastellen arbeiten (z.B. der japanische Yen), sollten Sie die Anwendungsprogramme unbedingt ausführlichen Tests unterziehen.
Im Folgenden finden Sie weitere nützliche Hintergrundinformationen und Hinweise im Zusammenhang mit Datentypen an Context-Knoten sowie deren Konvertierung während des Ein- bzw. Ausgabevorgangs.
Alle entgegengenommenen Daten werden entsprechend des referenzierten Datentyps umgewandelt und geprüft. In diesem Zusammenhang werden auch Korrekturen vorgenommen, wenn etwa die Jahreszahl eines Datums nur mit den letzten beiden Stellen vorgenommen wurde und eindeutig ergänzt werden kann.
Konvertierungs-Exits werden automatisch aufgerufen. Bei der Konvertierung auftretende Fehler werden angezeigt.
Bei Preisen und Mengen wird zunächst das Referenzfeld gesucht und die Konvertierung dann entsprechend durchgeführt.
Wenn für das Attribut, dessen Wert vom Anwender eingegeben wurde, eine Wertemenge existiert, wird während der Konvertierung geprüft, ob der Eingabewert tatsächlich im Wertebereich der Wertemenge enthalten ist.
Bei der Konvertierung von externen nach internen Formaten bleiben Leerzeichen von String- und Character-Eingaben erhalten. Werden andere Datentypen eingegeben, ist dies nicht der Fall, es sei denn, die Formatierung wurde von der Anwendungsentwicklung ausdrücklich entsprechend geändert (siehe unten).
Die Umsetzung des internen Datenformats auf ein externes Datenformat verläuft ebenfalls automatisch. Dabei werden Benutzereinstellungen berücksichtigt, wie das lokale Ausgabeformat eines Datums oder einer Uhrzeit.
Es werden Konvertierungs-Exits aufgerufen, sofern sie am Datenelement deklariert sind.
Zahlen werden je nach Datentyp mit oder ohne führende Null ausgegeben.
Abhängig vom Datentyp können Sie einige Formatierungseigenschaften (siehe unten) von Context-Attributen mit Hilfe des Context-Editors ändern.
Werden gepackte Zahlen ausgegeben, so wird das Vorzeichen standardmäßig rechts der auszugebenden Zahl platziert. bei allen anderen Datentypen wird das Vorzeichen links ausgegeben.
Um spezielle Formatierungseigenschaften zu setzen, können Sie den Context-Editor verwenden oder dynamisch die Methoden GET_ATTRIBUTE_FORMAT_PROPS und SET_ATTRIBUTE_FORMAT_PROPS von IF_WD_CONTEXT_NODE_INFO verwenden.
Format |
Mögliche Werte |
Datentypen |
|---|---|---|
Anzeige führender Nullen |
Nullen als Leerzeichen Nullen beibehalten Standardwert |
P NUMC |
Position des Vorzeichens |
Vorzeichen links (Standard bei I) Vorzeichen rechts (Standard bei P) Standardwert |
I P |
Komprimierung der Eingabe |
Eingabe komprimieren Eingabe nicht komprimieren Standardwert
Bei Char und String wird standardmäßig nicht komprimiert, sonst schon. Ende des Hinweises |
Char String |
Zeitausgabevormat |
mit Sekunden (Standard) ohne Sekunden |
T |