dynamischen Feldnamen auslesen

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

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

dynamischen Feldnamen auslesen

Beitrag von Mario ( / / 0 / 3 ) »
Hallo zusammen,

sizte hier vor folgendem Problem. Ich möchte aus einer Workingarea (<wa>) ein Feld auslesen, dass ich erst zur Leufzeit weiss. Bei der Workingarea selbst handelt es sich auch um ein dynamisches Objekt, dass auch zur Laufzeit typisiert und gefüllt wird. Bei der Anweisung

Code: Alles auswählen.

feld = <tab>-<feldname>.
wird aber folgener Fehler ausgegeben: Das Datenobjekt <wa> besitzt keine Struktur und daher auch keine Komponente mit Namen <feldname>.

Beim Debuggen sehe ich aber, dass <feldname> mit einm Wert gefüllt wird, der einem Feldnamen des dynamisch erstellen Ojektes (<wa> = dynamisch erstellte Struktur) entspricht. <wa> enthält beispielsweise einen Datensatz einer x-belibigen Tabelle (wird zur Laufzeit festgelegt) und dieser Datensatz hat ein unter Anderem ein Feld das dem von <feldname> entspricht. Jetzt müsst ich nur noch auf den Inhalt dieses Feldes zugreifen können. Wichtig ist nur, dass sowohl die Workingare als auch das Feld, dass daraus ausgelesen werden soll erst zur Laufzeit bekannt sind.

Ich wäre um jede Hilfe dankbar.

Code: Alles auswählen.

FIELD-SYMBOLS:
  <feldname> TYPE ANY.
DATA:
  feldname_ref TYPE REF TO DATA,
  feld(20) TYPE c.
START-OF-SELECTION.
  CREATE DATA feldname_ref TYPE dd03l-tabname.
  ASSIGN feldname_ref->* TO <feldname>.

SELECT fieldname
    FROM dd03l
    INTO <feldname>
    WHERE datatype = 'CURR' AND
          tabname = p_tab.
      IF SY-SUBRC = 0.
        feld = <tab>-<feldname>.
      ENDIF.

    ENDSELECT.

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


Beitrag von black_adept (Top Expert / 4089 / 127 / 940 ) »
Siehe:F1 zu ASSIGN.

Insbes. ASSIGN (feldname) to <fs>.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Beitrag von Frank Dittrich (Expert / 674 / 0 / 15 ) »
Warum Du TYPE dd03l-tabname verwendest, um dann den Feldnamen zu selektieren, muss ich nicht verstehen - oder?
Und den Block IF ... ENDIF kannst Du zwischen Deinem SELECT ... ENDSELECT weglassen.
Wenn man überhaupt DD03L selektiert, sollte man wenigstens AS4LOCAL EQ 'A' in der WHERE-Klausel stehen haben.

Besser man ruft einen der *NAMETAB*-FBs auf.
(Der wirft z.B. auch "Felder " '.INCL*' weg und löst Include- und Append-Strukturen vernünftig auf, funktioniert auch für Views ...)

Aber um Dein Problem zu lösen, musst Du weder DD03L lesen noch einen FB aufrufen.

Beitrag von Mario ( / / 0 / 3 ) »
... danke für die Info. Um es etwas knapper zu fassen geht es im Prinzip nur darum, das in folgendem Codeschnipsel tabname eine Variable ist, die erst zur Laufzeit gefüllt wird. Ich weiss nur leider nicht die korrekte Syntax.

Code: Alles auswählen.

 feld = <wa>-tabname.
Noch ne Idee.

Viele Grüße
Mario

Beitrag von Gast ( / / 0 / 3 ) »

Code: Alles auswählen.

FIELD-SYMBOLS:
  <wa> TYPE ANY,                   "Struktur der DB-Tabelle
  <feld> TYPE ANY.                 "Feld in Struktur
DATA:
  wa_ref TYPE REF TO data.         "Referenz auf Struktur

PARAMETERS:
p_tab TYPE dd03l-tabname,          "Name DB-Tabelle
p_fld TYPE dd03l-fieldname.        "Name Feld in DB-Tabelle


START-OF-SELECTION.
  CREATE DATA wa_ref TYPE (p_tab). "Datenreferenz erzeugen
  ASSIGN wa_ref->* TO <wa>.        "Dereferenzieren auf Struktur
  ASSIGN COMPONENT  p_fld
  OF STRUCTURE <wa> TO <feld>.     "Komponente in Struktur Feld zuweisen


  SELECT * FROM (p_tab) INTO <wa>. "Dyn. Select und Ausgabe
    WRITE: / <feld>.
  ENDSELECT.


Seite 1 von 1

Vergleichbare Themen

6
Antw.
2263
Views
Feldnamen "auslesen" + in 2. Tab. schreiben ?
von tommy1982 » 19.02.2005 00:51 • Verfasst in ABAP® Core
4
Antw.
2814
Views
Feldnamen in dynamischem Arbeitsbereich
von schmitzandreas » 19.07.2007 14:48 • Verfasst in ABAP® für Anfänger
1
Antw.
5014
Views
dynamische Feldnamen in einer wa
von d4n » 06.09.2011 17:03 • Verfasst in ABAP® für Anfänger
0
Antw.
1465
Views
Excel - Feldnamen exportieren
von Der_Sascha » 09.06.2008 11:08 • Verfasst in ABAP® für Anfänger
2
Antw.
1073
Views
Feldnamen in String schreiben
von teaman » 17.03.2021 16:07 • 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.

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
vor 2 Tagen von Bright4.5 1 / 740
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2364
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8948