Type aus Type ermitteln Thema ist als GELÖST markiert

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

Type aus Type ermitteln

Beitrag von akosch (ForumUser / 3 / 1 / 0 ) »
Hallo,

ich programmiere schon seit ein paar Jahren mit ABAP, bin aber gerade auf ein Problem gestoßen, bei dem ich nicht weiter komme und vielleicht geht das ja auch nicht.
Und zwar habe ich in einem Interface einen Type definiert, der mit einer im Repository definierten Struktur typisiert ist.

Also so:

Code: Alles auswählen.

types GTY_S_GET_BASISDATEN_INPUT type ZCD_GET_BASISDATEN1 .
Jetzt würde ich gerne zur Laufzeit ermitteln, welcher konkrete Type hinter GTY_S_GET_BASISDATEN_INPUT steckt (hier also ZCD_GET_BASISDATEN1).

Ich bin in einer konkreten Methode, in der es einen Eingabeparameter IS_INPUT gibt, der mit dem Type GTY_S_GET_BASISDATEN_INPUT typisiert ist:

Code: Alles auswählen.

methods GET_BASISDATEN
    importing
      !IS_INPUT type GTY_S_GET_BASISDATEN_INPUT.
Wenn ich mit RTTI arbeite, dann endet es bei mir immer bei GTY_S_GET_BASISDATEN_INPUT.

Also z.B. so:

Code: Alles auswählen.

DATA(lo_type_descr) = cl_abap_typedescr=>describe_by_data( is_input ).
DATA(lv_relative_name) = lo_type_descr->get_relative_name( ).
Hier steht jetzt also in lv_relative_name der Name GTY_S_GET_BASISDATEN_INPUT.

Nehme ich jetzt diesen Namen und mache wiederum über RTTI das hier

Code: Alles auswählen.

DATA(lo_type_descr_2) = cl_abap_typedescr=>describe_by_name( 'INTERFACE_NAME=>GTY_S_GET_BASISDATEN_INPUT' ).
erhalte ich trotzdem wieder nur GTY_S_GET_BASISDATEN_INPUT.
('INTERFACE_NAME=>GTY_S_GET_BASISDATEN_INPUT' ist jetzt hier im Code der Einfachheit halber direkt angegeben)

Ich finde einfach keine Möglichkeit an ZCD_GET_BASISDATEN1 heranzukommen.
Geht das einfach nicht oder weiß irgendjemand eine Möglichkeit?

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


Re: Type aus Type ermitteln

Beitrag von a-dead-trousers (Top Expert / 4486 / 231 / 1206 ) »
Hi.

Du musst das über den Describer des Interface bzw. des Objekts ermitteln:
CL_ABAP_OBJECTDESCR=>GET_METHOD_PARAMETER_TYPE

lg ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: Type aus Type ermitteln

Beitrag von akosch (ForumUser / 3 / 1 / 0 ) »
Zuerst einmal vielen Dank für den Tipp, ADT.
Aber leider lande ich auch hier wieder bei GTY_S_GET_BASISDATEN_INPUT.

Re: Type aus Type ermitteln

Beitrag von ewx (Top Expert / 4918 / 332 / 655 ) »
hm. Das finde ich interessant, dass man anscheinend den zugrunde liegenden Typen nicht so ohne weiteres herausbekommt. Für deinen Fall passend habe ich die Klasse CL_OO_INTERF_COMPONENTS_FLAT gefunden, die alle Type und deren Definition mit auswirft.

Folgende Benutzer bedankten sich beim Autor ewx für den Beitrag (Insgesamt 2):
akoschqyurryus


Re: Type aus Type ermitteln

Beitrag von akosch (ForumUser / 3 / 1 / 0 ) »
Das ist die Lösung!
Vielen Dank ewx!

Seite 1 von 1

Aktuelle Forenbeiträge

Feldroutine ADSO Transformation
vor einer Woche von codemaster1 2 / 81341
Stücklisten
vor einer Woche von Selma.schwarz 1 / 82958

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

Type oder Like
von kostonstyle » 16.07.2007 09:47
type incompatible
von Spookykid » 28.06.2011 09:52
TYPE-POOLS
von bohne » 21.12.2006 21:52
message type D
von ralf.wenzel » 05.08.2015 12:32
ALV und type ahead
von black_adept » 09.05.2022 09:39

Aktuelle Forenbeiträge

Feldroutine ADSO Transformation
vor einer Woche von codemaster1 2 / 81341
Stücklisten
vor einer Woche von Selma.schwarz 1 / 82958

Unbeantwortete Forenbeiträge

Stücklisten
vor einer Woche von Selma.schwarz 1 / 82958
Belege
vor einer Woche von Selma.schwarz 1 / 80768