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

IF mit AND und OR
vor einer Woche von GastX 6 / 8822
Meine Inbox
vor einer Woche von Rabea1103 1 / 6605
PCL2 Cluster auslesen
vor einer Woche von DeathAndPain 2 / 7755
FUBA 'HR_INFOTYPES_OPERATION'
vor einer Woche von Bright4.5 3 / 13251

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

IF mit AND und OR
vor einer Woche von GastX 6 / 8822
Meine Inbox
vor einer Woche von Rabea1103 1 / 6605
PCL2 Cluster auslesen
vor einer Woche von DeathAndPain 2 / 7755
FUBA 'HR_INFOTYPES_OPERATION'
vor einer Woche von Bright4.5 3 / 13251