Da passiert überhaupt nichts, außer dass meine Variable erwartungsgemäß initialisiert wird.Mach mal ein "clear PB0001" und du weißt, warum der vor Verschattung warnt.
Er meint das sicherlich so, die Warnung wird angezeigt, obwohl es nur eine lokale Variable gibt.ralf.wenzel hat geschrieben: ↑09.10.2019 14:23Nur um deinen Fall zu verstehen: Du hast KEINE lokal deklarierte Tabelle gleichen Namens? Du selektierst also nur einen Satz?DeathAndPain hat geschrieben: ↑09.10.2019 12:38"Der Arbeitsbereich "PB0001" wird durch ein gleichnamiges lokales Datenobjekt (Parameter,Variable) verschattet."
PB0001 ist eine Tabelle, von der ich eine Zeile lese. Der Einfachheit halber mache ich das mit klassicher Syntax ohne INTO, also mit namensgleicher Variable (aber per DATA, nicht per TABLES deklariert). Daraufhin bekomme ich obenstehende nervige Warnung, die noch nicht mal inhaltlich stimmt, denn es gibt zu der Tabelle keinen TABLES-Befehl und keine globale Variable dieses Namens, sondern lediglich diese lokale Variable, die halt den Namen der Datenbanktabelle trägt (was in ABAP nicht verboten ist), so dass hier überhaupt nichts verschattet wird. Ein Pragma, um das zumindest auszublenden, gibt es auch nicht.
Code: Alles auswählen.
PERFORM test.
******************************
FORM test.
DATA pb0001 TYPE pb0001.
SELECT SINGLE * FROM pb0001.
ENDFORM.