Typ dynamisch aus String zuweisen

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Getting started ... Alles für einen gelungenen Start.
3 Beiträge • Seite 1 von 1
3 Beiträge Seite 1 von 1

Typ dynamisch aus String zuweisen

Beitrag von Talvien (ForumUser / 4 / 1 / 0 ) »
Hallo liebe Community,

ich arbeite erst seit ein paar Wochen mit SAP und seit wenigen Tagen mit ABAP.

Ich schreibe gerade eine Funktion, die es ermöglichen soll innerhalb einer Transformation im BW aus Texten Schlüssel zu erstellen und die Texte in der jeweiligen Texttabelle des InfoObjekts abzulegen. Damit dies dynamisch für jeden importierten InfoObjekt Namen geschehen kann, muss ich die Typen der Variablen dynamisch aus zwei Strings zusammensetzen.

Bisher habe ich es soweit, dass aus dem Standartteil '/bic/t' für die Texttabelle und dem InfoObjekt Namen ein String gebildet wird, doch wie kann ich diesen als Typ für die Variable "watext" angeben?

Code: Alles auswählen.

DATA: texttable(30) TYPE c VALUE '/bic/t',
          sidtable(30) TYPE c VALUE '/bic/s',
          watext TYPE *" Hier soll der dynamische Typ stehen,
          l_t_pproc TYPE TABLE OF *"Auch  ein dynamischer Typ

CONCATENATE texttable io_name INTO texttable.
CONCATENATE sidtable io_name INTO sidtable.
Ein ähnliches problem habe ich über Google hier im Forum gefunden, die Lösung funktionierte für mich jedoch nicht. War aber auch schon sieben Jahre alt...

Grüße und Danke schonmal

Talvien

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


Re: Typ dynamisch aus String zuweisen

Beitrag von Pyro (Specialist / 121 / 14 / 18 ) »
Hallo,

also um generell ein Datenelement mit einem dynamischen/generischen Typen zu erstellen wird der Befehl CREATE DATA benötigt.

Hier ein kleines Beispiel:

Code: Alles auswählen.

DATA: lv_type TYPE string VALUE 'STRING', "Hier steht der DDIC-Datentyp drin
          lv_dyn TYPE REF TO data. "Dieser Variable wird dann der dynamische Typ zugewiesen.

FIELD-SYMBOLS: <fs_dyn> TYPE any. "Erleichtert den direkten Zugriff auf die Referenz

CREATE DATA lv_dyn TYPE (lv_type). "Variable mit dynamischen Typ erstellen, welcher in LV_TYPE steht

ASSIGN lv_dyn->* TO <fs_dyn>. "Zuweisen der Referenz

"Test des generischen Typs der Variable
<fs_dyn> = 'STRINGTEXT'.

WRITE <fs_dyn>.

Ich hoffe das hilft dir etwas weiter.

Gruß
Pyro

//EDIT:
Falls hier als dynamischer Typ z.B. eine Struktur verwendet werden soll, muss natürlich auch bedacht werden, dass die Syntaxprüfung den direkten Zugriff auf die Struktur als Fehler erkennt, da diese ja variabel ist.
Zugegriffen werden muss dann z.B. über ASSIGN ('LS_STRUC-CARRID') TO <fs>. (oder so, habs gerade nicht genau getestet^^... Bei Bedarf kann ich das auch nochmal nachschauen^^)

Folgende Benutzer bedankten sich beim Autor Pyro für den Beitrag:
Talvien


Re: Typ dynamisch aus String zuweisen

Beitrag von Talvien (ForumUser / 4 / 1 / 0 ) »
Perfekt, das ist genau das, was ich gesucht habe, danke!

Seite 1 von 1

Vergleichbare Themen

4
Antw.
2248
Views
Variablentyp dynamisch zuweisen
von Kresiquadratur » 16.07.2007 16:34 • Verfasst in ABAP® für Anfänger
19
Antw.
13807
Views
dynamisch type zuweisen
von MarkusW » 13.02.2007 13:01 • Verfasst in ABAP® Core
2
Antw.
1186
Views
Zeichformate in SmartForms dynamisch zuweisen
von schwar01 » 15.12.2005 15:17 • Verfasst in Basis
5
Antw.
7674
Views
Variablen Namen dynamisch zuweisen
von Google » 07.04.2005 09:28 • Verfasst in Dialogprogrammierung
1
Antw.
2544
Views
Buttons auf Dynpro dynamisch benennen und zuweisen
von vwaadenm » 24.08.2007 08:04 • Verfasst in Dialogprogrammierung

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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

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.