Eckige Klammer in ABAP?

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

Getting started ... Alles für einen gelungenen Start.
9 Beiträge • Seite 1 von 1
9 Beiträge Seite 1 von 1

Eckige Klammer in ABAP?

Beitrag von Miss (ForumUser / 18 / 0 / 0 ) »
Hallo,

1. Was bedeutet eigentlich die eckige Klammer hier.
IF gt_buchliste[] IS NOT INITIAL.
Select....

merci

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


Re: Eckige Klammer in ABAP?

Beitrag von Pyro (Specialist / 121 / 14 / 18 ) »
Hey,

1.?:D

Also zwei sachen dazu:

Und zweitens werden diese eckigen Klammern bei Tabellen mit Kopfzeilen (meines Wissens nach eigentlich obsolet/ungern gesehen) verwendet, um auf den Tabellenbody zuzugreifen. Also gt_buchliste greift auf die integrierte Kopfzeile zu, gt_buchliste[] dagegen auf den Body (die eigentliche interne tabelle) mit den ganzen Daten
;)

Gruß
pyro

Re: Eckige Klammer in ABAP?

Beitrag von jensschladitz (Specialist / 417 / 0 / 56 ) »
Sali,

ist egal wie die interne Tabelle definiert ist - mit oder ohne Kopfzeile - es wird geprüft ob die interne Tabelle Einträge hat - würde der Anweisung -> if Lines( gt_buchliste ) > 0 oder describe table gt_buchliste lines gv_lines - entsprechen und kann z.Bsp. verwendet werden wenn man z.Bsp. Daten nur Ausgeben will, wenn die interne Tabelle gefüllt ist - oder wie hier - wenn die interne Tabelle nicht gefüllt ist - dann werden die Daten von der DB in die interne Tabelle selektiert

Gruss
thanks Jens

Re: Eckige Klammer in ABAP?

Beitrag von Pyro (Specialist / 121 / 14 / 18 ) »
jensschladitz hat geschrieben:Sali,

ist egal wie die interne Tabelle definiert ist - mit oder ohne Kopfzeile
Theoretisch schon, ja, ich hab aber lieber das Bsp. hier genommen, da man bei itabs ohne Kopfzeile keinen Unterschied zwischen gt_xxx und gt_xxx[] hat.

Re: Eckige Klammer in ABAP?

Beitrag von Miss (ForumUser / 18 / 0 / 0 ) »
Danke euch ..

Re: Eckige Klammer in ABAP?

Beitrag von ralf.wenzel (Top Expert / 3935 / 200 / 281 ) »
Miss hat geschrieben:Hallo,

1. Was bedeutet eigentlich die eckige Klammer hier.
IF gt_buchliste[] IS NOT INITIAL.
Select....

merci
Dass der verantwortliche Programmierer eine ABAP-Schulung braucht *fg Das hat man zu Zeiten gemacht, als man noch Tabellen "with header line" deklariert hat und header line und Tabellenkörper nicht anders unterscheiden konnte. Das ist lange (sehr lange!) obsolet und Work Areas braucht eh kein Mensch (weil man viel besser mit Feldsymbolen oder Referenzen arbeiten kann
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Eckige Klammer in ABAP?

Beitrag von Frank Dittrich (Expert / 674 / 0 / 15 ) »
ralf.wenzel hat geschrieben:
Miss hat geschrieben:Hallo,

1. Was bedeutet eigentlich die eckige Klammer hier.
IF gt_buchliste[] IS NOT INITIAL.
Select....

merci
Dass der verantwortliche Programmierer eine ABAP-Schulung braucht *fg Das hat man zu Zeiten gemacht, als man noch Tabellen "with header line" deklariert hat und header line und Tabellenkörper nicht anders unterscheiden konnte. Das ist lange (sehr lange!) obsolet und Work Areas braucht eh kein Mensch (weil man viel besser mit Feldsymbolen oder Referenzen arbeiten kann

Nicht wirklich.Der Code könnte auch schon uralt sein.

Es kann auch Gründe geben, itabs mit Kopfzeile zu benutzen.
SELECT-OPTIONS sind z.B. immer itabs mit Kopfzeile.
Auch an einen RFC-Funktionsbaustein per TABLES-Parameter übergebene itab hat eine Kopfzeile (und bei RFC-Aufruf würde eine Übergabe einer itab als EXPORTING- oder CHANGING-Parameter Performance-Nachteile haben.)
Außerdem könnte es ein Nicht-RFC-Funktionsbaustein sein, dessen Schnittstelle aber von SAP oder von einem AddOn-Anbieter vorgegeben ist, und dessen Name aus einer Customizing-Tabelle gelesen wird.

Zweitens kann man, wie schon von anderen erwähnt, auch itab[] schreiben, wenn man itabs ohne Kopfzeile verwendet.
Ich mache das auch oft. Insbesondere in einem Umfeld, in dem andere Entwickler noch itabs mit Kopfzeilen verwenden.

Einerseits sieht man schon an dieser einen Anweisung, dass hier ein itab-Body geprüft wird.Zweitens hat man damit eine minimale Absicherung gegen Fehler, die entstehen, wenn ein nachfolgender Entwickler meint, die Definition der itab in eine itab mit Kopfzeile zu ändern, weil er beim LOOP das INTO ... oder ASSIGNING ... "sparen" will. (Nicht dass man sich gegen alle Programmierfehler absichern könnte, aber wenn es so einfach geht wie hier...)

Und außerdem ist itab[] immer noch besser als itab-*sys*, was man nich gelegentlich noch findet und ein nicht wirklich dokumentiertes Feature war, um vor SAP-Release 3.0 den itab-Body anzusprechen.
Seit 3.0 gibt es m.E. die Syntax itab[].

Frank

Re: Eckige Klammer in ABAP?

Beitrag von jensschladitz (Specialist / 417 / 0 / 56 ) »
Sali,

nun also ich finde die Anweisung echt nicht so überholt - wie auch andere schon angemerkt - denn ob ich nun schreibe if lines( gt_buchliste ) = 0 oder if gt_buchliste[] is initial - um einfach nur zu prüfen ob bereits schon etwas in der Tabelle drin steht - das Ergebnis der "Frage" ist doch hierbei entscheidend und die ist in beiden Fällen halt - ja Tabelle gt_buchliste ist leer - also bitte selektiere die Daten :D
Ich persönloch mache dies auch öfters so und ich benutze schon seit sehr, sehr langer Zeit keine Tabellen mit Kopfzeilen mehr (wenn ich es verhindern kann - denn wie auch angemerkt - nicht immer geht das - dank der Geschichte von SAP / ABAP ).
Schönen Tag und sonnige Ostern allen 8)

Gruss
thanks Jens

Re: Eckige Klammer in ABAP?

Beitrag von Miss (ForumUser / 18 / 0 / 0 ) »
Ich danke allen Beteiligten die mich jetzt über die Bedeutung und Funktion dieser Klammern informiert und aufgeklärt haben, aber als Neuling ist das zu viel Input :), deswegen danke ich Jens wo er einen klaren Fazit gezogen...Merci..

Seite 1 von 1

Vergleichbare Themen

1
Antw.
2310
Views
Eckige Klammern ersetzen
von EnginT » 16.04.2020 14:24 • Verfasst in ABAP® für Anfänger
20
Antw.
8415
Views
eckige Klammern bei Tabellenkörpern und mehr...
von babap » 05.09.2008 17:14 • Verfasst in ABAP® Core
5
Antw.
11312
Views
Kundeneigene ABAP-Muster Vorlage im ABAP-Editor anlegen
von Stentor » 19.07.2005 11:10 • Verfasst in Basis
2
Antw.
3868
Views
ABAP Objects oder ABAP Referenz
von Gast » 23.06.2005 15:52 • Verfasst in ABAP® für Anfänger
3
Antw.
17373
Views
ABAP 7.02 - Neues Feature - Pragmas in ABAP
von foessleitnerj » 09.01.2013 17:02 • Verfasst in Tips + Tricks & FAQs

Ü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

Regex in where
vor 13 Stunden von tar 8 / 317
Daten an Tabelle binden
Gestern von Bright4.5 3 / 1597
Programm anlegen mit Vorlage
vor 2 Tagen von DeathAndPain 2 / 246
IT0024 Qualifikationen CP-ID
vor 2 Tagen von DeathAndPain 2 / 486

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
vor 13 Stunden von tar 8 / 317
Daten an Tabelle binden
Gestern von Bright4.5 3 / 1597
Programm anlegen mit Vorlage
vor 2 Tagen von DeathAndPain 2 / 246
IT0024 Qualifikationen CP-ID
vor 2 Tagen von DeathAndPain 2 / 486

Unbeantwortete Forenbeiträge

BUSOBJEKT zu CMIS PHIO ermitteln
vor 2 Tagen von snooga87 1 / 184
aRFC im OO-Kontext
letzen Monat von ralf.wenzel 1 / 3364
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9916