Zugriff auf einzelne Komponenten einer dynamisch erzeugten Struktur

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

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

Zugriff auf einzelne Komponenten einer dynamisch erzeugten Struktur

Beitrag von Der Formulator (ForumUser / 34 / 8 / 0 ) »
Hallo,

ich habe mal wieder ein Problem mit meinen generisch erzeugten Strukturen/Tabellen

Mit nachfolgendem Coding erzeuge ich eine Struktur "<ls_position>", die die in lt_result beschriebenen Felder enthält.

Code: Alles auswählen.

    DATA(lo_descr_reduced) = cl_abap_structdescr=>create( lt_result ).
    CREATE DATA lr_data TYPE HANDLE lo_descr_reduced.
    ASSIGN lr_data->* TO FIELD-SYMBOL(<ls_position>).
Soweit, so gut. Ich würde jetzt gerne den einzelnen Komponenten der Struktur Werte zuweisen. Also z.B.

<ls_position>-POSNR = '000010'.

Die Syntaxprüfung in Eclipse sagt mir aber folgendes:

"Das Datenobjekt "<LS_POSITION>" besitzt keine Struktur und daher auch keine Komponente mit dem Namen "POSNR"

Wenn ich mir <LS_POSITION> aber im Debugger anschaue, dann sind alle Felder vorhanden. (siehe Angehängtes Bild) Wie kann ich denn jetzt meine Struktur füllen? - Ich könnte verzweifeln...

Vielen Dank an alle :-)
Zuletzt geändert von Der Formulator am 28.12.2021 14:49, insgesamt 1-mal geändert.

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


Re: Zugriff auf einzelne Komponenten einer dynamisch erzeugten Struktur

Beitrag von PeterPaletti (Specialist / 336 / 29 / 96 ) »
Wäre ASSIGN COMPONENT OF STRUCTURE eine Möglichkeit?

Folgende Benutzer bedankten sich beim Autor PeterPaletti für den Beitrag:
Der Formulator


Re: Zugriff auf einzelne Komponenten einer dynamisch erzeugten Struktur

Beitrag von Der Formulator (ForumUser / 34 / 8 / 0 ) »
Hi Peter,

das probiere ich mal.
Hab zwar keinen Schimmer, wie genau die Syntax da lauten muss, aber try & Error führt ja oft zum Ziel :-)

Danke für den Vorschlag.

Re: Zugriff auf einzelne Komponenten einer dynamisch erzeugten Struktur

Beitrag von Der Formulator (ForumUser / 34 / 8 / 0 ) »
Hat leider nicht funktioniert... :-(

Re: Zugriff auf einzelne Komponenten einer dynamisch erzeugten Struktur

Beitrag von PeterPaletti (Specialist / 336 / 29 / 96 ) »
Funktioniert bei mir vorzüglich.

Code: Alles auswählen.

DATA lr_data TYPE REF TO data.


DATA(it_components) = VALUE cl_abap_structdescr=>component_table(
(
  name = 'CARRID'
  type = cl_abap_elemdescr=>get_c( 3 ) " S_CARR_ID
)
(
  name = 'CONNID'
  type = cl_abap_elemdescr=>get_n( 4 ) " S_CONN_ID
 )
(
  name = 'CARRNAME'
  type = CAST #( cl_abap_elemdescr=>describe_by_name( 'S_CARRNAME' ) )
)
*
  ).
DATA(o_struct_desc) = cl_abap_structdescr=>create( it_components ).
CREATE DATA lr_data TYPE HANDLE o_struct_desc.
ASSIGN lr_data->* TO FIELD-SYMBOL(<ls_flight>).

ASSIGN COMPONENT 'CARRID' OF STRUCTURE <ls_flight> TO FIELD-SYMBOL(<carrid>).
<carrid> = 'ABC'.
WRITE: / <carrid>.

Folgende Benutzer bedankten sich beim Autor PeterPaletti für den Beitrag:
Der Formulator


Re: Zugriff auf einzelne Komponenten einer dynamisch erzeugten Struktur

Beitrag von Der Formulator (ForumUser / 34 / 8 / 0 ) »
Ich Schlaumeier habe meine Komponente natürlich NICHT in ' ' angegeben.

Dann klappt es auch :-)

Vielen Dank PeterPaletti !!!

Seite 1 von 1

Vergleichbare Themen

7
Antw.
5983
Views
Feldkatalog von einer dynamisch erzeugten Struktur/Tabelle
von MarkusW » 08.11.2007 18:06 • Verfasst in ABAP® Core
3
Antw.
3299
Views
einzelne Zeile aus Tabelle einer Struktur löschen
von uibig » 16.03.2017 09:28 • Verfasst in ABAP® für Anfänger
0
Antw.
1753
Views
Zugriff auf Struktur in OO
von mazu » 04.10.2007 12:07 • Verfasst in ABAP Objects®
1
Antw.
2057
Views
Variable Zugriff auf Felder einer Struktur
von JürgenFFM » 26.01.2008 11:46 • Verfasst in ABAP® Core
1
Antw.
770
Views
dynamischer Zugriff auf Spalteninhalt meiner Struktur
von JanR » 19.10.2020 15:11 • Verfasst in ABAP® für Anfänger

Ü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

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.