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.
3521
Views
SORT mit Feldsymbolen
von MarkusW » 01.11.2007 13:14 • Verfasst in ABAP® Core
5
Antw.
2507
Views
Probleme mit Feldsymbolen
von LittleT » 16.10.2007 09:40 • Verfasst in ABAP® für Anfänger
26
Antw.
11546
Views
Unicode bei Feldsymbolen (UC_OBJECTS_NOT_CONVERTIBLE)
von zer0 » 14.03.2013 11:43 • Verfasst in ABAP® Core
9
Antw.
6915
Views
Strukturen dynamisch mit Feldsymbolen vergleichen
von cmalthaner » 02.07.2013 14:59 • Verfasst in ABAP® Core
1
Antw.
622
Views
move-datei
von HH_ABAP » 16.08.2023 11:28 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


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.

Unbeantwortete Forenbeiträge

Benutzerdefinierte Felder PSP
vor 5 Wochen von Rabea1103 1 / 46396
Spool vereinen OTF und PDF
letzen Monat von anna2205 1 / 62719
XSLT und Loipro05 Transformation
December 2025 von Torsten1965 1 / 70327
VOLL Artikel in einem Display Typ 12
November 2025 von ThomasM84 1 / 87299