SAP Jobsuche bei DV-Treff


Suchen
MKA
  • MKA
  • SAP Forum - User Thema Starter
vor 11 Jahre
Hallo,

ich steige derzeit im ABAP ein (absoluter Neueinstieg) und habe dementsprechend auch sehr rudimentäre Fragen.

Meine erste Frage lautet: kann mir jemand (mit einfachen Worten, nicht die eines ABAP-erfahrenen Cracks) erklären, was eine Workarea ist und wozu sie dient?

Besten Dank im Voraus und noch eine schöne Woche!

MKA

ahelm
vor 11 Jahre
Hallo MKA,

eine Workarea ist eine Struktur, die gleich aufgebaut ist wie der Tabellentyp zur Aufnahme eines einzelnen Satzes. Entspricht einer STRUCT in C/C++ oder einem RECORD in Pascal.

mfg Helmi

wreichelt
vor 11 Jahre
Hallo,

Du defnierst eine Tabelle in der deine Daten abgelegt werden

und von Dir dort gepfelgt werden.

Dies ist dann Deine Workarea.

Gruß und viel Eerfolg mit ABAP

Wolfgang

MKA
  • MKA
  • SAP Forum - User Thema Starter
vor 11 Jahre
Hallo wreichelt,

danke vielmals!

Aber nochmals nachgefragt zum Verständnis:

genau das mache ich doch auch wenn ich eine interne Tabelle anlege? Ich lege eine Tabelle an in der meine Daten abgelegt werden und von mir dort gepflegt werden?

Wo ist dann der Unterschied zwischen beispielsweise

ITAB01 (interne Tabelle, Bsp aus "Discover ABAP") und WA-ITAB01 (Workarea)?

Und noch eine Frage:

was macht den Unterschied aus, ob ich in internen Tabellen eine Kopfzeile habe oder nicht?

Sorry für diese Fragen - und danke für die Geduld :-))

wreichelt
vor 11 Jahre
Hallo MKA,

ich kenne das Buch nicht und die Syntax, damit kann ich dir den Unterschied auch nicht erläutern.

Tabellen mit/ohne Kopfzeilen:

In ABAP Objects dürfen Tabllen nur ohne Kopfzeilen definiert werden.

Interne Tabellen dürfen in ABAP Objects nicht durch den Zusatz OCCURS in den Anweisungen TYPES und DATA (und den übrigen deklarativen Anweisungen) definiert werden.

Gruß

Wolfgang

ahelm
vor 11 Jahre
Hallo MKA,

du darfst die zwei Sachen nicht vermischen. Ich weiß nicht, ob du Erfahrung mit anderen Programmiersprachen hast. Wenn ja, hilft dir vielleicht das: Eine interne Tabelle ist ähnlich einem Array von Strukturen in anderen Programmiersprachen, eine Workarea ist eine Variable, die eine einzelne Zeile dieses Arrays aufnehmen kann.

Eine Kopfzeile ist eine implizite Workarea. Vielleicht hilft dir auch ein Beispiel, hier zuerst mit explizit deklarierter Workarea:


data:
  IT_VBAK type standard table of VBAK,
  WA_VBAK type VBAK.  " oder: like line of IT_VBAK

* Selektion der Daten
select * from VBAK into table IT_VBAK
  where ...

* Schleife über alle Einträge der Tabelle
loop at IT_VBAK into WA_VBAK.
*  der Code zwischen loop - endloop wird für jede Zeile
*  der Tabelle aufgerufen, die Werte der Zeile sind für
*  den Durchlauf in der Workarea WA_VBAK
endloop.

Mit einer Kopfzeile würde das Beispiel dann wie folgt aussehen:


data:
  IT_VBAK type standard table of VBAK with header line.

* Selektion der Daten
select * from VBAK into table IT_VBAK
  where ...

* Schleife über alle Einträge der Tabelle
loop at IT_VBAK.
*  der Code zwischen loop - endloop wird für jede Zeile
*  der Tabelle aufgerufen, die Werte der Zeile sind für
*  den Durchlauf in der Kopfzeile IT_VBAK
endloop.

Dabei bezeichnet IT_VBAK die Kopfzeile und IT_VBAK[] die Tabellendaten. Aber dies ist wie Wolfgang geschrieben hat von SAP so nicht mehr gewollt und daher in neuen Objektorientierten Programmen auch nicht mehr erlaubt.

mfg Helmi

MKA
  • MKA
  • SAP Forum - User Thema Starter
vor 11 Jahre
Klasse - sogar ich hab's verstanden - danke euch beiden!

😁