Prévia do material em texto
Introdução Bem-vindo ao e-book "ABAP do Zero", criado para guiar iniciantes no universo do desenvolvimento técnico no SAP. Ao longo deste material, você aprenderá desde os fundamentos da linguagem ABAP até a criação de relatórios, leitura de tabelas e boas práticas de programação. No final, ainda terá acesso a exercícios práticos, dicas de carreira, um mini-projeto e recursos complementares. Vamos juntos nessa jornada! Sumário Capítulo 1: Introdução Capítulo 2: Fundamentos da Linguagem ABAP Capítulo 3: Criação de Relatórios Capítulo 4: Leitura de Tabelas Capítulo 5: Boas Práticas de Programação Capítulo 6: Exercícios Práticos Capítulo 7: Dicas de Carreira Capítulo 8: Mini-Projeto Capítulo 9: Recursos Complementares Capítulo 1: Introdução Comparação com outros ERPs O SAP se destaca no mercado global como um dos sistemas ERP mais robustos e amplamente utilizados, porém existem outros concorrentes, como: Oracle ERP Cloud: forte em soluções financeiras e análise preditiva, com foco em empresas que já utilizam outras soluções da Oracle. Microsoft Dynamics 365: mais integrado ao ecossistema Microsoft, voltado a pequenas e médias empresas com foco em CRM e automação. TOTVS e Protheus: ERPs populares em empresas de médio porte, com grande foco no mercado nacional e menor complexidade comparado ao SAP. O diferencial do SAP está em sua escalabilidade, profundidade funcional e capacidade de personalização 4 e é nesse contexto que o ABAP entra como peça fundamental para moldar o sistema às necessidades do negócio. Exemplo prático do mundo real Imagine uma empresa de manufatura que precisa emitir automaticamente relatórios diários de produção com dados vindos do chão de fábrica. O SAP por padrão não oferece exatamente esse relatório, mas um desenvolvedor ABAP pode criar esse programa sob medida, coletando dados das tabelas de ordens de produção e apresentando- os em tempo real para os supervisores. Esse é apenas um dos inúmeros cenários onde ABAP é essencial. O que é ABAP? ABAP (Advanced Business Application Programming) é a linguagem de programação utilizada para desenvolver dentro do sistema SAP. Com ela, desenvolvedores criam programas personalizados, relatórios, integrações com outros sistemas e novas funcionalidades. Por que aprender ABAP? Alta demanda no mercado Remuneração atrativa Possibilidade de atuar como desenvolvedor, consultor técnico ou arquiteto de soluções Como ABAP se encaixa no SAP? ABAP é utilizado para: Criar relatórios personalizados Desenvolver programas de interface Automatizar processos internos Integrar SAP com outros sistemas Capítulo 2: Ambiente de Desenvolvimento Desenvolvimento local vs. por pacote Ao criar um programa ABAP, você pode desenvolvê-lo localmente (pacote $TMP) ou vinculá-lo a um pacote transportável. $TMP (local): ideal para testes ou exercícios. Os objetos não são transportados para outros ambientes (ex: QAS, PRD). Pacote com transporte: usado em projetos reais, pois permite que o desenvolvimento seja movido para outros ambientes via ordens de transporte. SE80 vs SE38 SE80 (Object Navigator) oferece uma visão completa dos objetos do projeto: programas, classes, funções, includes, módulos de tela. SE38 é mais focado em editar e executar programas simples. Navegação prática Na SE80, escolha "Programa" no menu suspenso e digite seu Z-programa1. Você verá a estrutura do programa, includes, textos e atributos visíveis à esquerda2. É possível debugar, ativar e até visualizar onde o programa é usado3. Criando seu primeiro programa Acesse a transação SE381. Digite o nome do programa (ex: ZHELLO_WORLD)2. Clique em "Criar" e preencha:3. Título Tipo: Executável Pacote: $TMP (local) Escreva o código abaixo:4. REPORT zhello_world. WRITE: 'Olá, mundo ABAP!'. Salve, ative e execute1. Resumo do capítulo Você conheceu as principais transações utilizadas no desenvolvimento ABAP e criou seu primeiro programa simples, entendendo o ciclo de criação, ativação e execução. Capítulo 3: Lógica de Programação ABAP Estrutura de um programa Cada programa começa com a instrução: REPORT zmeu_programa. Declaração de variáveis DATA: nome TYPE string, idade TYPE i. Entrada e saída PARAMETERS: p_nome TYPE string. WRITE: 'Olá,', p_nome. Estruturas de controle IF / ELSE IF idade >= 18. WRITE: 'Maior de idade'. ELSE. WRITE: 'Menor de idade'. ENDIF. DO (loop fixo) DO 5 TIMES. WRITE: / 'Contando...'. ENDDO. WHILE (loop condicional) DATA: i TYPE i VALUE 1. WHILE i = 18. WRITE: 'Maior de idade'. ELSE. WRITE: 'Menor de idade'. ENDIF. DO 5 TIMES. WRITE: / 'Contando...'. ENDDO. Resumo do capítulo Você aprendeu como declarar variáveis, coletar entradas do usuário e utilizar estruturas de decisão e repetição básicas (IF, DO, WHILE, CASE) para controlar o fluxo do programa ABAP. Capítulo 4: Trabalhando com Tabelas no SAP O que são tabelas transparentes? Tabelas transparentes armazenam dados no SAP e no banco de dados de forma idêntica. Ex: MARA: Materiais BKPF: Documentos contábeis EKPO: Itens de pedido Como visualizar tabelas no SAP Você pode visualizar a estrutura de qualquer tabela através da transação SE11: Acesse a transação SE111. Selecione a opção "Tabela"2. Digite o nome da tabela (ex: MARA)3. Clique em "Exibir"4. A estrutura, campos e dados técnicos da tabela serão exibidos5. Como verificar os dados de uma tabela Para visualizar os registros existentes em uma tabela, utilize a transação SE16N: Acesse a SE16N1. Digite o nome da tabela (ex: MARA)2. Clique em "Executar" (F8)3. Os dados armazenados serão listados em forma de tabela4. Essa prática é muito útil para validar se os dados existem antes de fazer SELECTs em seus programas. SELECT SINGLE e tabelas internas DATA: lv_matnr TYPE mara-matnr. SELECT SINGLE matnr INTO lv_matnr FROM mara WHERE matnr = '123'. TYPES: BEGIN OF ty_mat, matnr TYPE mara-matnr, END OF ty_mat. DATA: lt_mat TYPE TABLE OF ty_mat. SELECT matnr INTO TABLE lt_mat FROM mara. O que são tabelas transparentes? Tabelas transparentes armazenam dados no SAP e no banco de dados de forma idêntica. Ex: MARA: Materiais BKPF: Documentos contábeis EKPO: Itens de pedido SELECT SINGLE e tabelas internas DATA: lv_matnr TYPE mara-matnr. SELECT SINGLE matnr INTO lv_matnr FROM mara WHERE matnr = '123'. TYPES: BEGIN OF ty_mat, matnr TYPE mara-matnr, END OF ty_mat. DATA: lt_mat TYPE TABLE OF ty_mat. SELECT matnr INTO TABLE lt_mat FROM mara. Resumo do capítulo Você aprendeu a consultar dados do SAP por meio de SELECT e armazenar os resultados em variáveis e tabelas internas. Também conheceu como visualizar a estrutura e os dados das tabelas diretamente pelo SAP, utilizando as transações SE11 e SE16N Capítulo 5: Criando um Report Simples Objetivo Criar um relatório onde o usuário insere um grupo de materiais (MATKL) e o sistema retorna os materiais e suas datas de criação. Código completo REPORT zlistar_materiais. PARAMETERS: p_matkl TYPE mara-matkl. TYPES: BEGIN OF ty_mara, matnr TYPE mara-matnr, ersda TYPE mara-ersda, END OF ty_mara. DATA: lt_mara TYPE TABLE OF ty_mara, wa_mara TYPE ty_mara. SELECT matnr ersda INTO TABLE lt_mara FROM mara WHERE matkl = p_matkl. LOOP AT lt_mara INTO wa_mara. WRITE: / wa_mara-matnr, wa_mara-ersda. ENDLOOP. Resumo do capítulo Você combinou entrada de dados com leitura de tabela e exibiu os resultados em um relatório simples.Definir parâmetros de entrada Criar campos para o usuário inserir os critérios de seleção Consultar dados Usar SELECT para buscar informações nas tabelas do SAP Processar resultados Utilizar LOOP para percorrer os dados obtidos Exibir na tela Apresentar os resultados formatados para o usuário Capítulo 6: Dicas de Debugging Modo debug passo a passo (SAP GUI) Acesse o programa pela transação SE381. Clique em "Executar com Debugging" ou insira o comando BREAK-POINT. dentro do código2. O SAP abrirá o modo debug com o programa pausado3. Entendendo o modo debug No ambiente de debug você verá: Variáveis locais e globais Tabela de chamadas (call stack) Visualização de conteúdo de tabelas internas Campos para criar breakpoints e watchpoints Comandos úteis durante o debug F5: Executa passo a passo (linha a linha) F6: Executa a linha atual sem entrar na função (Step Over) F7: Sai da função atual F8: Continua até o próximo breakpoint Dica visual Você pode clicar sobre variáveis e botões dentro da barra superior do debug para observar valores em tempo real, modificar conteúdos e acompanhar a lógica do programa. ä Use a aba "Variáveis Locais" para inspecionar valores durante loops ou condições IF. Modo debug Use a transação SE38 Clique em "Debugar" Use o comando BREAK-POINT Use F5 (linha a linha) e F6 (pular chamadas) Resumo do capítulo Você aprendeu a inspecionar programas em execução com o modo debug, analisar variáveis e tabelas internas, além de entender o fluxo de execução com as teclas F5, F6, F7 e F8. Capítulo 7: Boas Práticas e Erros Comuns Boas práticas Escrever código limpo e sustentável é essencial para facilitar a manutenção, a performance e a colaboração com outros desenvolvedores. Exemplos de boas práticas: Nomes claros: DATA: lv_nome_cliente TYPE string. " Claro e descritivo Evitar SELECTs dentro de LOOPs: o Errado: LOOP AT lt_pedidos INTO wa_pedido. SELECT SINGLE nome FROM clientes INTO lv_nome WHERE id = wa_pedido-kunnr. ENDLOOP. ' Correto: SELECT id nome INTO TABLE lt_clientes FROM clientes FOR ALL ENTRIES IN lt_pedidos WHERE id = lt_pedidos-kunnr. Uso de constantes: CONSTANTS: c_status_pago TYPE char1 VALUE 'P'. IF wa_pagamento-status = c_status_pago. Tratamento de exceções e mensagens ao usuário: IF lt_dados IS INITIAL. MESSAGE 'Nenhum dado encontrado.' TYPE 'I'. ENDIF. Erros comuns Reconhecer erros frequentes é uma forma de preveni-los e fortalecer sua lógica de programação. Exemplos: Esquecer de ativar objetos antes de executar SELECT sem filtro, que pode gerar performance ruim Comparação incorreta entre tipos de dados, como string com número Uso de LOOP AT sem verificar se a tabela tem conteúdo: IF lt_resultados IS NOT INITIAL. LOOP AT lt_resultados INTO wa_resultado. " ... ENDLOOP. ENDIF. Boas Práticas Nomes descritivos de variáveis Indentação consistente Comentários úteis Tratamento de exceções Erros a Evitar SELECTs sem filtro Loops desnecessários Falta de verificação de dados Código não ativado Capítulo 8: Mini-projeto 3 Relatório de Pedidos de Venda Cenário Você foi contratado para desenvolver um relatório que ajude o time de vendas a monitorar os pedidos emitidos em um determinado período. O relatório deve exibir o número do pedido, a data de criação e o código do cliente, com base na tabela VBAK. Objetivo do Projeto Criar uma interface com intervalo de datas Consultar a tabela VBAK Listar os pedidos encontrados com suas datas e clientes Etapas detalhadas 1. Criar parâmetros de entrada PARAMETERS: p_data1 TYPE sy-datum, p_data2 TYPE sy-datum. Esses campos permitirão ao usuário inserir o período de análise. 2. Definir estrutura da tabela interna TYPES: BEGIN OF ty_pedido, vbeln TYPE vbak-vbeln, erdat TYPE vbak-erdat, kunnr TYPE vbak-kunnr, END OF ty_pedido. DATA: lt_pedidos TYPE TABLE OF ty_pedido, wa_pedido TYPE ty_pedido. 3. Fazer o SELECT com filtro de datas SELECT vbeln erdat kunnr INTO TABLE lt_pedidos FROM vbak WHERE erdat BETWEEN p_data1 AND p_data2. 4. Exibir os resultados LOOP AT lt_pedidos INTO wa_pedido. WRITE: / 'Pedido:', wa_pedido-vbeln, ' Data:', wa_pedido-erdat, ' Cliente:', wa_pedido-kunnr. ENDLOOP. 5. Validação básica IF lt_pedidos IS INITIAL. MESSAGE 'Nenhum pedido encontrado no período informado.' TYPE 'I'. ENDIF. Possíveis evoluções Buscar o nome do cliente na tabela KNA1 (JOIN ou SELECT adicional) Exibir em ALV Grid para uma visualização profissional Adicionar exportação para planilha Excel Conclusão do projeto Esse mini-projeto consolida os aprendizados de criação de parâmetros, uso de SELECT com filtros, manipulação de tabelas internas e saída de dados. Serve como base para muitos relatórios úteis no dia a dia SAP. Cenário Listar pedidos de venda (tabela VBAK) com dados de cliente e status. Permitir filtro por data. Desafio Criar tela com parâmetro de intervalo de datas1. Fazer SELECT na VBAK com esse filtro2. Exibir na tela número do pedido, data e código do cliente3. Dica Use SELECT vbeln erdat kunnr FROM vbak INTO TABLE lt_vbak WHERE erdat BETWEEN p_data1 AND p_data2. Capítulo 9: Caminhos de Carreira e Certificação Roadmap da carreira ABAP A carreira de um desenvolvedor ABAP pode evoluir de forma técnica ou expandir para áreas estratégicas, como integração ou arquitetura de soluções. Abaixo está um exemplo de trajetória: Júnior Aprende lógica ABAP, comandos básicos (WRITE, SELECT, LOOP) Pleno Cria programas mais complexos (ALV, BAPIs, Enhancements) Sênior Define soluções técnicas em conjunto com a equipe funcional Arquiteto de Soluções SAP Atua em projetos de alto nível envolvendo integração entre sistemas Certificações recomendadas SAP Certified Development Associate 3 ABAP with SAP NetWeaver SAP Certified Development Specialist 3 ABAP for SAP HANA SAP Integration Suite (para quem quer atuar com APIs e cenários modernos) Como se preparar Estudar por meio de cursos no OpenSAP, Udemy, Alura, SAP Learning Praticar com mini-projetos e desafios reais Participar de fóruns como SAP Community, grupos como ABAP DOJO Dica extra Crie um portfólio simples com prints dos programas, trechos de código e explicações. Isso ajuda muito na hora de entrevistas e para mostrar sua evolução. Certificações SAP Certified Development Associate 3 ABAP with SAP NetWeaver Possíveis caminhos Desenvolvedor ABAP Consultor técnico SAP Especialista em integrações (OData, API, RFC) Arquiteto SAP Recomendações Faça cursos no OpenSAP Participe da comunidade SAP e grupos como o ABAP DOJO Crie um portfólio de programas e mini-projetos Recursos online Aqui estão fontes confiáveis para aprofundar seus estudos: SAP Community 3 artigos técnicos, fóruns e documentações: https://community.sap.com/ OpenSAP 3 plataforma oficial da SAP com cursos gratuitos: https://open.sap.com SAP Learning 3 site oficial de aprendizado com trilhas para certificações: https://learning.sap.com GitHub 3 procure por repositórios ABAP para estudar código de outros desenvolvedores YouTube 3 canais com demonstrações práticas, lives e entrevistas sobre SAP Grupos e comunidades ABAP DOJO 3 grupo no Telegram focado em aprendizado colaborativo (insira o link personalizado aqui) LinkedIn 3 siga especialistas SAP, empresas e páginas de tecnologia Stack Overflow (tag ABAP) 3 tire dúvidas e veja respostas da comunidade global Plano de estudo sugerido Estude os fundamentos de lógica e estrutura ABAP1. Faça seus primeiros relatórios (como no mini-projeto)2. Estude transações e tabelas mais usadas no módulo que você quer atuar (ex: SD, MM, FI)3. Comece a estudar ALV, BAPIs e funções4. Pratique consumo de dados com SELECT JOIN e FOR ALL ENTRIES5. Explore integrações via OData, RFC e APIs REST6. Agradecimento especial Parabéns por concluir este e-book! Nosso objetivo é oferecer uma base sólida e prática para quem está começando sua jornada no mundo SAP. Continue praticando, compartilhandodúvidas e ajudando outros. Te vemos na comunidade! À Sucesso na sua jornada ABAP! Recursos SAP Community: https://community.sap.com/ OpenSAP: https://open.sap.com ABAP DOJO: t.me/abap_dojo (Telegram) https://www.linkedin.com/company/abap-dojo/ (Linkedin) Agradecimento Obrigado por chegar até aqui! Esperamos que este e-book tenha te dado base e motivação para seguir na jornada ABAP. Te vemos na comunidade! Colaboradores: Rafael Valim https://www.linkedin.com/in/rafaelvalim/ Rodrigo de O. Alarcon https://www.linkedin.com/in/alarconabap/