ABAP
![](http://upload.wikimedia.org/wikipedia/commons/thumb/4/4a/Disambig_grey.svg/20px-Disambig_grey.svg.png)
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.[1]
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
DATA: BEGIN OF T_T005T occurs LAND1 TYPE T005T-LAND1, LANDX TYPE T005T-LANDX, END OF T_T005T.
- Retira da base de dados os nomes dos países em português e os insere na tabela interna T_T005T
SELECT LAND1 LANDX FROM T005T INTO TABLE T_T005T WHERE SPRAS = 'P'.
- Ordena a tabela interna T_T005T pelo campo LAND1
SORT T_T005T BY LAND1.
- Mostra na tela os códigos e nomes dos países.
LOOP AT T_T005T. WRITE: /05 T_T005T-LAND1, 09 T_T005T-LANDX. ENDLOOP.
- Verifica se voltou resultado no SELECT
IF sy-subrc IS INITIAL.
- Mensagem de sucesso
MESSAGE s001. ELSE.
- Mensagem de Erro
MESSAGE e002. ENDIF.
Tipos
- A tabela T_T005T guardará os nomes dos países, com uma área adicional de transferência denominada "Header Line"
DATA: BEGIN OF T_T005T occurs 0, LAND1 TYPE T005T-LAND1, LANDX TYPE T005T-LANDX, END OF T_T005T.
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
Types: BEGIN OF Y_T005T, LAND1 TYPE T005T-LAND1, LANDX TYPE T005T-LANDX, END OF Y_T005T.
- Work-area e Tabela interna
Data: ST_T005T type Y_t005T, "Header Line (TL_T005T) TL_T005T Type table of Y_t005t. "Tabela Interna
- Retira da base de dados os nomes dos países em português e os insere na tabela interna T_T005T
SELECT LAND1 LANDX FROM T005T INTO TABLE TL_T005T WHERE SPRAS = 'P'.
- Ordena a tabela interna T_T005T pelo campo LAND1.
SORT T_T005T BY LAND1.
- Mostra na tela os códigos e nomes dos países.
LOOP AT T_T005T INTO ST_T005T. WRITE: /05 ST_T005T-LAND1, 09 ST_T005T-LANDX. ENDLOOP.
- Verifica se voltou resultado no SELECT
IF sy-subrc IS INITIAL.
- Mensagem de sucesso
MESSAGE s001. "Sucesso ELSE.
- Mensagem de Erro
MESSAGE e002. "Nenhum registo encontrado ENDIF.
Referências
- ↑ «SAP Library - ABAP Programming (BC-ABA)». help.sap.com. Consultado em 5 de abril de 2012
Ligações externas
- SAP
- ABAPno portal SDN (SAP Developer Network)
- «Introdução a ABAP Objects» (em inglês)
- «The ABAP Wiki Project». (em inglês)