Typkonflikte bei generischen Typen zur Laufzeit

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

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

Typkonflikte bei generischen Typen zur Laufzeit

Beitrag von abakus (ForumUser / 2 / 0 / 0 ) »
Hallo zusammen,

ich hoffe ihr könnt mir helfen. Zu meinem Problem:

Ich bekomme von einem Funktionsbaustein eine interne Tabelle vom Tabellentyp CRMT_EXTENSION2_WRKT und dem Zeilentyp CRMT_EXTENSION2_WRK geliefert.
Der Zeilentyp umfasst zwei Felder. Eines davon ist vom generischen Typ DATA. Zur Laufzeit ist die Tabelle vom Typ YTTYP000043 und der zugrunde liegende Zeilentyp vom YCRMA9995_PECT_WORK.
Unten seht ihr den Code, um die Daten zu lesen.

Code: Alles auswählen.


        DATA: 
          ls_extension2_wrk     TYPE crmt_extension2_wrk,
          lt_extension2_wrkt    TYPE crmt_extension2_wrkt.
    FIELD-SYMBOLS: <fs_yttyp000043>    TYPE yttyp000043,
                   <fs_ycrma9995_pect> TYPE ycrma9995_pect_work.

     READ TABLE lt_partner INTO ls_partner WITH KEY ref_partner_fct = '00000009'.

      IF ls_extension2_wrk IS NOT INITIAL.
        UNASSIGN <fs_yttyp000043>.
        ASSIGN ls_extension2_wrk-data->* TO <fs_yttyp000043>.
      ENDIF.


      IF <fs_yttyp000043> IS NOT INITIAL.
        READ TABLE <fs_yttyp000043> ASSIGNING <fs_ycrma9995_pect> INDEX 1.
        <fs_ycrma9995_pect>-yyaddress_guid = lv_address_guid.
        <fs_ycrma9995_pect>-yybp_guid = ls_partner-bp_partner_guid.
      ENDIF.
Im letzten IF werden der Struktur Werte zugewiesen, die ich ebenfalls im Programmcode ermittle (diesen hab ich hier jedoch weggelassen, da irrelevant).

Mein Problem ist nun, dass ich meine Werte nun einem Funktionbaustein übergeben muss, der ebenfalls einen generisches DATA möchte, dieses jedoch zur Laufzeit von einem anderen Typen ist!
Die Werte des Feldsymbols vom Typ YCRMA9995_PECT_WORK müssen nun in eine interne Tabelle übergeben werden, die vom Tabellentyp CRMT_EXTENSION2_COMT und Zeilentyp CRMT_EXTENSION2_COM ist. Dieser Zeilentyp wiederum verfügt über ein Feld vom generischen Typ DATA, der zur Laufzeit jedoch vom Tabellentyp YTTYP000045 und dem Zeilentyp YSTRUC000044 ist.

Ich habe schon einiges versucht, leider war davon bislang nichts erfolgreich. Mir ist bislang einfach nicht klar, wie ich meine Werte, die sich bislang im Feldsymbol fs_ycrma9995_pect befinden, wiederum in meine generische Tabelle (vom Typ YTTYP000045) bekomme. Alle Versuche haben bislang zu Typkonflikten oder zu Fehlern aufgrund von noch nicht allokiertem Speicherplatz geführt. Habt ihr Ideen bzw. kennt eine Lösungsmöglichkeit?

Vielen Dank schon im voraus für eure Hilfe!

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


Re: Typkonflikte bei generischen Typen zur Laufzeit

Beitrag von a-dead-trousers (Top Expert / 4399 / 223 / 1182 ) »
Hi!

Die Zuweisung

Code: Alles auswählen.

ASSIGN ls_extension2_wrk-data->* TO <fs_yttyp000043>.
funktioniert nur wenn der Speicher(-zeiger) "ls_extension2_wrk-data" mit CREATE DATA bereits angelegt worden ist (Oder mit REFERENCE INTO an eine Variable gebunden wurde).
Da du ja, so wie ich das verstanden habe, die Tabelle/Struktur für die Datenübergabe erst aufbauen musst, vermute ich mal, dass dies noch nicht geschehen ist.

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: Typkonflikte bei generischen Typen zur Laufzeit

Beitrag von abakus (ForumUser / 2 / 0 / 0 ) »
Hallo,

vielen Dank für deine Antwort. Ich habe jetzt mal folgendes hinzugefügt:

Code: Alles auswählen.

DATA test TYPE REF TO data.
      FIELD-SYMBOLS <fs_test> TYPE ystruc000044.

      GET REFERENCE OF ls_extension2_wrk-data INTO test.

      ASSIGN test->* TO <fs_test> CASTING.
Die ASSIGN-Zuweisung schlägt jedoch fehl. Was mache ich nun, wenn ls_extension2_wrk-data an eine Variable gebunden ist?

Grüße

Re: Typkonflikte bei generischen Typen zur Laufzeit

Beitrag von a-dead-trousers (Top Expert / 4399 / 223 / 1182 ) »
Ne... du hast mich falsch verstanden:
Du brauchst CREATE DATA.
Das REFERENCE INTO war nur als Beispiel gedacht, wenn du Bezug auf einen bereits vorhandenen Speicherbereich nehmen willst (was bei dir ja nicht der Fall ist)
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

Seite 1 von 1

Vergleichbare Themen

1
Antw.
3561
Views
ArchiveLink mit den generischen Objektdiensten
von void » 13.08.2007 11:26 • Verfasst in ABAP® Core
5
Antw.
2506
Views
Generischen Structurpfad auswerten?
von littlepeopleman78 » 27.08.2008 16:29 • Verfasst in ABAP® für Anfänger
0
Antw.
978
Views
Zugriff auf Anlagen von generischen Objektdiensten
von urk » 27.03.2005 23:04 • Verfasst in Basis
2
Antw.
3191
Views
Zeilentyp einer generischen Tabelle
von horn » 08.08.2008 20:35 • Verfasst in ABAP® für Anfänger
1
Antw.
1945
Views
Darstellung einer Tabelle mit generischen Listbausteinen
von Chrisp83 » 22.10.2007 08:29 • 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

Aktuelle Forenbeiträge

Daten an Tabelle binden
vor 6 Stunden von Bright4.5 3 / 1478
Regex in where
vor 8 Stunden von tar 6 / 144
Programm anlegen mit Vorlage
vor 23 Stunden von DeathAndPain 2 / 126
IT0024 Qualifikationen CP-ID
vor 23 Stunden von DeathAndPain 2 / 357

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.

Aktuelle Forenbeiträge

Daten an Tabelle binden
vor 6 Stunden von Bright4.5 3 / 1478
Regex in where
vor 8 Stunden von tar 6 / 144
Programm anlegen mit Vorlage
vor 23 Stunden von DeathAndPain 2 / 126
IT0024 Qualifikationen CP-ID
vor 23 Stunden von DeathAndPain 2 / 357

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 5 Wochen von ralf.wenzel 1 / 3261
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9821