SAP Jobsuche bei DV-Treff
dello
  • dello
  • SAP Forum - Experte Thema Starter
vor 20 Jahre
Hallo,

vielleicht kann mir einer von den alten Hasen oder Häsinnen hier mal helfen. Bei meinen ersten Programmierversuchen stolpere ich immer wieder über TYPE und LIKE und komme mit der Hilfe und der Schlüsselwortdoku nicht so richtig klar. Das ist dermaßen komplex, das ich es vielleicht besser in einer einfacheren Version vielleicht mit Beispiel verstehen würde. Ich habe mal den Hauptinhalt rausgezogen un dhoffe nun, einer von Euch kann mir das mal einfach erläutern:

TYPE ist das einzige Konstrukt, das einen Bezug auf ein DATENYP erlaubt. LIKE ist nur für DATENOBJEKTE vorgesehen. TYPEN sind reine Beschreibungen und  belegen keinen Speicherplatz, OBJEKTE sind Instanzen von TYPEN und belegen Speicher. Ein TYP charakterisiert die technischen Eigenschaften aller OBJEKTE des betreffenden TYPS.  Die DATENTYPEN unterteilen sich nochmal in Datentypen und Objekttypen, Datentypen dienen der Beschreibung von Datenobjekten (gehören zu den Objekten bzw. Datenobjekten) - Datentypen unterteilen sich nochmals in elementare, Referenz- und komplexe Datentypen, es gibt auch vordefinierte (eingebaute) Datentypen - Datentypen können aber auch im Repository (systemweit) oder lokal im Programm definiert werden. Die OBJEKTYTPEN, welche zu den DATENTYPEN zählen, dienen der Beschreibung von OBJEKTEN in ABAP OBJECTS (objektorientierte Spracherweiterung von ABAP)  - diese unterteilen sich in Interfaces (beschreiben einen Teilaspekt eines Objekts) und Klassen (definieren ein Objekt vollständig, definieren welche Datentypen und welche Funktionalität ein Objekt enthält). OBJEKTTYPEN enthalten DATENTYPEN aber auch Funktionalität. OBJEKTTYPEN sind nicht eingebaut, sondern müssen im Programm oder Repository definiert werden.  OBJEKTE als Instanzen von ABAP Typen teilen sich in DATENOBJEKTE und OBJEKTE. DATENOBJEKTE sind FELDER im eigentlichen Sinne mit programmlokalen Daten mit denen ein Programm zur Laufzeit arbeitet. OBJEKTE sind echte Software Objekte in ABAP OBJECTS und unterstützen die objektorientierte Programmierung in dem sie außer Daten auch Methoden und Ereignisse enthalten.
mit TYPE datatype wird der Datentyp datatype direkt angesprochen mit LIKE dataobject wird der Typ, den das Datenobjekt dataObject hat indirekt referiert.

Danke
dello
ypsilon
vor 19 Jahre
HI,

also:

like benutzt Du, wenn Du eine Variable erstellen willst, die so sein soll, wie ein Feld in einer Tabelle.

Z.B. willst Du die MATNR(18stellig in der Tabelle mara) in einer lokale Variable ablegen, dann schreibst Du:

DATA: l_matnr like mara-matnr.

--> die l_matnr ist die lokale Materialnummer(nur innerhalb des ABAP-Programmes gültig).
--> die mara-matnr ist das Feld matnr in der Tabelle mara.


Mit Type kannst Du einen Datentypen zuweisen.

z.B. Du brauchst eine Zählervariable 3stellig vom Typ Character

DATA: l_zähler(3) type c.

--> l_zähler ist die lokale Variable, die Du anlegen möchtest.
--> Länge dieser Variable soll 3 sein: also (3)
--> der Datentyp soll Character sein: also type c.

Ich hoffe, dass Dir dies weiterhilft.

Gruß
ypsilon
zieli1
vor 19 Jahre
Hallo Delle!


Das ist eigentlich nicht so schwierig  ;)

Mit LIKE beziehst du dich bei der Datendeklaration auf alles was bereits im Dictionary deffiniert ist.

TYPE verwendest du wenn es nicht der Fall ist und einen teigenen typ definieren willst

lg

zieli1
Matador
vor 19 Jahre
Also in den SAP-ABAP Kursen heisst es offiziell:

TYPE = Wenn du dich auf einen Typ des DDic beziehst.

LIKE = Wenn du den Typ eines bestehenden Objektes als Bezug nehmen möchtest. (Beispielsweise hast du schon eine Variable mit TYPE definiert und möchtest noch eine Variable mit dem Typ der bereits erstellten Variable erstellen.) (Objekt ist hier nicht im Sinne der Objektorientierung gemeint !)