Tipos de dados complexos podem ser definidos para criar variáveis estruturadas (também chamados de estruturas). Declarações TYPES com as adições dos comandos BEGIN OF e END OF, criam tipos de variáveis estruturadas. Componentes de uma estrutura são referenciados usando um hífen, as estruturas podem ser aninhadas e podem ser copiadas da estrutura da variável A para a estrutura da variável B.
Sintaxe:
TYPES:
BEGIN OF nome_da_estrutura,
nome do campo TYPE type,
nome do campo TYPE type, […]
END OF nome_da_estrutura.
Exemplo:
Neste exemplo criamos uma simples estrutura de endereço:
Abap
*&---------------------------------------------------------------------*
*& Report ZESTRUTURAS
*&
*&---------------------------------------------------------------------*
*& Desenvolvimento Aberto
*& Estruturas
*&---------------------------------------------------------------------*
REPORT ZESTRUTURAS.
* Declarando uma estrutura
TYPES:
BEGIN OF endereco_struct,
endereco1 TYPE c LENGTH 60,
endereco2 TYPE c LENGTH 60,
bairro TYPE c LENGTH 50,
cidade TYPE c LENGTH 60,
estado TYPE c LENGTH 2,
cep TYPE n LENGTH 9,
END OF endereco_struct.
* Declarando variaveis para a estrutura
DATA postal TYPE endereco_struct.
postal-endereco1 = 'Avenida São João, 500'.
postal-endereco2 = 'Avenida Ipiranga, 458'.
postal-bairro = 'Centro'.
postal-cidade = 'São Paulo.'.
postal-estado = 'SP'.
postal-cep = 01035100.
WRITE : / postal-endereco1, / postal-endereco2, / postal-bairro, / postal-cep,
/ postal-cidade, / postal-estado.

