Você está na página 1de 453

Tutorial passo a passo para você aprender

ABAP sem segredo.

ABAP sem
segredo
Tudo Passo a Passo

Autor Marcelo José de O. Santos


1.0 Aula 1 - 13/01/2014

1.1 Nomes das transações


Menu > Suplementos > Configurações.

Marque “Exibir nomes técnicos”.

1.2 Usuários Online – SM04

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 1


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
1.3 Derrubar usuário
Selecione o usuário no canto esquerdo e acesse o menu Usuário.

1.4 Adicionando Favoritos

1.4.1 Criando Pasta

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 2


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
1.5 Criando Transações

1.6 Pacote
Agrupa todos os objetos criados no SAP. É possível EXPORTAR tudo que você criou em
ABAP nesse pacote e IMPORTAR para outra Empresa.

Coloque o nome e aperte ENTER.

Camada de Transporte

Esse objeto quando sair do ambiente de desenvolvimento vai para o ambiente de


homologação.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 3


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Ordem de Transporte (Request)

Um recipiente onde terá todos os objetos que criamos, quando nós enviarmos para a camada
de transporte vai tudo que tem nela.

Clique no botão .

Aperte

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 4


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Gerenciar os Transportes (Gerenciar os Requests)
ns

Ordens Workbench – tudo que criamos como objetos (Tabelas, etc..), ou seja objetos
técnicos.

Ordens Customizing – Quando inserimos dados em uma tabela e pegamos todos esses dados
e colocamos em uma ordem de transporte.

Clique em exibir

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 5


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Modificável – Posso acrescentar alterações.

Liberado – Não pode mexer mais nessa ordem, tem que criar nova ordem.

Apagando um objeto da Ordem

Clique no objeto e depois na lixeira.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 6


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Liberar primeiro a TASK e depois a ordem. Clique no botão Liberar Diretamente. Vai ficar um
V.

Visualizar as ordens Liberadas. Marque a caixa liberado e clique em Exibir.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 7


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Criar um Programa

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 8


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Como já Liberamos a ordem abaixo, irá aparecer um erro.

Crie uma nova ordem clicando em “Criar Ordem”

Coloque uma descrição e clique em gravar.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 9


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Irá aparecer uma nova ordem.

Clique em Gravar

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 10


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Usando o novo Editor

Marque Editor Front End (novo) e Salve.

Primeiros Passos

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 11


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Clique em Salvar.

Ativando um Programa

Clique no palito de fósforo para ativar o programa, assim ele vai executar a última versão

Verificando o Código

Salve e Ative o programa.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 12


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Executando o programa

Criando uma nova transação

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 13


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Coloque a descrição e coloque a segunda transação quando for um Report

Coloque o texto da Transação, e marque todas as opções no fim da tela.

Clique em salvar

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 14


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Salve na mesma Request.

Depois acesse a sua transação pelo nome.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 15


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Data da Aula - 14/01/2014

Variáveis
 Valor variável muda em tempo de execução.
 Valor constante não muda em tem de execução.

Acesse a SE80.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 16


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Declarando tipos e variáveis.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 17


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Operações

Depuração

Verifica o sistema executando linha por linha e valores das variáveis para localizar o erro.

O programa deve estar ativo, clique no canto esquerdo da tela

Executando a linha onde tem a parada, linha por linha

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 18


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Terminar de executar o programa

Parar no momento em que uma variável chegar em um certo valor.

Informe o nome da variável

Para criar a condição que vai ser utilizada na parada clique no filtro com o quadrado azul (fim
da tela).

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 19


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Digite igual, coloque espaço depois do igual e a condição entre aspas simples.

Visualizando os Watchpoints criados.

Clique na aba Ptos. par./watchpts

Em seguida clique na aba Watchpoints

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 20


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Parou uma linha depois da variável onde foi encontrado o valor = ‘19850903’.

Para colocar uma parada em uma determinada linha.

Primeiro clique na linha desejada.

Em seguida aperte no teclado SHIFT + F12.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 21


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Operadores Lógicos

Parâmetros

Colocando o nome nos campos.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 22


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Desenhando um frame

Colocando um titulo

Clique duas vezes sobre o 001.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 23


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Com Símbolo de texto podemos traduzir se quiser.

Salvar

Aperte ok, salve e ative.

Resultado.

Traduzir os campos

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 24


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Preencha os campos em inglês

Aperte ENTER após inserção.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 25


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Efetue o logoff no SAP e entre na versão inglesa, depois rode seu programa, ele estará em
inglês.

Utilizando condição IF

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 26


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Variáveis do Sistema

SY-DATUM – data local do sistema

Melhorando o programa, colocando a data atual.

Dicas

Toda vez que iniciamos uma variável ela tem valor inicial, ex. data 0000000, em um IF
podemos verificar se a variável possui um valor inicial ou não.

IF v_myvar IF NOT INITIAL.

Nesse exemple quando a variável não conter o valor inicial vai executar alguma coisa.

EQ tem o mesmo efeito do sinal de igual (=).

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 27


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Utilizando condição CASE

Definindo um campo obrigatório

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 28


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Utilizando condição While
Faz a verificação no inicio do código

Utilizando condição Do
Faz um loop infinito.
Podemos fazer a condição de verificação para sair em qualquer parte do código.
Utilizamos o comando EXIT para sair.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 29


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Mostrando o que podemos fazer no SAP, acesse a transação BIBS

Clique em Messages.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 30


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Mensagens

Tipo I – Informação
Tipo S – Sucesso
Tipo W – Aviso
Tipo E – Erro
Tipo A – Terminação
Tipo X – Dum

Utilizando as mensagens
O TYPE tem que ser em maiúsculo.

Mensagens do Tipo E, avisa e para o processamento.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 31


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Mensagens do Tipo W, avisa mas continua o processamento.

Mensagens do Tipo S, avisa mas continua o processamento.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 32


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Mensagens do Tipo I, avisa com mensagem pop-up e continua o processamento.

Classe de mensagens
Agrupador de mensagens, onde podemos colocar todas as mensagens e traduzi-las.
A transação para criar classe de mensagens é SE91.

Coloque o nome e clique em criar.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 33


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Coloque a descrição e clique em salvar.

Clique na aba Mensagens e coloque o nome do pacote.

Clique no OK.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 34


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
&1 vai receber o parâmetro (Nome do Campo).

Podemos colocar uma explicação mais detalhada, para isso desmarque a opção “Auto-
explciat.”, marque a linha e clique no botão “Texto descritivo” no topo da tela.

Salve.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 35


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Será exibido a tela abaixo, preencha cada campo conforme o exemplo abaixo:

CAUSE (Causa)
Usuário informou um mês inválido

SYSTEM RESPONSE (Reposta do Sistema)


A execução do relatório não é permitida.

WAT_TO_DO (O que fazer)


Informar mês entre 01 e 12.

Clique em Salvar e depois em Voltar.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 36


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Para incluir a mensagem no código siga o exemplo abaixo:

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 37


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Data da Aula - 15/01/2014

Criando uma estrutura

Coloque um ponto de parada.

Ative e Execute com F8.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 38


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Quando a o debug começar será exibido a tela abaixo:

Digite o nome do campo wa_colab_id no canto direito. E aperte ENTER.

Ou clique duas vezes sobre o campo no DEBUG no lado esquerdo da tela.


Será mostrado o valor inicial do campo, ou seja 0000000.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 39


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Aperte F5 será executado o próximo comando ou seja inclusão do registro 10564349 o campo
EMP_ID será preenchido.

Clique na aba Estruturas e em seguida digite o nome da sua estrutura, no caso WA_COLAB.

Volte na ABA Desktop 1 e Aperte F5 novamente, será preenchido o valor da segunda variável.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 40


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Clique na aba Estruturas e em seguida digite o nome da sua estrutura, no caso WA_COLAB.

Aperte F5 para executar o “CLEAR wa_colab-emp_id.”, note no lado esquerdo que a


variável será apagada, depois F5 novamente para executar “CLEAR wa_colab.” para limpar
toda a estrutura.

Consulte a estrutura na aba “Estruturas”.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 41


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Dicionário

Acesse a SE11.

Coloque o nome de uma Categoria de Dados e clique em EXIBIR.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 42


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 43
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Exemplo de uma tabela.

Utilizando um Elemento de Dados

Escreva s_date e clique em Exibir.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 44


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Será exibido o elemento de dados.

Coloque o código abaixo

Ao executar será mostrado a lista de opções para escolher o mês.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 45


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 46
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Para utilizar o nome padrão desse elemento de dados acesse o menu abaixo:

Será mostrada a seguinte tela:

Marque a referência (Refer.D) no campo direito e aperte ENTER.

Após o ENTER irá aparecer o texto que já está sendo utilizado nessa estrutura.

Pronto, agora o campo estará nomeado.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 47


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 48
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Tabela interna (Um array)

É uma estrutura com várias linhas.

Depurando.
Coloque um ponto de parada na linha 64, precione F5 até a linha 70 pois assim a tabela interna
será preenchida com o primeiro registro.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 49


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Continue apertando o F5 até o próximo APPEND para inserir o segundo registro.

O segundo registro será inserido na tabela interna.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 50


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Ler os registros de uma tabela.

Apagar os registros de uma tabela.

Modificando um registro

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 51


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 52
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 53
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 54
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 55
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 56
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Visualizar o conteúdo de tabelas SE16.

Acesse a tabela de exemplo T247.

Aperte ENTER.

Clique no botão Nº de entradas.

Informe o SPRAS “PT”.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 57


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
O resultado será:

Adicionando campos na tela de seleção

Para ocultar algum campo basto desmarcar.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 58


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Exemplo de SELECT.
Estamos pegando todos os dados da língua do usuário atual da tabela t247 jogando na tabela
interna it_mes e estamos mostrando na tela

Ordenar a tabela por ordem decrescente.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 59


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
4.0 Aula 4 - 13/01/2014

4.1 Modularização
Ajuda a agrupar o código.

FORM – Cria a rotina.


PERFORM – Usado para chamar a rotina.

Programa Exemplo.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 60


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Aperte “Pretty Printer” para colocar cabeçalho.

Em subprogramas você pode arrastar a função para a tela de código

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 61


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Funções

Transação para criar funções se37.

Digite a função abaixo como exemplo e clique em Exibir.

Função para retornar o último dia do mês

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 62


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Dados que serão importados.

Dados que serão exportados.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 63


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Mostra os erros se houver alguma inconsistência nessa função.

Modificação altera um valor importado.


.

Texto fonte – Mostra os códigos da função.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 64


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Aperte F8 para testar a função.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 65


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 66
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Modelo chama uma função em nosso programa.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 67


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Clique em confirmar que o código da chamada da função irá aparecer.

CALL FUNCTION tem que estar em maiúsculo.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 68


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 69
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Execute o programa e informe uma data qualquer.

O resultado será o último dia do mês.

Criando grupo de Funções

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 70


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Criando módulo de função

Já vai trazer

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 71


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Vamos criar uma função para digitar a companhia e trazer a lista de vôos da companhia.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 72


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 73
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 74
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 75
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Criando um relatório para buscar informações da função.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 76


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
17/01.

CAP 9

MODELAGEM DE DADOS – RELACIONAMENTO


ENTRE TABELAS

SELECT – É FEITO SOBRE TABELAS TRANSPARENTES,


QUE SE RELACIONAM ENTRE ELAS.

(ELE ESTÁ FALANDO SOBRE A PAGINA 112)

SFLIGHT- SERVE PARA DEFINIRMOS AS DATAS DE


VOO

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 77


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Definimos quais são as relações entre as tabelas.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 78


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 79
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Os relacionamentos são definidos por chave
externa.

Agora vamos falar sobre tipos de SELECT


Oq precisa para construir select?
Tabela de origem
Informação
Destino

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 80


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Estrutura
Inner joy - conceitos de tabelas diferentes, vamos
imprimir o trajeto de vôo, vamos fazer Innerjoy
nessa tabela, queremos mostrar o nome da
companhia e / é o comando pra coletar dados em
tabelas diferentes.

SELECT DO INNER JOY -

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 81


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
5. Aula 5 - 17/01/2014

5.1 Eventos
Ação que ocorre no sistema. Executar um código especifico.

INITIALIZATON – Evento de inicialização, define valores default para os campos (PARAMETERS


preenchidos quando a tela é carregada

AT SELECTION-SCREEN OUTPUT
Serve para desabilitar/habilitar, mostra/ocultar alguns campos na tela de seleção

AT SELECTION-SCREEN
Serve para colocar validações no código, ele entra em ação quando preenchemos os campos e
executamos.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 82


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 83
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Utilizando os campos de SELECT-OPTIONS.

Clique na seta após os dois campos.

Você pode definir vários valores para consultar na tabela, esses serão valores de inserção
(Inserção na Busca).

Coloque um ponto de parada na linha do SELECT.

Clique na seta após os dois campos.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 84


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Preencha conforme abaixo e clique em executar.

Quando chegar no ponto de parada clique em s_carrid, no lado direito irá aparecer a tabela
que armazerá o resultado da consulta, clique no desenho da tabela conforme circulado abaixo.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 85


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Será mostrado a seguinte tela:

A letra “I“ significa que vai incluir na Busca, se houvesse uma exceção iria aparecer “E”.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 86


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
6. Aula 6 - 20/01/2014

6.1 Help
Professor: fabiopagoti@abap101.com

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 87


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 88
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Call Trasaction Automatiza o processo de chamada de transações. (batimput)

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 89


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Você

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 90


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Exercicio página 176
Abra duas transações SE80

Esse é o executável

Abra outra se80

Programa a ser chamado

Clique duas vezes sobre o comando SY-CPROG – Traz o nome do programa

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 91


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Exemplo, sem chamar tela de seleção do próximo programa.

Chamador

A ser chamado

Executa e retorna ao Chamador

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 92


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Chamando o segundo programa através da tela de seleção do segundo programa

Programa chamador.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 93


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Programa a ser chamado apareceu.

DICA

CTRL + > Adiciona comentários

Preenchendo uma tela de seleção

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 94


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Vamos preencher o campo da tela a ser chamada com um parameter p_nome da tela do
chamador.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 95


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Se retirar o VIA SELECTION-SCREEN vai chamar o segundo programa já com a variável
preenchida.

Verificando se o programa a ser chamado é executável.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 96


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 97
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Outra maneira de enviar e receber informações entre programas com IMPORT/EXPORT usando
a Memória compartilhada. Os dois programas não sabem da existência um do outro.

Vá até o programa a ser chamado e faça o IMPORT.

Execute o programa chamador, digite algo que será exportado para a memória.

Quando for executado ele irá chamar o segundo programa e vai preencher o campo p-nome
com os dados da memória.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 98


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
BAT IMPUT – Transação SHDB

Coloque um nome para o registro e o código da transação.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 99


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Quando clicar em Executar a VA02 será aberta.

Realize as alterações desejadas que esses passos serão gravados.

Faça as alterações e Salve.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 100


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Clique em Registrar e depois salvar.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 101


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Para usar a gravação acesse a transação SHDB

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 102


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Ferramentas de Qualidade do ABAP

Code Inspector

Clique com o botão direito sobre o programa, escolha verificar e em seguida “Code Inspector”.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 103


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Clique duas vezes sobre o erro que será aberto na tela.

Transação SCI – Configura o “Code Inspector”.


O sistema utiliza a variante DEFAULT.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 104


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Quais são todos os desenvolvimentos Z

Transação SE30

Digite AA como exemplo

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 105


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Será mostrado o resultado da execução do programa.

Clique em voltar duas vezes no voltar para chegar novamente na tela SE30.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 106


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 107
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
SM51 mostra os servidores

Clique duas vezes sobre o item da lista.

ST05

Vai olhar em todos os select do sistema.

Bom para saber de onde vem um determinado campo.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 108


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Em Alemão

Em Inglês

Clique em Activate Trace, depois coloque o nome da transação.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 109


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Transação SE11

Domínio
Digite S_CITY em domínio e clique em Exibir.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 110


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 111
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 112
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Elemento de Dados
Selecione Categoria dados

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 113


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 114
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Defina as descrição dos campos.

Traduções dos elementos de dados

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 115


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Workarea

Componente é um Campo de uma Workarea.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 116


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Tipo de Tabela

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 117


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 118
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
7. Aula 7 - 21/01/2014

7.1 Tabelas

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 119


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Configurações Técnicas

São os atributos técnicos de uma tabela transparente

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 120


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Tipos de dados

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 121


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Criando um domínio.

Clique em Criar.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 122


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Tipo NUMC você pode definir o tamanho dele, o tipo INTEIRO não.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 123


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Comprimento de Saída define o comprimento na impressão

Intervalos

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 124


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Salve e ative o domínio.

Criando mais um domínio

Marcando Letr. Minúsculas ativa o case sensitive.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 125


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Criando um Elemento de Dados

Utilize o seu domínio criado anteriormente ZDO_CHAR30_XX.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 126


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Preencha os FIELD LABELS.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 127


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 128
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Ative e clique em:

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 129


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Realizando a tradução da minha documentação para Inglês, virá em português

Coloque o idioma de destino.

Cada campo que você preencher pressione ENTER para aparecer o martelinho amarelo.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 130


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Criar um elemento de dados sem dominio

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 131


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Usando tipo incorporado, alternativa ao dominio.

DEC – Tipo de numero com casas decimais para valores monetários

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 132


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Criando uma estrutura

É um molde para Work Área para nomes. Se quisermos uma workarea para estruturas de
nomes em programa poderemos usar essa.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 133


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Clique em Criar.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 134


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
LOG de Ativação.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 135


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Categoria de Ampliação

Ampliável como Pretendido, permite modificar essa estrutura sem me apresentar avisos.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 136


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Estruturas dentro de estruturas (Aninhadas)

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 137


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Tipo de Tabela
Facilita a criação de tabelas internas. Não tem dados do banco envolvidos. Não precisa do
TABLE OF.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 138


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 139
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Chave

Registros únicos baseados em alguma estrutura ou campo.

Atualizando a sua estrutura aninhada ZES_PERSON_23.


Nesse exemplo abaixo a pessoa pode ter um endereço e vários telefones.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 140


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Criando uma tabela Interna

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 141


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Criando um Elemento de dados a partir de uma tabela.

Escreva o nome do Elemento de Dados e clique duas vezes sobre ele.

Salve a tabela apertando Sim

Ele vai te perguntar se você quer criar um novo elemento de dados.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 142


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 143
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Salve e Ative, depois clique em uma vez.

Tipo Incorporado

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 144


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Abre a opção para você digitar o tipo de dados e comprimento. Porém não dá para criar
tradução nem documentação.

Digite os dados conforme abaixo.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 145


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Voltando para elemento de dados

Clique no botão Elemento de dad.

Ao voltar preencha com DEZ_AREA_23 para criar um novo elemento de dados.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 146


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Criando um domínio a partir da tela de Elemento de Dados.

Clique duas vezes sobre o nome ZDO_AREA_23.

Coloque Sim.

Preencha conforme abaixo.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 147


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 148
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Volte Ative, depois Volte e Ative novamente.

Ao termino ficará assim, não se esqueça de colocar as chaves primárias:

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 149


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
A moeda do salário está na própria tabela e em um campo especifico.

Esse foi o exercício da apostila da pagina25 parte 2.

Clique em Configurações Técnicas para preencher algumas definições.

Defina a categoria de dados e em seguida a categoria de tamanho.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 150


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Visualizar os dados da tabela.

Clique no botão abaixo.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 151


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Criando uma chave estrangeira.

Estamos criando uma relação entre o campo MANDT com a tabela T000, para que seja
valido somente os dados da tabela T000 no campo MANDT.

Marque o campo MANDT, depois clique na chavinha e depois Sim para criar a chave
estrangeira.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 152


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Clique em Transferir.

Após tudo isso irá aparecer a tabela de onde os valores serão puxados.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 153


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Criando BUFFER.

Quando sua aplicação estiver lenta, é uma possibilidade de agilizar a tabela.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 154


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Nesse caso o buffer irá armazenar os campo chaves MAND e CARRIER.

Se você quiser armazenar no buffer o campo EMP_NUM então informe 3 na tela acima.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 155


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Clique em Criar Índice na folhinha branca.

Coloque um nome no índice, nesse exemplo será Z1.

Coloque uma descrição.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 156


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Clique na lista de campo conforme abaixo.

Escolha o campo departamento para criar um índice desse campo.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 157


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
O índice pelo departamento foi criado.

Salve e Ative.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 158


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
8. Aula 8 - 2/01/2014

8.1 Traduzindo Linhas de uma Tabela


Língua na tabela SMEALT.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 159


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 160
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 161
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 162
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 163
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 164
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 165
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 166
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 167
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Agora vá na tabela de Empregados.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 168


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 169
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Clique em transferir.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 170


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Lista de Atualizações

Qual elemento de dados utiliza um domínio, ou outro elemento.

Primeiro clique sobre o nome de e depois clique em “Lista de Atualizações”.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 171


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Ajuste de Tabela conservando os dados - SE14.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 172


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Funções uteis para backup
GUI_UPLOAD carrega os dados

GUI_DOWNLOAD salva para a maquina do usuário.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 173


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 174
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
SM36 – Cria um Job.

SM37 – Pesquisa o Job executados.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 175


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Visões
Juntar dados entre duas tabelas.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 176


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Tabelas que estão sendo usadas na visão

Criando uma visão

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 177


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 178
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Primeiro passo é colocar uma tabela.

Clique no botão Relações e irá mostrar todas as tabelas que se relacionam com a tabela
SCARR.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 179


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Marque a SPFLI e depois em Transferir.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 180


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Adicionando os campos na visão.

Quais colunas de cada tabela eu quero, clique duas vezes na SCARR.

Marque os campos abaixo.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 181


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Clique no próximo campo vazio e depois em Campos da Tabela.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 182


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Marque os campos desejados.

Condições
Se eu quisesse somente os registros da American Air Line ou seja só ‘AA’.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 183


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 184
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Salve e Ative.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 185


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Visualizando
Abra a SE16N e coloque sua visão ZSCARR_SPFLI_23.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 186


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Dialogo de Manutenção.

Para inserir dados de forma automática na tabela.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 187


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 188
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Aperte Enter e depois na folhinha branca.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 189


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Vamos para SM30
Você coloca o nome de uma tabela ou visão que tenha um dialogo de manutenção.

Clique em atualizar.

Se apresentar um erro então volte na tabela e altere:

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 190


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Altere Para:

Volte na SM30.
Clique em Entradas Novas para inserir dados.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 191


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Aparece o sinal de + na inserção dos dados porque esse campo não tem elemento de dados.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 192


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Para inserir Registros de Forma individual.

Vá na em:

Altere:

Clique em Atualizar no Lápis.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 193


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Marque as 3 caixas:

Clique em Salvar.

Acesse a SM30.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 194


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Depois clique em Entradas Novas.

Pronto, será mostrada a tela de inserção de registros individuais.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 195


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Vamos Criar uma transação para abrir essa nossa transação de cadastro
Abra a SE93 e crie o nome da nossa transação.

Marque a última Opção.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 196


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Configure conforme abaixo:

Descobrindo o nome do campo da tabela na SM30 clique nele e depois aperte F1, depois
clique no martelinho que será exibida a tela abaixo:

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 197


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Alimente a tela abaixo com o nome do campo da tela SM30, conforme abaixo:

Para executar a ação, vamos descobrir qual a função dos botões, para isso volte na SM30
clique sobre o botão EXIBIR e segure, arraste o cursor para fora do foco, o botão ficará
selecionado conforme imagem abaixo, após isso aperte F1.

Será mostrado o programa e a função do botão.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 198


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Coloque o nome da função do botão e um X na coluna ao lado.

Salve e realize o teste tentando acessar a transação.

Ufa... é pra funcionar.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 199


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Search HELP
Vamos criar um search Help.

Abra a transação SE80 e crie um programa chamado ZSEARCH_23.

Crie uma Ajuda p/pesquisa.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 200


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 201
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Salve e ative.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 202


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Clique em P_FIRST e aperte F4.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 203


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 204
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
DICA
SAP LUMIRA – Próprio para visualização de Dados (Gráficos), baixem da internet.

BAPI

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 205


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
9. Aula 9 - 23/01/2014

9.1 Copiar Tabela


Não copia os dados, copia somente a tabela.

Select Option
Você consegue colocar um intervalo.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 206


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Buscando por valores múltiplos.

Buscar por intervalos.

Excluindo valores individuais.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 207


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Exclui por intervalos.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 208


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Criando uma variante
Valores padrões para os campos, você define valores para os campos e pode travá-los para
que o usuário não mexa, assim poderá economizar tempo no preenchimento.

Proteger um campo

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 209


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Visualizando as variantes

Preenchendo os campos

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 210


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Module Pool
Como descobre se o programa é module pool, acesse a transação VA01.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 211


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Todo os module pool começa com SAPMV45A.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 212


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Criando um Module Pooll

Crie um module com o nome ZMODULEPOOL_23 e deixe marcado a opção “Com include TOP”.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 213


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Clique duas vezes sobre o include ZMODULEPOOL_23_TOP.

Você verá:

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 214


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Criando uma tela.

Nº tela pode ser qualquer número menos 1000

Coloque o nome e clique em Lista elems.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 215


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Aqui terá todos os elementos de tela.

Código abap da tela.

Para rodar module pool tem que criar uma transação:

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 216


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Preencha os campos abaixo.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 217


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 218
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Desenhando a Tela
Clique duas vezes sobre a tela e depois em Layout

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 219


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 220
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 221
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 222
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Os itens irão ficar obrigatórios.

Salve e ative tudo.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 223


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Quando preencher os 3 primeiros campos os outros serão preenchidos.

Para isso acesse o seu include e digite o código abaixo.

Clique duas vezes sobre a sua tela e preencha conforme abaixo:

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 224


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Clique duas vezes sobre select_spflight. Escolha Sim.

Altere a primeira linha para:

O seu novo include foi criado

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 225


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Salve e ative.

Descomente a linha module e clique duas vezes sobre o status_0100

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 226


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 227
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Bloqueando o campo.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 228


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 229
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Marque o ZMODULEPOOL_23_I01.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 230


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 231
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
DICA: Configurando o Pretty Printer.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 232


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
DICA – Ajuda do SAP, transação ABAPCU

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 233


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
10. Aula 10 - 24/01/2014

10.1 Ativando Botões

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 234


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Clique duas vezes sobre o ‘TITLE_23’

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 235


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Clique duas vezes sobre STATUS_0100.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 236


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Clique duas vezes sobre o botão BACK.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 237


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Clique duas vezes sobre o texto Aplicação.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 238


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Clique duas vezes sobre Cias Aéreas

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 239


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Clique duas vezes sobre SWTM

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 240


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Salve e escolha um atalho, depois coloque o texto da função o nome de ícone e o texto de
informação.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 241


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Colocando ação nos botões.

Salve e Ative, você vai notar que não conseguirá sair, ou seja, você será obrigado a preencher
os campos obrigatórios.

Para sair da tela sem preencher os campos obrigatórios, acesse os botões novamente clicando
duas vezes sobre STATUS_0100 conforme abaixo.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 242


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Clique duas vezes sobre o ícone BACK, depois EXIT e por fim em CANCEL.

Altere o tipo de função para “E”.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 243


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Na tela 0100 acrescente o MODULE exit_0100 AT EXIT-COMMAND

Clique duas vezes sobre ela para criá-la.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 244


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Coloque no INCLUDE fina I01.

Salve e teste, quando acessar a tela você poderá sair dela sem preencher os campos
obrigatórios.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 245


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 246
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Limpando o OK.
Acesse a sua tela e inclua o MODULE clean_okcode_0100. Clique duas vezes sobre ele e save
no INCLUDE com final I01.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 247


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Transação SE01

Se em informação global estiver vermelho significa que algo foi para produção com erro.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 248


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Criando Ícone.
Acesse sua tela, desenho o ícone apertando o último botão do lado esquerdo.

Abra o TOP Include inclua a linha 22 conforme abaixo.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 249


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Abra o include O01 e inclua a função usando o botão MODELO.

Salve.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 250


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Para localizar um ícone utilize a transação SE11.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 251


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 252
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 253
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Guardando os valores no SAP MEMORY.

Usando esse comando o SAP irá guardar a ultima coisa que você escreveu em qualquer campo
onde estiver marcado essas duas opções.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 254


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Preencha a sua tela e aperte ENTER.

Saia da tela e volte novamente. Quando você voltar a tela estará preenchida com a última
informação digitada.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 255


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Travando os campos

Travando todos os campos após a mensagem de erro.

Alterando para e007 os campos serão travados após a mensagem de erro.

Liberando os campos

Deixando alguns campos liberados. Esse recurso serve para auxiliar o usuário no
preenchimento dos campos, ou seja, se ocorrer algum erro no preenchimento do formulário o
usuário será avisado e os campos escolhidos serão destravados.
No exemplo abaixo iremos deixar destravado somente 3 campos.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 256


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Alterar o código abaixo

Conforme abaixo, isso significa que os três campos com FIELD ficarão destravados.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 257


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Preencha com algum valor que não exista.

Ao apertar ENTER os 3 campos ficarão destravados e em vermelho.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 258


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
11. Aula 11 - 27/01/2014

11.1 Alterando Drop-down para lista.

Vai alterar a lista do seguinte formato:

Para Lista:
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 259
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Alterando ícone dependendo do conteúdo localizado na tabela.
Podemos usar a workarea para saber se foi localizado algum registro, se foi localizado então o
ícone ficará verde, senão amarelo.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 260


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Criando Radion Button

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 261


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 262
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Aperte Ok, e em seguida coloque o texto de nome.

Resultado

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 263


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Definindo o Grupo para os Radio Button

Salve e Ative e teste.

Colocando Ação

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 264


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 265
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Criando uma Sub-Tela

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 266


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Após desenha coloque o nome da subtela.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 267


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Criando TABSTRIPS
Crie uma nova tela chamada 102.

Acesse o Layout da Tela e clique em Registro (através assistente).

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 268


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 269
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 270
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Coloque o asterisco.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 271


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 272
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Table Control
Tire o comentário do modulo abaixo:

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 273


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 274
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 275
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 276
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 277
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Garanti que somente uma pessoa esteja utilizando o mesmo registro.

Exemplo:

AUTHORITY-CHECK

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 278


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
SM12

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 279


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
12.Aula 12 - 28/01/2014

12.1 Alterando Drop-down para lista.


Objetos de Bloqueio começam com a letra E.

Abra a transação SE11 e crie o objeto abaixo.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 280


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Clique em Salvar e Ativar.

Vá em “Ir para > Módulos de bloqueio”.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 281


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Você verá os objetos de bloqueio.

Criando um programa para testar.

Utilize o ultimo objeto da lista abaixo:

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 282


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Clique no botão Modelo, em seguida coloque o nome do objeto de bloqueio conforme imagem
abaixo.

Será gerado o código abaixo:

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 283


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Configure da seguinte maneira e acrescente a mensagem de sucesso que será exibida em
vermelho.

Acrescente o WAIT para parar a execução do programa e para você verificar se a tabela foi
travada.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 284


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 285
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Configure conforme abaixo:

Executando o Teste
Acesse a SM12 e verifique o que está bloqueado, conforme imagem abaixo:

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 286


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Aperte F8 no seu programa ZOBJETO_BLOQUEIO_23.

Preencha com um valor.

Após digitar execute o programa.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 287


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Pronto o registro está bloqueado.

Após 30 segundos será desbloqueado e aparecerá a mensagem de sucesso.

Teste com vários usuários tentando acessar o mesmo registro.

Foi utilizado o exemplo abaixo:

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 288


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
DICAS
DICA: Pesquisar por screenpersonas

DICA: Transação SNRO

DICA: Pacote Standard – SZN (Aqui que estão os módulos de funções para ser usado com
SNRO)

Transação AL11
OPEN DATASET (Cria um arquivo)

Preenche o conteúdo do arquivo.

CLOSE DATASET (Fecha o arquivos)

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 289


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Transação LSMW
Crie o seguinte arquivo:

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 290


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 291
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 292
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Salve.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 293


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Confirme e Volte duas vezes e estará na tela abaixo:

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 294


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Salva e volta na tela anterior, você verá:

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 295


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Volte, execute novamente.

Clique no lápis, depois na sua estrutura BANKHDR e depois no Icone azul

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 296


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Salve e volte uma tela.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 297


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Salve Novamente e volte mais uma tela e execute novamente.

Clique no Modificar, depois na estrutra E1BANK_CREATE e depois em Relationship.


ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 298
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Ficará assim:

Salve e volte uma tela.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 299


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Execute novamente.

Clique em BANK_CTRY e depois em Source Field.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 300


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 301
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Faça o mesmo para BANK_KEY, BANK_NAME, REGION.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 302


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Volte uma tela.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 303


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Clique duas vezes em ZCOUNTRY_23.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 304


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 305
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Salve.

Volte até o inicio novamente.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 306


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 307
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
SEMI-COLON é o ponto e virgula.

Aperte OK.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 308


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Salve e volte uma tela.

E marque a opção 5 novamente “Maintain Field Mapping and Conversion Rules”.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 309


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Marque BANK_CTRY e em seguida clique em RULES.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 310


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Salve e volte.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 311


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Execute novamente.

Marque BANKHDR e clique em ASSIGNMENT.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 312


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Salve e volte.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 313


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Volte novamente.

Clique uma vez sobre um dos registros conforme imagem abaixo.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 314


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Volte novamente e execute o CONVERT DATA

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 315


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Volte e execute novamente

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 316


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Volte novamente. E Execute novamente.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 317


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Corrigindo o problema

Salve e volte na tela inicial.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 318


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
13. Aula 12 - 29/01/2014

13.1 ABAP Objects – Orientação a Objetos

Criando uma classe.

Primeiro crie um programa chamado ZRFI_CLASSES_23.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 319


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 320
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
14. Aula 12 – 30 /01/2014

14.1 Continuação
*&--------------------------------------------------------------------
*& Report ZRFI_CLASSES_23
*&--------------------------------------------------------------------
REPORT ZRFI_CLASSES_23.

WRITE:/ 'SALDO BANCARIO'.


NEW-LINE.
ULINE.

CLASS lcl_conta DEFINITION.

PUBLIC SECTION. "Sessão publica vem antes da Privada

"METHODS - Deve ser criado na class implementation.


METHODS constructor
IMPORTING
im_titular TYPE string
im_saldo TYPE dec_16_02_s.

METHODS define_atributos
IMPORTING
im_titular TYPE string
im_saldo TYPE dec_16_02_s.

METHODS retorna_saldo
RETURNING VALUE(re_saldo) TYPE dec_16_02_s.

METHODS imprime_atributos.

"Criando METHODS estático.


CLASS-METHODS retorna_num_contas
RETURNING VALUE(re_num_contas) TYPE i.

PRIVATE SECTION. "Daqui para baixo é tudo Privado

DATA titular TYPE string.


DATA saldo TYPE dec_16_02_s.

CLASS-DATA num_contas TYPE i.

ENDCLASS.

CLASS lcl_conta IMPLEMENTATION.

METHOD constructor.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 321


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
me->titular = im_titular.
me->saldo = im_saldo.

CALL METHOD me->define_atributos


EXPORTING
im_titular = im_titular
im_saldo = im_saldo.

lcl_conta=>num_contas = lcl_conta=>num_contas + 1.

ENDMETHOD.

METHOD define_atributos.

me->titular = im_titular.
me->saldo = im_saldo.

ENDMETHOD.

METHOD retorna_saldo.

re_saldo = me->saldo.

ENDMETHOD.

METHOD imprime_atributos.
ENDMETHOD.

METHOD retorna_num_contas.

re_num_contas = lcl_conta=>num_contas.

ENDMETHOD.

ENDCLASS.

START-OF-SELECTION.

DATA r_contal TYPE REF TO lcl_conta.


DATA r_contal2 LIKE r_contal.

DATA vl_num_contas TYPE i.


vl_num_contas = lcl_conta=>retorna_num_contas( ).
WRITE: 'Número de contas', vl_num_contas.
NEW-LINE.
ULINE.

CREATE OBJECT r_contal


EXPORTING
im_titular = 'Marcelo'

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 322


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
im_saldo = '12.5'.

r_contal->define_atributos(
EXPORTING
im_titular = 'Marcelo'
im_saldo = '100').

CREATE OBJECT r_contal2


EXPORTING
im_titular = 'Arouca'
im_saldo = '2'.

DATA vl_saldo TYPE dec_16_02_s.


vl_saldo = r_contal->retorna_saldo( ).
WRITE: 'Saldo Conta 1', vl_saldo.

ULINE.

vl_saldo = r_contal2->retorna_saldo( ).
WRITE: 'Saldo Conta 2', vl_saldo.

ULINE.

vl_num_contas = lcl_conta=>retorna_num_contas( ).
WRITE: 'Número de contas', vl_num_contas.

ULINE.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 323


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
13.2 Segundo Exemplo, com impressão
*&--------------------------------------------------------------------
*& Report ZRFI_CLASSES_23
*&--------------------------------------------------------------------

REPORT ZRFI_CLASSES_23.

WRITE:/ 'SALDO BANCARIO'.


NEW-LINE.
ULINE.

CLASS lcl_conta DEFINITION.

PUBLIC SECTION. "Sessão publica vem antes da Privada

METHODS constructor
IMPORTING
im_titular TYPE string
im_saldo TYPE dec_16_02_s.

METHODS define_atributos
IMPORTING
im_titular TYPE string
im_saldo TYPE dec_16_02_s.

METHODS retorna_saldo
RETURNING VALUE(re_saldo) TYPE dec_16_02_s.

METHODS imprime_atributos.

"Criando METHODS estático.


CLASS-METHODS retorna_num_contas
RETURNING VALUE(re_num_contas) TYPE i.

PRIVATE SECTION. "Daqui para baixo é tudo Privado

DATA titular TYPE string.


DATA saldo TYPE dec_16_02_s.

CLASS-DATA num_contas TYPE i.

ENDCLASS.

CLASS lcl_conta IMPLEMENTATION.

METHOD constructor.

me->titular = im_titular.
me->saldo = im_saldo.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 324


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
CALL METHOD me->define_atributos
EXPORTING
im_titular = im_titular
im_saldo = im_saldo.

lcl_conta=>num_contas = lcl_conta=>num_contas + 1.

ENDMETHOD.

METHOD define_atributos.

me->titular = im_titular.
me->saldo = im_saldo.

ENDMETHOD.

METHOD retorna_saldo.

re_saldo = me->saldo.

ENDMETHOD.

METHOD imprime_atributos.

WRITE: 'Titular', me->titular.


WRITE: ' - Saldo', me->saldo.
NEW-LINE.

ENDMETHOD.

METHOD retorna_num_contas.

re_num_contas = lcl_conta=>num_contas.

ENDMETHOD.

ENDCLASS.

START-OF-SELECTION.

DATA r_contal TYPE REF TO lcl_conta.


DATA r_contal2 LIKE r_contal.

DATA vl_num_contas TYPE i.


vl_num_contas = lcl_conta=>retorna_num_contas( ).
WRITE: 'Número de contas', vl_num_contas.
NEW-LINE.
ULINE.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 325


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
CREATE OBJECT r_contal
EXPORTING
im_titular = 'Marcelo'
im_saldo = '12.5'.

r_contal->define_atributos(
EXPORTING
im_titular = 'Marcelo'
im_saldo = '100').

CREATE OBJECT r_contal2


EXPORTING
im_titular = 'Arouca'
im_saldo = '2'.

r_contal->imprime_atributos( ).
r_contal2->imprime_atributos( ).

ULINE.

vl_num_contas = lcl_conta=>retorna_num_contas( ).
WRITE: 'Número de contas', vl_num_contas.

ULINE.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 326


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
15. Aula 12 - 31/01/2014

15.1 Classes Concluído


*&--------------------------------------------------------------------
*& Report ZRFI_CLASSES_23
*&--------------------------------------------------------------------

REPORT ZRFI_HERANCA_23.

*---------------------------------------------------------------------
* CLASS lcl_conta DEFINITION
*---------------------------------------------------------------------
CLASS lcl_conta DEFINITION.

PUBLIC SECTION.
METHODS constructor
IMPORTING
im_titular TYPE string
im_saldo TYPE dec_16_02_s.

METHODS define_atributos
IMPORTING
im_titular TYPE string
im_saldo TYPE dec_16_02_s.

METHODS retorna_saldo
RETURNING value(re_saldo) TYPE dec_16_02_s.

METHODS imprime_atributos.

CLASS-METHODS retorna_num_contas
RETURNING value(re_num_contas) TYPE i.

PROTECTED SECTION.
DATA: titular TYPE string,
saldo TYPE dec_16_02_s.
CLASS-DATA num_contas TYPE i.

PRIVATE SECTION.

ENDCLASS. "lcl_conta DEFINITION

*---------------------------------------------------------------------
* CLASS lcl_conta IMPLEMENTATION
*---------------------------------------------------------------------
CLASS lcl_conta IMPLEMENTATION.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 327


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
METHOD constructor.

CALL METHOD me->define_atributos


EXPORTING
im_titular = im_titular
im_saldo = im_saldo.

lcl_conta=>num_contas = lcl_conta=>num_contas + 1.
ENDMETHOD. "constructor

METHOD define_atributos.

me->titular = im_titular.
me->saldo = im_saldo.

ENDMETHOD. "define_atributos

METHOD retorna_saldo.
re_saldo = me->saldo.
ENDMETHOD. "retorna_saldo

METHOD imprime_atributos.
WRITE: 'Titular: ', me->titular.
WRITE: ' - Saldo: ', me->saldo.
NEW-LINE.
ENDMETHOD. "imprime_atributos

METHOD retorna_num_contas.
re_num_contas = lcl_conta=>num_contas.
ENDMETHOD. "retorna_num_contas
ENDCLASS. "lcl_conta IMPLEMENTATION

*---------------------------------------------------------------------
* CLASS lcl_conta_corrente DEFINITIO
*---------------------------------------------------------------------
CLASS lcl_conta_corrente DEFINITION
INHERITING FROM lcl_conta.

PUBLIC SECTION.
DATA limite TYPE dec_16_02_s READ-ONLY.

METHODS constructor
IMPORTING
im_titular TYPE string
im_saldo TYPE dec_16_02_s
im_limite TYPE dec_16_02_s.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 328


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
METHODS retorna_saldo REDEFINITION.

METHODS retorna_limite
RETURNING value(re_limite) TYPE dec_16_02_s.
ENDCLASS. "lcl_conta_corrente DEFINITIO

*---------------------------------------------------------------------
* CLASS lcl_conta_corrente IMPLEMENTATION
*---------------------------------------------------------------------
CLASS lcl_conta_corrente IMPLEMENTATION.

METHOD constructor.
super->constructor(
EXPORTING
im_titular = im_titular
im_saldo = im_saldo
).
me->limite = im_limite.

ENDMETHOD. "constructor

METHOD retorna_saldo.
re_saldo = me->saldo + me->limite.

ENDMETHOD. "retorna_saldo

METHOD retorna_limite.
re_limite = me->limite.
ENDMETHOD. "retorna_limite
ENDCLASS. "lcl_conta_corrente IMPLEMENTATION

*---------------------------------------------------------------------
* CLASS lcl_conta_poupanca DEFINITIO
*---------------------------------------------------------------------
CLASS lcl_conta_poupanca DEFINITION
INHERITING FROM lcl_conta.
PUBLIC SECTION.
DATA taxa TYPE dec_16_02_s READ-ONLY.

METHODS constructor
IMPORTING
im_titular TYPE string
im_saldo TYPE dec_16_02_s
im_taxa TYPE dec_16_02_s.

METHODS retorna_saldo REDEFINITION.

METHODS retorna_taxa
RETURNING value(re_taxa) TYPE dec_16_02_s.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 329


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ENDCLASS. "lcl_conta_poupanca DEFINITIO

*---------------------------------------------------------------------
* CLASS lcl_conta_poupanca IMPLEMENTATION
*---------------------------------------------------------------------
CLASS lcl_conta_poupanca IMPLEMENTATION.

METHOD constructor.
super->constructor(
EXPORTING
im_titular = im_titular
im_saldo = im_saldo
).
me->taxa = im_taxa.
ENDMETHOD. "constructor

METHOD retorna_saldo.
re_saldo = me->saldo * ( 1 + me->taxa ).
ENDMETHOD. "retorna_saldo

METHOD retorna_taxa.
re_taxa = me->taxa.
ENDMETHOD. "retorna_taxa
ENDCLASS. "lcl_conta_poupanca IMPLEMENTATION

*---------------------------------------------------------------------
* CLASS lcl_banco DEFINITION
*---------------------------------------------------------------------
CLASS lcl_banco DEFINITION.
PUBLIC SECTION.
DATA conta_lista TYPE TABLE OF REF TO lcl_conta.

METHODS adiciona_conta
IMPORTING
im_nova_conta TYPE REF TO lcl_conta.

METHODS retorna_saldo_total
RETURNING value(re_saldo_total) TYPE dec_16_02_s.

METHODS retorna_limite_total
RETURNING value(re_limite_total) TYPE dec_16_02_s.

ENDCLASS. "lcl_banco DEFINITION

*---------------------------------------------------------------------
* CLASS lcl_banco IMPLEMENTATION
*---------------------------------------------------------------------

CLASS lcl_banco IMPLEMENTATION.


METHOD adiciona_conta.
APPEND im_nova_conta TO me->conta_lista.
ENDMETHOD. "adiciona_conta
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 330
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
METHOD retorna_saldo_total.

DATA rl_conta TYPE REF TO lcl_conta.


LOOP AT me->conta_lista INTO rl_conta.
re_saldo_total = re_saldo_total +
rl_conta->retorna_saldo( ).
ENDLOOP.
.
ENDMETHOD. "retorna_saldo_total

METHOD retorna_limite_total.
ENDMETHOD. "retorna_limite_total

ENDCLASS. "lcl_banco IMPLEMENTATION

START-OF-SELECTION.

DATA r_conta1 TYPE REF TO lcl_conta_corrente.


DATA r_conta2 TYPE REF TO lcl_conta_poupanca.
DATA r_conta_generica TYPE REF TO lcl_conta.

DATA vl_num_contas TYPE i.

vl_num_contas = lcl_conta=>retorna_num_contas( ).
WRITE: 'Numero de contas', vl_num_contas.
NEW-LINE.

CREATE OBJECT r_conta1


EXPORTING
im_titular = 'Fabio'
im_saldo = '100'
im_limite = '8'.

r_conta1->define_atributos(
EXPORTING
im_titular = 'Fabio'
im_saldo = '100' ).

CREATE OBJECT r_conta2


EXPORTING
im_titular = 'Arouca'
im_saldo = '1000'
im_taxa = '1'.

CREATE OBJECT r_conta_generica


TYPE
lcl_conta_corrente
EXPORTING

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 331


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
im_titular = 'Jose'
im_saldo = '200'
im_limite = '400'.

r_conta1->imprime_atributos( ).
r_conta2->imprime_atributos( ).
r_conta_generica->imprime_atributos( ).

ULINE.
vl_num_contas = lcl_conta=>retorna_num_contas( ).
WRITE: 'Numero de contas', vl_num_contas.

15.1 Herança

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 332


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Aula 16 - 03/02/2014

16.1 ALV
REUSE_ALV_LIST_DISPLAY (Função da SE37)

Transação SE24

Crie um novo programa

REPORT ZRCA_ALV_SIMPLES_23.

DATA: wa_sflight TYPE sflight.


DATA: it_sflight LIKE TABLE OF wa_sflight.

DATA: r_container TYPE REF TO cl_gui_custom_container,


r_grid TYPE REF TO cl_gui_alv_grid.

START-OF-SELECTION.

SELECT *
UP TO 20 ROWS
FROM sflight
INTO TABLE it_sflight.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 333


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Crie uma nova tela.

E depois clique em LAYOUT.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 334


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 335
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Aula 17 - 04/02/2014

17.1 ALV – Forma procedural

REPORT ZRCA_ALV_SIMPLES_23.

DATA wa_sflight TYPE sflight.


DATA it_sflight LIKE TABLE OF wa_sflight.

DATA: r_container TYPE REF TO cl_gui_custom_container,


r_grid TYPE REF TO cl_gui_alv_grid.

DATA: wa_layout TYPE slis_layout_alv,


wa_fieldcat TYPE slis_fieldcat_alv,
it_fieldcat TYPE slis_t_fieldcat_alv.

START-OF-SELECTION.

SELECT *
UP TO 30 ROWS
FROM sflight
INTO TABLE it_sflight.

PERFORM montar_campos.
PERFORM montar_layout.
PERFORM exibir_alv.

*&--------------------------------------------------------------------
*& Form MONTAR_CAMPOS
*&--------------------------------------------------------------------
* text
*---------------------------------------------------------------------
FORM montar_campos.

CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'CARRID'.
wa_fieldcat-tabname = 'IT_SFLIGHT'.
wa_fieldcat-seltext_m = 'Companhia'.
APPEND wa_fieldcat TO it_fieldcat.

ENDFORM. "MONTAR_CAMPOS

*&--------------------------------------------------------------------
*& Form montar_layout
*&--------------------------------------------------------------------

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 336


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
* text
*---------------------------------------------------------------------
FORM montar_layout.

wa_layout-zebra = 'X'.
wa_layout-colwidth_optimize = 'X'.

ENDFORM. "montar_layout

*&--------------------------------------------------------------------
*& Form exibir_alv
*&--------------------------------------------------------------------
* text
*---------------------------------------------------------------------
FORM exibir_alv.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING
i_callback_program = sy-repid
it_fieldcat = it_fieldcat
is_layout = wa_layout
i_grid_title = 'Lista de Voos'
TABLES
t_outtab = it_sflight.

ENDFORM. "exibir_alv

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 337


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
17. ALV – Subtotais

Ao clicar nesse botão os dados são agrupados.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 338


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
17.3 APEND

Crie os 3 campos abaixo:

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 339


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Abra a SE16, vamos adicionar entrada nessa tabela.

Preencha conforme abaixo.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 340


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Visualize se foi cadastrado corretamente.

17.4 Ampliação no texto de Ajuda


Vamos pegar um exemplo do campo Nº pessoal da transação PA20.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 341


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Acessamos a transação CMOD.

Acessamos o caminho abaixo:

Coloque o nome do elemento de dados localizado no campo “Nº pessoal” da transação PA20.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 342


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
17.4 Ampliações de um programa Standard
Custormer EXIT, conhecido como EXIT.

Identificando uma USER EXIT em um programa.

Acesse o programa

Acesse o status do programa em:

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 343


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Clique duas vezes no nome do Programa (tela).

Quando o programa abrir, clique uma vez no nome do programa e depois em “Procurar”.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 344


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Busque por:

Nesse caso encontrou 3 exit’s. Clique duas vezes sobre a primeira EXIT.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 345


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Clique duas vezes sobre o 001

Se o módulo de função não existir o sistema irá pedir para criar.

Nesse exemplo, não iremos criar pois ele já existe, iremos abri-lo através da SE37.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 346


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Acesse a opção abaixo:

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 347


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Do lado esquerdo acesse a opção “Ampliações”.

Clique opção circulada abaixo e insira o nome do módulo de função.

Depois clique em executar.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 348


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Agora vamos criar um projeto para associar a nossa ampliação, ou seja ser usada na EXIT.

Acesse a transação CMOD.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 349


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Salve e clique em Ampliação atribuição.

Pegue no nome da Exit conforme imagem abaixo.

Em seguida cole na tela de ampliação e clique em Componentes.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 350


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Clique duas vezes sobre a função.

Clique duas vezes sobre o Include.

Vai aparecer uma mensagem de Warning. Aperte Enter.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 351


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Coloque Sim e depois salve no pacote e na request.

Pronto nesse Include que iremos criar os comandos.

Crie o exemplo abaixo

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 352


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Clique em voltar até aparecer a tela abaixo. Depois clique em Modificar.

Ative o programa.

Criando uma EXIT de MENU


Siga os mesmo passos da página 344 até a 352 mas utilize a exit CALL CUSTOMER-FUNCTION
'002'.

Coloque um nome para o Texto de Função.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 353


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Clique duas vezes sobre a função.

Clique duas vezes sobre o Include.

Irá aparecer o Warning, aperte ENTER.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 354


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Coloque Sim para Criar.

Irá aparecer a tela abaixo.

Preencha conforme abaixo.

Salve e Ative

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 355


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Volte até a tela abaixo:

Ative.

O resultado será uma opção nova em seu menu que leva até a transação PA20.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 356


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Ao clicar no meu você será redirecionado para a PA20.

Criando uma EXIT de TELA


Siga os mesmo passos da página 344 até a 352 mas utilize a exit CALL CUSTOMER-FUNCTION
'003'.

Clique duas vezes sobre a SUB SAPLXBC425G23.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 357


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Preencha conforme abaixo.

Salve e Ative

Clique em voltar.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 358


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Clique duas vezes sobre a Exit.

Irá aparecer o Warning, aperte ENTER.

Coloque Sim para Criar.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 359


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
3

Irá aparecer a tela abaixo.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 360


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Volte até a tela abaixo.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 361


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Desenhe a tela abaixo e clique no botão screen painter.

Coloque o nome da Tabela.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 362


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Marque os campos abaixo e clique em confirmar.

Clique com o botão direito no campo FUMANTE e siga os passos abaixo, isso irá transformar o
campo em Checkbox.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 363


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 364
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Salva e ative. Volte todas as telas ativando todas.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 365


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
O resultado ficará semelhante ao abaixo:

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 366


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Aula 18 - 05/02/2014

18.1 BADI

Acesse a transação SE38.

Clique no nome do programa e depois em procurar.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 367


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Irá aparecer a seguinte tela, clique duas vezes no nome da classe.

Clique duas vezes sobre a exit_book.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 368


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Acesse a transação SE18 para visualizar a estrutura de uma BADI.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 369


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Clique em OUTPUT.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 370


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Acesse a transação SE19, ela serve para criar uma implementação de BADI.

Antes de mexer na BADI, verifique se a mesma está desativada, ATENÇÃO, faça as alterações
somente se a BADI estiver inativa.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 371


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Clique no Método OUTPUT.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 372


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Digite o código abaixo:

Ative a Implementação.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 373


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Clique novamente duas vezes em OUTPUT.

Crie o código abaixo.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 374


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Clique duas vezes sobre CHANGE_VLINE.

Iremos ajustar o tamanho da coluna.

Isso porque no código do programa o tamanho da coluna é pego por essa variável.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 375


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Após alteração a última coluna será ajustada.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 376


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
18.2 ENHANCEMENT FRAMEWORK
Utilizado para ampliar o programa standard.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 377


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 378
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Clique com o botão direito sobre a linha de aspas

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 379


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
18.3 WEB DYNPRO
Criando um WEBDYNPRO

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 380


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 381
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 382
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 383
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Criar Aplicação e testando.

Salve e Ative tudo, em seguida teste.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 384


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Aula 19 - 06/02/2014

19.1 Continuando
Clique com o botão direito e escolha Insert Element.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 385


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 386
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Clique Methods e depois duas vezes sobre o Método.

METHODS

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 387


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Criando a Segunda View

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 388


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 389
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Clique duas vezes sobre a Windows.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 390


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Clique na VIEW_SAIDA segure e arraste até a Windows no lado direito.

Clique na de FROM e arraste sobre a TO.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 391


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Ative tudo e Teste clicando duas vezes sobre a Application.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 392


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Criando um Contexto – Conteúdo

Nó – Pode ser uma estrutura ou tabela interna. Se for uma variável utilizeAtribute.

CARDINALITY -> (1..1) Estrutura e (0..n) Tabela Interna.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 393


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Volte na VIEW MAIN.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 394


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Faça a mesma coisa na VIEW_SAIDA.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 395


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Adicionando mais elementos.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 396


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Insira mais um elemento de InputField. No campo value altere conforme abaixo.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 397


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
No Label altere o campo labelFor para IF_CARRID.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 398


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Criando novo WEB DYNPRO.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 399


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
O resultado será.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 400


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Clique em MAIN e depois arraste SCARR para o lado esquerdo

Aperte com o botão direito sobre o CONTAINER

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 401


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Aperte Confirmar.

O resultado será:

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 402


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
O resultado será:

Edite o CONTAINER clicando novamente com o botão direito e novamente em CREATE


CONTAINER FORM.

Desmarque as opções abaixo:

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 403


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 404
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Clique no Group depois em GP_SCARR e altere a propriedade design para SAPCOLOR.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 405


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 406
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
O Resultado será:

Clique em Method e depois duas vezes no primeiro método.

METHOD
S

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 407


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Deixei o ponto de inserção piscando entre os comandos e clique na varinha mágica.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 408


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
O resultado será:

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 409


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Código Alterado
method ONACTIONPESQUISAR .
DATA LO_ND_SCARR TYPE REF TO IF_WD_CONTEXT_NODE.
DATA LO_EL_SCARR TYPE REF TO IF_WD_CONTEXT_ELEMENT.
DATA LS_SCARR TYPE WD_THIS->ELEMENT_SCARR.
* navigate from <CONTEXT> to <SCARR> via lead selection
LO_ND_SCARR = WD_CONTEXT->GET_CHILD_NODE( NAME = WD_THIS-
>WDCTX_SCARR ).

* get element via lead selection


LO_EL_SCARR = LO_ND_SCARR->GET_ELEMENT( ).

* Ler dados Nó
LO_EL_SCARR->GET_STATIC_ATTRIBUTES(
IMPORTING
STATIC_ATTRIBUTES = LS_SCARR ).

* Buscar dados na Tabela

SELECT SINGLE *
INTO LS_SCARR
FROM SCARR
WHERE CARRID EQ LS_SCARR-CARRID.

* Atualizar Nó
LO_EL_SCARR->SET_STATIC_ATTRIBUTES(
EXPORTING
STATIC_ATTRIBUTES = LS_SCARR ).

* Código para chamar plug de saida


WD_THIS->FIRE_TO_DETAIL_VW_PLG( ).

endmethod.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 410


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Crie uma nova View.

Vá em Context e arraste o SCARR para o lado esquerdo.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 411


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
O resultado será:

Clique com o botão direito sobre CONTAINER e crie um novo container.

Clique em CONTEXT.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 412


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Selecione SCARR e confirme.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 413


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Clique duas vezes em ZWD_VOOS_23 depois arraste VOO_VIEW para dentro de
ZWD_VOOS_23.

O resultado será:

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 414


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Arraste TO_DETAIL_VW em cima de TO_DETAIL_VIEW.

Confirme.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 415


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
O resultado será:

Crie a sua aplicação para testar.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 416


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
O resultado será:

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 417


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
DICA SAPLINK

Para instalar faça o download em https://code.google.com/p/saplink/


Plugins em https://sap.assembla.com/spaces/saplink-plugins/wiki

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 418


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Visualizando o Conteúdo do Arquivo.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 419


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Importando um Arquivo.

Agora Acesse a SE24 e acesse o ZCL_BANCO_00, em segui ative o programa.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 420


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Aula 20 - 07/02/2014

20.1 Continuando
Crie um novo WEBD DRYNPRO.

Clique com o botão direito em CONTEXT e crie um nó.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 421


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
O resultado será:

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 422


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Crie mais um nó.

Chamado SPFLI.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 423


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Clique na Guia Methods.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 424


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Clique em Methods e duas vezes em CARREGAR_VOO.

Digite o Código abaixo:

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 425


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Arraste os dois componentes para esquerda.

O resultado será:

Insira um novo elemento.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 426


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Clique em ROOT e altere o layout conforme abaixo.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 427


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Insira mais um elemento.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 428


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Crie um elemento em TY_VOOS.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 429


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
O resultado será:

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 430


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 431
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Criando a ligação.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 432


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Preencha conforme abaixo:

Resultado:

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 433


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Para Zebrar a Tabela.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 434


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Clique em onLeadSelect.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 435


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
O resultado será:

Clique duas vezes sobre o primeiro método.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 436


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Clique na varinha mágica.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 437


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
O resultado no seu código será:

Clique novamente na varinha.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 438


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Após colocar os dois nós digite o código em vermelho:

method ONACTIONCARREGAR_DETALHES .

DATA LO_ND_SFLIGHT TYPE REF TO IF_WD_CONTEXT_NODE.


DATA LO_EL_SFLIGHT TYPE REF TO IF_WD_CONTEXT_ELEMENT.
DATA LS_SFLIGHT TYPE WD_THIS->ELEMENT_SFLIGHT.
* navigate from <CONTEXT> to <SFLIGHT> via lead selection
LO_ND_SFLIGHT = WD_CONTEXT->GET_CHILD_NODE( NAME = WD_THIS-
>WDCTX_SFLIGHT ).

* @TODO handle not set lead selection


IF LO_ND_SFLIGHT IS INITIAL.
ENDIF.

* get element via lead selection


LO_EL_SFLIGHT = LO_ND_SFLIGHT->GET_ELEMENT( ).

* @TODO handle not set lead selection


IF LO_EL_SFLIGHT IS INITIAL.
ENDIF.

* alternative access via index


* lo_el_sflight = lo_nd_sflight->get_element( index = 1 ).
* @TODO handle non existant child
* IF lo_el_sflight IS INITIAL.
* ENDIF.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 439


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
* get all declared attributes
LO_EL_SFLIGHT->GET_STATIC_ATTRIBUTES(
IMPORTING
STATIC_ATTRIBUTES = LS_SFLIGHT ).
DATA LO_ND_SPFLI TYPE REF TO IF_WD_CONTEXT_NODE.
DATA LO_EL_SPFLI TYPE REF TO IF_WD_CONTEXT_ELEMENT.
DATA LS_SPFLI TYPE WD_THIS->ELEMENT_SPFLI.
* navigate from <CONTEXT> to <SPFLI> via lead selection
LO_ND_SPFLI = WD_CONTEXT->GET_CHILD_NODE( NAME = WD_THIS-
>WDCTX_SPFLI ).

* get element via lead selection


LO_EL_SPFLI = LO_ND_SPFLI->GET_ELEMENT( ).

LO_EL_SPFLI->GET_STATIC_ATTRIBUTES(
IMPORTING
STATIC_ATTRIBUTES = LS_SPFLI ).

SELECT SINGLE *
INTO LS_SPFLI
FROM SPFLI
WHERE CARRID EQ LS_SFLIGHT-CARRID
AND CONNID EQ LS_SFLIGHT-CONNID.

LO_EL_SPFLI->SET_STATIC_ATTRIBUTES(
EXPORTING
STATIC_ATTRIBUTES = LS_SPFLI ).

endmethod.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 440


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 441
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 442
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 443
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 444
Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
O resultado será:

ALV em WEB DRYNPRO

SALV_WD_TABLE é um componente de ALV

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 445


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Adicione o item abaixo:

Salve que será criado o seguinte componente:

Clique duas vezes sobre a interface controle.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 446


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Clique em CONTROLLER USAGE.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 447


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
O resultado será:

Arraste somente o SFLIGHT para cima de DATA.

Insira um novo elemento.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 448


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Clique duas vezes sobre a Windows ZWD_LISTA_VOOS_23.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 449


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
Clique com o botão direito sobre o VC_ALV.

Clique em VIEW TO BE EMBEDDED.

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 450


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
O Resultado será:

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 451


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br
O resultado final será:

ABAP sem segredo | Todos os direitos reservados | Revisado em 09/02/14 452


Autor Marcelo José de Oliveira Santos - marcelo@mjdos.com.br

Você também pode gostar