Recursos "escondidos" do ADT que agilizam o dia a dia do dev ABAP no Eclipse
Você usa o Eclipse todo dia — mas conhece metade do que o ADT faz?
É a reclamação mais comum de quem vem do SE80: o Eclipse parece enorme, cheio de abas, views e menus que ninguém pediu. Aí a pessoa usa 10% da ferramenta e segue achando tudo complicado, e sim, eu também relutei quando comecei a usar, porém acabei me habituando e me acostumei com ele, e comecei achar em alguns pontos melhores (mas ainda prefiro com certeza o debugger do GUI). A verdade é que boa parte da produtividade está em recursos do ADT (ABAP Development Tools) que ficam meio escondidos em menus de contexto e atalhos — e que quase ninguém descobre sozinho.
Hoje o ADT no Eclipse é o ambiente padrão e obrigatório para ABAP moderno: S/4HANA, RAP, CDS e ABAP Cloud não existem no SAP GUI. Não dá mais para fugir. Então vale aprender a usar a ferramenta direito. Agora com o surgimento do ADT no VSCode o pessoal ficou na loucura para pular direto para ele, massss... tem ainda motivos de sobra para se manter com o eclipse e em outro post digo os pontos que achei da nova extensão que a SAP liberou.
Este guia reúne os recursos que mais economizam tempo no dia a dia — busca de objetos com filtros, árvores de repositório personalizadas, documentação embarcada, navegação sem sair do editor, análise de dependências de CDS, templates de código, limpeza de código, Data Preview e debug.
Caso você seja um Consultor/Funcional que quer desbravar a utilização do ADT para ajustar suas EF, conhecimento dos processos e ainda não sabe por onde começar para acessar o ADT, siga esse passo-a-passo de como instalar o eclipse e ADT e depois retorne para cá novamente.
O essencial em 7 linhas
Ctrl+Shift+A abre qualquer objeto e aceita filtros (
type:,owner:,api:) com curingasz*.Crie uma árvore de repositório personalizada (ex.:
owner:meuuser) para ter só os seus objetos numa pasta fixa.F2 mostra a referência rápida; o Open Documentation (Knowledge Transfer Document) traz a doc completa do objeto.
A aba API State diz na hora se um objeto SAP é liberado para uso em ABAP Cloud.
Relation Explorer e Dependency Analyzer mostram dependências de CDS nos dois sentidos — até a tabela física.
Templates de código expandem blocos prontos, e você pode criar os seus próprios.
Ctrl+4 (ABAP Cleaner), F9 (ABAP Console) e Alt+F8 (Data Preview) fecham o fluxo de codar, testar e inspecionar dados sem SAP GUI.
Os dois que mais utilizo: de tudo o que está aqui, os recursos que eu mais uso no dia a dia são o Open Object com filtros (Ctrl+Shift+A) e o Relation Explorer. O primeiro acha qualquer objeto em segundos; o segundo responde "quem usa isso e o que isso usa?" antes de qualquer mudança. Se for começar por algum ponto deste post, comece por esses dois.
Como abrir qualquer objeto rapidamente?
O atalho mais importante do ADT é o Open ABAP Development Object (Ctrl+Shift+A). Ele abre uma caixa de busca que enxerga todos os sistemas configurados e qualquer tipo de objeto — classe, CDS, tabela, função. Mas o poder real está nos filtros: você não precisa lembrar o nome exato, basta combinar critérios. É, de longe, o atalho que eu mais uso no Eclipse.
Os critérios de filtro do Open Object: type, owner, api, package, created e mais. Cada um deles vai refinar mais e mais sua busca.
Comece digitando type: e o ADT lista os tipos de objeto com seus códigos. Para abrir uma Data Definition (CDS), o tipo é DDLS; tabela é TABL; elemento de dados é DTEL, aqui você pode achar qualquer tipo de objeto no ambiente todo.
Digitando type:data o ADT sugere os tipos — DDLS é a Data Definition (CDS).
Agora combine os filtros. type:ddls z* traz só CDS no namespace de cliente. Quer apenas o que você criou? Acrescente owner:, que também tem autocompletar.
Encadeando filtros: type:ddls z* mais o critério owner.
Resultado de type:ddls z* owner:<usuário> — só as CDS daquele autor.
Filtros que valem decorar: type: (tipo), owner: (autor), package: (pacote), api:released (só APIs liberadas), created: (ano de criação) e system: (sistema de origem). Combine quantos quiser na mesma linha.
Como criar uma "pasta" personalizada de objetos?
O Project Explorer não precisa mostrar apenas a estrutura de pacotes da SAP. Você pode criar a sua própria árvore de repositório — uma pasta virtual, filtrada e persistente, com exatamente os objetos que importam pra você. O caso mais útil: uma pasta só com o que você criou.
Comece pelo menu de contexto do projeto, em New → ABAP Repository Tree.
Ponto de partida: New → ABAP Repository Tree no nó do projeto.
No assistente, dê um nome à árvore e defina o Property Filter — aqui, owner:meuuser. Os tree levels definem como os objetos serão agrupados (por pacote, tipo, componente de aplicação…). É a mesma lógica de filtros do Ctrl+Shift+A, agora salva numa árvore.
O assistente: nome, owner:meuuser no filtro e os níveis de agrupamento.
O resultado é uma pasta fixa no Project Explorer — "Meus Objetos (112)" — que sobrevive a reinícios do Eclipse e te poupa de refazer a busca toda vez. Para quem trabalha em muitos sistemas, é a forma mais rápida de não se perder no próprio código.
A árvore "Meus Objetos" pronta e persistente no Project Explorer.
Como ver documentação e membros sem sair do editor ?
No SE80, entender uma interface implementada exigia abrir outro objeto, ler o código e voltar. No ADT, a tecla F2 (Element Info) resolve isso em um popup: ela mostra a assinatura, a documentação ABAP Doc, os parâmetros e os membros do objeto sob o cursor — sem abrir nada, e por exemplo se você utiliza ele em uma classe, você consegue ir navegando pelos métodos, interfaces, parâmetros e etc.
O popup do F2 sobre o editor: componentes, tipos e descrição, tudo em um lugar.
O popup é navegável como um mini-browser: você entra num método, lê a documentação, volta. Quando terminar, Esc fecha e você continua exatamente onde estava. É a forma mais rápida de explorar uma classe standard que você nunca viu.
Como abrir (e criar) a documentação completa de um objeto?
O F2 é ótimo para a referência rápida, mas muitos objetos SAP trazem uma documentação bem mais rica embarcada — os Knowledge Transfer Documents (KTD). Quando ela existe, o editor mostra o link Open Documentation logo no topo do objeto.
Quando há documentação, o editor exibe o link Open Documentation.
A documentação abre numa view própria: a estrutura do objeto à esquerda e o texto à direita — operações, autorizações, restrições e notas de uso escritas pela SAP. Para entender um business object como o I_PurchaseRequisition antes de consumi-lo, é muito mais completo que o F2.
O Knowledge Transfer Document: estrutura à esquerda, documentação oficial à direita.
E não é só leitura: você pode escrever a sua própria documentação. Em New → New Knowledge Transfer Document, você cria a doc do seu objeto Z, que passa a abrir pelo mesmo Open Documentation — uma forma simples de documentar para o resto do time direto no ADT.
Criar a sua: New → New Knowledge Transfer Document.
Como navegar pela estrutura de um objeto (Outline / Ctrl+O)?
Objetos grandes — uma classe com dezenas de métodos ou uma CDS com muitas associations — pedem um mapa. A view Outline dá esse mapa, e o atalho Ctrl+O abre a mesma informação num popup com busca, sem ocupar espaço fixo na tela.
Outline de uma CDS: select, from e todas as associations em árvore.
Em classes, o Outline mostra os métodos com a descrição ao lado — e, ao pressionar Ctrl+O uma segunda vez, ele também revela os membros herdados de superclasses, algo difícil de enxergar no editor puro.
Outline de uma classe: os métodos da interface com suas descrições.
Como saber se um objeto SAP pode ser usado em ABAP Cloud (Properties / API State)?
A view Properties concentra os metadados do objeto. A aba General traz pacote, versão, responsável, data de criação e componente de aplicação — útil para entender o contexto de qualquer objeto SAP.
Properties > General: pacote, versão, autor e componente de aplicação.
Mas a aba que vale ouro em projetos S/4HANA e ABAP Cloud é a API State. Ela mostra o release contract do objeto: se está liberado para uso em desenvolvimento cloud (C1), se serve como Remote API (C2) e qual o estado de liberação. Em vez de descobrir só na ativação que a API não é liberada, você confere aqui antes.
API State: Released e Use in Cloud Development: Yes — sinal verde para ABAP Cloud.
Atalho de produtividade: combine a API State com o filtro api:released do Ctrl+Shift+A. Assim você só abre objetos que já têm contrato de uso público — economiza retrabalho na migração para ABAP Cloud.
Como comparar versões e desfazer mudanças (History)?
Além do versionamento ligado a transporte, o ADT mantém um histórico local por objeto. A view History lista as revisões com data, autor e request de transporte — e permite comparar duas versões lado a lado, num editor de diff onde você pode trazer trechos de um lado para o outro.
History: revisões com data, autor e transporte — base para o diff lado a lado.
O histórico local é gravado a cada save e fica só na sua máquina — ótimo para recuperar um trecho que você apagou há dez minutos. Ao escolher duas revisões, o ADT abre um editor de comparação lado a lado, com as diferenças destacadas linha a linha.
O diff lado a lado: duas versões da mesma classe, com as diferenças realçadas.
A mesma comparação funciona contra outro sistema (Q, por exemplo) e responde àquela dúvida clássica: "o que mudou entre o que eu tenho aqui e o que está em produção?".
Como descobrir todas as dependências de um objeto (Relation Explorer)?
O Relation Explorer é o "where-used" turbinado do ADT. Ele mostra as relações de um objeto nos dois sentidos: o que o objeto usa (Used Objects) e onde ele é usado (Using Objects) — incluindo controles de acesso, classes e interfaces de pacote. Junto do Open Object, é o recurso que eu mais uso: não mexo numa CDS sem passar por aqui antes para medir o impacto.
Relation Explorer: a árvore de relações no topo e os campos (Keys/Attributes) embaixo.
Um menu de contextos troca a perspectiva entre Analytics, Core Data Services, Used Objects e Using Objects — você escolhe o ângulo da análise sem sair da view.
O seletor de contexto define o sentido da análise de dependências.
Using Objects: tudo que consome a entidade — access controls, classes e mais.
Como analisar a complexidade de uma CDS (Dependency Analyzer)?
Para CDS, o Dependency Analyzer é indispensável. Ele abre pelo menu de contexto, em Open With → Dependency Analyzer, e desmonta a view inteira até as tabelas físicas do banco — mostrando joins, table functions e controles de acesso pelo caminho.
Onde achar: clique direito → Open With → Dependency Analyzer.
A aba SQL Dependency Tree lista cada fonte com o tipo de relação (From, Inner Join, Left Outer Join), o tipo de objeto (CDS View, Table Function, Database Table) e o controle de acesso aplicado.
SQL Dependency Tree: cada nível com o tipo de join e o objeto subjacente.
A aba SQL Dependency Graph transforma essa árvore num diagrama visual — perfeito para enxergar de relance quantas camadas existem entre a sua view e a tabela física.
SQL Dependency Graph: a mesma cadeia, agora visual, até as tabelas.
E a aba Complexity Metrics resume o custo da view em números: quantas tabelas e views, quantos joins, quantas operações de CAST e CASE. É um termômetro objetivo antes de colocar a CDS em produção.
Complexity Metrics: fontes de dados, joins e casts contabilizados.
Por que isso importa: uma CDS aparentemente simples pode esconder sete camadas de views até a tabela. O Dependency Analyzer revela isso antes que vire problema de performance — e ajuda a decidir entre reutilizar uma view existente ou modelar uma nova.
De onde vem cada anotação de uma CDS (Annotation Propagation)?
Numa pilha de CDS, uma anotação pode ser definida três views abaixo e propagada até a sua. Descobrir a origem no olho é inviável. O recurso Annotation Propagation (também em Open With, ao lado do Active Annotations) faz esse rastreio para você.
Em Open With, ao lado de Active Annotations, está o Annotation Propagation.
A view resultante lista cada anotação efetiva da entidade com a Origin Source — ou seja, em qual view ela foi realmente definida — além da chave e do valor. Quando uma anotação analítica não aparece no SAC como esperado, é aqui que você descobre se ela foi sobrescrita ou bloqueada no caminho.
Annotation Propagation: cada anotação efetiva e a view onde ela nasceu.
Como ver todos os objetos que acompanham uma CDS (CDS Navigator)?
Toda CDS de peso vive cercada de objetos satélite: extends, metadata extensions, controles de acesso (DCL), buffers de entidade. O CDS Navigator reúne tudo isso numa única view, agrupado por categoria, e deixa você pular para qualquer um deles com um clique — sem caçar artefato por artefato no Project Explorer.
CDS Navigator: os objetos que acompanham a I_MATERIAL agrupados por categoria.
Cada grupo responde a uma pergunta prática. Extensions mostra quem estende a entidade (a X_RFM_I_MATERIAL, no exemplo); Access Controls lista todos os DCLs que protegem a view; Metadata Extensions, Secondary Objects e Entity Buffers fecham o ecossistema. É a forma mais rápida de enxergar, de uma olhada, tudo o que orbita uma CDS antes de mexer nela.
Navigator x Relation Explorer: os dois se completam. O Relation Explorer responde "quem usa e o que usa" em qualquer direção; o CDS Navigator foca nos objetos que compõem a entidade — extends, DCLs, metadata extensions. Para uma análise de CDS completa, abra os dois lado a lado.
Como depurar direto do editor (Breakpoints)?
No ADT, você marca um breakpoint com um duplo clique na margem esquerda do editor — sem transação separada. A view Breakpoints gerencia todos eles num lugar, e os breakpoints externos podem ser amarrados a um usuário de logon específico, essencial para depurar chamadas de serviço (OData, RAP) que rodam sob outro usuário.
Breakpoint na linha 37 e a view Breakpoints com o vínculo por usuário de logon.
Como usar (e criar) templates de código?
Os templates de código do ADT transformam abreviações em blocos prontos: digite if e Ctrl+Espaço, ou chame pelo Ctrl+3, e o editor expande o bloco completo. A view Templates lista todos os disponíveis — de um simples case ou tryCatchInto a um testClass inteiro de ABAP Unit.
A view Templates: cada abreviação expande um bloco de código pronto.
O melhor é que você não fica preso aos templates da SAP: dá para criar os seus próprios em Window → Preferences → ABAP Development → Editors → Source Code Templates. Um cabeçalho padrão de classe, um bloco de log, o esqueleto de método que a sua equipe sempre repete — você cadastra uma vez, dá um nome curto e passa a chamar pela abreviação, igual a qualquer template nativo. É padronização de código com custo zero de digitação.
Quais atalhos e recursos extras todo dev ABAP deveria usar?
Os recursos acima têm tela própria, mas boa parte do ganho diário vem de atalhos rápidos. Estes são os que mais aparecem em qualquer sessão de produtividade do ADT — vale fixar na memória (ou num post-it ao lado do teclado):
Atalho / Recurso | O que faz |
|---|---|
| Encontra qualquer comando, view, preferência ou template digitando o nome num popup rápido — sem caçar em menus. |
| Correções e refatorações sensíveis ao contexto: criar variável/constante, definir método, mudar visibilidade, renomear. |
| Formata e moderniza o código segundo as Clean ABAP guidelines — inclusive migrar sintaxe legada para a nova. |
| Executa uma classe com |
| Mostra o conteúdo de uma tabela/CDS; permite copiar dados como |
| Lista todos os atalhos disponíveis — a "mãe de todos os atalhos". |
| Get Where-Used List — onde o objeto/elemento sob o cursor é usado. |
Working Sets | Agrupam um subconjunto de sistemas no Project Explorer, para não se perder entre dezenas de conexões. |
SQL Console | Um "playground" para testar |
Vale um destaque para alguns deles. Comece pelo Ctrl+3 (Quick Access): se você não lembra o atalho ou onde fica um recurso, é só apertar Ctrl+3, digitar parte do nome e o Eclipse mostra num popup rápido todos os comandos, views, preferências e templates que batem. É o melhor jeito de descobrir os recursos deste post sem decorar atalho nenhum.
O popup do Ctrl+3: digite o nome e ele acha o comando, a view ou o template.
O F9 substitui o velho report de aprendizado: você cria uma classe runnable e imprime o resultado no console, tudo dentro do Eclipse.
CLASS zcl_hello DEFINITION
PUBLIC FINAL CREATE PUBLIC.
PUBLIC SECTION.
INTERFACES if_oo_adt_classrun.
ENDCLASS.
CLASS zcl_hello IMPLEMENTATION.
METHOD if_oo_adt_classrun~main.
out->write( |Olá, mundo a partir do ABAP Console| ).
ENDMETHOD.
ENDCLASS.O resultado do F9 na view ABAP Console — sem precisar do SAP GUI.
Outro que rende muito é o Alt+F8 (Run ABAP Development Object): você digita o nome de uma tabela ou CDS, sem precisar abri-la antes, e o ADT executa o Data Preview.
Alt+F8: digite a fonte de dados e rode direto, sem abrir o objeto.
O Data Preview resultante: conteúdo em grade, com filtro, contagem e atalho para a SQL Console.
E o ABAP Cleaner (Ctrl+4) é muito mais que o antigo Pretty Printer: são cerca de uma centena de regras configuráveis, alinhadas ao Clean ABAP, que removem espaços, padronizam maiúsculas/minúsculas e até convertem statements obsoletos para a sintaxe moderna. Pressione Ctrl+Shift+4 para abrir o diálogo de configuração e escolher quais regras aplicar.
Fica para um próximo post: o ABAP Cleaner é configurável o bastante para um guia só dele — perfis de regras, o que ligar/desligar, como compartilhar a configuração no time e como integrá-lo ao seu fluxo. Vou escrever um post dedicado ao ABAP Cleaner cobrindo isso a fundo.
Cloud Readiness sem dor: antes de assumir que uma classe vai para ABAP Cloud, rode o ATC (ABAP Test Cockpit) com a variante ABAP Cloud Readiness. Ele aponta o que precisa mudar (acesso direto a tabela, statements obsoletos) e oferece quick fixes automáticos para boa parte dos casos.
Findings do ATC com a variante de Cloud Readiness: warnings e infos com objeto e linha.
Perguntas frequentes
Qual a diferença entre o Outline (Ctrl+O) e a view Outline fixa?
São a mesma informação em formatos diferentes. A view Outline fica ancorada na tela e acompanha o objeto aberto; o Ctrl+O abre um popup temporário com busca, que some ao apertar Esc. O popup ainda permite, num segundo Ctrl+O, exibir os membros herdados de superclasses.
Relation Explorer e Dependency Analyzer não são a mesma coisa?
Não. O Relation Explorer mostra relações de qualquer objeto nos dois sentidos (usa / é usado), em vários contextos. O Dependency Analyzer é específico para CDS e foca na cadeia SQL: ele desce view por view até a tabela física, com árvore, grafo visual e métricas de complexidade.
Como sei rapidamente se uma API SAP é liberada para ABAP Cloud?
Abra o objeto e veja a aba API State na view Properties: ela mostra o release contract (C1 para uso em cloud, C2 para Remote API) e o estado de liberação. Para filtrar já na busca, use api:released no Ctrl+Shift+A e só objetos liberados aparecem.
O histórico local do ADT substitui o versionamento por transporte?
Não — eles se complementam. O histórico local grava uma versão a cada save, só na sua máquina, ideal para desfazer mudanças recentes. O versionamento por transporte continua sendo o registro oficial e compartilhado. A view History acessa os dois e permite comparar versões lado a lado.
Preciso decorar todos esses atalhos de uma vez?
Não. Comece por três — Ctrl+Shift+A (abrir objeto), F2 (informação rápida) e Ctrl+1 (quick fix) — que já cobrem boa parte do dia. Quando precisar de outro, Ctrl+Shift+L lista todos os atalhos disponíveis para você descobrir na hora.
Conclusão
O Eclipse parece pesado no primeiro contato, mas a curva de aprendizado se paga rápido. Busca por filtros, F2, Outline, API State, Relation Explorer, Dependency Analyzer e ABAP Cleaner não são enfeites — são exatamente os recursos que faltavam no SE80 e que tornam o desenvolvimento em S/4HANA e ABAP Cloud mais rápido e seguro.
A dica de ouro é não tentar aprender tudo de uma vez. Escolha dois ou três atalhos por semana, incorpore ao fluxo, e deixe o Ctrl+Shift+L ser seu mapa quando precisar de algo novo. Em pouco tempo o "Eclipse grande demais" vira a ferramenta que você não quer mais largar.
Referências oficiais
Comentários 0
Ainda sem comentários
Seja o primeiro a comentar este artigo.
Entre na conversa
Faça login para deixar seu comentário neste artigo.