Da es mit Ausnahme der Struktur SY keine eingebauten komplexen Datentypen in ABAP gibt, müssen komplexe Datentypen entweder programmlokal oder im ABAP-Dictionary definiert werden. Will man einen neuen programmlokalen komplexen Datentyp aus anderen Datentypen zusammensetzen, verwendet man die TYPES-Anweisung als eine Konstruktionsvorschrift.
Einerseits kann beim TYPE- oder LIKE-Bezug auf einen bekannten komplexen Typ der neue komplexe Typ nach Vorlage des bekannten Typs konstruiert werden. So wird z.B. beim Bezug auf die komplexen Dictionary-Typen Struktur oder Tabellentyp, die sich aus elementaren Datenelementen des Dictionarys zusammensetzen, der Aufbau aus dem Dictionary übernommen und die Datenelemente werden in elementare ABAP-Typen konvertiert.
Andererseits besteht mit der TYPES-Anweisung auch die Möglichkeit, dass neue strukturierte Typen oder Tabellentypen ohne Bezug auf bekannte Datentypen oder Datenobjekte definiert werden.