Dirty assign auf Feld in interner Tabelle mit Index

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

Dirty assign auf Feld in interner Tabelle mit Index

Beitrag von Romaniac (Specialist / 198 / 57 / 26 ) »
Hallo zusammen,

rein interessehalber:

warum funktioniert der Zugriff im Debugger in der Variablensicht (siehe Anhang) aber beim assign auf ein Feldsymbol nicht:

Code: Alles auswählen.

<lv_aennr> TYPE aennr.
ASSIGN ('(SAPLCSIO)AENNR_INPUT[1]-AENNR') TO <lv_aennr>.
Danke und Gruß,

Wolfgang
Geht nicht gibts nicht

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


Re: Dirty assign auf Feld in interner Tabelle mit Index

Beitrag von tm987456 (ForumUser / 72 / 42 / 14 ) »
Hallo

Für mich sieht das nach einer Tabelle aus. Assign also nur auf die Tabelle und dann die gewünschte Zeile lesen.

Gruss
tm

Re: Dirty assign auf Feld in interner Tabelle mit Index

Beitrag von DeathAndPain (Top Expert / 1797 / 214 / 396 ) »
Ich habe die Frage nicht verstanden. Was meinst Du mit "der Zugriff funktioniert"? Du kannst Dir im Debugger durchaus auch den Inhalt des Feldsymbols anschauen, freilich erst, wenn es zugewiesen worden ist.

Was nicht geht - und das finde ich sehr ärgerlich - ist das Setzen von Watchpoints auf Feldsymbole. Wenn Du über eine Tabelle mit 100.000 Einträgen loopst und an demjenigen interessiert bist, bei dem <zeile>-pernr = '00123456' gilt, dann musst Du Dir die Zeilennummer davon raussuchen und den Watchpoint auf SY-TABIX setzen (und wehe Dir, es gibt geschachtelte LOOPs, bei denen der gesuchte SY-TABIX auch auftreten kann). An dieser Stelle ist der ineffizientere LOOP INTO besser.

Re: Dirty assign auf Feld in interner Tabelle mit Index

Beitrag von black_adept (Top Expert / 3946 / 105 / 886 ) »
@Wolfgang:
F1-Hilfe zu ASSIGN anschauen.
Etwas versteckt sieht man, dass die Zuweisung von table-expressions erlaubt ist. ( d.h. ASSIGN table[ index ] ist erlaubt ). Aber bei den dynamischen Zuweisungen steht "name of a data object which may contain offsets and lengths, structure component selectors, and component selectors " aber eben nichts von table expressions 😢

P.S. Im Debugger ging das schon lange bevor es überhaupt die Table-expressions im ABAP gab...

Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag:
Romaniac

live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Dirty assign auf Feld in interner Tabelle mit Index

Beitrag von Romaniac (Specialist / 198 / 57 / 26 ) »
Aha... Danke schön.

Mit "Zugriff funktioniert" meinte ich dass die Variablenanzeige die den Inhalt des Tabellenfeldes anzeigt, der assign auf den selben Ausdruck bring dagegen sy-subrc 4.

Ich möchte nur in der CS03 die angeklickte Zeile mit der Änderungsnummer haben. Meine Lösung sieht natürlich so aus dass ich mir die Tabelle hole und dann auswerte, alles andere wäre zu gefährlich. Ist leider ein 7.31 System wo inline declaration nicht geht.

Code: Alles auswählen.

  assign ('(SAPLCSIO)AENNR_INPUT[]') to <lt_aennr_input>.
  if sy-subrc = 0.
    read table <lt_aennr_input> assigning <lw_aennr_input> index 1.
    if sy-subrc = 0.
      assign component 'AENNR' of structure <lw_aennr_input> to <lv_aennr>.
      if sy-subrc = 0.
        select single sernr_lo sernr_hi
          into (csci_stpo-zzsernr_lo, csci_stpo-zzsernr_hi)
          from aeef
          where aennr = <lv_aennr>.
      endif.
    endif.
  endif.
Danke und schönes Wochenende,

Gruß Wolfgang
Geht nicht gibts nicht

Re: Dirty assign auf Feld in interner Tabelle mit Index

Beitrag von gtoXX (Specialist / 185 / 34 / 31 ) »
Mal die Eckigen Klammern hier SAPLCSIO)AENNR_INPUT[] weggelassen ?
"Code lügt nicht ^^"

Seite 1 von 1

Vergleichbare Themen

0
Antw.
1451
Views
Dirty Assign
von allgrinder » 10.08.2015 11:14 • Verfasst in ABAP® für Anfänger
9
Antw.
5548
Views
Dirty Assign und danach Änderung
von FelixFICO » 11.03.2016 15:08 • Verfasst in ABAP® Core
3
Antw.
3646
Views
Dirty Assign auf Variablen einer Klasse
von jensschladitz » 17.01.2019 11:23 • Verfasst in ABAP® Core
7
Antw.
606
Views
AIF: Dirty assign in background funktioniert nicht?
von Romaniac » 02.01.2023 11:10 • Verfasst in ABAP® Core
0
Antw.
1026
Views
Numc-Feld in TableView: Trotz leerer interner Tabelle ...
von weberno » 28.07.2006 09:00 • Verfasst in ABAP® Core

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.