type table of noch aktuell?


Getting started ... Alles für einen gelungenen Start.

Moderatoren: Jan, Steff

type table of noch aktuell?

Beitragvon Basler84 » 18.04.2012, 14:48

Hallo,

ich bin neu in Abap und wollte fragen ob die deklaration einer ineternen Tabelle so aktuell ist oder ob man das anderst machen sollte.

data it_lenum type table of /xxx/kri with header line.

LG
Basler84
ForumUser
 
Beiträge: 46
Registriert: 18.04.2012, 14:43
Dank erhalten: 0 mal
Ich bin: sonstiges

Sponsor

Alte ABAP-Entwicklerweisheit: Weißt du weder aus noch ein, baust du einen BADI ein

Re: type table of noch aktuell?

Beitragvon black_adept » 18.04.2012, 14:53

Kopfzeilen sind böse. --> anders machen
black_adept
Top Expert
 
Beiträge: 2016
Registriert: 08.01.2003, 13:33
Wohnort: Lehrte ( bei Hannover )
Dank erhalten: 205 mal
Ich bin: Freiberufler/in

Re: type table of noch aktuell?

Beitragvon Basler84 » 18.04.2012, 14:59

Was spricht gegen Kopfzeilen?
Basler84
ForumUser
 
Beiträge: 46
Registriert: 18.04.2012, 14:43
Dank erhalten: 0 mal
Ich bin: sonstiges

Re: type table of noch aktuell?

Beitragvon ewx » 18.04.2012, 15:01

Moderne ABAP-Programmierung / Horst Keller
ewx
Top Expert
 
Beiträge: 2903
Registriert: 04.08.2003, 19:55
Wohnort: Schleswig-Holstein
Dank erhalten: 123 mal

Re: type table of noch aktuell?

Beitragvon Basler84 » 18.04.2012, 15:05

O.k. vielen Dank euch beiden!
Basler84
ForumUser
 
Beiträge: 46
Registriert: 18.04.2012, 14:43
Dank erhalten: 0 mal
Ich bin: sonstiges

Re: type table of noch aktuell?

Beitragvon Alexander D. » 18.04.2012, 16:27

der Grund auf diese Anweisung zu verzichten ist, dass hierbei zwei gleichnamige Objekte angelegt werden zwischen denen man dann schwer unterscheiden kann. Siehe dazu auch
http://help.sap.com/saphelp_470/helpdat ... ontent.htm

Der optionale Zusatz WITH HEADER LINE deklariert zusätzlich zur eigentlichen internen Tabelle ein gleichnamiges Datenobjekt, das den Zeilentyp der internen Tabelle übernimmt.
...
Um Tabelle und Arbeitsbereich unterscheidbar zu machen, sollten deshalb interne Tabellen möglichst ohne Kopfzeilen angelegt werden.
schöne Grüße
Alexander
Alexander D.
Expert
 
Beiträge: 648
Registriert: 17.02.2006, 11:28
Wohnort: Bockenem
Dank erhalten: 79 mal
Ich bin: Entwickler/in

Re: type table of noch aktuell?

Beitragvon ratsnus » 19.04.2012, 06:41

kommt schon, es ist auch nicht falsch eben nur unschön. ich ab hier noch einige alte Sachen im System die ihren Dienst hervorragend verrichten wo auch mit with header line deklariert wurde. Meine Meinung : "Nicht der Weg ist das Ziel", aber das soll jeder handhaben wie er möchte. :D
<:: XING-Gruppe Tricktresor::>
ratsnus
Specialist
 
Beiträge: 317
Registriert: 01.05.2009, 12:45
Dank erhalten: 43 mal

Re: type table of noch aktuell?

Beitragvon Alexander D. » 19.04.2012, 07:32

es hat ja auch keiner behauptet, dass es falsch ist. Die Anweisung WITH HEADER LINE ist früher sicherlich oft und gern verwendet worden. In Programmen die für uns vor 10 Jahren von Beratern geschrieben wurden stosse ich ständig drauf und bei manchen meiner Kollegen ist es so in Fleisch und Blut übergegangen, dass sie ihre Programme immer noch so schreiben. Wenn hier aber einer fragt, ob diese Vorgehensweise immer noch aktuell ist, so ist die Anwort definitiv "nein"!
schöne Grüße
Alexander
Alexander D.
Expert
 
Beiträge: 648
Registriert: 17.02.2006, 11:28
Wohnort: Bockenem
Dank erhalten: 79 mal
Ich bin: Entwickler/in

Re: type table of noch aktuell?

Beitragvon a-dead-trousers » 19.04.2012, 07:44

<Klugscheissermodus>
Code: Alles auswählen
... type standard table of ... with default key.

Das wäre die korrekte und vollständige Definition einer Tabelle => Tabellenart + Schlüssel
Alles andere ergibt eine sog. generische Tabelle die z.b. nicht als Rückgabewert in ABAP-OO verwendet werden kann. Und WITH HEADER LINE ist in ABAP-OO sowieso nicht mehr erlaubt.
</Klugscheissermodus>

lg ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.05
Basis: 7.02
a-dead-trousers
Top Expert
 
Beiträge: 1816
Registriert: 07.02.2011, 13:40
Dank erhalten: 362 mal
Ich bin: Entwickler/in

Re: type table of noch aktuell?

Beitragvon Basler84 » 23.04.2012, 11:12

Nochmal eine Frage zum THema Kopfzeile. Wenn Kopfzeilen nicht mehr verwendet werden sollen ist der Befehl move-corresponding auch nicht mehr zu gebrauchen oder?
Basler84
ForumUser
 
Beiträge: 46
Registriert: 18.04.2012, 14:43
Dank erhalten: 0 mal
Ich bin: sonstiges

Re: type table of noch aktuell?

Beitragvon Alexander D. » 23.04.2012, 11:23

naja, Du kannst ja auch aus einem Workarea in einen anderen Workarea MOVE-CORRESPONDen, ich persönlich versuche den Befehl nicht anzuwenden, weil hier meiner Meinung nach die Übersichtlichkeit verloren geht. Zumindest in dem Fall, wenn nur einige Felder aus dem Workarea bewegt werden sollen. Die Zuweisung einzelner Felder dauert beim Schreiben zwei Minuten länger, lässt sich aber später deutlich besser nachzuvollziehen.
schöne Grüße
Alexander
Alexander D.
Expert
 
Beiträge: 648
Registriert: 17.02.2006, 11:28
Wohnort: Bockenem
Dank erhalten: 79 mal
Ich bin: Entwickler/in

Re: type table of noch aktuell?

Beitragvon black_adept » 23.04.2012, 14:25

Hallo Basler84,

gegen move-corresponding ist nichts einzuwenden. Im Gegensatz zu Alexander verwende ich das alle Nase lang, weil es meiner Meinung anch die Übersichtlichkeit erhöht. Und gerade wenn man mit dynamischen Strukturen arbeitet kann einem ein gezielt eingesetztes move-corresponding die Arbeit deutlich erleichtern.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de
black_adept
Top Expert
 
Beiträge: 2016
Registriert: 08.01.2003, 13:33
Wohnort: Lehrte ( bei Hannover )
Dank erhalten: 205 mal
Ich bin: Freiberufler/in

Re: type table of noch aktuell?

Beitragvon Alexander D. » 23.04.2012, 14:45

ich hatte mal ein Programm, welches von einem Berater geschreiben wurde. Ich durfte es mal debuggen und nach einem Fehler suchen, der Aufbau war aber so in der Art:

Code: Alles auswählen
select * from mara where...
move-corresponding mara to wa_itab.

select * from marc where...
move-corresponding marc to wa_itab.

select * from lqua where...
move-corresponding lqua to wa_itab.

insert wa_itab into table gt_itab.
 


dabei haben der zweite und der dritte MOVE-CORRESPONDING zum Teil die Werte des ersten überschrieben. In einem Fall hat sich dabei der Wert in einem Feld geändert, was so nicht beabsichtigt war. Weiterhin sollten aus jeder Tabelle nur einige Felder abgegriffen werden, hier ist der Programmierer wahrscheinlich nur zu faul gewesen die Felder einzeln aufzuführen. Falls eine komplette Struktur bewegt werden soll, so ist der Befehl sicherlich ganz hilfreich.

Bzgl. der Aussage zu Performance-Einbußen gibt es einen Beitrag im SDN der das widerlegt: http://www.sdn.sap.com/irj/scn/go/porta ... 6738185608
Zuletzt geändert von Alexander D. am 24.04.2012, 07:25, insgesamt 1-mal geändert.
schöne Grüße
Alexander
Alexander D.
Expert
 
Beiträge: 648
Registriert: 17.02.2006, 11:28
Wohnort: Bockenem
Dank erhalten: 79 mal
Ich bin: Entwickler/in

Re: type table of noch aktuell?

Beitragvon black_adept » 23.04.2012, 17:24

Alexander D. hat geschrieben:...ich hatte mal ein Programm...

Hallo Alexander,

nahezu jeder Befehl kann sinnvoll oder suboptimal verwendet werden. Das von dir gepostete Beispiel war wohl letzterer Fall. Aber mir ist sonst keine Möglichkeit bekannt namensgleiche Felder von einer Struktur in eine anderer zu schaufeln, es sei denn ich verwende die RTTI-Klassen. Und da scheint mir eine im Kernel implementierte Möglichkeit stets die bessere Wahl zu sein.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de
black_adept
Top Expert
 
Beiträge: 2016
Registriert: 08.01.2003, 13:33
Wohnort: Lehrte ( bei Hannover )
Dank erhalten: 205 mal
Ich bin: Freiberufler/in

Re: type table of noch aktuell?

Beitragvon ewx » 23.04.2012, 17:32

Eeeeeeeeeeeexakt, black_adept.
MOVE-Corresponding kann allerdings auch per Entwicklungsrichtlinie verboten sein.
Ich nehme ebenfalls lieber separate MOVES da sie deutlicher sind.
Das ist dann im Grunde bereits eine Art "inline documentation"... :)
Interessant zum Thema "Mapping": Transaktion BDBS
http://tricktresor.de/content/index.php?navID=17&aID=40
Für EIN Programm sicherlich etwas überkanditelt, aber für ein häufig benötigtes MOVE-CORRESPONDING zwischen verschiedenen Strukturen vielleicht ganz interessant...
ewx
Top Expert
 
Beiträge: 2903
Registriert: 04.08.2003, 19:55
Wohnort: Schleswig-Holstein
Dank erhalten: 123 mal

Nächste

Zurück zu ABAP® für Anfänger

  Aktuelle Beiträge   
FUBA READ_TEXT
vor 14 Stunden von ralf.wenzel 1 Antw.
gelöst Löschen aus interner Tabelle
Gestern von Beginner014 14 Antw.
gelöst Funktionstasten im ALV Grid
vor 2 Tagen von a-dead-trousers 1 Antw.
VPN-Verbindungsprobleme mit SAPGUI
Gestern von ewx 8 Antw.
F1-Hilfe funktioniert nicht
Gestern von Dele 5 Antw.

  Ähnliche Beiträge beta
ALV: Nach Zwischensumme noch mal rechnen!
14.04.2005, 16:29 von Gast 2 Antw.
kann jemand den SAP online help noch zugreifen?
18.04.2004, 21:30 von Gast 2 Antw.
Was war noch zu beachten bei zwei TCs auf einem Dynpro?
21.07.2005, 09:35 von Nordlicht 3 Antw.
ALV-Grid Kurzdump: "Feldsymbol ist noch nicht zugewies
06.07.2005, 14:10 von RiffRaff 10 Antw.
Das Paket kann nicht gelöscht werden, da noch Objekte
10.04.2014, 11:21 von a-dead-trousers 10 Antw.

 

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder

Feedback ...?

Was können wir verbessern? Hinterlasse deine Kontaktdaten, wenn du eine direkte Antwort möchtest.

... Absenden!