Buscar

treinamento-basico-de-abap-para-funcionais

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 85 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 85 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 85 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Instrutor: Felipe Fernandes Pacheco Jr.
felipe.junior@resource.com.br
Consultor MM
Treinamento Básico de 
ABAP para Funcionais
Abril/2013
OBJETIVO
Capacitar os consultores funcionais nas principais características dos
elementos que compõe a linguagem de programação ABAP: as transações que
geralmente são executadas para facilitar o trabalho de pesquisa de estruturas,
as ampliações (exits, enhancements, melhorias)- disponíveis no ambiente ERP
SAP e ainda a utilização de Debug para depuração de programas.
Será apresentado um (overview-Resumo) de tabelas, campos, domínios,
elemento de dados e suas importâncias dentro da hierarquia ABAP.
OBJETIVO
Formas de alterar o comportamento Standard – Fluxo da Decisão.
Conteúdo
» Objetivo
» Linguagem ABAP
» Dicionário de Dados
» Tracing
» Programas
» Comandos ABAP
» Transportes
» Funções
» Ampliações
» Carga de Dados
» Dicas Especificações Funcionais
» Debug
Linguagem ABAP
Advanced Business Application Programming(ABAP) é uma linguagem de 
programação alto nível desenvolvida pela empresa SAP. É a linguagem 
utilizada no ERP SAP, onde todo desenvolvimento é armazenado na base de 
dados. 
C
COBOL
Dicionário de Dados
É onde definimos tabelas, domínios, elementos de dados, índices, etc.
SE11
Tabelas Transparentes
Tabelas de Customizing
Tabelas para armazenamento de dados 
transacionais e de configuração
Views São visualizações totais ou parciais de uma ou 
uma junção de tabelas
Domínio Define propriedades técnicas de campos, como 
tipo de dado, tamanho, etc.
Elemento de Dados Armazena as propriedades semântica s dos 
campos, por exemplo, rótulos de campos(field
labels)
Tabela de Verificação Relacionamento(Foreign Key) en tre as tabelas
Estruturas São registros(linhas de tabelas, barras d e 
campos), utilizados para definição de variáveis 
em programas
Dicionário de Dados
Tabelas estão divididas em: 
Tabelas Transparentes
Tabelas de Customizing 
SE11
Oracle
DB2
SQL Server
* Chave Primária, Chave Estrangeira ou 
Secundária e Índice.
Dicionário de Dados
Domínios
Elemento de dados
Principais tipos de dados:
CHAR – Cadeia de Caracteres
CURR – Moeda
DATS – Data
DEC – Decimal (+/-)
INT – Inteiro
NUMC – Numérico(Algarismos) 
QUAN – Quantidade formato UNIT
STRING - Strings
SE11
Dicionário de Dados
Estruturas
Exemplo: Estruturas de Tela, MEPO1211 é uma estrutura utilizada na ME2*N.
SE11
Dicionário de Dados
Views
EX: MDRV
SE11
Tracing
Em algumas situações não conseguimos encontrar qual a tabela é utilizada para exibir 
informações na tela de uma transação, por tratar-se de uma estrutura, ou então 
precisamos saber como uma determinada transação compôs o valor que esta sendo 
apresentado, ou até mesmo a performance de leitura de uma tabela, para isso podemos 
fazer um tracing do banco de dados e mapear quais os acessos da transação ao banco 
de dados durante uma determinada operação.
ST05
Tracing
Para executar uma Trace, primeiramente, deve-se clicar no botão “Activate 
Trace”, e então, executar a transação ou trecho no qual deseja buscar a 
informação de tabela ou dados. 
A Trace estará ativada, então qualquer ação realizada no SAP, seja execução 
de transações ou em transações, estará gravando quais SQL são lidas.
Tracing
Execute a transação ou processo do qual deseja encontrar a tabela, neste 
exemplo usaremos as XD03. 
Tracing
Logo após executar o trecho desejado, clique em “Desactivate” para parar o 
registro e em “Display Trace”. Surgirá uma janela com as restrições de período 
e tabelas, então em Ok. 
Tracing
Uma lista com todas tabelas executadas na Trace serão listadas, selecionando 
uma linha e indo em GoTo->Display ABAP Source é possível ir para o código 
onde trecho é utilizado.
Programas
Um programa ABAP por ser criado, editado ou exibido através das transações
SE38 ou SE80.
Quase todos os componentes SAP podem ser customizados, isto é,
desenvolvidos para adequarem-se aos processos de determinada empresa.
O nome de todos os objetos desenvolvidos são iniciados com as letras Z ou Y,
e os objetos standard, normalmente, com os demais caracteres
Programas
Estão dentre o principais tipos de programa ABAP:
� Programa Executável - Report
� Programa Include – Include
� Grupo de Funções – Conjunto de funções
� Módulo Pool – Programa Pool
SE38
Programas
Um programa ABAP por estar atribuído a uma transação para execução pelo 
usuário e pode ser visualizada pela SE93 ou acessado através da própria 
transação no Menu Sistema->Status. Neste também pode ser visualizada a 
Tela inicialização atribuída. 
SE93
Programas
Através da SE38 e em exibir lista de objetos é possível visualizar toda a 
composição de um programa ABAP.
SE38 / SE38 / 
SE80
Programas
Sub-rotinas - São módulos dentro de um programa usados para estruturar e
organizar o código, e portanto, facilitar a interpretação. A chamada é realizada
através do comando PERFORM, este comando permite a passagem de
parâmetros, isto é, valores externos que serão utilizados internamente quando
esta é chamada.
Os tipos de passagens de parâmetro são USING(normalmente utilizada para
variáveis), TABLES(utilizada para tabelas internas) e
CHANGING(normalmente variável que será alterada).
Um Perform pode ser chamada de outro programa usando a chamada IN
PROGRAM mais o nome do programa.
SE38
Programas
Eventos - Programa de diálogo
SE38
Programas
Eventos - Report
SE38
Programas
Report - Geralmente a Saída do relatório acontece por meio de comandos
ABAP como “Write”, usualmente o Report possui o layout abaixo.
SE38
Programas
ALV
Existem várias maneiras de um ALV ser gerado, o mais comum é através do
comando: CALL FUNCTION ‘REUSE_ALV_GRID_DISPLAY’ ou através de
Programas Orientados a Objetos.
SE38
Mensagens
Mensagens - Na Classe de mensagem ZSD numero 000 temos a seguinte 
mensagem: Apontamento de produção na ordem & maior ou igual a 
quantidade.
No programa vemos uma sintaxe semelhante à abaixo: 
MESSAGE E000 with ‘10’.
Onde o “E” significa: E = Erro
000 = número da mensagem
‘10’ = esse valor é substitui o “&” da mensagem contida na classe.
SE91
Comandos ABAP
Toda ação que será executada por programa são realizados através de 
comandos. No entanto, há a necessidade de declarações de valores em 
objetos para manipulação da informação, isto é, variáveis, tabelas, internas,...
• Principais Comandos: 
� Data
� Tables
� Constant
� Range
� Select
� Read Table
� Loop
� Insert/Modify
� Delete
� Append
� Write
� Submit:
� Perform
� Call Screen
� Call Function
� Call Transaction
� Commit and Wait
Comandos ABAP
• Valor de Retorno:
SYST – SY: Estrutura com valores de retorno do Sistema. Os comandos SY mais usuais 
são:
SY-SUBRC: Retorna o valor execução de comandos ABAP. Sendo 0 quando o retorno é 
verdadeiro, isto é, correto. Diferente de 0 valor falso, isto é, incorreto
SY-UCOMM: Retorna o comando de interação do usuário.
Transportes
Repositório de Objetos
Transportes
Ambientes
Transportes
Change Request
SE09
Transportes
Log de Transporte
SE09
Transportes
Versões de um objeto ABAP
SE80
Transportes
Versões de um objeto ABAP
SE80
Transportes
Comparando versões entre ambientes – DEV X QAS
SE80
Transportes
Comparando versões entre ambientes – DEV X PRD
SE80
Funções
Funções são pequenos programas utilizados por vários programas para executar 
determinadas tarefas, tais como, validar uma informação, executar determinado calculo e 
retornar o valor, ect.
Tipos de Funções:
Módulo de Função Normal
Módulo de Acesso Remoto (RFC).
BAPI
SE37
Funções
Quando chamamos um modulo de função temos os parâmetros de importação(onde 
preenchemos a entrada da função) os parâmetros de exportação( informação que 
recebemos da função) e tabelas(hora recebemos e hora inserimos informação 
dependendo da função)
SE37
Funções
BAPI (Business Aplication Programing Interface)
As BAPIs são funções mantidas pela SAP, que contemplam todas as regras de negócio 
do processo em questão. Estas funções também pode ser visualizadasna transação 
BAPI.
SE37
Funções
RFC (Remote Function Call)
SE37
SAP ECC Sistema de 3ºs RFC
Funções
RFCs x Web Services
SE37
SAP ECC SAP PI RFC Sistema de 3ºs HTTP / XML
Ampliações
O Sistema SAP permite fazer a inserção códigos do cliente em alguns trechos de códigos 
standard, são as chamadas Exits ou ampliações. Estas podem ser utilizadas para 
modificação de dados, inserção de novos dados, inclusão de novas telas com chamadas 
em transações standard, validar informações e outras funcionalidades atendem as 
necessidade do cliente.
Principais tipos de Ampliações:
• User-Exits
• Field-Exits
• Badis
CMOD, SMOD, CMOD, SMOD, 
SE18, SE19 e 
SE20.
Ampliações
Business Add-Ins(BADI) 
CL_EXITHANDLER=>GET_INSTANCE
SE24
Ampliações
Como localizar uma Exit? Pode-se localizar uma Exit através do SPRO, em cada modulo 
tem a opção abaixo, ou ainda existe alguns programas Z’s que facilitam a localização. 
Exemplo: Z_FIND_USEREXIT (o código fonte deste programa pode ser encontrado 
facilmente na web).
Ampliações
Enhencement Point – São ponto dentro do código standard, que a SAP permite a 
customização.
Para visualizar os pontos de ampliações disponíveis em uma include standard acessar a 
transação SE38 clicar em em seguida -> Processar -> Operações de Ampliação -> 
Visualizar pontos de Ampliação Implícito.
Onde mostrar as setinhas são os pontos possíveis para ampliações.
Carga de Dados (CALL TRANSACTION)
Tento esses pontos na transação SHDB será gerado o mapeamento, conforme abaixo, 
vamos alterar a descrição de um material na MM02.
Transação SHDB, clicamos em nova gravação, e preenchemos o nome do registro e a 
transação que utilizaremos para gravar
Carga de Dados (CALL TRANSACTION)
SHDB – Exemplo:
Carga de Dados (CALL TRANSACTION)
A transação irá gerar a tela abaixo onde temos em vermelho o nome do programa e a 
tela, e temos em preto o nome do campo contido na tela juntamente com o valor do 
campo durante a gravação
Carga de Dados (BAPI)
BAPI são funções criadas pela SAP que executam determinadas ações:
Exemplo:
BAPI_MATERIAL_SAVEDATA – Cadastra o material no SAP.
BAPI_SALESORDER_CREATEFROMDATA – Cria Ordem de Vendas.
Carga de Dados (BAPI)
BAPI
Debug
Esta ferramenta é muito importante na busca de erros, para encontrar valores 
de variáveis ou tabelas dentro do código executado, facilitando nas alterações. 
Existem várias formas de entrar no modo de depuração, o principal deles é o 
comando /h na barra de comando durante a execução do programa. Outra 
forma é diretamente dentro do código do programa.
SE38
Debug
Debug
Dentro do código é possível criar pontos de parada clicando na barra lateral ou 
clicando em F9 e para torná-los fixos basta salvá-los. A través da seleção de 
ponto de parada F9 é possível incluir pontos de parada múltiplo em 
comandos(Message), performs, funções, ... Por meio do CTRL+F é possível 
buscar variáveis e dados necessários. 
Debug
Os detalhes das variáveis podem ser visualizados clicando duas vezes nela e 
seu valor alterado. Esta ferramenta é excelente para execução de testes com 
valores diferentes.
É possível verificar o conteúdo das variáveis selecionadas, variáveis locais e 
globais.
Debug
Detalhes do debug
Durante o debug é possível ter informações do programa, include e evento em 
processamento, retorno de execução e índice de tabelas internas. Também é 
possível posicionar a tela no local onde o cursor esta executando.
Comandos
Percorrer debug através comandos de teclas: 
F5 – Execução de etapa individual, executa passo a passo o debug.
F6 – Execução na qual é possível pular eventos, por exemplo, Perform sem necessidade 
de entrar nestes.
F7 – Retorno de execução dentro de uma perform, por exemplo, é possível sair dele.
F8 – Execução completa.
Obs.: No caso de existir pontos de parada na frente no código todos as ações anteriores 
irão parar neste. 
Debug
Outros comandos
/h – Executa modo debug(depuração) quando digitado na barra de comando 
antes da execução de uma transação por exemplo. 
/hex – Finaliza modo depuração quando digitado na barra de comando.
/n – Finaliza a execução atual, quando acompanhado de uma código de 
transação navegará para esta.
/nend – Finaliza SAP com uma mensagem de confirmação.
/nex – Finaliza SAP e processos do usuário sem mensagem de confirmação.
Shift+F12 – Quando em modo depuração é possível retornar para o evento 
anterior, no entanto, as variáveis carregadas não são re-inicializadas. 
Debug
Debug Janela Popup
No programa ABAP, telas do tipo Popup não possuem barra de comando para 
habilitar o modo depuração. Uma maneira de contornar este problema é criar 
um arquivo do tipo .txt com o código abaixo. Este deverá ser movido para tela 
popup e então o modo depuração estará habilitado.
[FUNCTION]
Command=/H
Title=Debugger
Type=SystemCommand
C:\Users\DIEGO\
Desktop\Debug_popup.txt
Debug
Debug em Background
Para depurar um programa em Background, basta selecionar o Job e inserir o 
código JDBG na barra de comando.
Debug
Watch Point
É uma tipo de ponto de parada, no entanto, busca uma condição lógica, isto é, 
busca variáveis ou atribuições. Por exemplo, variável X ou variável X = 2. É 
uma excelente forma de busca quando se possui a variável a ser buscada.
Remoção e Desativação de pontos de paradas
Durante o modo depuração também é possível remover e desativar todos os 
pontos de parada.
Debug
Ir para a instrução
Menu: Debugger / Ir para a instrução
Vai diretamente para a instrução na qual está posicionado o cursor, sem 
executar as demais instruções. Esta funcionalidade permite voltar no fluxo do 
processamento do programa.
Especificações Funcionais
Objetivo
Informações para análise de impacto
Descrição do Processo
Regras de Negócio
Transações Envolvidas 
Mapeamento dos campos (Tabelas / Estruturas) 
Layouts de entrada e saída (Telas / Relatórios)
Parâmetros de Seleção
Dados para Testes e resultado esperado
Validações de campos com devidas mensagens
Seguir a lógica.
Outros Assuntos
• Diálogo de atualização de tabelas (SM30)
• SHD0 – Criação de Variantes de tela e de transação
• Tabelas Internas
• Recuperar dados da base
• Alterar dados na base
Outros Assuntos
• Diálogo de atualização de tabelas (SM30)
SM30
Criação do diálogo de atualização de tabelas na SE11:
SM30
Utilização do diálogo de atualização de tabelas na SM30:
SM30
Associar transação ao diálogo de atualização de tabelas, na SE93:
SM30
Como encontrar transação associada ao diálogo de atualização da tabela
Z04001, através da SE16:
SHD0
Personalização de Transação
Como exemplo, desabilitar o campo Organização de Compra da tela de um
relatório:
Outros Assuntos
• SHD0 – Criação de Variantes de tela e de transação
SHD0
Personalização de Transação
Será solicitado a confirmação de personalização tela a tela:
SHD0
Personalização de Transação
Quando a tela da variante for exibida, o campo Organização de Compras deve
ser protegido, e a variante deve ser salva:
SHD0
Personalização de Transação
Após o salvamento da personalização, o campo ficará desabilitado:
SHD0
Personalização de Tela
Como exemplo, tornar um campo de um relatório obrigatório:
SHD0
Personalização de Tela
Como resultado, o campo “Centro” tornou-se obrigatório:
Outros Assuntos
• Tabelas Internas
Tabelas Internas
São objetos de dados (variáveis), que só existem em tempo de execução de 
um programa, que permitem armazenar vários registros com a mesma 
estrutura.
Existem várias formas de definir uma tabela interna
Exemplo: DATA: ti_flight TYPE sflight occurs 0.
Tabelas Internas
Utilizando uma tabela interna
LOOP ti_flight AT INTO e_flight.
WRITE: / e_flight-carrid,
e_flight-connid,
e_flight-fldate.
ENDLOOP.
Neste exemplo está sendo lida a tabela interna TI_FLIGHT, seu conteúdo está 
sendo armazenado na estrutura E_FLIGHT, e os valores estão sendo escritos 
em tela.
Tabelas Internas
Principais operações com uma tabela interna
Na Tabela inteira Uma ou mais linhasRefresh - Deleta todo o conteúdo da 
Tabela Interna
Read - ler dados
Sort - Ordenar a tabela Modify - altera dados
Delete - deleta dados
Insert - insere dados
Append - insere no final
Outros Assuntos
• Recuperar dados da base
Recuperar dados da base
• Maneiras de recuperar dados da base
SELECT... 
INTO TABLE...
SELECT carrid connid fldate
FROM sflight
INTO TABLE itab_focc
WHERE carrid = pa_car
SELECT... 
ENDSELECT
SELECT carrid connid fldate
FROM sflight
INTO wa_sbc400_focc
WHERE carrid = pa_car
ENDSELECT.
SELECT SINGLE * 
FROM ...
SELEC SINGLE * 
FROM scarr
INTO wa_scarr
WHERE CARRID = pa_car.
Recuperar dados da base
• Maneiras de recuperar dados da base
SELECT... 
FROM Tabela 1,
Tabela 2,
Tabela N.
INTO TABLE...
SELECT splif~campo1 ... scarr~campoN
FROM spfli INNER JOIN scarr
ON spfli~carrid = scarr~carrid
INTO TABLE itab_focc
WHERE ...
Outros Assuntos
• Alterar dados na base
Alterar dados na base
• Comandos Utilizados: INSERT, UPDATE, DELETE e MODIFY
• Conceito IMPORTANTE
NÃO é possível alterar dados de tabelas standard.
Estas alterações são feitas por funções chamadas BAPI (Business Aplication 
Programing Interface).
As BAPIs são mantidas pela SAP, e contemplam todas as regras de negócio.
Caso a tabela em questão não possua uma BAPI, o consultor funcional deve gravar 
uma sequência de passos de utilização de alguma transação que atualize esta 
tabela, e passar para o consultor ABAP providenciar a implementação.
Exercícios
• Meu primeiro programa. Hello World!...
Acesse o editor ABAP (SE38) e codifique um programa executável (Report)
.
Dúvidas?

Continue navegando