Escolar Documentos
Profissional Documentos
Cultura Documentos
KLIMA Apostila ABAP Parte1
KLIMA Apostila ABAP Parte1
APOSTILA 1
SUMÁRIO
1. CONCEITO ERP...................................................................................................... 3
2. SAP ........................................................................................................................... 6
2.1. Arquitetura SAP ERP ........................................................................................ 8
2.2. Linguagem ABAP.............................................................................................. 9
2.3. Profissionais SAP ............................................................................................ 10
2.4. Visão dos módulos ........................................................................................... 10
3. NAVEGAÇÃO SAP .............................................................................................. 13
3.1. Transação ......................................................................................................... 14
4. AMBIENTES ......................................................................................................... 15
4.1. Requests ........................................................................................................... 15
Exemplo .................................................................................................................. 15
4.2. Objetos iniciados com Y ou Z ......................................................................... 18
4.3. Pacotes ............................................................................................................. 18
5. DICIONÁRIO DE DADOS ................................................................................... 20
5.1. Domínios .......................................................................................................... 22
5.2. Elemento de Dados .......................................................................................... 23
5.3. Tabelas ............................................................................................................. 26
5.4. Exercícios - DDIC ........................................................................................... 29
5.5. Gerador de Atualização ................................................................................... 31
5.6. Visões............................................................................................................... 33
5.7. Ajuda de Pesquisa ............................................................................................ 37
5.8. Tabela de Estrutura .......................................................................................... 40
5.9. Objetos de Bloqueio......................................................................................... 42
6. PROGRAMAS ....................................................................................................... 44
6.1. Criar o Primeiro Programa ............................................................................... 44
6.2. Declaração de Variáveis e Constantes ............................................................. 48
6.3. Parâmetros de Seleção ..................................................................................... 50
6.4. Bloco de Elementos ......................................................................................... 52
1
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
2
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
1. CONCEITO ERP
3
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
A nomenclatura ERP ganharia muita força na década de 90, entre outras razões
pela evolução das redes de comunicação entre computadores e a disseminação da
arquitetura cliente/servidor – microcomputadores ligados a servidores, com preços mais
competitivos – e não mais mainframes. E também por ser uma ferramenta importante na
filosofia de controle e gestão dos setores corporativos, que ganhou aspectos mais
próximos da que conhecemos atualmente.
4
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
lucraram com a venda do ERP como um substituto dos sistemas que poderiam falhar
com o bug do ano 2000 – o problema na data de dois dígitos nos sistemas dos
computadores.
Vantagens do ERP
Desvantagens do ERP
5
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
2. SAP
Com o surgimento de novos conceitos, a SAP foi atualizando seu produto, até a
criação do SAP R/3, em 1989. Os produtos R/2 e R/3 não representam versões de um
mesmo sistema, trata-se na verdade de produtos diferentes. O R/2 era um conjunto de
módulos de software destinado a mainframes, enquanto o R/3 foi desenvolvido para o
ambiente cliente/servidor.
6
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
Em 1995, a SAP chegou ao Brasil. Para que possa ser corretamente utilizado,
todos os softwares comercializados passam por um processo chamado de localização,
ou seja, a adequação do sistema para atender à legislação brasileira.
7
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
8
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
9
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
10
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
11
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
12
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
3. NAVEGAÇÃO SAP
Esses sãos os símbolos do SAP GUI (Graphical User Interface), para iniciar o sistema é
necessário executar.
13
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
3.1. TRANSAÇÃO
Cada funcionalidade do SAP pode ser acionada por uma opção no menu
principal ou por um código que servirá como atalho para essa opção. Esse atalho é
denominado de transação.
Todo programa em ABAP deve possuir uma transação para que demais usuários
possam acessar.
Transação Descrição
SE09 e SE10 Manutenção de request
SE11 Dicionário de dados
SE16 e SE16N Exibição de dados de tabela
SE24 Editor de classes
SE30 Análise em tempo de execução
SE37 Editor de funções
SE38 Editor de programa ABAP
SE39 Editor de programa com tela dividida
SE71 Formulário SAPSCRIPT
SE80 Navegador de objetos ABAP
SE91 Classe de mensagem
SE93 Transações
ST05 Análise de performance
ABAPDOCU Documentação de ABAP e exemplos
SHDB Registrador de transação
SMARTFORMS Formulário SMARTFORMS
14
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
4. AMBIENTES
4.1. REQUESTS
Transações SE09/SE10
EXEMPLO
Passo 1: Para criar uma nova request, acesse a transação SE09 ou SE10 e clique no
item mostrado na imagem abaixo.
15
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
16
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
Para várias tarefas, pode ser utilizado o mesmo nome. Isso deve ser utilizado,
quando as tarefas estiverem relacionadas. Exemplo: Tarefas distintas solicitadas por
uma única ordem de serviço.
17
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
4.3. PACOTES
Transação SE80
O pacote que o objeto está gravado não influencia em seu funcionamento, caso
um objeto seja gravado em um pacote errado vai continuar funcionando normalmente
afetando somente na gestão.
18
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
Informar o nome do pacote e pressionar ENTER, caso o pacote não exista será aberta
uma nova janela perguntando se deseja criar o pacote.
19
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
5. DICIONÁRIO DE DADOS
Transação SE11
20
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
NOTA: O Dicionário de Dados (DDIC) está dentro do SAP ERP e não é um banco
de dados veja a imagem:
O DDIC funciona como um FRONT END, pois as instruções e dados são enviadas
para os bancos de dados através do SGBD (Sistema Gerenciador do Banco de Dados).
Por exemplo, ao criar (e ativar) uma tabela o DDIC envia os comandos para o
SGBD, fazendo com que ele crie a tabela real no banco de dados.
Existe uma tabela física no banco de dados para uma tabela transparente. O
nome da tabela e as definições lógicas são iguais no DDIC com o banco de
dados.
21
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
• TABELA POOL: São tabelas para arquivar dados de controle (por exemplo,
sequências de telas, parâmetros de programa ou dados temporários). O DDIC
utiliza pools de tabela para armazenar um grande número (dezenas a milhares)
de tabelas muito pequenas (aproximadamente de 10 a 100 linhas cada uma). Os
pools de tabela reduzem a quantidade de recursos de banco de dados necessários
quando muitas tabelas pequenas têm de ser abertas ao mesmo tempo.
5.1. DOMÍNIOS
Um domínio indica as características técnicas de um campo, por exemplo o
formato (caractere, data, inteiro, etc) seu tamanho, máscara, etc.
22
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
23
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
24
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
25
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
5.3. TABELAS
Uma tabela é composta de campos e para criar um campo você precisa de
elemento de dados que por sua vez está atribuída a um domínio.
26
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
27
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
28
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
29
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
Criar as tabelas
1) Tabela ZTXX_FUNC
- Salvar
- Ativar a tabela
2) Tabela ZTXX_DEP
30
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
NOTA: Essa prática somente deve ser utilizada com a solicitação do Funcional.
31
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
32
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
5.6. VISÕES
Uma visão é uma representação lógica de uma ou mais tabelas. Os dados de uma
visão não são arquivados fisicamente, mas entende-se como uma visualização
personalizada com os campos das tabelas.
Para criar uma visão acessar a transação SE11, selecionar a opção Visão,
informar um nome para a visão e clicar no botão Criar.
33
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
34
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
35
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
NOTA: Essa opção não é obrigatória, deve ser utilizada quando necessário
indicar uma seleção padrão. Por exemplo, independente da tela de seleção exibir
somente os pedidos maiores que 5.000
36
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
37
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
38
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
39
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
40
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
Para criar uma Estrutura acessar a transação SE11, selecionar a opção Categoria
dados, informar um nome da estrutura e clicar no botão Criar.
Indicar Estrutura
41
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
42
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
43
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
6. PROGRAMAS
Transação SE38
• Executável
São os programas do tipo report que podemos processar clicando no
botão executar (relógio) . Esse tipo de programa é o único que
trabalha com eventos e pode ser executado via job (processamento
background).
Exemplo de programas executáveis: Relatórios, programas de consultas,
programas de carga e extração de dados, dentre outros.
• Não executáveis
São programas que não permitem a execução e as opções mencionadas a
cima, para processar esse tipo de programa é necessário incluir uma
transação.
Exemplo de programas não executáveis: Includes, programas de
formulários, Module Pool, dentre outros.
44
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
45
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
Indicar o pacote
Indicar a request
46
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
DICAS de atalhos:
• F1 = AJUDA!
• Ctrl + F2 = Verificar
• Ctrl + S = Salvar
• Shift + F1 = Pretty Printer
• Crtl + F3 = Ativar
• F8 = Executar
47
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
Exemplos de declaração:
48
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
DICA: sempre que possível, declare variáveis com referência a algum elemento
do dicionário de dados, pois em eventuais atualizações da SAP os programas
serão atualizados automaticamente.
Variáveis de sistema
49
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
Sintaxe:
PARAMETERS: p_ernam TYPE eban-ernam.
50
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
Sintaxe:
TABLES: eban.
SELECT-OPTIONS so_banfn FOR eban-banfn.
Sintaxe:
PARAMETERS: p_check1 AS CHECKBOX,
p_check2 AS CHECKBOX,
p_check3 AS CHECKBOX.
Sintaxe:
PARAMETERS: r1 RADIOBUTTON GROUP rad1,
r2 RADIOBUTTON GROUP rad1 DEFAULT 'X',
r3 RADIOBUTTON GROUP rad1.
51
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
52
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
53
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
REPORT ZKLAITON2.
* Variável para calcular o resultado
DATA v_total TYPE p DECIMALS 2.
* Comando que monta uma tela para entrada de dados
* do usuário
PARAMETERS:
p_op1 TYPE p DECIMALS 2,
p_sinal(1) TYPE c,
p_op2 TYPE p DECIMALS 2.
* Efetua o cálculo
IF p_sinal = '+'.
v_total = p_op1 + p_op2.
ELSE.
IF p_sinal = '-'.
v_total = p_op1 - p_op2.
ELSE.
IF p_sinal = '*'.
v_total = p_op1 * p_op2.
ELSE.
IF p_sinal = '/'.
v_total = p_op1 / p_op2.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
* Imprime o resultado na tela
WRITE p_op1. "Operador 1
WRITE p_sinal. "Sinal
WRITE p_op2. "Operador 2
WRITE '='. "Texto (não é constante)
WRITE v_total. "Variável de resultado
54
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
Exemplo instrução:
CASE V_COMANDO.
ENDCASE.
6.8. WORKAREA
No ABAP também é utilizada as variáveis estruturadas (vetor) porém são
denominadas por WORK AREA (área de trabalho).
55
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
Cada banco de dados tem suas próprias sintaxes dos comandos, baseando
em um padrão mínimo (ANSI SQL). O SQL do Abap é chamado de
Open SQL.
56
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
• BREAK Usuário
• /H
57
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
F5: Executa uma instrução LINHA A LINHA. Se a instrução for uma chamada
de sub-rotina/método/módulo de função, o debug mostra a primeira instrução da
sub-rotina e você continua o debug DENTRO do código da sub-rotina;
F7: Executa TODAS instruções desde o ponto de parada até o final da sub-
rotina/método/módulo de função, parando a execução do programa na primeira
instrução após a chamada;
F8: Executa todas as instruções a partir do ponto de parada atual, até encontrar
um ponto de parada.
58
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
59
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
60
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
6.14. EVENTOS
Os eventos controlam a lógica e o fluxo de processamento de um programa,
Por exemplo: É possível determinar qual rotina será acionada ao processar
uma transação ou a rotina que será acionada quando clicar no botão executar.
Alguns eventos
61
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
REPORT zteste_report.
* Parâmetros de entrada
* Consiste o pedido
AT SELECTION-SCREEN ON p_ebeln.
SELECT SINGLE ebeln
INTO v_ebeln
FROM ekko
WHERE ebeln = p_ebeln.
IF sy-subrc NE 0.
MESSAGE e398(00) WITH 'Pedido não existe'.
ENDIF.
AT SELECTION-SCREEN.
SELECT SINGLE matnr
INTO v_matnr
FROM ekpo
WHERE ebeln = p_ebeln
AND matnr = p_matnr.
IF sy-subrc NE 0.
MESSAGE e398(00) WITH 'Material informado não existe no pedido'.
ENDIF.
START-OF-SELECTION.
WRITE v_ebeln.
WRITE v_matnr.
62
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
Para criar uma classe de mensagem acessar a transação SE91, indicar um nome e
clicar em criar.
63
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
Para utilizar a classe no programa é possível definir a mesma como padrão, mas
essa definição não é obrigatória.
64
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
MESSAGE e001.
MESSAGE e001(ZMM01).
6.17. FORM
Uma sub-rotina é uma seção de código reutilizável. É como uma mini-programa
que pode ser chamado de outro ponto em seu programa ou mesmo de outros
programas. Dentro dele você pode definir variáveis, executar instruções,
escrever saída e outros. Para definir uma sub-rotina, utilize a instrução FORM
para indicar o início de uma sub-rotina e utilize ENDFORM para indicar o seu
fim. O nome de uma subrotina não pode exceder 30 caracteres. Para chamar uma
sub-rotina, utilize a instrução PERFORM.
DICA: Um bom programa possui uma boa modularização. Ela traz clareza ao
código e facilidade de manutenção.
65
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
66
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
Funcionalidades:
• Comparar versões
• Comparar versões em ambientes diferentes (DEV, QAS, PRD)
• Voltar versão do programa (Request)
• Exibir versões anteriores
67
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
7. TABELA INTERNA
• Tabela interna sem header line utilizando WA, é quando a tabela consiste
em um corpo de linha e trabalha com uma WA para atuar como linha de
cabeçalho.
Declaração da tabela sem a linha de cabeçalho.
DATA: T_EKKO TYPE TABLE OF EKKO,
WA_EKKO TYPE EKKO. “ Work área
ou
WA_EKKO LIKE LINE OF T_EKKO.
NOTA: Nas versões mais recentes do SAP (ECC 5.0 ou superior) não é
recomendo criar tabelas internas com header line devida a performance de
manipulação de dados.
7.1. TYPES
É recomendado trabalhar com TYPES (tipos) na declaração das
estruturas, dessa maneira a manutenção do código será otimizada.
68
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
7.2. APPEND
Para incluir informações na tabela interna utilizar a instrução APPEND.
Por exemplo:
WA_EKKO-EBELN = ‘123456’.
WA_EKKO-AEDAT = SY-DATUM.
WA_EKKO-LIFNR = ‘1000056’
APPEND WA_EKKO TO TI_EKKO.
TI_EKKO-EBELN = ‘123456’.
TI_EKKO-AEDAT = SY-DATUM.
TI_EKKO-LIFNR = ‘1000056’
APPEND TI_EKKO.
7.3. CLEAR
A instrução CLEAR limpa a tabela interna ou a WA, é necessário ter
ciência do comportamento de acordo com a tabela.
69
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
7.4. MODIFY
Para modificar o conteúdo de uma ou mais linhas de uma tabela interna,
utilize a instrução MODIFY.
MODIFY TI_EKKO.
70
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
7.6. SELECT
Para realizar a seleção de dados em uma tabela interna deve incluir
TABLE para o destino da seleção.
71
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
SELECT mara~matnr
makt~maktx
mara~brgew
mara~ntgew
INTO TABLE ti_saida
FROM mara
INNER JOIN makt
ON makt~matnr = mara~matnr
WHERE mara~matnr IN so_matnr
AND makt~spras = sy-langu.
CAMPOS RELACIONAMENTO
EKKO-EBELN EKKO-EBELN = SO_EBELN
EKKO-AEDAT
EKKO-LIFNR
EKPO-EBELN EKPO-EBELN = EKKO-EBELN
EKPO-EBELP
EKPO-MATNR
EKPO-MENGE
EKPO-WERKS
LFA1-LIFNR LFA1-LIFNR = EKKO-LIFNR
LFA1-NAME1
MAKT-MATNR MAKT-MATNR = EKPO-MATNR
MAKT-MAKTX
72
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
73
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada
WORKSHOP ABAP
CAMPOS
EKKO-EBELN
EKKO-AEDAT
EKKO-LIFNR
EKPO-EBELN
EKPO-EBELP
EKPO-MATNR
EKPO-MENGE
EKPO-WERKS
LFA1-LIFNR
LFA1-NAME1
MAKT-MATNR
MAKT-MAKTX
74
Klima Consultoria em Informática LTDA Instrutor
Reprodução não autorizada