5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 1/239
ACADEMIA INTERNA
ABAP / SAP R3
5/21/2018 Academia SAP Abap_Interna - slidepdf.com http://slidepdf.com/reader/full/academia-sap-abapinterna 2/239
•
Introdução SAP R/3
•
Dicionário de Dados*
•
Programação
•
Relatórios
•
ALV*
•
On Line*
•
Batch-Input/Call Transaction*
•
SapScript*
•
Exits
* exercícios
Cronograma
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna
www.softtek.com.br
3/239
Click to edit Master title style
3
3
3
3
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 4/239
Objetivos
•
O que é SAP R/3
•
Funcionais e Basis Components
•
Arquitetura
•
Projetos
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 5/239
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 6/239
SAP - R/3
•
Gestão Empresarial - ERP
•
Integração
•
Acesso a informação em tempo real e segura
•
Tomada de decisão
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 7/239
5/21/2018 Academia SAP Abap_Interna - slidepdf.com http://slidepdf.com/reader/full/academia-sap-abapinterna 8/239
R/3
Cliente / Servidor
ABAP/4
FI
Contabilidade
Financeira
CO
Controladoria
AM
Ativos. Fixos
PS
Gerenc. de
Projetos
OC
Comunicação
IS
Solucões
Setoriais
MM
Gerenc.de
Materiais
HR
Recursos
Humanos
SD
Vendas e
Distribuição
PP
Plan. da
Produção
QM
Controle de
Qualidade
PM
Manutenção
da Planta
Sistemas
abertos
Arquitetura
Cliente/Servidor
Modelo de dados
empresariais
Desenhado
para todo
tipo de negócios
Multinacional
Funcionalidades
sofisticadas
Soluções integradas
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 9/239
Sistema R/3
Sales & Distribution : A solução completa para o
gerenciamento integrado de todas tarefas para vendas,
faturamento e expedição.
Materials Management : O processo completo de compras,
com suporte integrado de resultados e planejamento de
produção.
Production Planning : O sistema de PCP ajustável para
todos os tipos de produção com suporte integrado de
resultados e do gerenciamento de compras.
Quality Management : O sistema para o controle da
qualidade assegurada em todas as áreas da cadeia
logística.
Plant Maintenance : A solução independente de indústria
para a administração da manutenção de sistemas
produtivos.
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 10/239
Human Resources Management : Desde o
processamento integrado de administração RH,
gerenciamento de tempo e despesas de viagens até
a folha de pagamento.
Human Resources Planning : Planejamento
organizacional, posicionamento, desenvolvimento
educacional e controle do custo de pessoal em um
sistema totalmente integrado.
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 11/239
Financial Accounting: Uma ampla visão do desempenho
que inclui gerenciamento de caixa, banco eletrônico,
controladoria financeira, orçamento de caixa e
consolidação.
Controlling: Contabilidade de custos, desde a
contabilidade de centros de custos e de elementos de
custos até a análise de lucratividade.
Asset Management : O gerenciamento completo de todos
os ativos fixos, desde da contabilidade tradicional de ativos
e gerenciamento técnico de ativos até a controladoria de
investimentos.
Project Information System : A integração de todas as
áreas de serviços para o planejamento de projetos,
processamento e controle
.
Executive Information System (EIS) : Acesso rápido aos
dados, fatos e representações gráficas para decisões
gerenciais.
5/21/2018 Academia SAP Abap_Interna - slidepdf.com http://slidepdf.com/reader/full/academia-sap-abapinterna 12/239
Estrutura Organizacional
Grupo de empresas
Armazém
Organização de
compras
Sociedade
Centro
0001
1000
001
0002
2000
3000
0002
0004
0005
0002
0003
WM
0088
0001
0001
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 13/239
Módulo FI e suas funções
Contabilidade Geral
Contas a Receber
Controlling Financeiro
Gestão Orçamentária
Consolidação
Ativos
Financeiros
FI-FI
FI-LC
FI-FM
FI-FC
FI-AR
FI-AP
FI-GL
Contas a Pagar
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 14/239
Contabilidade Empresarial
Base Dados Documentos
Contabilidade Geral
MM
SD
HR
AM
MM
Fornecedores
Clientes
Pessoal
Ativos
Materiais
FI
FI
Consolidação
Ledgers
PCB
Custos
de
Projetos
JOB
Ordens
de
Custos
CCA
Contab.
Centros
Custos
PC
Custo de
Produtos
PA
Análise de
Rentabilidade
PM-PP
5/21/2018 Academia SAP Abap_Interna - slidepdf.com http://slidepdf.com/reader/full/academia-sap-abapinterna 15/239
Contas a Pagar
Compensação
Fornecedor
Qualificação
de fornecedor
Estatísticas
Antecipações
Promissórias
Pagtos.
parciais
Relatórios
Previsão de cobrança e pagto.Registro demoeda
Rankings
EDI
Gestão e prevenção de
tesouraria
CO
Auditoría
MM
Recebto.
Pedido de
compra
Fatura
EDI
Pagtos
Cheque
Transferência
Compensação
Letras
Pagar
Recebto.
Cálculo de
interesses
Cartas a forn.
Confirmação
de saldos
Correspondência
Pagtos
ã
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 16/239
Gestão de Materiais - Processo de Abastecimento
Gestão de Pedidos
Follow-up de Pedidos
Pedidos
Fatura
Verificação de faturas
Entrada de mercadoria
e gestão de estoques
Gestão de
Materiais
Seleção de fornecedores
Associação de fonte aquisição
Planejamento
Fornecedor
Contrato marco
Planejamento
de necesidades
5/21/2018 Academia SAP Abap_Interna - slidepdf.com http://slidepdf.com/reader/full/academia-sap-abapinterna 17/239
Logística - R/3
Plano de Vendas
Vendas
Distribuição
Faturamento
SD
Compras
Gestão de Estoques
Verif. Facturas
MM
Custo de Produtos
Controle
de produção
Planej. Capacidade
MRP
Planej, Produção
PP
Planej. Paradas
Manutenção
Planej. Inspeção
Gestão de inspeção
Controle em planta
PDC
PM
QM
PP-SFC
FI
CO
AM
HR
CAD CAM CAP CAQ
Provedor
Cliente
Contabil.
Financeira
Contabilid.
de Custos
Ativos
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 18/239
Recursos Humanos
Gastos de Viagens
Salários
Organizacão de
Rec. Humanos
Planejamento de
Rec. Humanos
Control de custos
de Rec. Humanos
Gestão
de Tempos
Relatórios
estatísticas
Datos Mestres
de Pessoal
FI / CO
Contabilidade Financeira / Analítica
PP
Controle e planejamento
de produção
PM
Manutenção
HR
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 19/239
5/21/2018 Academia SAP Abap_Interna - slidepdf.com http://slidepdf.com/reader/full/academia-sap-abapinterna 20/239
ABAP
A
B
A
P
/
4
dvanced
usiness
pplication
rogramming
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 21/239
www.softtek.com.br
Click to edit Master title style
21
21
21
21
5/21/2018 Academia SAP Abap_Interna - slidepdf.com http://slidepdf.com/reader/full/academia-sap-abapinterna 22/239
Arquitetura em 3 camadas
Banco de Dados
R/3
Application Server
Presentation Server
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 23/239
Banco de Dados
R/3
5/21/2018 Academia SAP Abap_Interna - slidepdf.com http://slidepdf.com/reader/full/academia-sap-abapinterna 24/239
Servidores
Servidor
DV4
Servidor
QA4
Servidor
PR4
Ambiente de
5/21/2018 Academia SAP Abap_Interna - slidepdf.com http://slidepdf.com/reader/full/academia-sap-abapinterna 25/239
Mandantes
Servidor
DVL
Mandante
003
Mandante
120
R
t‟
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 26/239
Request‟s
Ambiente de desenvolvimento: client 200
Task
5/21/2018 Academia SAP Abap_Interna - slidepdf.com http://slidepdf.com/reader/full/academia-sap-abapinterna 27/239
Transporte
Servidor
DV4
Servidor
QA4
Servidor
PR4
Ambiente de
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 28/239
www.softtek.com.br
Click to edit Master title style
28
28
28
28
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 29/239
Fases
•
Levantamento - BC
•
Modelagem dos processos atuais
•
Como deverão ser os processos - BC
•
Customização
•
Desenvolvimentos - BC
•
Validação - BC
•
Testes individuais/integrados - BC
•
Produção - BC
•
Melhorias - BC
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 30/239
www.softtek.com.br
Click to edit Master title style
30
30
30
30
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 31/239
www.softtek.com.br
Click to edit Master title style
31
31
31
31
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 32/239
Objetivos
•
O que é dicionário de dados
•
Elementos do dicionário de dados
•
Como utilizar o dicionário de dados
•
Levantamento de informações no R/3
5/21/2018 Academia SAP Abap_Interna - slidepdf.com http://slidepdf.com/reader/full/academia-sap-abapinterna 33/239
•
Integração
•
Gerenciamento de Dados
–
Atribuição
–
Descrição e Significado
•
Ativação dos Dados
Banco de Dados
R/3
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 34/239
Tabela
DICIONÁRIO ABAP/4
DEFINIÇÃO LÓGICA DA TABELA
BANCO DE DADOS
DEFINIÇÃO FÍSICA DA TABELA
Campo 1
Campo 2
Campo 3
Campo 4
Tabela
Tabela
Campo 1
Campo 2
Campo 3
Campo 4
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 35/239
Dicionário ABAP/4
Banco de Dados R/3
Tabela 1
Tabela 2
Tabela “n”“DB UTILITY”
Tabela 1
Campo 1
Campo 2
Campo 3
Campo 4
Campo 5
Tabela 2
Campo 1
Campo 2
Tabela “n”
Campo 2
Campo 3
Campo 5
•
Sistema de gerenciamento de banco de dados
relacional
•
Dados trabalhados via SQL
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 36/239
Elementos do Dicionário de Dados
•
Tabelas - armazenam dados
•
Estruturas - não armazenam dados
•
Visões - join de tabelas e restrição de campos
•
Campos
•
Elementos de dados
•
Domínios
•
Ajuda de pesquisa
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 37/239
AMBIENTE DE DESENVOLVIMENTO
Ferramentas
Modelagem
de Dados
Telas
AMBIENTE DE EXECUÇÃO DA APLICAÇÃO
Interpretador
Controle de
Diálogo
Interfaces
Módulos
Banco de Dados
R/3
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 38/239
www.softtek.com.br
Click to edit Master title style
38
38
38
38
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 39/239
Elemento de Dados e Domínios
Elemento de Dados
Domínio
Utiliza
Utiliza
Definição Semântica
Definição Técnica
Tabela
Campo
Banco de
Dados R/3
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 40/239
Generalizando
Domínio
Tabela 1
Tabela 2
Tabela 3
Tabela 4
Tabela 5
Elemento de Dados 1
Elemento de Dados 2
Elemento de Dados 3
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 41/239
Foreign Key
Table T1
Field 1
Field 2
Field 3
Field 4
Primary Key
Table T2 (check table)
Field A
Field B
Field C
Field D
Primary Key
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 42/239
Estruturas
As estruturas possuem os mesmos elementos das tabelas mas
não armazenam dados. Só estão preenchidas em run-time.
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 43/239
www.softtek.com.br
Click to edit Master title style
43
43
43
43
Visões
Vi õ
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 44/239
Banco de
Dados R/3
Tabela 1
Tabela 2
Tabela “n”
View
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 45/239
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 46/239
www.softtek.com.br
Click to edit Master title style
46
46
46
46
Levantamento de Informações
Funções
5/21/2018 Academia SAP Abap_Interna - slidepdf.com http://slidepdf.com/reader/full/academia-sap-abapinterna 47/239
•
F1 - Ajuda (Help)
•
F9 - Informação técnica
Funções
Exercício
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 48/239
Exercício
1. Criar uma tabela Z no dicionário de dados, com o nome ZTESTE_001.
Layout :
- DOCUMENTO
chave numérico
10
- ITEM
chave numérico
05
- TEXTO
alfa
40
- MATERIAL
numérico
06
- QUANTIDADE
numérico
04
- PRECO_UNITARIO
numérico
15(02)
- PRECO_TOTAL
numérico
15(02)
•
Os desenvolvimentos devem ser amarrados em uma mesma request. A descrição
da request deve começar por : “TREIN ABAP ????
-
... “
???? : Iniciais do nome, para identificar o usuário.
•
Os elementos de dados e seus domínios devem ser criados. Objetos Z.
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 49/239
2.
Preencher manualmente a tabela criada, com os registros abaixo, via diálogo
de atualização (SE11/SM30).
Documento
Item Texto
Material
Qtde Preço
Unit
Preço
Tot
1000000001
00001 Documento teste 001 900001
0010
10,00
1000000001
00002 Documento teste 001 900002
0012
12,00
1000000002
00001 Documento teste 001 900001
0009
100,00
1000000002
00002 Documento teste 001 900003
0020
25,00
500,00
1000000002
00003 Documento teste 001 900003
0009
50,00
Exercício -
continuação
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 50/239
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 51/239
SE38/SE80 - Navegação
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 52/239
•
Tipos de progamas possíveis
•
Estrutura geral de um programa abap
Criando um novo programa
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 53/239
Declaração de tabelas
Tabelas do dicionário de dados
TABLES : tabela01, tabela02, … .
Tabelas internas
DATA: BEGIN OF t_tabela01 OCCURS 0,
campo1(16) TYPE c,
campo2
LIKE tabela01-campo,
...
END OF t_tabela01.
DATA: BEGIN OF t_tabela02 OCCURS 0.
INCLUDE STRUCTURE tabela02.
DATA: END OF t_tabela02.
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 54/239
Como funciona o Header Line
1001
ABC
A90S
23,00
1002
DEF
J82J
02,03
2003
GHI
KK89
00,01
Header Line
Registros da Tabela
Obs.: os registros são trabalhados no Header e posteriormente
levados à tabela.
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 55/239
Declaração de estrutura
Estrutura
DATA: BEGIN OF e_tabela01,
campo1(16) TYPE c,
campo2
LIKE tabela01-campo,
...
END OF e_tabela01.
DATA: BEGIN OF e_tabela02.
INCLUDE STRUCTURE tabela02.
DATA: END OF e_tabela02.
1001
ABC
A90S
23,00
Estrutura
Obs.: a estrutura é criada apenas em tempo de execução, nunca
gravada.
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 56/239
Declaração de variáveis
Variávieis
- Por referência a outro campo de tabela já existente :
DATA: variavel01
LIKE tabela01-campo01.
- Pelo tipo que queremos :
DATA: variavel02(04) TYPE i.
- Uma variável com a estrutura de outra :
DATA: variavel03
LIKE tabela02.
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 57/239
Tipos de dados
Tipos
I
->
inteiro (4 bytes c/ sinal)
N
->
numérico (só números)
P
->
compactado
F
->
ponto flutuante
C
->
caracter
D
->
data (AAAAMMDD)
T
->
hora (HHMMSS)
X
->
hexadecimal (sequência de bytes)
Obs.: se não for atribuído tipo a variável, esta será definida como
caracter, automáticamente.
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 58/239
Tela de seleção
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 59/239
Tela de seleção
SELECTION-SCREEN BEGIN OF BLOCK bloco1
WITH FRAME TITLE
text-001.
SELECT-OPTIONS: s_period FOR sy-datum
OBLIGATORY.
SELECTION-SCREEN END OF BLOCK bloco1.
SELECTION-SCREEN BEGIN OF BLOCK bloco2 WITH FRAME TITLE text-002.
SELECT-OPTIONS: s_pernr FOR pa0000-
pernr,
“Crachá
...
SELECTION-SCREEN END OF BLOCK bloco2.
SELECTION-SCREEN: BEGIN OF BLOCK bloco3 WITH FRAME TITLE text-014.
SELECT-OPTIONS: s_tipo
FOR zthrvrub-tipo NO INTERVALS,
s_awart FOR pa2001-awart NO INTERVALS. "Ausência
SELECTION-SCREEN: END OF BLOCK bloco3.
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 60/239
Tela de seleção
SELECTION-SCREEN BEGIN OF BLOCK bloco4
WITH FRAME TITLE
text-032.
PARAMETERS: p_data LIKE sy-datum
OBLIGATORY.
SELECTION-SCREEN END OF BLOCK bloco4.
SELECTION-SCREEN BEGIN OF BLOCK BLOCO5 WITH FRAME TITLE TEXT-033.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: P_FAB RADIOBUTTON GROUP RADI.
SELECTION-SCREEN COMMENT 5(30) TEXT-034
FOR FIELD P_FAB.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: P_CD RADIOBUTTON GROUP RADI.
SELECTION-SCREEN COMMENT 5(30) TEXT-035
FOR FIELD P_CD.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK BLOCO5.
SELECTION-SCREEN SKIP 1.
O comando SKIP pula o número de linhas identificado
SELECTION-SCREEN ULINE.
O comando ULINE imprime uma linha contínua
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 61/239
Eventos de um programa Abap
INITIALIZATION:
Onde se pode setar variáveis e preencher
atributos ao se inicializar o programa.
START-OF-SELECTION: Corpo principal do programa. Onde as
seleções de dados são feitas e informações
trabalhadas.
END-OF-SELECTION:
Não é obrigatório, mas costuma-se utilizar
este ponto para impressão de relatórios e
finalização do processo.
TOP-OF-PAGE:
Este evento se processa antes do primeiro
dado ser impresso em cada página. Pode ser
usado como cabeçalho, em companhia do
NO STANDARD PAGE HEADING.
END-OF-PAGE:
Este evento ocorre quando se ultrapassa o
número de linhas da página corrente.
Ou quando se passa de uma página à outra.
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 62/239
IF
-
IF… ENDIF.Este comando permite que se desvie o fluxo do programa, dependendo da condição. Para
encerrar usa-se: ENDIF, pode-se ainda ELSEIF e ELSE. O programa só irá executar a condição
correta.
IF <condição>
.
…
ENDIF.
Exemplo: IF VBAP-VBELN IS INITIAL.
MESSAGE E001(ZSSI).
ENDIF.
-IF... ELSE... ENDIF.
IF <condição>
.
…
ELSE.
…
ENDIF.
Exemplo.: IF VBAP-VBELN is INITIAL.
MESSAGE E001(ZSSI).
ElSE.
MOVE VBAP-VBELN TO W_VBELN.
ENDIF.
Comandos básicos IF
5/21/2018 Academia SAP Abap_Interna - slidepdf.com http://slidepdf.com/reader/full/academia-sap-abapinterna 63/239
-
IF …ELSEIF…ELSEIF…ENDIF.IF <condição1>
.
…
ELSEIF <condição2>
...
.
ELSEIF <condição3>
.
...
ENDIF.
Exemplo.: IF VBAP-VBELN is INITIAL.
MESSAGE E001(ZSSI).
ElSEIF not VBAP-VBELN is INITIAL .
MOVE VBAP-VBELN TO W_PERNR.
ELSEIF not VBAP-VBELN is INITIAL AND
W_VBELN
is INITIAL.
MOVE VBAP-VBELN TO W_VBELN.
ENDIF.
Comandos básicos IF
5/21/2018 Academia SAP Abap_Interna - slidepdf.com http://slidepdf.com/reader/full/academia-sap-abapinterna 64/239
LOOP
-
LOOP …ENDLOOP.LOOP AT <itab>.
…
…
…
ENDLOOP.
LOOP AT <itab> WHERE <condição>.
…
…
…
ENDLOOP.
Comandos básicos LOOP
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 65/239
CASE
-
CASE …ENDCASE.É um controle baseado em índice de objeto de dados. Este controle deve ser concluído
com ENDCASE.
CASE <f>.
WHEN <f 01> [OR <f 02> OR ...].
...
WHEN <f 03>.[OR <f 04> OR ...]
...
WHEN <f 05> [OR <f 06> OR ...].
...
WHEN ...
...
WHEN OTHERS.
...
ENDCASE.
Exemplo: CASE W_DATA(02).
When ‘01’.
W_DATA = W_DATA + 1.
When ‘02’.
W_DATA = W_DATA + 2.
When others.
Clear W_DATA.
ENDCASE.
Comandos básicos CASE
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 66/239
DO
-
DO …ENDDO.Repete o processamento que está dentro de DO e ENDDO.
Terminando com os comandos EXIT, STOP e REJECT.
Pode usar CONTINUE, para terminar o passo do DO e continuar o passo seguinte.
DO < n > TIMES.
...
ENDDO.
Exemplo1:
DO 10 TIMES.
IF VBAK-VBELN eq VBAK-VBELN.
W_VBELN = VBAK-VBELN.
ENDIF.
ENDDO.
Exemplo2:
DO.
IF VBAK-VBELN is INITIAL.
EXIT.
ELSEIF VBAK-VBELN in P_VBELN.
CONTINUE.
ENDIF.
ENDDO.
Comandos básicos DO
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 67/239
WHILE
- WHILE …ENDWHILE .
Repete o processamento que está dentro de WHILE e ENDWHILE, se a expressão é verdadeira.
A cada passagem a expressão é verificada.
Pode usar CONTINUE , para terminar o passo do WHILE e continuar o passo seguinte.
WHILE expressão.
…
…
ENDWHILE.
Exemplo:
WHILE W_WRITE <= 10.
WRITE: / TEXT-001.
W_WRITE = W_WRITE + 1.
ENDWHILE.
CHECK
- CHECK
Para encerrar uma sub-rotina usa-se, frequentemente, ENDFORM.
Podemos terminar antes, usando os comandos EXIT e CHECK.
Se a expressão lógica estabelecida no CHECK for falsa, a sub-rotina será encerrada.
Se a expressão CHECK for aplicada a um LOOP, encerra-se o LOOP.
CHECK SY-SUBRC = 0.
Comandos básicos
WHILE / CHECK
5/21/2018 Academia SAP Abap_Interna - slidepdf.com http://slidepdf.com/reader/full/academia-sap-abapinterna 68/239
MOVE
- MOVE
MOVE <c1> TO <c2> .
<c4> = <c3> = <c1>
-MOVE utilizando tabela interna
MOVE <itab1> TO <itab2>.
<itab2> = <itab1>
A citação acima tem o mesmo efeito que <itab2> = <itab1>.
- MOVE-CORRESPONDING
Este comando move os campos idênticos de uma estrutura para outra.
MOVE-CORRESPONDING <struct1> TO <struct2>.
Comandos básicos
MOVE
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 69/239
WRITE
-WRITE
É comum os campos saírem justificados a esquerda. Os campos numéricos são alinhados a
direita.
Exemplos:
WRITE <f>.
WRITE: /TEXT-001, TEXT-002, TEXT-003+2(8).
WRITE: /002 TEXT-004.
Opções:
... NO-ZERO.
... NO-SIGN.
... DD/MM/YY.
... MM/DD/YY.
... DD/MM/YYYY.
... MM/DD/YYYY.
... DDMMYY.
... CURRENCY w.
... DECIMALS d.
... ROUND R.
... UNIT u.
... USING EDIT MASK mask.
... UNDER g.
... NO-GAP.
... LEFT-JUSTIFIED.
... CENTERED.
... RIGHT-JUSTIFIED.
Comandos básicos
WRITE
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 70/239
CLEAR
-CLEAR
Reseta o valor da variável. Também aplica-se a estruturas e tabelas, limpando o header line,
mas não interferindo nos dados
–
no caso de tabelas.
Se a variável for alfanumérica, volta a ser branco. Se for numérica, retorna a zero.
Exemplos:
CLEAR <var1>.
CLEAR <t_tab1>.
“limpa o header line da tabela
SKIP
-SKIP n
Realiza o salto de linhas. A variável
n
identifica a quantidade de linhas a ser pulada.
Exemplos:
SKIP.
“Irá pular 1 linha –
mesmo efeito que SKIP 1
SKIP 10.
“Irá pular 10 linhas
ULINE
-ULINE
Imprime uma linha corrente.
Exemplos:
ULINE.
“Imprime linha corrente da largura da página
ULINE /35(50).
“Linha começará na posição 35 e terá comprimento
de 50 bytes
Comandos básicos
CLEAR/SKIP/ULINE
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 71/239
COMENTÄRIOS
Algumas das formas como podemos documentar um programa ABAP.
* -> um asterisco na frente da linha, já serve para comenta-lá toda.
“
-> a aspas dupla, na mesma linha do código, serve para comentar dali para frente.
Exemplos:
*
IF t001-text IS INITIAL.
*
ADD 1 TO w_number.
*
ENDIF.
IF t001-text IS INITIAL.
continue.
“Comando para sair do Loop atual
ENDIF.
Comandos básicos
Comentários
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 72/239
FORM
-
FORM … ENDFORM.Define uma subrotina dentro do programa ABAP. Pode ser executada a qualquer momento, dentro
do programa.
Exemplos:
FORM f_leitura_bseg.
Instruções.
EDFORM.
Opções:
FORM <nome_form> USING p_variavel_referencia
CHANGING p_variavel_valor
TABLES p_tabela.
Instruções
ENDFORM.
PERFORM
-PERFORM
Executa chamadas de subrotinas do programa ABAP.
Exemplos:
PERFORM f_leitura_bseg.
Opções:
PERFORM <nome_form> USING v_variavel_referencia CHANGING v_variavel_valor
TABLES t_tabela.
Comandos básicos
FORM/PERFORM
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 73/239
CLEAR
-CLEAR
Limpa/Inicializa a header line da tabela interna.
Exemplo:
CLEAR t_tabela01.
REFRESH
-REFRESH
Este comando limpa os dados da tabela interna. Não libera a memória carregada.
Exemplo:
REFRESH t_tabela01.
FREE
-FREE
Este comando apaga os dados da tabela interna, liberando a memória onde ela estava
carregada.
Exemplo:
FREE t_tabela01.
Tabela interna
Limpeza e Inicialização
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 74/239
READ
-
READ…Realiza a leitura de dados de uma tabela interna.
READ TABLE <table01> WITH KEY …
READ TABLE <table02> INDEX …
Exemplos:
READ TABLE table01 WITH KEY nome = w_nome.
“Busca por campo específico
READ TABLE table02 INDEX w_index.
“Busca por posição do registro
SY-SUBRC
-SY-SUBRC
É um campo de sistema, que retorna o resultado do último comando processado.
Se estiver abaixo de um READ, retorna a condição de processamento do mesmo. Se SY-SUBRC = 0,
Significa que foi processado corretamente. Diferente disso, ERRO.
Exemplos:
READ TABLE table WITH KEY nome = w_nome.
IF sy-subrc <> 0.
WRITE: /001 ‘Erro na leitura do arquivo…’.
ENDIF.
Tabela interna
READ / Leitura
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 75/239
abe a
e a
/ G a a do
APPEND
-APPEND
Para incluir novos registros na tabela interna.
APPEND <table01>.
Exemplos:
CLEAR table01.
“Limpa a header line da tabela
table01-
nome
= ‘Jose’.
table01-cracha
= v_cracha.
table01-
situacao = ‘Ativo’.
APPEND table01.
“Insere o registro na tabela table01
APPEND I_BKPF
BUKRS
GJAHR
BELNR
BUDAT
5510
1999
72000001555
25.10.1999
5510
1999
72000001554
25.10.1999
5510
1999
72000001553
25.10.1999
5510
1999
72000001552
25.10.1999
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 76/239
MODIFY
-MODIFY
Comando para alterar registro de uma tabela interna.
MODIFY <itab>.
Exemplos:
MODIFY t_tabela01.
Opções:
MODIFY t_tabela02 INDEX sy-index.
DELETE
-DELETE
Comando para deleção de registro de uma tabela interna.
DELETE <itab>.
Exemplos:
DELETE t_tabela01.
Opções:
DELETE t_tabela02 INDEX sy-index.
DELETE t_tabela03 WHERE cracha = 3005.
DELETE t_tabela04 FROM 3 to 5.
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 77/239
COLLECT
-COLLECT <itab01>.
Este comando também insere registros na tabela interna. A particularidade é que, ele analisa
os campos alfanuméricos. Estes sendo iguais, ele realiza a soma dos campos numéricos.
NAME
PRICE
LH
100000
AR
50000
FL
10000000
LH
50000
Soma os campos numéricos
150000
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 78/239
SORT
-SORT
Comando utilizado para se sortear a tabela interna.
SORT <itab>.
Exemplos:
SORT t_tabela01.
Opções:
SORT t_tabela02 BY campo2 campo3.
SORT t_tabela03 BY campo4 ASCENDING campo5 DESCENDING.
DESCRIBE
-DESCRIBE
Comando para gerar informações sobre determinada tabela interna.
DESCRIBE TABLE <itab> LINES …
Exemplos:
DESCRIBE TABLE t_tabela01 LINES LINHAS
“Nº linhas preenchidas
OCCURS OCORRENCIA. “Nº ocorrências na def. da tabela
Obs.: As variáveis utilizadas para se obter o resultado (LINHAS/OCORRENCIA) devem ser
definidas com tipo inteiro (I).
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 79/239
SELECT
-SELECT
Comando SQL utilizado para leitura das informações de uma tabela do banco de dados SAP.
Possui diversas variações.
-Select de todos os campos de uma tabela.
SELECT * FROM <tabelaSAP>.
instruções.
ENDSELECT.
Obs.: O comando SELECT em si, pede um ENDSELECT para fechá-lo. Em algumas variações isto não
se faz necessário.
Esta variação não é um modo eficiente para acesso ao banco. Não indicado, mesmo com
inclusão da clausula WHERE.
-Select para variáveis.
SELECT campo1 campo2 campo3 … INTO (var01, var02, var03, …)
FROM <tabelaSAP>
WHERE <condição>.
-Select inserindo em uma tabela interna.
SELECT <campos> INTO TABLE <t_tabela01>
FROM <tabelaSAP>
WHERE <condição>.
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 80/239
-Select inserindo dados em determinados campos de uma tabela interna.
SELECT <campos> INTO CORRESPONDING FIELDS OF TABLE <t_tabela01>
FROM <tabelaSAP>
WHERE <condição>.
-Select inserindo dados em uma tabela, usando como base os dados de outra já preenchida.
SELECT <campos> INTO TABLE <t_tabela02>
FROM <tabelaSAP>
FOR ALL ENTRIES IN <t_tabela01>
WHERE <condição>.
Obs.1: Se ao buscar os registros com FOR ALL ENTRIES, e dois registros forem iguais, o
sistema só irá trazer um. Portanto CUIDADO com este tipode select. Sempre buscar um
campo que garanta a unicidade dos dados.
Obs.2: Sempre verificar se a tabela interna, de referência< tabela interna1>, contêm dados
e os mesmo estejam ordenados.
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 81/239
-Select para buscar apenas um registro específico.
SELECT SINGLE <campos> INTO TABLE <t_tabela01>
FROM <tabelaSAP>
WHERE <condição>.
Obs.: Para o uso do SELECT SINGLE, deve-se utilizar a chave completa da tabela. Se não
possuir as chaves todas, utilizar a opção UP TO 1 ROWS.
SELECT <campos> INTO TABLE <t_tabela01>
FROM <tabelaSAP>
UP TO 1 ROW
WHERE <condição>.
ENDSELECT.
-Select com range de valores.
SELECT <campos> INTO TABLE <t_tabela01>
FROM <tabelaSAP>
WHERE <campo> BETWEEN <valor1> AND <valor2>.
-Select em um intervalo de valores
SELECT <campos> INTO TABLE <t_tabela01>
FROM <tabelaSAP>
WHERE <campo> IN (valor_mínimo,valor_máximo).
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 82/239
INSERT
-INSERT
1.Insere registros na tabela do dicionário.
INSERT INTO <tabelaSAP> [ FROM ][ VALUES ] <estrutura>.
Exemplos:
TABLES: SPFLI.
DATA: WA LIKE SPFLI.
WA-CARRID
= 'LH'.
WA-CITYFROM = 'WASHINGTON'.
…
INSERT INTO SPFLI VALUES WA.
WA-CARRID
= 'UA'.
WA-CITYFROM = 'LONDON'.
…
INSERT SPFLI FROM WA.
Grava os valores da estrutura WA
na tabela SPFLI.
Mesmo feito do comando
acima.
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 83/239
INSERT
2.Insere registros na tabela do dicionário, a partir de uma tabela interna.
INSERT INTO <tabelaSAP> FROM TABLE <t_tabela01> [ ACCEPTING DUPLICATE KEYS ].
Exemplos:
TABLES: SPFLI.
DATA: ITAB LIKE SPFLI OCCURS 10 WITH HEADER LINE.
ITAB-CARRID = 'UA'.
ITAB-CONNID = '0011'.
APPEND ITAB.
ITAB-CARRID = 'LH'.
ITAB-CONNID = '1245'.
APPEND ITAB.
ITAB-CARRID = 'AA'.
ITAB-CONNID = '4574'.
APPEND ITAB.
INSERT SPFLI FROM TABLE ITAB.
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 84/239
UPDATE
-UPDATE
1.Modifica registros na tabela do dicionário. Um registro por vez.
UPDATE <tabelaSAP> [ FROM <estrutura> ].
Exemplos:
TABLES: SPFLI.
DATA: WA LIKE SPFLI.
MOVE 'AA'
TO WA-CARRID.
MOVE '0064'
TO WA-CONNID.
MOVE 'WASHINGTON' TO WA-CITYFROM.
…
UPDATE SPFLI FROM WA.
MOVE 'LH'
TO SPFLI-CARRID.
MOVE '0017'
TO SPFLI-CONNID.
MOVE 'BERLIN'
TO SPFLI-CITFROM.
…
UPDATE SPFLI.
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 85/239
UPDATE
2.Modifica registros na tabela do dicionário. Vários registros por vez.
UPDATE <tabelaSAP> SET <S1> .. <Sn> [ WHERE condição ].
Exemplos:
TABLES: SFLIGHT.
UPDATE SFLIGHT SET PLANETYPE = 'A310'
FLPRICE
= FLPRICE - '10000'
WHERE CARRID = 'LH'.
3. Modifica registros na tabela do dicionário, a partir de uma tabela interna.
UPDATE <tabelaSAP> FROM TABLE <t_tabela01>.
Exemplos:
TABLES: SPFLI.
DATA: ITAB LIKE SPFLI OCCURS 10 WITH HEADER LINE.
ITAB-CARRID = 'UA'. ITAB-CONNID = '0011'.
APPEND ITAB.
ITAB-CARRID = 'LH'. ITAB-CONNID = '1245'.
APPEND ITAB.
ITAB-CARRID = 'AA'. ITAB-CONNID = '4574'.
APPEND ITAB.
…
UPDATE SPFLI FROM TABLE ITAB.
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 86/239
MODIFY
-MODIFY
Este comando também altera registros na tabela do dicionário, mas contém uma diferença
importante. Com este comando, se o registro a ser alterado não for encontrado, ele é
inserido na tabela do dicionário.
Segue o mesmo esquema do comando UPDATE.
MODIFY <tabelaSAP> [ FROM <estrutura> ].
MODIFY <tabelaSAP> FROM TABLE <t_tabela01>.
Exemplos:
TABLES: SPFLI.
DATA: WA LIKE SPFLI.
MOVE 'AA'
TO WA-CARRID.
MOVE '0064'
TO WA-CONNID.
MOVE 'WASHINGTON' TO WA-CITYFROM.
…
MODIFY SPFLI FROM WA.
TABLES: SPFLI.
DATA ITAB LIKE SPFLI OCCURS 10 WITH HEADER LINE.
ITAB-CARRID = 'UA'. ITAB-CONNID = '0011'.
APPEND ITAB.
ITAB-CARRID = 'LH'. ITAB-CONNID = '1245'.
APPEND ITAB.
ITAB-CARRID = 'AA'. ITAB-CONNID = '4574'.
APPEND ITAB.
…
MODIFY SPFLI FROM TABLE ITAB.
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 87/239
DELETE
-DELETE
1.Deleta registros da tabela do dicionário.
DELETE <tabelaSAP> FROM <estrutura>.
Exemplos:
TABLES: SPFLI.
DATA: WA LIKE SPFLI.
MOVE 'AA'
TO WA-CARRID.
MOVE '0064' TO WA-CONNID.
DELETE SPFLI FROM WA.
2.Deleta registros da tabela do dicionário. Vários registros por vez.
DELETE FROM <tabelaSAP> WHERE <condição>.
Exemplos:
TABLES: SFLIGHT.
DELETE FROM SFLIGHT WHERE PLANETYPE = 'A310' AND
CARRID
= 'LH'.
„Serão deletados os registros na estrutura
WA, de acordo com os campos chave.
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 88/239
DELETE
3. Modifica registros na tabela do dicionário, a partir de uma tabela interna.
DELETE <tabelaSAP> FROM TABLE <t_tabela01>.
Exemplos:
TABLES SPFLI.
DATA ITAB LIKE SPFLI OCCURS 10 WITH HEADER LINE.
ITAB-CARRID = 'UA'.
ITAB-CONNID = '0011'.
APPEND ITAB.
ITAB-CARRID = 'LH'.
ITAB-CONNID = '1245'.
APPEND ITAB.
ITAB-CARRID = 'AA'.
ITAB-CONNID = '4574'.
APPEND ITAB.
DELETE SPFLI FROM TABLE ITAB.
Os registros são deletados baseando-se
nos campos chave.
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 89/239
COMMIT WORK
Efetiva as operações realizadas nas tabelas para o SAP.
Enquanto o COMMIT não é executado, o SAP trabalha em uma área separada. Só carrega as
modificações para o banco, quando o comando é executado.
ROLLBACK WORK
Desfaz as modificações efetuadas pelo programa, antes de ser executado o COMMIT.
Após a execução do COMMIT, o ROLLBACK não mais consegue desfazer as modificações.
Exemplos:
…
COMMIT WORK.
…
<instruções>
…
DELETE FROM bkpf WHERE …
…
<intruções>
…
INSERT zteste_001 from zteste_001.
IF sy-subrc <> 0.
ROLLBACK WORK.
continue.
ELSE.
COMMIT WORK.
ENDIF.
Primeira gravação.
Insere registros na tabela.
Se ocorrer erro na inserção, desfaz tudo
o que foi feito após o primeiro COMMIT.
Efetiva operações realizadas até este
COMMIT.
Deleta registros da tabela.
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 90/239
CONCATENATE
Utilizado para concatenar/juntar várias strings em uma só.
CONCATENATE <var1> <var2> … <varN> INTO <varDESTINO> [ SEPARATED BY <carac> ].
CONDENSE
Utilizado para eliminar os espaços em branco de uma string.
CONDENSE <string> [ NO-GAPS ].
TRANSLATE
Utilizado para transformar os caracteres em maiúsculos ou minúsculos. E também para
converter uma string a partir de outra.
TRANSLATE <string> TO UPPER CASE.
TRANSLATE <string> TO LOWER CASE.
TRANSLATE <string1> USING <string2>.
DATA: STRING1 (10) VALUE 'AbCdEfGhIj',
STRING2 (20) VALUE 'AxbXCydYEzfZ'.
TRANSLATE STRING1 USING STRING2.
WRITE / STRING1.
A saída será a seguinte string : xXyYzZGhIj
A string utilizada para o TRANSLATE,
STRING2 tem a seguinte instrução :
A
x
b
X
C
y
d
Y
E
z
f
Z
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 91/239
REPLACE
Substitui o conteúdo de uma string por outra, em uma outra string destino.
Exemplos:
DATA: T(10)
STRING LIKE T,
VALUE 'abcdefghij',
STR1(4)
VALUE 'cdef',
STR2(4)
VALUE 'klmn',
STR3(2)
VALUE 'kl',
STR4(6)
VALUE 'klmnop'.
STRING = T.
REPLACE STR1 WITH STR2 INTO STRING.
WRITE / STRING.
A saída na string será a seguinte : abklmnghij
STRING = T.
REPLACE STR1 WITH STR3 INTO STRING.
WRITE / STRING.
STRING = T.
A saída na string será a seguinte : abklghij
REPLACE STR1 WITH STR4 INTO STRING.
WRITE / STRING.
A saída na string será a seguinte : abklmnopgh
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 92/239
SEARCH
Permite que se busque uma string em uma cadeia de caracteres ou em uma tabela interna.
SY-SUBRC = 0, string encontrada.
SY-FDPOS = , retorna a posição em que foi encontrada.
SY-SUBRC = 4, string não encontrada.
SEARCH <string> FROM <string_procurada>.
SEARCH <t_tabela01> FOR <string_procurada> [ AND MARK ].
Obs.: No caso de busca em tabela interna, a variável SY-TABIX retorna a linha em que a
string procurada foi encontrada.
STRLEN
Devolve o tamanha da string referenciada.
v_tamanho = STRLEN( ‘IVAN RODRIGO’ ).
v_tamanho = STRLEN( TEXT-001 ).
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 93/239
RELATÓRIOS
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 94/239
Comandos de saída/Opções de formatação :
WRITE
FORMAT
NEW-PAGE
Eventos :
TOP-OF-PAGE
END-OF-PAGE
Elementos de texto :
TEXT-SYMBOLS
HEADINGS
SELECTION TEXTS
System fields
Comando WRITE
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 95/239
WRITE
Formato de saída dos tipos de dados pré-definidos :
Tipo Dado
Tamanho Saída
Positioning
C
tamanho do campo
esquerda
D
8
esquerda
F
22
direita
I
11
direita
N
tamanho do campo
esquerda
P
2 * tamanho do campo + 1
direita
T
6
esquerda
X
2 * tamanho do campo
esquerda
Revendo as opções do comando WRITE:
... NO-ZERO.
... NO-SIGN.
... DD/MM/YY.
... MM/DD/YY.
... DD/MM/YYYY.
... MM/DD/YYYY.
... DDMMYY.
... CURRENCY w.
... DECIMALS d.
... ROUND R.
... UNIT u.
... USING EDIT MASK mask.
... UNDER g.
... NO-GAP.
... LEFT-JUSTIFIED.
... CENTERED.
... RIGHT-JUSTIFIED.
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 96/239
WRITE
Exemplos:
WRITE: ‘****************’.
WRITE: ‘Date’, sy
-datum.
WRITE: ‘Time’, sy
-uzeit.
WRITE: 5 `****************’.
WRITE: /10 ‘Usuário:’, 30 sy
-uname.
SKIP 2.
ULINE.
ULINE /5(40).
V_DATUM = SY-DATUM.
V_UZEIT = SY-UZEIT.
WRITE: 5 ‘Datum’, 20 V_DATUM DD/MM/YYYY.
WRITE: /10 ‘Time’, 25 V_TIME USING EDIT MASK ‘__:__:__’.
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 97/239
FORMAT
-Trabalhando com cores.
Opções para se modificar as cores da lista, via comando FORMAT.
1.
… COLOR n [ON]
or
… COLOR OFF
2.
… INTENSIFIED [ON]
or
… INTENSIFIED OFF
3.
… INVERSE [ON]
or
… INVERSE OFF
4.
… HOTSPOT [ON]
or
… HOTSPOT OFF
5.
… INPUT [ON]
or
… INPUT OFF
6.
… RESET
FORMAT INTENSIFIED OFF.
FORMAT INTENSIFEID.
FORMAT COLOR COL_KEY.
FORMAT COLOR COL_TOTAL INTENSIFIED OFF.
WRITE: /05 V_TOTAL COLOR COL_POSITIVE.
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 98/239
NEW-PAGE
O comando NEW-PAGE inicia uma nova página, durante o processamento da lista.
Ele não imprime páginas em branco. Ele as ignora.
O comando incrementa o contador de páginas do sistema
–
variável SY-PAGNO.
Para ser executado, a opção NO STANDARD PAGE HEADING deve ser colocada no programa.
END-OF-PAGE
O comando é executado sempre a área definida para impressão na página acaba.
LINE-SIZE col
Cria o report com <col> colunas por linha.
LINE-COUNT n(m)
Cria o report com <n> linhas por página, das quais (m) linhas serão reservadas para o
processamento do comando END-OF-PAGE.
ALGUNS CAMPOS DO SISTEMA PARA CRIAÇÃO DE LISTAS
SY-PAGNO : número da página corrente.
SY-LINNO : número da linha corrente.
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 99/239
ALV
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 100/239
•
O Alv (Abap List Viewer) Grid é uma ferramenta flexível para
exibição de relatórios ou árvore.
•
São disponibilizados botões que permitem ao usuário
manipular os dados (classificar, filtrar e somar).
•
Além dos botões standards do sistema, é possível criar
novos botões conforme a necessidade do usuário.
•
Isto pode eliminar certas etapas no processo de
gerenciamento de eventos para controles .
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 101/239
•
O Abap List Viewer padroniza e simplifica o uso de listas e
relatórios no sistema R/3. O Abap List Viewer fornece
interfaces e formatos de lista padronizados para todas as
listas e relatórios.
•
Pode-se especificar os campos a serem exibidos no relatório
e modificar a seqüência em que esses campos são exibidos.
Além disso, pode-se ajustar a largura das colunas
individuais para atender a requisitos específicos.
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 102/239
O List Viewer permite :
•
Usar variantes de exibição standard predefinidas pela SAP .
•
Ordenar os dados : crescente e decrescente.
Ordenar as linhas de acordo com os valores das
colunas, em seqüência crescente ou decrescente.
•
Definir um filtro.
Exibir somente os campos desejados.
•
Formar totais e subtotais.
Em uma lista, é possível calcular totais e
subtotais de uma ou mais colunas selecionadas.
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 103/239
•
Exibição de informações detalhadas.
Pode-se acessar informações detalhadas de linhas
individuais da lista.
•
Pesquisa.
É possível pesquisar informações específicas.
•
Impressão de listas e pré-visualização.
Pode-se imprimir as listas e chamar uma pré- exibição
antes de imprimir.
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 104/239
•
Exportação de dados.
Pode-se copiar as listas, por exemplo, para uma
planilha ou gravá-las como arquivo local.
•
Deslocar colunas.
•
O Alv Grid é formado basicamente por :
- Uma barra de ferramenta
- Um título
- Uma lista de saída.
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 105/239
•
Programa : Z_ALV_SIMPLE.
5/21/2018 Academia SAP Abap_Interna - slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 106/239