Hallo cyb1982,
1.) Die Struktur kannst du sehr wohl über "TYPES" definieren - warum das nicht gehen sollte entschließt sich mir.
2.) Auch für eine "sorted table" würdest du entgegen deiner Behauptung den selben Syntaxfehler bekommen.
3.) Grund für den Syntaxfehler:
Das ist tatsächlich etwas tricky. du definierst dir die Zeilenstruktur deiner Tabelle mittels "DATA.....".
Wenn du jetzt auf diese Zeilenstruktur in deinem Programm referenzieren willst musst du dies via " ....LIKE ...." machen, da du mit DATA... eine Variable defniert hast.
Du hingegen verwendest im Coding die Version ".... TYPE ...". Somit versucht der Compiler eine gültige Typbeschreibung zu finden. Da du aber im Programm nichts selber definiert hast schaut der Compiler ins DDIC und findet dort die Struktur "LINE". Und diese hat nur ein einziges Feld welches auch LINE heißt.
Würdest du deine Hash-Tabelle statt "TYPE" mit "LIKE" definieren
Code: Alles auswählen.
DATA
tabelle LIKE HASHED TABLE OF line
WITH UNIQUE KEY name.
hättest du das Problem nicht mehr, weil der Compiler nun die im Coding definierte Variable "LINE" dem im DDIC definierten Typ "LINE", der leider auch via "LIKE" referenziert werden kann, vorzieht ( Programm überschattet DDIC ).