Dynamische Konvertierung von "String" auf "urspr. Datentyp" Thema ist als GELÖST markiert

Die Objektorientierung mit ABAP®: Vererbung, Dynamische Programmierung, GUI Controls (u.a. ALV im OO).
8 Beiträge • Seite 1 von 1
8 Beiträge Seite 1 von 1

Dynamische Konvertierung von "String" auf "urspr. Datentyp"

Beitrag von Steffen (ForumUser / 28 / 1 / 0 ) »
Hallo zusammen,

für das Thema "Dynamische Konvertierung von "String" auf "ursprünglichen Datentyp" benötige ich Eure Hilfe.


Ausgangssituation:

Aufbau meiner Struktur ist z.B.:

Code: Alles auswählen.

]
Types:  Begin of ty_test,
	     no	type 	i,
	     descr	type 	string,
	    dat	type 	dats,
	    float	type 	f,
          End of ty_test.
Diese Struktur mit entsprechenden Werten, wird an einen Funktionsbaustein übergeben, welcher Feldname und -Wert in einer internen Tabelle zurückliefert - allerdings sind die zurückgelieferten Werte alle im Format "String". - z.B.:

no = '1234'
descr = 'Test'
dat = '23.08.2018'
float = '2.00'

Möchte ich nun diese Werte zurück in meine Struktur übernehmen, gibt es teilweise Probleme wegen der Konvertierung - z.B. beim Datum.


Meine Frage:

Existiert eine Möglichkeit vor der Übergabe an meine Struktur die Werte zunächst von "String" in das entsprechende Ausgangsformat dynamisch zu konvertieren?

Beste Grüße
Steffen

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Dynamische Konvertierung von "String" auf "urspr. Datent

Beitrag von ralf.wenzel (Top Expert / 4011 / 209 / 283 ) »
Jepp. Mit RTTI das Format des Zielfeldes ermitteln und dann formatspezifisch Konvertierungsroutinen verwenden.


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development -- 25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Dynamische Konvertierung von "String" auf "urspr. Datent

Beitrag von ewx (Top Expert / 4918 / 332 / 655 ) »
okay. zu lange getippt...

hier dann noch mal die Detailfassung von Ralfs Vorschlag:

Du kannst dir mit RTTI (Run Time Type Description) die Infos zur Struktur holen (Entweder direkt zur Struktur oder zum Laufzeitobjekt).
https://www.tricktresor.de/blog/laufzei ... e-tabelle/
https://help.sap.com/doc/abapdocu_751_i ... _abexa.htm

Da müsste auch irgendwo der notwendige Konvertierungsexit stehen.
Den entsprechenden Funktionsbaustein CONVERSION_EXIT_xyz_INPUT kannst du dynamisch aufbauen und aufrufen und so die Werte umwandeln.

Alternative: Verwende als Rückgabestruktur für deinen Fuba
FELDNAME
WERT_EXT (24.08.2018 / 1.000,01 )
WERT_INT (20180824 / 1000.01 )

sofern möglich. Dann ist eine direkt "Rückzuweisung" über WERT_INT möglich.

Re: Dynamische Konvertierung von "String" auf "urspr. Datent

Beitrag von Steffen (ForumUser / 28 / 1 / 0 ) »
Vielen Dank für Eure Rückmeldung.

In Richtung "CONVERSION_EXIT" habe ich schon ein paar Tests zuvor gemacht, doch leider bin ich da nicht wirklich weiter gekommen.

Bleiben wir bitte einmal kurz bei dem Beispiel mit dem "Datum".

In meiner Struktur habe ich ein Datumsfeld mit der Domäne "Dats".
z.B.: Wert: 20180824

Der FuBa liefert mir nun das Datum als String zurück.
z.B.: Wert: 24.08.2018

Mein Problem was ich nun hatte ist, dass die Domäne "Dats" keine Konvertierungsroutine hat.

Verstehe ich das richtig, dass die dynamische Konvertierung nur mit Domänen funktioniert, die eine Konvertierungsroutine besitzt?

Beste Grüße
Steffen

Re: Dynamische Konvertierung von "String" auf "urspr. Datent

Beitrag von ewx (Top Expert / 4918 / 332 / 655 ) »
Die Logik wirst du tatsächlich zusätzlich programmieren müssen, also je Datentyp die entsprechende.
z.B. für Datum: https://www.se80.co.uk/sapfms/c/conv/co ... ternal.htm

Ich wüsste tatsächlich grad nicht, wie man die impliziten Konvertierungsroutinen der ABAP-Typen aufrufen könnte.

Es gibt noch einen Funktionsbaustein, dem man das Datenelement und den Wert mitgibt und dann die entsprechende Umwandlung macht. Müsste ich noch mal suchen...

Re: Dynamische Konvertierung von "String" auf "urspr. Datent

Beitrag von ewx (Top Expert / 4918 / 332 / 655 ) »
ewx hat geschrieben: Es gibt noch einen Funktionsbaustein, dem man das Datenelement und den Wert mitgibt und dann die entsprechende Umwandlung macht. Müsste ich noch mal suchen...
Hier isser: RS_CONV_EX_2_IN_DTEL

Re: Dynamische Konvertierung von "String" auf "urspr. Datent

Beitrag von Steffen (ForumUser / 28 / 1 / 0 ) »
ewx hat geschrieben:
ewx hat geschrieben: Es gibt noch einen Funktionsbaustein, dem man das Datenelement und den Wert mitgibt und dann die entsprechende Umwandlung macht. Müsste ich noch mal suchen...
Hier isser: RS_CONV_EX_2_IN_DTEL
Vielen Dank nochmals der Hinweis hat mir weitergeholfen.

Re: Dynamische Konvertierung von "String" auf "urspr. Datent

Beitrag von deejey (Specialist / 432 / 135 / 47 ) »
Dass ermittelte Werte aufbereitet zurückgeliefert werden ist unüblich. Und Werte die 1:1 einfach aufbereitet werden muss man ja nicht zurückwandeln, man hat sie ja bereits im Original verfügbar, wozu das?

Seite 1 von 1

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Feldroutine ADSO Transformation
vor einer Woche von codemaster1 2 / 85475
Stücklisten
vor 2 Wochen von Selma.schwarz 1 / 87155

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Vergleichbare Themen

Konvertierung von Datentyp mit CONV
von Julia.hrtm » 20.11.2024 10:49
Dynamische Select Abfrage mit String Variabel
von frankoline » 27.04.2023 10:56
Datentyp TIMS
von Mrs. Hilflos » 02.10.2007 13:17
Speicherkapazität für Datentyp
von L0w-RiDer » 21.01.2020 09:16

Aktuelle Forenbeiträge

Feldroutine ADSO Transformation
vor einer Woche von codemaster1 2 / 85475
Stücklisten
vor 2 Wochen von Selma.schwarz 1 / 87155

Unbeantwortete Forenbeiträge

Stücklisten
vor 2 Wochen von Selma.schwarz 1 / 87155
Belege
vor 2 Wochen von Selma.schwarz 1 / 84799