48

Treinamento de ABAP Para Funcionais

Embed Size (px)

DESCRIPTION

Treinamento de ABAP Para Funcionais

Citation preview

 
 
Newtec – Belas Business Park  Via 1, s/n – Edificio Cabinda – Sala 101 – Talatona Angola
+244 (226) 434-577
 ABAP para Funcionais
BADI .......................................................................................................................................... 10  
User-Exit ..................................................................................................................................... 11  
Sapscript x Smartforms ............................................................................................................... 24
 ABAP Debugger ........................................................................................................................... 32  
 
 
Newtec – Belas Business Park  Via 1, s/n – Edificio Cabinda – Sala 101 – Talatona Angola
+244 (226) 434-577
 ABAP para Funcionais
 Arquitetura SAP  Antes de estudar qualquer assunto relacionado à linguagem ABAP é necessário conhecer a plataforma onde estes programas são criados e executados.
O SAP usa a tão famosa arquitetura cliente/servidor de três camadas, são elas: camada de apresentação, camada de aplicação e camada de dados.
Camada de Apresentação: São os componentes visuais utilizados pelos usuários para interagir com o sistema SAP, seja ele o SAPGui, um navegador de internet ou um dispositivo móvel. Esta camada é
considerada “thin” (magra) ou burra, pois toda a lógica de negócio está na camada de aplicação enquanto esta é responsável apenas por mostrar e coletar informações do usuário.
Camada de Dados: São os componentes responsáveis por interagir com o sistema gerenciador de banco de dados, seja ele Oracle, DB2 ou qualquer outro homologado pela SAP.
Camada de Aplicação: É o cérebro do sistema SAP, onde os programas ABAP são iniciados e executados. Esta camada é responsável por receber as chamadas da camada de apresentação e decidir o que deve ser feito.
Este modelo permite que tenhamos várias máquinas com papéis diferentes, por exemplo: 1 servidor de banco de dados, 4 application server e 100 estações de SAPGui.
Os principais componentes do  Application Server são o Dispatcher, o Work Process e Shared Memory.
O work process é uma unidade básica de processamento que é responsável por executar a etapa
do programa que o usuário está solicitando. Toda solicitação da camada de apresentação é direcionada à um work process que esteja disponível através do Dispatcher, entenda este componente como um load balancer interno ao application server. É importante frisar que não há como garantir que toda requisição oriunda de uma mesma sessão será sempre endereçada ao mesmo work process. Portanto é necessário que todos os dados de sessão estejam disponíveis para todos os WP. No SAP este local é chamado de Shared Memory, um repositório de dados, não só de sessão, mas também de cache e informaçõea de lock, por exemplo.
 
 
Newtec – Belas Business Park  Via 1, s/n – Edificio Cabinda – Sala 101 – Talatona Angola
+244 (226) 434-577
 ABAP para Funcionais
Podemos notar que a quantidade de work process x quantidade de usuários/processos ativos   pode ser uma dos factores de atraso no tempo de resposta no sistema SAP. Normalmente a quantidade de WP é muito menor que a quantidade de usuários, pois nem todos os usuários estarão executando programas simultaneamente, alguns podem estar parados na tela olhando um relatório sem consumir os recursos de um WP.
 
 
Newtec – Belas Business Park  Via 1, s/n – Edificio Cabinda – Sala 101 – Talatona Angola
+244 (226) 434-577
 ABAP para Funcionais
Premissas ABAP  A linguagem de programação ABAP (Advanced Business Application Programming) foi criada para aplicações de negócios baseadas em diálogo e é:
•  Tipada (conversões de tipo e type casting são suportados);
•  Dá possibilidade de criar aplicações em várias línguas (Usando elementos do texto, você pode desenvolver aplicativos para vários idiomas facilmente);
•  Possibilita o acesso direto a linguagem SQL do banco de dados (O padrão Open SQL é embutido no ABAP, o que permite acesso direto ao banco de dados);
•  
É independente de plataforma (A sintaxe ABAP é independente de plataforma. Isso significa que sempre tem o mesmo significado ou função, independente do sistema de base de dados relacional e do sistema operacional do servidor de aplicação e de apresentação).
Exemplo da sintaxe de um programa ABAP:
Saiba que:
•  Programas ABAP são feitos de declarações individuais. •  
 
 
Newtec – Belas Business Park  Via 1, s/n – Edificio Cabinda – Sala 101 – Talatona Angola
+244 (226) 434-577
 ABAP para Funcionais
Uma coisa interessante na linguagem ABAP: ela é case insensitive, mas para melhor exemplificar vamos usar sempre as palavras chaves ABAP em caixa alta.
No ABAP Workbench existe um botão chamado Pretty Printer que faz esse trabalho para nós (pode ser visto na tela acima, no application toolbar).
Podemos customizar também indo a Utilitários/Configurações. Selecione a ABA: Editor ABAP e depois a  Aba: Pretty Printer.
 
 
Newtec – Belas Business Park  Via 1, s/n – Edificio Cabinda – Sala 101 – Talatona Angola
+244 (226) 434-577
 ABAP para Funcionais
Quando estiver escrevendo seu código e reparar que o inicio de duas ou mais linhas se repetem, por exemplo, na declaração de variáveis. Você poderá, na primeira linha, após a palavra-chave, inserir dois pontos (:) e remover as repetições de palavras-chaves nas linhas abaixo. Lembrando que entre uma variável e outra deve-se usar virgula (,) e na ultima o ponto final (.)
Lembre que isso não melhora a desempenho, pois o interpretador ABAP, entende como se fosse uma linha para cada. Isto é apenas uma forma de escrever o código mais bonito.
Toda vez que for executada uma instrução ABAP, o sistema escreve dentro da variável de ambiente sy- subrc, um código de retorno informando qual o status da execução. Por exemplo, caso tenha êxito, o conteúdo do sy-subrc será “0″ (zero).
 
 
Newtec – Belas Business Park  Via 1, s/n – Edificio Cabinda – Sala 101 – Talatona Angola
+244 (226) 434-577
 ABAP para Funcionais
Repositório de Objetos O repositório é o lugar onde ficam armazenados todos os objetos do sistema. Isto é, os programas, os módulos de função, as definições de tabelas e outros objetos.
Ele é usado para manter tanto os objetos da SAP quanto os desenvolvidos pelo usuário.
O Repositório se encontra no banco de dados e é independente de mandante (client independent). Isso quer dizer que os objetos dos repositórios podem ser acessados de qualquer mandante.
 Além dele, o banco de dados também guarda customizações de aplicações e tabelas, que são geralmente específicas de um mandante, ou seja, existe uma coluna “mandt”.
 
Ferramentas de busca no Repositório
 
 
Newtec – Belas Business Park  Via 1, s/n – Edificio Cabinda – Sala 101 – Talatona Angola
+244 (226) 434-577
 ABAP para Funcionais
Dicionário de dados O Dicionário de Dados no R/3 é uma abstracção de um (SGBD) Sistema de Gerenciamento de Banco de Dados, e permite um gerenciamento centralizado de todas as definições de dados. Nele você pode criar todos os tipos de dados, para uso em programas ABAP ou em interfaces de módulo de função.
Tipos Básicos
Domínio
o  O Domínio descreve a característica dos valores de determinado tipo, definindo seu tipo de dados e seu tamanho. Define também, a faixa de valores que o tipo pode assumir. O Domínio é parte técnica de um tipo.
Elemento de Dados
o  O Elemento de Dados descreve o significado de um domínio, ou seja, a parte semântica de um tipo, como título, documentação e ajudas de pesquisa.
Estruturas
o  Estruturas são tipos de dados que possuem campos, mas que não possuem uma definição criada no banco de dados, ou seja, não é usada para armazenar dados. É mais usada, para evitar definições redundantes de tipos de dados.
Tabelas Transparentes
o  Uma Tabela Transparente é um tipo de objecto composto por um conjunto de campos. Cada campo possui uma definição semântica (Elemento de Dados), e uma definição técnica (Domínio). Ao ser criada no Dicionário, automaticamente é criada no banco de dados, um tabela espelho, com a mesma estrutura, mesmos nome, campos com o nome igual também, porém o tipo de dados de cada campo é traduzido para os tipos de dados permitidos pelo SGDB.
Visões
o   Visões são objectos que permitem que campos de uma ou mais tabelas sejam agrupados para acesso mais ágil.
 Ajuda de Pesquisa
 
 
Newtec – Belas Business Park  Via 1, s/n – Edificio Cabinda – Sala 101 – Talatona Angola
+244 (226) 434-577
 ABAP para Funcionais
 Ampliações (Badi – Exit – Field-Exit – Enhancement)   Você pode ampliar o sistema R/3 nos seguintes níveis :
 
*** Field-Exits já são obsoletas e deve ser evitada a sua utilização ***
BADI
o  (Business Add-Ins) É uma nova técnica de enhancement de programas ABAP que surgiu junto com o ABAP Objects. Em comparação a Customer Exits (SMOD/CMOD), BADIs são mais flexíveis, porém mais difíceis de utilizar, mas estão mais próximas do equilíbrio entre flexibilidade e facilidade de uso. As BADIs são desenvolvidas em ABAP Objects (Orientado a Objetos). Ao contrário das Customer-Exits, onde somente a SAP podia criar os pontos de modificação, BADIs podem ser criadas por outras empresas de desenvolvimento ABAP para serem utilizadas nos programas desenvolvidos por elas. A SAP garante a compatibilidade de todas as interfaces BADIs em futuros releases. Upgrades não irão afetar as implementações atuais. Nas novas versões do R/3, os desenvolvedores SAP tem criado um número maior de BADIs em relação a custormer exits (SMOD/CMOD).
 Application
O desenvolvedor SAP define em seu programa o ponto em que uma capacidade de enhancement seria útil. A partir daí ele cria no BADI Bilder (Transação SE19) a definição da BADI, que basicamente é a sua interface. Após a criação da definição, ele volta ao programa e insere a chamada aos métodos dessa BADI e insere também o código que instancia a BADI caso uma implementação dela exista.
Customer
 
 
Newtec – Belas Business Park  Via 1, s/n – Edificio Cabinda – Sala 101 – Talatona Angola
+244 (226) 434-577
 ABAP para Funcionais
Como encontrar uma BADI em um programa Standard
O modo mais fácil é procurando na transacção SPRO. Outra maneira é procurar dentro do código do programa standard pelo método da Classe que instancia as BADIs (CL_EXITHANDLER-GET_INSTANCE). Buscando a declaração da variável passada ao parâmetro instance você descobre a interface da BADI que esta sendo instanciada. Podemos tambem encontrar uma BADI colocando um Break-Point na Funcao SXV_GET_CLIF_BY_NAME.
User-Exit
Transação SMOD: Aqui você tem acesso à todas as  ampliações que a SAP provê para que você possa colocar seu código Z no meio do processamento Standard. Nessa transação você também pode acessar todos os  componentes de uma ampliação, que são as funções, áreas de telas, includes e etc, onde você vai codificar de verdade.
Transação CMOD:  Onde você irá criar um novo projeto, que pode agrupar várias ampliações.
O exemplo abaixo é a criação de um código Z em uma Exit de Ordens de Vendas:
 
 
Newtec – Belas Business Park  Via 1, s/n – Edificio Cabinda – Sala 101 – Talatona Angola
+244 (226) 434-577
 ABAP para Funcionais
Para o exemplo, utilizar a ampliação V45P0001 de SD:
2º Passo) Criar o Projeto na CMOD:  Criar um projeto Z para agrupar ampliações.  Acessar a transação SMOD, dê um nome Z para o projeto.
•  Clicar em Criar, colocar uma descrição;
3º Passo)  Adicionar as ampliações da SMOD:  Dentro da tela do Projeto, clicar em modificar, e depois em “Ampliação atribuição” Colocar a ampliação que foi encontrada na SMOD e Salvar.
4º Passo) Implementar os componentes da ampliação:   Ainda dentro da tela de ampliações do seu projeto, coloque a linha sobre a ampliação que foi inserida e clicar em “Componentes”:
Será dentro deste componente que deve-se inserir o Codigo Abap desejado. Um duplo-clique no nome da “Exit da Função”, te levará para a criação do Código Z:
 
 
Newtec – Belas Business Park  Via 1, s/n – Edificio Cabinda – Sala 101 – Talatona Angola
+244 (226) 434-577
 ABAP para Funcionais
botões de Ativar. Pode-se ativar/desativar componentes individualmente em suas ampliações.
5º Passo) Ativando Implementação Z:  Clicar na linha da Exit da Função que foi criada, e clicar no botão de Ativar.
Field Exit
Para que serve um field exit?
Para inserir lógicas em programas standard. Ex: para validar a entrada de determinado campo de um programa Standard, (esse exemplo será usado abaixo para explicar o funcionamento.)
Como fazer?
 
 
Newtec – Belas Business Park  Via 1, s/n – Edificio Cabinda – Sala 101 – Talatona Angola
+244 (226) 434-577
 ABAP para Funcionais
 As informações importantes dessa área são o nome do Campo “Werks”, o nome do programa “SAPMM06E” e o número da tela “0200”.
Com essas informações, acessar a transação CMOD, porém a mesma será usada apenas como ponte para a transação PRFB, onde se cria nosso Field Exit.
 
 
Newtec – Belas Business Park  Via 1, s/n – Edificio Cabinda – Sala 101 – Talatona Angola
+244 (226) 434-577
 ABAP para Funcionais
Colocar o nome do elemento de dados que sera incluída a validação, neste caso WERKS:
O Field Exit, já está criado, porém sem nenhuma implementação, após confirmar na tela anterior a mesma levará para esta tela onde deve criar um modulo de função que irá funcionar como implementação do Field Exit.
Preencher os campos abaixo conforme o padrão. Deve-se criar um grupo de funções na SE80 caso não exista um.
 
 
Newtec – Belas Business Park  Via 1, s/n – Edificio Cabinda – Sala 101 – Talatona Angola
+244 (226) 434-577
 ABAP para Funcionais
 A variavel Output é o resultado esperado para o campo após a validação, por exemplo: o usuário digita um valor dentro de um campo de moeda, após a validação o campo output recebe o valor de “R$” antes dos números digitados.
 
 
Newtec – Belas Business Park  Via 1, s/n – Edificio Cabinda – Sala 101 – Talatona Angola
+244 (226) 434-577
 ABAP para Funcionais
Como o exemplo era do campo Werks a validação ficou da seguinte maneira:
 
 
Newtec – Belas Business Park  Via 1, s/n – Edificio Cabinda – Sala 101 – Talatona Angola
+244 (226) 434-577
 ABAP para Funcionais
 Aqui deve-se informar se o Exit Campo é numérico ou de Caracteres, o nome do programa e a tela que o campo que você deseja validar.
Enhancement Point
Com o Enhancement podemos Customizar codigos “Z” nos programas Standards.
Pesquisando enhancement point
Informar programa que deseja pesquisar para implementar o código “Z”
Para pesquisar enhancement point no programa menu:
Processar->Operações de ampliação->Visualizar pontos ampliação implícitos
 
 
Newtec – Belas Business Park  Via 1, s/n – Edificio Cabinda – Sala 101 – Talatona Angola
+244 (226) 434-577
 ABAP para Funcionais
Criando enhancement Point
 Apertar SHIFT + F4 para poder criar o ponto.
Selecionar o ponto enhancemnt e clicar em Operações de ampliação-> Criar
Selecionar o Modo de Ampliacao: Codif. 
 
 
Newtec – Belas Business Park  Via 1, s/n – Edificio Cabinda – Sala 101 – Talatona Angola
+244 (226) 434-577
 ABAP para Funcionais
Selecionar o enhancement criado
Implementar o código Z
 Ativando Implementação
Cancelando implementação
Selecionar a parte do código que foi implementada e selecionar no menu: Operações de ampliação-> Anular.
Inserir
Composite
 
 
Newtec – Belas Business Park  Via 1, s/n – Edificio Cabinda – Sala 101 – Talatona Angola
+244 (226) 434-577
 ABAP para Funcionais
 Apagando Enhancement Implementation
Clicar em exibir lista de objetos.
 
 
Newtec – Belas Business Park  Via 1, s/n – Edificio Cabinda – Sala 101 – Talatona Angola
+244 (226) 434-577
 ABAP para Funcionais
 
 
Newtec – Belas Business Park  Via 1, s/n – Edificio Cabinda – Sala 101 – Talatona Angola
+244 (226) 434-577
 ABAP para Funcionais
BAPI
BAPIS são Módulos de Funções Standard SAP que possuem infinitas utilizações. Cada BAPI possui uma
função específica totalmente desenvolvida pela SAP. É comum solicitarmos aos programadores ABAP para
desenvolver determinado código / programa para desempenhar diversas funções, sem ao menos
pesquisar se dentro do SAP já existe ou não uma função Standard que atenderia plenamente nossas
necessidades sem termos que reinventar a roda. Dessa forma, é importante ressaltar que a Pesquisa
e a Utilização de BAPIS são boas práticas antes de efectuar qualquer desenvolvimento.
BAPIS quando comparadas com Batch Input (SHDB) são infinitamente superiores pelos seguintes
principais motivos:
•  Não é necessário mapear todas as possíveis telas de erros e de avisos, assim como é feito no
mapeamento do Batch Input;
•  Se algum erro ocorrer durante o processamento, o Sistema poderá pular para a próxima etapa de
processamento e ao término exibir um relatório de erros standard;
•  BAPI costuma possuir uma velocidade de processamento superior quando comparado com Batch
Input;
 
 
Newtec – Belas Business Park  Via 1, s/n – Edificio Cabinda – Sala 101 – Talatona Angola
+244 (226) 434-577
 ABAP para Funcionais
Sapscript x Smartforms
 
Smart forms e SAP scripts são muito similares.  Ambas são ferramentas muito usadas na criação de layouts, e a partir delas um programa de impressão é criado. Este programa de impressão é usado para criar uma tabela interna que é ligada ao smart form pelo campo values mostrado. O SAP Smart Forms foi introduzido na versão 4.6C do SAP Basis como a ferramenta para criar e manter formulários. Smart Forms permitem executar modificações simples na forma e na lógica de maneira simples, usando ferramentas gráficas; em 90% dos casos, isto não inclui nenhum esforço de programação. Assim, um usuário sem nenhum conhecimento de programação pode configurar formulários com dados de um sistema SAP para os processos de negócio relevantes.
Permite ainda a inclusão de gráficos, que você pode exibir, como parte do formulário ou como gráficos de fundo. Você pode usar imagens de fundo para copiar o layout de um formulário existente (escaneados) ou para dar uma olhada nas formas específicas da empresa. Durante a impressão, você pode suprimir a imagem de fundo, se desejar.
 Alguns dos benefícios são:
•  O SmartForms permite reduzir consideravelmente os custos de implementação de soluções mySAP.com pois os formulários podem ser ajustados em tempo mínimo.
•  É possível criar um formulário usando graphical Form Painter ou graphical Table Painter. A forma lógica é representada por uma estrutura de hierarquia (estrutura em árvore), que consiste em nós individuais, tais como os nós de configurações globais, nós de textos, tabelas de saída para nós, ou nós para gráficos.
O SAP Script foi a primeira ferramenta para elaboração e impressão de documentos criada pela SAP. É um meio de processamento para gerar os documentos de negócios que são frequentemente utilizados nos sectores de produção, sectores de serviços e estabelecimentos comerciais.
 Alguns dos documentos de negócios são da ordem do cliente, como nota fiscal, ordem de compra, requisições de compra etc. O Smart Forms é como uma evolução do SAP Script, sendo mais rápido e interactivo, embora algumas funções presentes no SAP Script não estejam presentes no Smart Forms, outras como a geração de documentos de negócios, citada anteriormente, pode ser implementada através de ajustes com funções.
 A seguir, as principais diferenças entre SAP SmartForms e SAP Scripts:
•  Página de vários formatos são possíveis em SmartForms, mas em SAPScripts não; •  É possível ter uma SmartForm sem uma janela principal; •  Os rótulos não podem ser criados em SmartForms; •  
 As rotinas podem ser escritas em ferramenta SmartForms; •  SmartForms gera um módulo de função, quando ativado; •   Ao contrário dos sapscripts (RSTXSCRP), você não pode fazer o upload / download de um
SmartForm para o seu disco rígido local. •   A proteção e comando em endprotect SAPscript não funciona com SmartForms.
Por exemplo, uma fatura: Os primeiros dados da posição n º 80 é impresso em uma página, outros dados da posição n º 80 é impresso na página 2.
•   A principal diferença é que o SAP script é dependente do cliente, enquanto SmartForm é independente.
 Além disso, existem alguns recursos avançados e interactivos disponíveis em SmartForms.  Você pode usar uma sub-rotina externa chamada editor de SAPscript como:
 
 
Newtec – Belas Business Park  Via 1, s/n – Edificio Cabinda – Sala 101 – Talatona Angola
+244 (226) 434-577
 ABAP para Funcionais
Trace O trace é uma ferramenta de apoio a depuração ou debug no SAP, é um processo de mapeamento de um aplicativo, sendo ele standard ou desenvolvido . Nestes casos, o mais comum é o trace de um processo standard, para se saber a quantidade de Exits, Badis e/ou tabelas "Z" que o SAP faz leituras ou atualiza.
O trace também é muito útil, principalmente na analise de performance de programas desenvolvidos. Temos duas principais transações de Trace, sendo a ST01 , que normalmente utilizo para trace de autorizações e a ST05 para trace de comandos SQL.
Em alguns cenários de clientes, o SAP não faz alguma coisa e não sabemos o que ocorre... Nestes casos o trace de autorização pode ser utilizado para se verificar se o problema esta relacionado a objetos de autorização.
Passo a Passo:
2) Marcar o componente de trace "Verificação autoriz.";
3) Ativar o trace, clicando em "Trace ON";
4) Executar a transação a ser mapeada, com /N + Transação;
5) Neste caso o exemplo foi a VA01 (Gravar Ordem de Vendas);
6) Executar novamente a transação ST01;
7) Desativar o trace, clicando em "Trace OFF";
8) Executar a analise do trace, clicando em "Analise";
 
 
Newtec – Belas Business Park  Via 1, s/n – Edificio Cabinda – Sala 101 – Talatona Angola
+244 (226) 434-577
 ABAP para Funcionais
9) Ao executar a analise, deixar marcado apenas a verificação de autorização, assunto que o trace foi executado.
 
 
Newtec – Belas Business Park  Via 1, s/n – Edificio Cabinda – Sala 101 – Talatona Angola
+244 (226) 434-577
 ABAP para Funcionais
 
 
Newtec – Belas Business Park  Via 1, s/n – Edificio Cabinda – Sala 101 – Talatona Angola
+244 (226) 434-577
 ABAP para Funcionais
2.   Através de uma mensagem do sistema
 
 
Newtec – Belas Business Park  Via 1, s/n – Edificio Cabinda – Sala 101 – Talatona Angola
+244 (226) 434-577
 ABAP para Funcionais
Clicar na linha da mensagem e depois em lista de utilizações ( ). Ao realizar estes procedimentos, todos os programas que utilizam essa classe de mensagem e esta mensagem serão trazidos em tela para que possamos incluir os Break-Point.
 
 
Newtec – Belas Business Park  Via 1, s/n – Edificio Cabinda – Sala 101 – Talatona Angola
+244 (226) 434-577
 ABAP para Funcionais
Conhecendo o menu do DEBUG
1.  Eliminar todos os pontos de parada: uma vez utilizada esta opção todos os pontos serão eliminados e terão que ser recriados se necessário;
2.  Desativar todos os pontos de parada: todos os pontos serão desativados neste momento do Debug, porém ao processar novamente o programa os mesmos estarão ativos novamente;
3.   Ativar todos os pontos de parada: ativa os pontos novamemente; 4.  Criar ponto de parada: atalho para a opção “Breakpoint at”; 5.  Ponto de parada de Linhas: Cria/Ativa ou Elimina/Desativa um ponto de parada na linha
posicionada; 6.  Breakpoint at:
 As opções mais utilizadas são: •  Statement: pode definir um breakpoint para um determinado comando ABAP, por
 
 
Newtec – Belas Business Park  Via 1, s/n – Edificio Cabinda – Sala 101 – Talatona Angola
+244 (226) 434-577
 ABAP para Funcionais
 
 
Newtec – Belas Business Park  Via 1, s/n – Edificio Cabinda – Sala 101 – Talatona Angola
+244 (226) 434-577
 ABAP para Funcionais
 ABAP Debugger
 
 
Newtec – Belas Business Park  Via 1, s/n – Edificio Cabinda – Sala 101 – Talatona Angola
+244 (226) 434-577
 ABAP para Funcionais
Na transacção SE38 – Colocar o nome do programa desejado e clicar em exibir.
 
 
Newtec – Belas Business Park  Via 1, s/n – Edificio Cabinda – Sala 101 – Talatona Angola
+244 (226) 434-577
 ABAP para Funcionais
 
 
Newtec – Belas Business Park  Via 1, s/n – Edificio Cabinda – Sala 101 – Talatona Angola
+244 (226) 434-577
 ABAP para Funcionais
Continuando no object navigator, na area de edição, podemos selecionar uma linha e colocar um ponto de parada usando os ícones em destaque:
 
 
Newtec – Belas Business Park  Via 1, s/n – Edificio Cabinda – Sala 101 – Talatona Angola
+244 (226) 434-577
 ABAP para Funcionais
 
 
Newtec – Belas Business Park  Via 1, s/n – Edificio Cabinda – Sala 101 – Talatona Angola
+244 (226) 434-577
 ABAP para Funcionais
Também podemos entrar em modo de debug em tempo de execução digitanto “/h” no campo de comando ou usando o menu Sistema/Depuração ABAP:
 
 
Newtec – Belas Business Park  Via 1, s/n – Edificio Cabinda – Sala 101 – Talatona Angola
+244 (226) 434-577
 ABAP para Funcionais
Na tela abaixo podemos ver a interface do ABAP Debugger:
No ABAP debuger podemos ver o conteúdo das variáveis, constantes, estruturas e tabelas internas. Podemos seguir acompanhando em tempo de execução linha a linha ou por bloco. Também existe a possibilidade de definir pontos de parada clicando duas vezes na linha que quisermos.
 
 
Newtec – Belas Business Park  Via 1, s/n – Edificio Cabinda – Sala 101 – Talatona Angola
+244 (226) 434-577
 ABAP para Funcionais
O ABAP Debuger é uma ferramenta muito importante para qualquer desenvolvedor ABAP. Ver apenas em um post na internet não vai ajudar muito no seu trabalho/aprendizado. O importante nesse caso é praticar, testar o que tem, mexer em todas as abas e por aí vai.
Entendendo as teclas do DEBUG
[ F5 ] Etapa Individual (Step by Step debugging)
Visualiza linha a linha de um breakpoint, possível visualizar os valores passo-a-passo.
[ F6 ] Executar (Skips loops and Subroutines)
Quase o mesmo que o F5, porém pula as sub-rotinas, ou seja, não conseguirá visualizar o que
acontece dentro de funções, Performs, Fórmulas, Bapis, etc.
[ F7 ] Retorno (Skips the loop or subroutine and returns to the last cursor point)
Esta opçao ignorar LOOPs ou qualquer subrotina e retornará ao ultimo ponto do Cursor.
[ F8 ] Avançar (Execute and come out of debugging)
Executa e sai do modo de Depuração.
 
 
Newtec – Belas Business Park  Via 1, s/n – Edificio Cabinda – Sala 101 – Talatona Angola
+244 (226) 434-577
 ABAP para Funcionais
Principais Transações ABAP  As principais transações para desenvolvimento ABAP são:
SE38 - abre o editor ABAP/4 SE16 - permite a visualização do conteúdo de tabelas do SAP SE11 - permite a visualização da arquitetura de uma tabela/estrutura do SAP SE43 - criação de menus SE93 - criação de transações customizadas SE71 - criação e manutenção de formulários SAPscripts SE80 - Object Navigation, basicamente todas as transações relacionado a desenvolvimentos em 1 só.
Transaçao SE80
SE 80 – Object Navigator – Abap Workbench
O ABAP Workbench inclui todas as ferramentas necessárias para a criação e edição de objetos do repositório (programas, tabelas, customizações, pacotes, etc.).
 As principais são:
 
•  Editor Abap (ABAP Editor) – editor de código fonte; •  Dicionário ABAP (ABAP Dictionary) – criar/editar definições de tabelas, etc; •  Editor de Tela (Screen Painter) – para configurar/desenhar telas; •  
Editor de Menu (Menu Painter) - para definir as interfaces de usuário (menu bar, standard toolbar, etc);
 
 
Newtec – Belas Business Park  Via 1, s/n – Edificio Cabinda – Sala 101 – Talatona Angola
+244 (226) 434-577
 ABAP para Funcionais
•  
 Área de navegação (navigation area), que fica na parte esquerda da tela e; •   A Área da ferramenta (tool area) onde é mostrada e podemos editar os objetos de
desenvolvimento.
 
 
Newtec – Belas Business Park  Via 1, s/n – Edificio Cabinda – Sala 101 – Talatona Angola
+244 (226) 434-577
 ABAP para Funcionais
Na imagem acima mostra a “Hierarquia das aplicações”, mas caso escolhesse “Programa” e no lugar onde que está escrito “Pacotes”, informasse o nome de algum programa e apertasse a tecla ENTER, na listagem em árvore, apareceriam os componentes do programa. Caso clicasse na primeira seta azul à esquerda, a área de navegação voltaria a mostrar as informações da tela acima.
Se fosse de seu interesse poderia adicionar o objeto que está aberto em sua lista de favoritos usando o terceiro ícone da direita para a esquerda.
 Você também pode criar objetos usando o menu de contexto ou colocando o nome de um objeto inexistente no campo do lado esquerdo do ícone dos óculos.
Quando selecionamos um objeto na área de navegação, ele aparece na ferramenta adequada, na área de ferramenta, ilustrada na imagem acima.
Por exemplo, se selecionarmos uma classe, a ferramenta apresentada será o Class Builder, se for um programa, a ferramenta apresentada será o Editor Abap e assim por diante.
 
 
Newtec – Belas Business Park  Via 1, s/n – Edificio Cabinda – Sala 101 – Talatona Angola
+244 (226) 434-577
 ABAP para Funcionais
Interpretando um Dump
Com todos os pontos de DEBUG vistos acima agora ficará facil fazer uma analise da ST22 (Transação que armazena todos os DUMPs).
 
 
Newtec – Belas Business Park  Via 1, s/n – Edificio Cabinda – Sala 101 – Talatona Angola
+244 (226) 434-577
 ABAP para Funcionais
Caso a analise do programa seja a partir da transacao ST22, basta abrir o DUMP que deseja analisar, selecione o DUMP (duplo clique na linha):
Na opção “Analise do Erro” teremos uma breve descricao do que pode ter sido a causa do problema.
 
 
Newtec – Belas Business Park  Via 1, s/n – Edificio Cabinda – Sala 101 – Talatona Angola
+244 (226) 434-577
 ABAP para Funcionais
 
 
Newtec – Belas Business Park  Via 1, s/n – Edificio Cabinda – Sala 101 – Talatona Angola
+244 (226) 434-577
 ABAP para Funcionais
 
Primeiro ponto a ser definido na hora da criação de uma especificação funcional é: qual o tipo de
desenvolvimento que será realizado. Ou seja, um Relatório? Ok, mas um relatório do tipo ALV? Do tipo
Writer? Um relatório dinâmico? E esse relatório, precisa ter totalizadores? Totalizadores por quais campos?
E nele existem cálculos? Quais serão os cálculos? Esse relatório terá alguma ação? Envio de E-mail?
Impressão de formulário? Todas essas perguntas devem ser feitas antes de iniciar a criação de uma
Especificação Funcional, pois qualquer ponto que não fique claro, poderá ter um grande impacto no tempo
de desenvolvimento deste relatório, por exemplo. Um relatório do tipo Writer, iremos demorar N tempos a
mais, do que um relatório ALV. Agora, se for um relatório Dinâmico, este vai demorar o dobro do tempo
de um relatório ALV.
Quanto mais clara a especificação funcional estiver quanto a todas essas definições, o desenvolvedor
 ABAP será muito mais assertivo em sua estimativa de tempo de desenvolvimento, consequentemente
gerando menos retrabalho também.
Uma especificação funcional mal definida, consequentemente implicara o prazo de entrega!
 Vamos lá:
Primeiro ponto a ser definido: Tipo de Desenvolvimento, ou seja:
o  Relatório ALV – Writer – Dinâmico?
o   Formulário SapScript ou Smartforms?
o  Implementação de uma BADI?
o  Implementação de uma User-Exit?
o  Module Pool (On-Line);
o  Etc;
Sabendo qual é o tipo do desenvolvimento, já teremos meio caminho andado, pois sabendo disso, sua
especificação será mais fácil de ser criada, pois terá a orientação necessária;
Utilizando como base nosso modelo de Especificação Funcional, iremos criar um modelo de uma
especificação de um Relatório de Ordem de Vendas, onde na tela de seleção preciso que exista os filtros
de Empresa (Obrigatório), Ordem de vendas e data, e na saída do relatório a informação de Ordem de
 Vendas, Data, Cliente, Material, Preço, Quantidade, Valor Total. Este relatório também deve estar
totalizado por Valor Total e Quantidade.
 
 
Newtec – Belas Business Park  Via 1, s/n – Edificio Cabinda – Sala 101 – Talatona Angola
+244 (226) 434-577
 ABAP para Funcionais
1 – DESCRIÇÃO FUNCIONAL / DESENHO 
Neste ponto deve ser descrito a real necessidade deste desenvolvimento: Este relatório tem por finalidade
selecionar todas as ordens de vendas. No final de todo mês, todas as empresas utilizarão este relatório na
área responsável para realizar uma analise de todas as Ordens Criadas por Cliente.
2 – JUSTIFICATIVA 
 
 Atualmente todo este trabalho é realizado manualmente, ou seja, todas as informações são extraídas das
tabelas do SAP, exportadas para uma planilha Excel onde os dados são tratados, formatados e alguns
gráficos são retirados para serem enviados para a Diretoria da Área Comercial.
3 – FLUXO DO PROCESSO 
4 – OBJECTOS DE AUTORIZAÇÃO 
Cada empresa poderá visualizar apenas suas Ordens de Vendas.
5 – RELATÓRIO 
Descrição Obrigatório Campo Referencia Tipo Campo
Empresa VBAK-BUKRS P
Clientes VBAK-KUNNR R
Descrição do Processamento:
Descrever da maneira mais clara possível como os dados serão selecionados. Neste ponto não precisa ser
técnico, ou seja, nada de código ABAP. O Funcional deve ter mente todas as tabelas a serem utilizadas,
como o exemplo abaixo:
Com os parâmetros de seleção de Empresa, Ordem de Vendas e Clientes, realizar a seleção na
tabela VBAK, utilizando os campos BUKRS – VBELN – KUNNR respectivamente.
 
 
Newtec – Belas Business Park  Via 1, s/n – Edificio Cabinda – Sala 101 – Talatona Angola
+244 (226) 434-577
 ABAP para Funcionais
Com o resultado da tabela VBAK, realizar a seleção na tabela VBAP. Através desta seleção vamos
recuperar os campos de Material (VBAP-MATNR), Quantidade (VBAP-KWMENG) e Preço (VBAP-
NETPR).
Para a seleção da descrição dos materiais a ser apresentada no relatório, acessar a tabela MAKT
e recuperar o campo MAKTX, utilizando como chave o campo VBAP-MATNR.
Para a seleção do nome do Cliente, acessar a tabela LFA1 e recuperar o campo NAME1, utilizar
como chave de seleção o campo VBAK-KUNNR.
Saída do Relatório
Empresa: D002 - Distribuidora
1 Empresa VBAK-BUKRS
3 Cliente VBAK-KUNNR
5 Item VBAP-POSNR
6 Material VBAP-MATNR
7 Descricao MAKT-MAKTX
6 – CENARIOS DE TESTES 
 
Um ponto muito importante da especificação funcional são os cenários de testes. Eles irão garantir que a
entrega do ABAP esteja muito próxima ao que o Cliente realmente espera. E principalmente com os dados
validados. Para este exemplo que criamos, o mais importante é passar o código de uma Empresa e um
Periodo que existe movimentações de Ordens vendas para que todos os cálculos sejam validados e a
verificação de seleção dos registros.
Para especificações Funcionais de BADI, User-Exit, o melhor é deixar um cenário montando que irá
garantir que as modificações realizadas passarão pelo código incluído. Ou seja, para uma User-Exit de
Ordem de Vendas, onde deve-se validar que determinado código de material não possa mais ser utilizado.
O ideal é passar na especificação o passo a passo para a criação desta ordem de vendas, e o resultado