ABAP

ABAP
Data da primeira versão 1983
Influenciado por Cobol
Local na rede Internet scn.sap.com/community/abap

ABAP é uma linguagem de programação proprietária, parte do pacote de software SAP . Atualmente é a linguagem utilizada na programação de Web Application Servers que faz parte da plataforma NetWeaver para a realização de pacotes de software .

Sua versão ABAP / 4 é objeto , o número 4 referindo-se ainda ao fato de pertencer à classe das linguagens de quarta geração .

História

O acrónimo ABAP originalmente representava Um llgemeiner B erichts um ufbereitungs p rozessor ( processador genérico para a preparação de relatório ) e foi mais tarde anglicizou como um dvanced B MPRESAS A APLICAÇÃO P ROGRAMAÇÃO.

O ABAP é um dos sucessores do Cobol e surgiu na década de 1980 na onda das linguagens de quarta geração (L4G) . É um derivado da linguagem usada para produzir saídas de dados (chamados de relatórios ) do aplicativo SAP R / 2 , no qual muitas multinacionais construíram sua arquitetura de aplicativo profissional. O ABAP foi posteriormente mantido como a linguagem de referência para os aplicativos SAP R / 3 que surgiram em 1992 .

Originalmente, esta linguagem incluía o conceito de Banco de Dados Lógico, que deveria permitir a qualquer usuário criar os relatórios de que precisava. Na verdade, descobriu-se que o desenvolvimento de programas com essa linguagem só poderia ser feito na prática por profissionais com sólida experiência.

A linguagem foi posteriormente estendida para abranger um modelo de dados orientado a objetos (objetos ABAP) de sua versão 4.5, para ser finalmente integrado como a linguagem de um produto mais geral chamado NetWeaver. O último usa ABAP e Java .

É uma linguagem interpretada.

Componentes de linguagem

O código fonte  : está escrito diretamente em um componente do SAP denominado SAP Workbench e ficará armazenado na base de informações da ferramenta. Esta linguagem, como o java , precisa ser compilada para ser executada. No entanto, ao contrário do java, antes de cada uso de um programa, o processador SAP verifica se possui a versão mais recente do programa. Caso contrário, ele é recompilado em tempo real.

O Dicionário de Dados ( DDIC )  : o banco de dados é escondido do programador. Portanto, ele o acessa por meio de cláusulas que fazem parte da própria linguagem. Da mesma forma, a gestão do modelo de dados é feita através de um componente que irá criar ou modificar as tabelas de dados. Este dicionário de dados inclui:

Uma ferramenta de transporte . Cada vez que um programa é modificado, ele deve ser transportado do ambiente no qual foi criado para um ambiente de teste e, em seguida, para o ambiente de produção (cada um desses ambientes tem conjuntos de dados separados, pode haver mais de três ambientes em uma determinada informação sistema). Esta operação realiza-se mediante a implementação de uma ordem de transporte .

A comunicação com os bancos de dados é feita por meio de consultas SQL . Nas primeiras versões do SAP, eles são muito simplificados, mas aumentam em complexidade nas novas versões, em particular com as versões mais recentes do SAP ECC (Ehp7) e, claro, com S / 4HANA.

ABAP para quê?

ABAP até o advento do NetWeaver era o bloco de construção dos sistemas SAP R / 3 . Torna possível alcançar:

ABAP evoluiu para integrar a programação de objetos. Todos os conceitos de programação de objetos podem ser encontrados em Objetos ABAP. Objetos ABAP é uma extensão da linguagem ABAP, com a qual é totalmente compatível: assim, é possível que um programa tenha uma parte procedural e uma parte orientada a objetos, pois o fluxo procedural do programa pode instanciar uma classe a qualquer momento em seguida, chame os métodos do objeto que acabou de criar.

Exemplos de programas ABAP

O grande clássico:

REPORT Z_XX_TRANSACTION. * * -- Commentaire de ligne * PARAMETERS p_input TYPE c LENGTH 16 DEFAULT 'Hello World!'. * *-- Affichage du résultat : * WRITE: / 'L''entrée était : ', p_input. Um exemplo mais comum com pesquisa de banco de dados: REPORT Z_XX_TRANSACTION. * * -- Déclaration de données * TABLES: tstc. "Tables des transactions * Tables internes pour lexemple DATA : "Transactions gt_tstc TYPE TABLE OF tstc, gs_tstc TYPE tstc, "Descriptions de transactions gt_tstct TYPE TABLE OF tstct, gs_tstct TYPE tstct. * " -- Début de la déclaration de l'écran de sélection SELECT-OPTIONS s_tcode FOR tstc-tcode OBLIGATORY. * * *------------------ START-OF-SELECTION. " -- Début de l'extraction des données *------------------ CLEAR: gt_tstc, gt_tstct. SELECT FROM tstc FIELDS * WHERE tcode IN @s_tcode INTO TABLE @gt_tstc. IF sy-subrc IS INITIAL. " Si la sélection s'est bien passée SORT gt_tstc BY tcode. " On trie la table par nom de transaction (facultatif) * SELECT FROM tstct FIELDS * FOR ALL ENTRIES IN @gt_tstc WHERE tcode = @gt_tstc-tcode AND sprsl = @sy-langu INTO TABLE @gt_tstct. IF sy-subrc IS INITIAL. SORT gt_tstct BY tcode. " On trie la table par nom de transaction " (obligatoire pour lecture dichotomique plus bas) ENDIF. ENDIF. * * *------------ TOP-OF-PAGE. *------------ " -- Haut de page (sur chaque page) WRITE / 'Programme exemple : liste de transactions '. SKIP. "Saut de ligne ULINE. "Ligne continue horizontal * * *------------ END-OF-PAGE. *------------ " -- Bas de page (sur chaque page) ULINE. * * *----------------- END-OF-SELECTION. "Traitement des données après sélection *----------------- LOOP AT gt_tstc INTO gs_tstc. "Boucle sur les transactions " Recherche de la description READ TABLE gt_tstct WITH KEY tcode = gs_tstc-tcode INTO gs_tstct BINARY SEARCH. "Lecture dichotomique ⇒ meilleure performance IF NOT sy-subrc IS INITIAL. " Erreur WRITE : / "Saut de ligne sy-vline, "Barre verticale gs_tstc-tcode, sy-vline, "Code puis barre (25) '-- Pas de description --', "Largeur du texte spécifiée sy-vline. "Barre verticale ELSE. WRITE : / "Saut de ligne sy-vline, "Barre verticale gs_tstc-tcode, sy-vline, "Code puis barre (25) gs_tstct-ttext, "Description sur 25 caractères sy-vline. "Barre verticale ENDIF. ENDLOOP.

O que dá para a tela de seleção:

Exemplo de seleção de tela ABAP.PNG

E para o resultado:

Exemplo de resultado ABAP.PNG

 

Notas e referências

  1. "  Livro Aprendendo a programar com ABAP - Os fundamentos do desenvolvimento em SAP (com exercícios e respostas)  " , em www.editions-eni.fr (acessado em 22 de setembro de 2020 )

Veja também

Artigo relacionado

SAP (pacote de software)

links externos

  • Rede de Desenvolvedores SAP
  • Interface PHP / SAPRFC Usada para fazer a interface de aplicativos web / PHP com SAP e para executar BAPIs, módulos de função executáveis ​​remotamente
  • sapetabap A base de conhecimento dedicada ao ABAP em francês
  • www.ecir.fr uma solução desenvolvida para melhorar os métodos de programação em ABAP, qualquer que seja a versão de ABAP ou a solução SAP utilizada (motor ABAP necessário)