Move Corresponding bei Feldsymbolen?

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
3 Beiträge • Seite 1 von 1
3 Beiträge Seite 1 von 1

Move Corresponding bei Feldsymbolen?

Beitrag von MarkusW (Specialist / 406 / 5 / 0 ) »
Hallo zusammen,

ich bin gerade an nem Problem dran, ein bestehendes Prog so umzubauen, dass es dynamisch arbeitet.
Es kommt öfters vor, dass der Befehl Move Corresponding genutzt wurde...
Problem bei der Sache, die FS zeigen auf Strukturen die dynamisch erstellt wurden...sprich wurden mit TYPE ANY deklariert, ergo funktioniert der Befehl Move Corresponding nicht (Fehlermeldung : "<fs> ist keine STruktur oder interne Tabelle mit Kopfzeile."

Allerdings ist es eine STruktur ;)

Welche möglichkeiten habe ich die identischen Felder des einen Feldsymbols auf ein anders Feldsymbol zu moven, welches ansatzweise den gleichen aufbau hat...aber eben nicht komplett.

Thx 4 help.

Gruß
Markus

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


Beitrag von BlackMail (ForumUser / 79 / 0 / 0 ) »
Du musst wohl mit den RTTI-Klassen arbeiten.
Als Beispiel:

Code: Alles auswählen.

FORM move_corr USING us_in TYPE any CHANGING cs_out TYPE any.

  TYPE-POOLS: abap.

  DATA:
    lx_structdescr            TYPE REF TO cl_abap_structdescr.

  FIELD-SYMBOLS:
    <l_in>                    TYPE ANY,
    <l_out>                   TYPE ANY,
    <ls_component>            TYPE abap_compdescr.

  lx_structdescr ?= cl_abap_typedescr=>describe_by_data( us_in ).

  IF NOT lx_structdescr IS INITIAL.
    LOOP AT lx_structdescr->components ASSIGNING <ls_component>.
      ASSIGN COMPONENT <ls_component>-name
        OF STRUCTURE cs_out TO <l_out>.
      CHECK sy-subrc = 0.

      ASSIGN COMPONENT <ls_component>-name
        OF STRUCTURE us_in TO <l_in>.
      CHECK sy-subrc = 0.

      MOVE <l_in> TO <l_out>.
    ENDLOOP.
  ENDIF.

ENDFORM.
Hierbei werden namensgleiche Felder einander zugewiesen. Die Routine müsste aber noch erweitert werden, weil im Moment vorausgesetzt wird, dass zwei Strukturen als Parameter übergeben werden. Außerdem gibt es bei der Zuweisung keine Typprüfung, d.h. wenn es in den Strukturen Komponenten mit gleichem Namen aber unterschiedlichen Typs gibt, erfolgt ein Kurzdump. Also bitte nur als Beispiel verstehen.

Gruß BlackMail.

Beitrag von MarkusW (Specialist / 406 / 5 / 0 ) »
BlackMail hat geschrieben:Du musst wohl mit den RTTI-Klassen arbeiten.
Als Beispiel:

Code: Alles auswählen.

FORM move_corr USING us_in TYPE any CHANGING cs_out TYPE any.

  TYPE-POOLS: abap.

  DATA:
    lx_structdescr            TYPE REF TO cl_abap_structdescr.

  FIELD-SYMBOLS:
    <l_in>                    TYPE ANY,
    <l_out>                   TYPE ANY,
    <ls_component>            TYPE abap_compdescr.

  lx_structdescr ?= cl_abap_typedescr=>describe_by_data( us_in ).

  IF NOT lx_structdescr IS INITIAL.
    LOOP AT lx_structdescr->components ASSIGNING <ls_component>.
      ASSIGN COMPONENT <ls_component>-name
        OF STRUCTURE cs_out TO <l_out>.
      CHECK sy-subrc = 0.

      ASSIGN COMPONENT <ls_component>-name
        OF STRUCTURE us_in TO <l_in>.
      CHECK sy-subrc = 0.

      MOVE <l_in> TO <l_out>.
    ENDLOOP.
  ENDIF.

ENDFORM.
Hierbei werden namensgleiche Felder einander zugewiesen. Die Routine müsste aber noch erweitert werden, weil im Moment vorausgesetzt wird, dass zwei Strukturen als Parameter übergeben werden. Außerdem gibt es bei der Zuweisung keine Typprüfung, d.h. wenn es in den Strukturen Komponenten mit gleichem Namen aber unterschiedlichen Typs gibt, erfolgt ein Kurzdump. Also bitte nur als Beispiel verstehen.

Gruß BlackMail.
Danke!
Werd mal schauen inwieweit ich dieses Coding für meine Aufgabe anpassen muss. Aber sieht schon sehr gut aus.

Gruß
Markus

Seite 1 von 1

Vergleichbare Themen

3
Antw.
3093
Views
SORT mit Feldsymbolen
von MarkusW » 01.11.2007 13:14 • Verfasst in ABAP® Core
5
Antw.
2194
Views
Probleme mit Feldsymbolen
von LittleT » 16.10.2007 09:40 • Verfasst in ABAP® für Anfänger
26
Antw.
10197
Views
Unicode bei Feldsymbolen (UC_OBJECTS_NOT_CONVERTIBLE)
von zer0 » 14.03.2013 11:43 • Verfasst in ABAP® Core
9
Antw.
6092
Views
Strukturen dynamisch mit Feldsymbolen vergleichen
von cmalthaner » 02.07.2013 14:59 • Verfasst in ABAP® Core
8
Antw.
2657
Views
Zuweisung an Felder innerhalb von Feldsymbolen
von Svenson » 01.08.2005 16:05 • Verfasst in ABAP® Core

Über diesen Beitrag


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

Aktuelle Forenbeiträge

Regex in where
vor 5 Stunden von edwin 7 / 163
Daten an Tabelle binden
vor 19 Stunden von Bright4.5 3 / 1487

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

Regex in where
vor 5 Stunden von edwin 7 / 163
Daten an Tabelle binden
vor 19 Stunden von Bright4.5 3 / 1487

Unbeantwortete Forenbeiträge

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