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