13:34 Uhr
ABAP Anweisung WRITE zum Umwandeln von Variablen und Werten wie FLOAT (Gleitpunktzahl, Fließkommazahl)
Das Feld ATFLV hat als Eigenschaften Datentyp FLTP (interner Fließkomma-Wert) in der Länge von 16.
Zur Verdeutlichung des Problems rufe ich noch einmal die Ausgangslage des Problems in Erinnerung und habe ein Merkmal als Datum definiert und den gespeicherten Wert in der Tabelle AUSP näher angesehen:
Datum | Wert als Float AUSP-ATFLV |
---|---|
01.01.2018 | 2,0180101000000000E+07 |
14.05.2017 | 2,0170514000000000E+07 |
13.07.2017 | 2,0170713000000000E+07 |
Nun stellt sich für die Query die Frage, wie aus den FLOAT Wert ein Datumswert ermittelt werden kann.
Hierzu hatte, nach der Nutzung von Funktionsbausteinen und verschiedenen anderen Methoden Wolfgang per Kommentar noch eine alternative Lösung gebracht.
Hallo Herr Unkelbach,
zu der Umwandlung von Float in Date gibt es noch eine weitere Alternative:
DATA: zlv_float type f value '2.006123100000000E+07',
text(10) type c.
write zlv_float to text Exponent 0.
Das Ergebnis ist dann ' 20161231'.
Wichtig das Ergebnisfeld muss 10 stellig sein.
Gruß Wolfgang
Vielen Dank an Wolfgang für diesen aber auch schon einige andere Hinweise zu Artikeln hier im Blog. Tatsächlich steckt in der Write Anweisung auch die Möglichkeit Werte umzuwandeln.
Die Anweisung EXPONENT legt den Exponenten bei der Aufbereitung von Gleitpunktzahlen bzw. einer Fließkommazahl fest. Wenn die Anweisung Exponent den Wert 0 enthält, wird kein Exponent erzeugt und somit die originäre Zahl erzeugt.
Matheamtisch enthält die Gleitpunktzahl gleichzeitig eine Information zur Anzahl der Nachkommastellen beziehungsweise der dargestellte wird mit 10Exponent multipliziert.
In unseren Fall wäre dieses also 2,018010100000000 * 107 was wieder 20180101 ergibt.
Die Verwendung der WRITE Funktion zur Umwandlung von Zahlenwerten in das gewünschte Format hatte ich auch im Abschnitt "Zusatzfeld VLE zur Darstellung virtueller Lehreinheit aus Teilstring der verantwortlichen Kostenstelle sofern nicht in einen anderen Feld ein Wert steht" im Artikel "Query über COEP, AUFK und FMFINCODE für Einzelposten Istkosten Innnenauftrag mit Stammdaten aus CO und PSM-FM sowie Spalten für Ertrag und Aufwand - Erster Teil Infoset als Datengrundlage" behandelt.
Durch den Zusatz NO-ZERO werden die vorrangestellten 000 eines Wertes entsprechend entfernt, so dass später mit der reinen Zahl ohne führender 0 gearbeitet werden kann.
Hierbei ist es jedoch hilfreich vorab zu prüfen, ob der Wert tatsächlich nur aus Zahlen besteht. Dieses ist im Artikel "Drittmittelstatistik nach LOMZ über Recherchebericht und SAP Query" durch die Anweisung
IF AUFK-AUFNR CO '1234567890'.
im Abschnitt "LOMZ relevante Drittmittel" beschrieben worden.
Gerade beim Umgang mit Programmiersprachen gibt es oft mehrere Wege um ein Ergebnis zu erhalten und gerade die obige WRITE Anweisung eignet sich auch hervorragend dazu als Werte statt Text gespeicherte Klassifizierungsmerkmale wieder aufzulösen und entsprehcend lesbar in der Ausgabe zu machen.
Somit kann auch eine einfache WRITE Anweisung wesentlich mehr als
WRITE 'HELLO WORLD'.
Grundsätzlich ist das Thema ABAP Programmierung aber tatsächlich noch ein Punkt den ich gerne ausbauen würde und wo bei mir noch ein zwei Bücher im RUB stehen.
Für kleinere ABAP Anweisungen zum Beispiel im Rahmen einer SAP Query hilft oft schon der Austausch in Onlineforen, mit Kolleginnen und Kollegen und ein wenig die Webempfehlungen oder andere Blogs.
Hinweis:
Eine kurze Einführung in das Thema SAP Query habe ich im Artikel
"Grundlagen Kurzeinführung und Handbuch SAP Query" beschrieben und hoffe Ihnen hier eine Einführung ins Thema bieten zu können.
ein Angebot von Espresso Tutorials
unkelbach.link/et.books/
unkelbach.link/et.reportpainter/
unkelbach.link/et.migrationscockpit/
Diesen Artikel zitieren:
Unkelbach, Andreas: »ABAP Anweisung WRITE zum Umwandeln von Variablen und Werten wie FLOAT (Gleitpunktzahl, Fließkommazahl)« in Andreas Unkelbach Blog (ISSN: 2701-6242) vom 11.3.2018, Online-Publikation: https://www.andreas-unkelbach.de/blog/?go=show&id=912 (Abgerufen am 23.11.2024)
2 Kommentare - Permalink - SAP
Artikel datenschutzfreundlich teilen
🌎 Facebook 🌎 Twitter 🌎 LinkedIn