# ABAP

ABAP (Advanced Business Application Programming) é uma linguagem de programação de alto nível desenvolvida pela empresa de software SAP. É a principal linguagem utilizada no produto mais conhecido desta empresa, o SAP R/3, um software ERP. O ABAP tem uma sintaxe semelhante ao COBOL.

## História

O ABAP é uma linguagem de programação dentro da categoria das Linguagem de programação de quarta geração desenvolvidas nos anos 80. Foi originalmente concebida como uma linguagem para construção de relatórios para o SAP R/2 (o significado original de ABAP é Allgemeiner Berichts Aufbereitungs Prozessor, que em alemão significa processador genérico para preparação de relatórios). O objectivo original da linguagem era ser uma ferramenta de programação suficientemente simples para ser usada pelos utilizadores finais. No entanto, o ABAP é uma linguagem que necessita de conhecimentos avançados de programação e é principalmente utilizada pelos programadores da SAP que desenvolvem o software e por consultores informáticos que adaptam o software às necessidades dos clientes.
O ABAP é a principal linguagem utilizada no software cliente-servidor SAP R/3. Em 1999, com a versão R/3 4.5, a SAP lançou uma versão de ABAP que suporta programação orientada a objetos.
A versão mais recente da plataforma de desenvolvimento da SAP, o NetWeaver, suporta programação em ABAP e em Java.

## Onde são executados os programas ABAP

Todos os programas de ABAP residem dentro da base de dados do SAP. Não são armazenados em arquivos separados como programas de Java ou de C++. Na base de dados todo o código de ABAP existe em dois formulários: código fonte, que pode ser visto e editado com as ferramentas da ABAP(workbench), e o código gerado, uma representação binária comparável com um bytecode do Java. Os programas de ABAP são executados sob um sistema de runtime, que é parte do núcleo SAP. O sistema de runtime é responsável para processar indicações de ABAP, controla a lógica do fluxo das telas e de responder pelos eventos (tais como um usuário que clica em uma tecla). Um componente chave do sistema de runtime em ABAP é a relação com base de dados, que converte indicações da base de dados independentes de ABAP (open SQL) nas indicações compreendidas pelo DBMS subjacente (Native SQL). A interface com a base de dados contém funcionalidades extra tais como a proteção de dados freqüentemente alcançados na memória local do servidor de aplicações. SAP tem três camadas diferentes: a camada de apresentação (GUI), a camada de aplicação (onde são executados os programas) e a camada onde todos os dados são armazenados e recuperados das condições conduzidas aos usuários finais e programadores através dos níveis de programação.

## Exemplo

O programa seguinte pesquisa a tabela que guarda os nomes dos países e mostra na tela os códigos e nomes dos países em português.
* A tabela T_T005T guardará os nomes dos países
* Retira da base de dados os nomes dos países em português e os insere na tabela interna T_T005T
* Ordena a tabela interna T_T005T pelo campo LAND1
* Mostra na tela os códigos e nomes dos países.
* Verifica se voltou resultado no SELECT
* Mensagem de sucesso
* Mensagem de Erro

## Tipos

* A tabela T_T005T guardará os nomes dos países, com uma área adicional de transferência denominada "Header Line"
Alternativa ao comando anterior: usar "Header Line" já é obsoleto, hoje prefere-se o seguinte processo: cria-se um tipo e, a partir do tipo, cria-se uma WORK-AREA e uma tabela interna EX:
* Tipo Y_T005T
* Work-area e Tabela interna
* Retira da base de dados os nomes dos países em português e os insere na tabela interna T_T005T
* Ordena a tabela interna T_T005T pelo campo LAND1.
* Mostra na tela os códigos e nomes dos países.
* Verifica se voltou resultado no SELECT
* Mensagem de sucesso
* Mensagem de Erro