ABAP

Origem: Wikipédia, a enciclopédia livre.
 Nota: Se procura pela Associação Brasileira de Agências de Publicidade, veja 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[editar | editar código-fonte]

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[editar | editar código-fonte]

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[editar | editar código-fonte]

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[editar | editar código-fonte]

  • 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

  1. «SAP Library - ABAP Programming (BC-ABA)». help.sap.com. Consultado em 5 de abril de 2012 

Ligações externas[editar | editar código-fonte]