ASSIGN-Probleme

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

ASSIGN-Probleme

Beitrag von ralf.wenzel (Top Expert / 3935 / 200 / 281 ) »
Moin moin,

ich verzweifele gerade an folgendem ASSIGN:

Code: Alles auswählen.

  DATA: BEGIN OF ls_fliste,
          type  TYPE irgendas_kundeneigenes,
          fname TYPE fieldname,
        END OF ls_fliste,
        lt_fliste LIKE TABLE OF ls_fliste.

  FIELD-SYMBOLS: <fname>." TYPE fieldname.

  LOOP AT it_tabelle.  "Hist. bedingt: Mit Kopfzeile
    LOOP AT lt_fliste INTO ls_fliste
    WHERE typ = '5'. "angenommener Feldinhalt 'MATNR'
      concatenate 'IT_TABELLE-' ls-fliste-fname into ls_fliste-fname. 
                 "Führt zum Feldinhalt 'IT_TABELLE-MATNR'
      ASSIGN table field (ls_fliste-fname) TO <fname>.  "sy-subrc = 4
      CLEAR <fname>. "Feld IT_TABELLE-MATNR soll gelöscht werden
     "(....)
    ENDLOOP.
  ENDLOOP
Bewirken soll er Folgendes: Er soll in der itab lt_fliste alle Sätze durchlaufen. Sie enthalten Feldnamen (z. B. 'MATNR') der Struktur ls_tabelle, die unter bestimmten Bedingungen gelöscht werden sollen (z.B. Feld 'MATNR' soll gelöscht werden).

Im realen Leben sind die betroffenen Felder Komponenten einer itab, die per Loop durchlaufen wird. Bedauerlicherweise schließt der ASSIGN mit sy-subrc 4 ab. Ich denke, es liegt an Übermüdung, dass ich den Fehler nicht sehe.


Danke


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

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


Beitrag von HelmutB (ForumUser / 21 / 0 / 0 ) »
Hallo Ralf,

wieso ASSIGN TABLE FIELD ? Ich würde ASSIGN verwenden, dann sollte es gehen.

MfG
Helmut

Beitrag von uh (Specialist / 158 / 0 / 1 ) »
Hi Ralf,

ich sehe das so wie Helmut. Kleines Zitat aus der Hilfe:
Dieser Zusatz schränkt den Suchbereich, in dem nach dem in (name) angegebenen Datenobjekt gesucht wird (siehe unten), auf die mit TABLES deklarierten Schnittstellen-Arbeitsbereiche der aktuellen Programmgruppe ein.

Beitrag von ralf.wenzel (Top Expert / 3935 / 200 / 281 ) »
HelmutB hat geschrieben:wieso ASSIGN TABLE FIELD ? Ich würde ASSIGN verwenden, dann sollte es gehen.
Ich bin ein Oberpenner. Danke schön. Ich verspreche auch, wieder mehr zu schlafen, wenn das Projekt vorbei ist ;)


Ralf *dankt ganz lieb
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Beitrag von DeathGuardian (Expert / 759 / 0 / 3 ) »
Und wieso nicht einfach

Code: Alles auswählen.

ASSIGN COMPONENT 'MATNR' OF STRUCTURE 'IT_TABELLE' TO <fname>.

Beitrag von ralf.wenzel (Top Expert / 3935 / 200 / 281 ) »
DeathGuardian hat geschrieben:Und wieso nicht einfach

Code: Alles auswählen.

ASSIGN COMPONENT 'MATNR' OF STRUCTURE 'IT_TABELLE' TO <fname>.
Weil die Feldnamen in der ITAB stehen. Es geht ja nicht darum, das Feld MATNR zu löschen, sondern 20 Felder, die in einer Customizingtabelle zum Löschen eingetragen werden ;)


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Beitrag von JHM (Top Expert / 1197 / 1 / 197 ) »
ralf.wenzel hat geschrieben:Weil die Feldnamen in der ITAB stehen. Es geht ja nicht darum, das Feld MATNR zu löschen, sondern 20 Felder, die in einer Customizingtabelle zum Löschen eingetragen werden ;)
Dann ist der Vorschlag von DeathGuardian doch immer noch gut und Perfomanter, weil das Conactenate wegfällt, mit einer Constante für den Tabellennamen wird es zudem besser wartbar:

Code: Alles auswählen.

CONSTANTS c_tabname TYPE c LENGTH 25 VALUE 'IT_TABELLE' .

LOOP AT it_tabelle.
  LOOP AT lt_fliste INTO ls_fliste. "WHERE nach belieben
    ASSIGN (ls_fliste-fname) OF STRUCTURE c_tabname TO <fname>.
    CLEAR <fname>.
  ENDLOOP.
ENDLOOP.
Gruß Hendrik

Seite 1 von 1

Vergleichbare Themen

13
Antw.
4611
Views
Assign
von robin1at » 10.04.2006 10:42 • Verfasst in ABAP® für Anfänger
0
Antw.
1650
Views
Dirty Assign
von allgrinder » 10.08.2015 11:14 • Verfasst in ABAP® für Anfänger
8
Antw.
2784
Views
ASSIGN ref->* TO fs_name.
von Svenson » 05.08.2005 11:42 • Verfasst in ABAP® Core
2
Antw.
1530
Views
Problem mit Assign
von Svenson » 13.07.2006 19:03 • Verfasst in ABAP® Core
0
Antw.
1004
Views
Assign und Feldsymbole
von kleiner SAPler » 20.06.2006 07:53 • Verfasst in ABAP® Core

Aktuelle Forenbeiträge

Regex in where
Gestern von tar 8 / 382
Daten an Tabelle binden
vor 2 Tagen von Bright4.5 3 / 1645
Programm anlegen mit Vorlage
vor 3 Tagen von DeathAndPain 2 / 299
IT0024 Qualifikationen CP-ID
vor 3 Tagen von DeathAndPain 2 / 540

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

Regex in where
Gestern von tar 8 / 382
Daten an Tabelle binden
vor 2 Tagen von Bright4.5 3 / 1645
Programm anlegen mit Vorlage
vor 3 Tagen von DeathAndPain 2 / 299
IT0024 Qualifikationen CP-ID
vor 3 Tagen von DeathAndPain 2 / 540

Unbeantwortete Forenbeiträge

BUSOBJEKT zu CMIS PHIO ermitteln
vor 3 Tagen von snooga87 1 / 232
aRFC im OO-Kontext
letzen Monat von ralf.wenzel 1 / 3415
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9963