Andreas Unkelbach
Logo Andreas Unkelbach Blog

Andreas Unkelbach Blog

ISSN 2701-6242

Artikel über Controlling und Berichtswesen mit SAP, insbesondere im Bereich des Hochschulcontrolling, aber auch zu anderen oft it-nahen Themen.


Werbung
Aktuelle Schulungstermine SAP S/4HANA Migrationscockpit und Migrationsobjektmodellierer

unkelbach.link/et.migrationscockpit/



Sonntag, 11. März 2018
13:34 Uhr

ABAP Anweisung WRITE zum Umwandeln von Variablen und Werten wie FLOAT (Gleitpunktzahl, Fließkommazahl)

Im Artikel "Query zur Auswertung von Klassifizierungsmerkmale PSM Fonds zu CO Innenauftrag und Datumsfelder mit Konvertierung von FLOAT zu DATUM" habe ich mich mit der Umwandlung von Gleitpunktzahl des Format FLOAT in Datum (DATE) beschäftigt. Zur Verdeutlichung noch einmal ein Datumswert der im Rahmen der Klassifizierung in der Tabelle  AUSP im Tabellenfeld ATFLV gespeichert ist:

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
Datum als Float
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.




Hinweis: Aktuelle Buchempfehlungen besonders SAP Fachbücher sind unter Buchempfehlungen inklusive ausführlicher Rezenssionen und Bestellmöglichkeit zu finden.
SAP Weiterbildung
ein Angebot von Espresso Tutorials
SAP Weiterbildung - so wirksam wie eine gute Tasse Espresso

unkelbach.link/et.books/

unkelbach.link/et.reportpainter/

unkelbach.link/et.migrationscockpit/



Tags: ABAP Query

2 Kommentare - - SAP

Artikel datenschutzfreundlich teilen

🌎 Facebook 🌎 Twitter 🌎 LinkedIn


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

Diesen und weitere Texte von finden Sie auf http://www.andreas-unkelbach.de


Kommentare

Wolfgang Reichelt am 11.3.2019 um 13:37 Uhr
Hallo Herr Unkelbach,

zu diesem Thema habe ich unter Blogs.sap.com folgendes gefunden

https://blogs.sap.com/2019/03/11/conversion-of-fltp-to-char-type-abap/

Kann aber nicht sagen welche Version von ABAP dazu notwendig ist.

Gruß Wolfgang


Andreas Unkelbach Homepage am 11.3.2019 um 14:20 Uhr
Vielen Dank für den Hinweis. Tatsächlich gibt es wohl mehrere Wege um aus einer Flieskommazahl die gewünschte Information zu erhalten. Im Artikel "Query zur Auswertung von Klassifizierungsmerkmale PSM Fonds zu CO Innenauftrag und Datumsfelder mit Konvertierung von FLOAT zu DATUM" auf https://www.andreas-unkelbach.de/blog/?go=show&id=823 sind ebenfalls noch weitere Methoden (unter anderen per Funktionsbaustein) erwähnt.

Den Beitrag auf Blogs.sap.com schaue ich mir ebenfalls noch einmal an und werde die Hinweise hier im Artikel ncoh ergänzen :-)


Auch kommentieren?


Beim Versenden eines Kommentars wird mir ihre IP mitgeteilt. Diese wird jedoch nicht dauerhaft gespeichert; die angegebene E-Mail wird nicht veröffentlicht: beim Versenden als "Normaler Kommentar" ist die Angabe eines Namen erforderlich, gerne kann hier auch ein Pseudonyme oder anonyme Angaben gemacht werden (siehe auch Kommentare und Beiträge in der Datenschutzerklärung).

Eine Rückmeldung ist entweder per Schnellkommentar oder (weiter unten) als normalen Kommentar möglich. Eine persönliche Rückmeldung (gerne auch Fragen zum Thema) würde mich sehr freuen.

Schnellkommentar (Kurzes Feedback, ausführliche Kommentare bitte unten als normaler Kommentar)





Ich nutze zum Schutz vor Spam-Kommentaren (reine Werbeeinträge) eine Wortliste, so dass diese Kommentare nicht veröffentlicht werden. Sollte ihr Kommentar nicht direkt veröffentlicht werden, kann dieses an einen entsprechenden Filter liegen.

Im Zweifel besteht auch immer die Möglichkeit eine Mail zu schreiben oder die sozialen Medien zu nutzen. Meine Kontaktdaten finden Sie auf »Über mich« oder unter »Kontakt«. Ansonsten antworte ich tatsächlich sehr gerne auf Kommentare und freue mich auf einen spannenden Austausch.












* Amazon Partnerlink/Affiliatelinks/Werbelinks
Als Amazon-Partner verdiene ich an qualifizierten Käufen über Amazon.
Weitere Partnerschaften sind unter Onlineshop und unter Finanzierung und Transparenz aufgeführt. Hinauf






Logo Andreas-Unkelbach.de
Andreas Unkelbach Blog
ISSN 2701-6242

© 2004 - 2024 Andreas Unkelbach
Gießener Straße 75,35396 Gießen,Germany
andreas.unkelbach@posteo.de

UStID-Nr: DE348450326 - Kleinunternehmer im Sinne von § 19 Abs. 1 UStG

Andreas Unkelbach

Stichwortverzeichnis
(Tagcloud)


Aktuelle Infos (Abo)

Facebook Twitter XING

Linkedin Mastodon Bluesky

Amazon Autorenwelt Librarything

Buchempfehlung
Berichtswesen im SAP®-Controlling

19,95 € Amazon* Autorenwelt

Espresso Tutorials

unkelbach.link/et.reportpainter/

unkelbach.link/et.migrationscockpit/

Privates

Kaffeekasse 📖 Wunschliste