[SAP] O que é o ABAP?
Fala galera!
No meu último post eu questionei se havia um interesse em conteúdos referentes ao ABAP. Apesar de poucos comentários (o que já era esperado, sendo que acabei de iniciar por aqui), existe sim um interesse, então irei (entenda como "tentarei") trazer conteúdos da linguagem aqui.
Não irei copiar trechos da internet ou respostas do ChatGPT para expor o conteúdo. Digitarei (entenda novamente como "tentarei") tudo de uma forma mais pessoal, buscando uma melhor didática.
Mas então, o que é o ABAP?
ABAP, ou Advanced Business Application Programming (chique, não?), é uma linguagem de programação de propriedade da SAP (se você não conhece a SAP... uau!) utilizada para desenvolver os principais softwares da empresa, o ECC e o S/4HANA, que são só os maiores ERPs (sistemas integrados) do mundo!
Por ser uma linguagem que roda única e somente no "universo SAP" e esse "universo" ser um pouco fechado (isso é mito, mas vamos assumir que seja verdade), a comunidade de desenvolvedores praticamente nem conhece a linguagem e os poucos que conhecem possuem um certo preconceito, acreditando que é uma linguagem retrógrada, do passado, que só os dinossauros desenvolvem com ela.
E isso é verdade? Sim... claro que não!
O ABAP é uma linguagem muito poderosa, qual permite criar vários tipos de aplicações e utilizar vários tipos de arquitetura, design patterns (sim, o ABAP suporta orientação a objetos, diferente do que muitos dizem), consumir APIs e mais todos os termos hipsters que temos por aí.
Existe sim a limitação de rodar uma aplicação desenvolvida com ABAP somente dentro da plataforma SAP (novamente, no ECC e no S/4HANA), então não é a primeira linguagem que pensamos quando o objetivo é desenvolver um site ou um jogo, por exemplo. Mas isso não faz com que a linguagem seja ruim ou limitada. Muito pelo contrário! Isso faz com que o "pouco" que ela faz, faça muito bem!
Como diria o pensador neoclássico Gaveta, na minha OPINIÃO, uma das maiores vantagens em utilizar o ABAP é a facilidade em implementar algoritmos com uma sintaxe de abstração alta (complexo né? São palavras bonitas para dizer "mais fácil de aprender"). Os códigos em ABAP, para quem sabe um pouco de inglês, são mais legíveis, fluídos, sem muitos ({[;.,|...,
Uma outra grande vantagens é poder fazer as queries de banco de dados direto na linguagem, inclusive, validando a sintaxe. Isso é incrível!
Tá! Mas e os exemplos?
Vejamos um exemplo de como escrever "Hello World" em ABAP:
WRITE 'Hello World'.
Mas e se eu quiser fazer uma condição, dizendo que SE 1 for igual a 1, então escreva "Mas é claro que 1 é igual a 1?". Ficaria assim:
IF 1 = 1.
WRITE 'Mas é claro que 1 é igual a 1'.
ENDIF.
Ou então assim:
IF 1 EQ 1.
WRITE 'Mas é claro que 1 é igual a 1'.
ENDIF.
Eu disse que podemos fazer as queries no banco de dados direto na linguagem certo? Como ficaria isso?
Vamos supor que eu quero selecionar todas as colunas do primeiro registro da tabela CLIENTES, ficaria assim:
DATA ls_clientes TYPE clientes.
SELECT SINGLE *
FROM clientes
INTO ls_clientes.
Ou então assim:
SELECT SINGLE *
FROM clientes
INTO DATA(ls_clientes).
É claro que estes exemplos não resumem o poder e a "facilidade" do ABAP, e também não são as únicas formas de fazer o que foi proposto, mas é um começo!
Daqui pra frente...
Meu plano (qual pode ser frustrado, mas farei o máximo para que não seja) é postar aqui cada vez mais conteúdos sobre o ABAP para fazer a minha parte como participante dessa comunidade de poucas pessoas que falam sobre a linguagem, mas que quero ver crescendo. Acompanhem :)
Ah, na fonte estou deixando um link de um repositório no GitHub qual traz os conceitos do Clean Code para o ABAP.
Abraço!
Quer ver mais conteúdo sobre ABAP por aqui? Dá uma olhada no meu agrupador de publicações!