Alle Deklarationen in FORM Routinen ermitteln

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

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
34 Beiträge • Vorherige Seite 3 von 3 (current)
34 Beiträge Vorherige Seite 3 von 3 (current)

Re: Alle Deklarationen in FORM Routinen ermitteln

Beitrag von DeathAndPain (Top Expert / 1967 / 261 / 415 ) »
Mach mal ein "clear PB0001" und du weißt, warum der vor Verschattung warnt.
Da passiert überhaupt nichts, außer dass meine Variable erwartungsgemäß initialisiert wird.

Was hast Du erwartet, dass er die gleichnamige Datenbanktabelle leert?!? CLEAR kann überhaupt nur interne Felder leeren, und da gibt es nur eins, nämlich das, das ich per DATA definiert habe.

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


Re: Alle Deklarationen in FORM Routinen ermitteln

Beitrag von ralf.wenzel (Top Expert / 3946 / 201 / 281 ) »
Nur um deinen Fall zu verstehen: Du hast KEINE lokal deklarierte Tabelle gleichen Namens? Du selektierst also nur einen Satz?


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

Re: Alle Deklarationen in FORM Routinen ermitteln

Beitrag von Legxis (Specialist / 160 / 90 / 28 ) »
ralf.wenzel hat geschrieben:
09.10.2019 14:23
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.
Nur um deinen Fall zu verstehen: Du hast KEINE lokal deklarierte Tabelle gleichen Namens? Du selektierst also nur einen Satz?
Er meint das sicherlich so, die Warnung wird angezeigt, obwohl es nur eine lokale Variable gibt.

Code: Alles auswählen.

PERFORM test.

******************************

FORM test.

  DATA pb0001 TYPE pb0001.

  SELECT SINGLE * FROM pb0001.

ENDFORM.
( SAP ECC 6.0, NetWeaver 7.0, ohne unicode, ohne support/enhancement packages )

Re: Alle Deklarationen in FORM Routinen ermitteln

Beitrag von DeathAndPain (Top Expert / 1967 / 261 / 415 ) »
Ganz genau. Eine interne Tabelle, die genauso heißt wie die Datenbanktabelle, habe ich nicht angelegt. Das wäre sehr irreführend und verwirrend. Ich habe einfach nur wie in Lexgis' Codebeispiel zu sehen per DATA eine Workarea-Variable für den SELECT angelegt, die genauso heißt wie die Tabelle, so dass ich mir beim SELECT den INTO sparen kann.

Wahrscheinlich könnte ich die Meldung wegkriegen, indem ich TABLES anstelle von DATA verwende, aber der TABLES-Befehl beinhaltet noch mehr, was ich hier explizit nicht brauche, und die Warnung ist sachlich falsch.

Vergleichbare Themen

2
Antw.
1581
Views
Aufrufer (FORM) ermitteln
von RiffRaff » 13.06.2005 15:53 • Verfasst in ABAP® Core
0
Antw.
1636
Views
BW Routinen Bezeichung - Tabelle
von CryptForce » 15.05.2017 09:38 • Verfasst in Sonstige Module
4
Antw.
2624
Views
Textsymbole in Deklarationen
von SteJu » 02.06.2008 09:02 • Verfasst in ABAP® für Anfänger
17
Antw.
5121
Views
Grundsatzfrage: Deklarationen
von ralf.wenzel » 12.12.2013 21:51 • Verfasst in ABAP® Core
68
Antw.
16851
Views
Deklarationen: Tabellarisch oder nicht?
von ralf.wenzel » 28.03.2017 10:34 • Verfasst in ABAP® Core

Ü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

Aktuelle Forenbeiträge

DIN Norm Klassifizierung
vor 2 Tagen von Radinator 1 / 190
Anwenderdoku in SAP
vor 4 Tagen von ewx 10 / 860
Schlüssel erstellen ABAP
vor 5 Tagen von rob_abc 4 / 1122

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

DIN Norm Klassifizierung
vor 2 Tagen von Radinator 1 / 190
Anwenderdoku in SAP
vor 4 Tagen von ewx 10 / 860
Schlüssel erstellen ABAP
vor 5 Tagen von rob_abc 4 / 1122