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.
3698
Views
SORT mit Feldsymbolen
von MarkusW » 01.11.2007 13:14 • Verfasst in ABAP® Core
5
Antw.
2649
Views
Probleme mit Feldsymbolen
von LittleT » 16.10.2007 09:40 • Verfasst in ABAP® für Anfänger
26
Antw.
12156
Views
Unicode bei Feldsymbolen (UC_OBJECTS_NOT_CONVERTIBLE)
von zer0 » 14.03.2013 11:43 • Verfasst in ABAP® Core
9
Antw.
7192
Views
Strukturen dynamisch mit Feldsymbolen vergleichen
von cmalthaner » 02.07.2013 14:59 • Verfasst in ABAP® Core
1
Antw.
696
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

Aktuelle Forenbeiträge

IF mit AND und OR
vor 9 Stunden von JHM 8 / 25377
BAPI zur ABSO?
vor 3 Wochen von DeathAndPain 2 / 3829
Materialstammerweiterung: Neuer Reiter
vor 4 Wochen von DeathAndPain gelöst 4 / 4821

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.