Escolar Documentos
Profissional Documentos
Cultura Documentos
com
ACADEMIA INTERNA
ABAP / SAP R3
http://slidepdf.com/reader/full/academia-sap-abapinterna 1/239
Cronograma
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
* exercícios
http://slidepdf.com/reader/full/academia-sap-abapinterna 2/239
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
www.softtek.com.br 3
http://slidepdf.com/reader/full/academia-sap-abapinterna 3/239
3
Objetivos
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
• Projetos
• Navegação
http://slidepdf.com/reader/full/academia-sap-abapinterna 4/239
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 5/239
SAP - R/3
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
• Tomada de decisão
• Evolução e melhorias constantes
http://slidepdf.com/reader/full/academia-sap-abapinterna 6/239
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
Funcionais e Basis
Components
http://slidepdf.com/reader/full/academia-sap-abapinterna 7/239
Funcionais e Basis Components
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
Soluções integradas SD
Vendas e
FI
Contabilidade
Funcionalidades
Distribuição Financeira sofisticadas
MM CO
Gerenc.de Controladoria
Materiais
PP AM
Plan. da Ativos. Fixos
Arquitetura Produção
Desenhado
R/3
Cliente/Servidor tipopara todo
de negócios
QM
Controle de
Cliente / Servidor PS
Sistemas
abertos
Qualidade
ABAP/4 Gerenc. de
Projetos
PM
Manutenção
OC
Comunicação
Multinacional
da Planta
HR IS
Recursos Solucões
Humanos Setoriais
Modelo de dados
empresariais
http://slidepdf.com/reader/full/academia-sap-abapinterna 8/239
Sistema R/3
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 9/239
Sistema R/3
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 10/239
Sistema R/3
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 11/239
Estrutura Organizacional
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
Organização de
compras 1000 2000 3000
WM
Armazém 0001 0002 0088
http://slidepdf.com/reader/full/academia-sap-abapinterna 12/239
Módulo FI e suas funções
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
FI-AR
Contas a Receber
FI-FC
Controlling Financeiro
FI-FM
Gestão Orçamentária
FI-LC
Consolidação
FI-FI Ativos Financeiros
http://slidepdf.com/reader/full/academia-sap-abapinterna 13/239
Contabilidade Empresarial
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
CCA
Contab. JOB
Centros Ordens
MM Fornecedores FI Custos de
Custos
HR Pessoal de
Projetos PC
Custo de
AM Ativos Produtos
Consolidação PA
MM Materiais Ledgers Análise de
Rentabilidade
MM CO
Recebto. Antecipações
Promissórias
Pagtos.
Auditoría
Fatura parciais Recebto.
Compensação
Gestão e prevenção de
tesouraria Relatórios Pagtos
Correspondência
Previsão de Cheque
Cálculo de cobrança e pagto.
interesses Registro de moeda Transferência
Rankings
Cartas a forn.
Compensação
Confirmação
de saldos Letras
Pagar
http://slidepdf.com/reader/full/academia-sap-abapinterna 15/239
Gestão de Materiais - Processo de Abastecimento
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
Planejamento
Pedidos Fatura de necesidades
Planejamento
Verificação de faturas
Fornecedor
Contrato marco
Gestão de
Materiais Associação de fonte aquisição
Entrada de mercadoria
e gestão de estoques
Gestão de Pedidos
http://slidepdf.com/reader/full/academia-sap-abapinterna 16/239
Logística - R/3
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
PP PM
Plano de Vendas Planej, Produção Planej. Paradas
Cliente Manutenção
SD
MRP
Vendas QM
Distribuição
Faturamento Planej. Capacidade
Planej. Inspeção
Controle Gestão de inspeção
Provedor MM de produção
CAD CAM CAP CAQ PP-
Compras SFC
Gestão de Estoques
Verif. Facturas Controle em planta
Custo de Produtos PDC
http://slidepdf.com/reader/full/academia-sap-abapinterna 17/239
Recursos Humanos
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
FI / CO
Contabilidade Financeira / Analítica
Organizacão de
Rec. Humanos
Datos Mestres
de Pessoal
HR Planejamento
Rec. Humanosde
Control de custos
de Rec. Humanos
Relatórios Gestão
estatísticas de Tempos
PP PM
Controle e planejamento Manutenção
de produção
http://slidepdf.com/reader/full/academia-sap-abapinterna 18/239
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
ABAP ?
http://slidepdf.com/reader/full/academia-sap-abapinterna 19/239
ABAP
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
A dvanced
B usiness
A pplication
P rogramming
/
4
http://slidepdf.com/reader/full/academia-sap-abapinterna 20/239
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
Arquitetura
www.softtek.com.br 21
21
http://slidepdf.com/reader/full/academia-sap-abapinterna 21/239
Arquitetura em 3 camadas
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
Presentation Server
Application Server
Banco de Dados
R/3
http://slidepdf.com/reader/full/academia-sap-abapinterna 22/239
Logon Balancing
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
Banco de Dados
R/3
http://slidepdf.com/reader/full/academia-sap-abapinterna 23/239
Servidores
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 24/239
Mandantes
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
Mandante
003
Servidor
DVL
Mandante
120
http://slidepdf.com/reader/full/academia-sap-abapinterna 25/239
Request‟s
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
Request
Task
http://slidepdf.com/reader/full/academia-sap-abapinterna 26/239
Transporte
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 27/239
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
Projetos
www.softtek.com.br 28
28
http://slidepdf.com/reader/full/academia-sap-abapinterna 28/239
Fases
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
• 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
http://slidepdf.com/reader/full/academia-sap-abapinterna 29/239
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
Navegação
www.softtek.com.br 30
30
http://slidepdf.com/reader/full/academia-sap-abapinterna 30/239
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
DICIONÁRIO DE DADOS
www.softtek.com.br 31
31
http://slidepdf.com/reader/full/academia-sap-abapinterna 31/239
Objetivos
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 32/239
Dicionário de Dados
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
• Integração
• Gerenciamento de Dados
– Atribuição
– Descrição e Significado
Banco de Dados
R/3
http://slidepdf.com/reader/full/academia-sap-abapinterna 33/239
5/21/2018
Tabela AcademiaSAPAbap_Interna-slidepdf.com
Tabela
Tabela
Campo 1 Campo 2 Campo 3 Campo 4
BANCO DE DADOS
DEFINIÇÃO FÍSICA DA TABELA
http://slidepdf.com/reader/full/academia-sap-abapinterna 34/239
Dicionário ABAP/4
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
Tabela 1
Campo 1 Campo 2 Campo 3 Campo 4 Campo 5
“DB UTILITY”
http://slidepdf.com/reader/full/academia-sap-abapinterna 35/239
Elementos do Dicionário de Dados
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
• Campos
• Elementos de dados
• Domínios
• Ajuda de pesquisa
http://slidepdf.com/reader/full/academia-sap-abapinterna 36/239
Integração do Dicionário de Dados
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
AMBIENTE DE DESENVOLVIMENTO
Ferramentas Modelagem Telas
de Dados
Banco de Dados
R/3
http://slidepdf.com/reader/full/academia-sap-abapinterna 37/239
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
Tabelas
www.softtek.com.br 38
38
http://slidepdf.com/reader/full/academia-sap-abapinterna 38/239
Elemento de Dados e Domínios
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
Banco de
Dados R/3 Tabela
Campo
Utiliza
http://slidepdf.com/reader/full/academia-sap-abapinterna 39/239
Generalizando
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
Domínio
http://slidepdf.com/reader/full/academia-sap-abapinterna 40/239
Foreign Key
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
Table T1
Field 1 Field 2 Field 3 Field 4
Foreign Key Field
Primary Key
Primary Key
http://slidepdf.com/reader/full/academia-sap-abapinterna 41/239
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
Estruturas
As estruturas possuem os mesmos elementos das tabelas mas
não armazenam dados. Só estão preenchidas em run-time.
http://slidepdf.com/reader/full/academia-sap-abapinterna 42/239
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
Visões
www.softtek.com.br 43
43
http://slidepdf.com/reader/full/academia-sap-abapinterna 43/239
Visões
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
View
Banco de
Dados R/3
http://slidepdf.com/reader/full/academia-sap-abapinterna 44/239
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 45/239
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
Levantamento de Informações
46
www.softtek.com.br 46
46
http://slidepdf.com/reader/full/academia-sap-abapinterna 46/239
Funções
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
• F1 - Ajuda (Help)
• F9 - Informação técnica
http://slidepdf.com/reader/full/academia-sap-abapinterna 47/239
Exercício
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
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)
http://slidepdf.com/reader/full/academia-sap-abapinterna 48/239
Exercício - continuação
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 49/239
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
PROGRAMAÇÃO
http://slidepdf.com/reader/full/academia-sap-abapinterna 50/239
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
SE38/SE80 - Navegação
http://slidepdf.com/reader/full/academia-sap-abapinterna 51/239
Criando um novo programa
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 52/239
Declaração de tabelas
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
Tabelas internas
http://slidepdf.com/reader/full/academia-sap-abapinterna 53/239
Como funciona o Header Line
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
Header Line
http://slidepdf.com/reader/full/academia-sap-abapinterna 54/239
Declaração de estrutura
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
Estrutura
DATA: BEGIN OF e_tabela01,
campo1(16) TYPE c,
campo2 LIKE tabela01-campo,
...
END OF e_tabela01.
http://slidepdf.com/reader/full/academia-sap-abapinterna 55/239
Declaração de variáveis
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
Variávieis
http://slidepdf.com/reader/full/academia-sap-abapinterna 56/239
Tipos de dados
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
Tipos
Obs.: se não for atribuído tipo a variável, esta será definida como
caracter, automáticamente.
http://slidepdf.com/reader/full/academia-sap-abapinterna 57/239
Tela de seleção
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 58/239
Tela de seleção
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 59/239
Tela de seleção
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 60/239
Eventos de um programa Abap
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 61/239
Comandos básicos IF
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
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.
IF <condição> .
…
ELSE.
…
ENDIF.
http://slidepdf.com/reader/full/academia-sap-abapinterna 62/239
Comandos básicos IF
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
-IF …ELSEIF…ELSEIF…ENDIF.
IF <condição1> .
…
ELSEIF <condição2> .
...
ELSEIF <condição3> .
...
ENDIF.
http://slidepdf.com/reader/full/academia-sap-abapinterna 63/239
Comandos básicos LOOP
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
LOOP
-LOOP …ENDLOOP.
LOOP AT <itab>.
…
…
…
ENDLOOP.
http://slidepdf.com/reader/full/academia-sap-abapinterna 64/239
Comandos básicos CASE
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
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.
http://slidepdf.com/reader/full/academia-sap-abapinterna 65/239
Comandos básicos DO
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
DO
-DO …ENDDO.
Repete o processamento que está dentro de DO e ENDDO.
Terminando com os comandos
Pode usar CONTINUE, EXIT, STOP
para terminar e REJECT.
o passo do DO e continuar o passo seguinte.
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.
http://slidepdf.com/reader/full/academia-sap-abapinterna 66/239
Comandos básicos WHILE / CHECK
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
WHILE
-WHILE …ENDWHILE .
Repete o processamento que está dentro de WHILE e ENDWHILE, se a expressão é verdadeira.
A cada
Pode passagem
usar a expressão
CONTINUE é verificada.
, 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.
http://slidepdf.com/reader/full/academia-sap-abapinterna 67/239
Comandos básicos MOVE
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
MOVE
MOVE
-
<itab2> = <itab1>
MOVE-CORRESPONDING
-
http://slidepdf.com/reader/full/academia-sap-abapinterna 68/239
Comandos básicos WRITE
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
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.
http://slidepdf.com/reader/full/academia-sap-abapinterna 69/239
Comandos básicos CLEAR/SKIP/ULINE
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
CLEAR
-CLEAR
Reseta o valor da variável. Também aplica-se a estruturas e tabelas, limpando o header line,
mas
Se anão interferindo
variável nos dados –volta
for alfanumérica, no caso de branco.
a ser tabelas.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
http://slidepdf.com/reader/full/academia-sap-abapinterna 70/239
Comandos básicos Comentários
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
COMENTÄRIOS
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.
http://slidepdf.com/reader/full/academia-sap-abapinterna 71/239
Comandos básicos FORM/PERFORM
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
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.
http://slidepdf.com/reader/full/academia-sap-abapinterna 72/239
Tabela interna Limpeza e Inicialização
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
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.
-READ…
Realiza a leitura de dados de uma tabela interna.
Exemplos:
READ TABLE table01 WITH KEY nome = w_nome. “Busca por campo específico
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.
-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
Tabela interna – MODIFY/DELETE
http://slidepdf.com/reader/full/academia-sap-abapinterna 75/239
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
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.
Tabela interna – COLLECT
http://slidepdf.com/reader/full/academia-sap-abapinterna 76/239
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
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 150000
Tabela interna – SORT/DESCRIBE
http://slidepdf.com/reader/full/academia-sap-abapinterna 77/239
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
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.
Exemplos:
DESCRIBE TABLE t_tabela01 LINES LINHAS “Nº linhas preenchidas
OCCURS OCORRENCIA. “Nº ocorrências na def. da tabela
-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 .
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.
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.
-INSERT
1.Insere registros na tabela do dicionário.
Exemplos:
TABLES: SPFLI. Grava os valores da estrutura WA
na tabela SPFLI.
DATA: WA LIKE SPFLI.
WA-CARRID = 'LH'.
WA-CITYFROM = 'WASHINGTON'.
…
INSERT INTO SPFLI VALUES WA.
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
1.Modifica registros na tabela do dicionário. Um registro por vez.
Exemplos:
TABLES: SPFLI.
Exemplos:
TABLES: SPFLI.
-MODIFY
Este comando também altera registros na tabela do dicionário, mas contém uma diferença
importante.
inserido na Com este
tabela docomando, se o registro a ser alterado não for encontrado, ele é
dicionário.
Segue o mesmo esquema do comando UPDATE.
Exemplos:
TABLES: SPFLI. TABLES: SPFLI.
DATA: WA LIKE SPFLI. DATA ITAB LIKE SPFLI OCCURS 10 WITH HEADER LINE.
-DELETE
1.Deleta registros da tabela do dicionário.
Exemplos:
TABLES: SPFLI.
Exemplos:
TABLES: SFLIGHT.
DELETE FROM SFLIGHT WHERE PLANETYPE = 'A310' AND
CARRID = 'LH'.
ITAB-CARRID = 'UA'.
ITAB-CONNID = '0011'.
APPEND ITAB.
ITAB-CARRID = 'LH'.
ITAB-CONNID = '1245'.
APPEND ITAB. Os registros são deletados baseando-se
nos campos chave.
ITAB-CARRID = 'AA'.
ITAB-CONNID = '4574'.
APPEND ITAB.
COMMIT
… WORK. Deleta registros da tabela.
<instruções>
…
DELETE FROM bkpf WHERE … Insere registros na tabela.
…
<intruções>
…
INSERT zteste_001 from zteste_001.
Se ocorrer erro na inserção, desfaz tudo
IF sy-subrc <> 0. o que foi feito após o primeiro COMMIT.
ROLLBACK WORK.
continue.
ELSE. Efetiva operações realizadas até este
COMMIT WORK. COMMIT.
ENDIF.
CONDENSE
Utilizado para eliminar os espaços em branco de uma string.
TRANSLATE
Utilizado para transformar os caracteres em maiúsculos ou minúsculos. E também para
converter uma string a partir de outra.
WRITE / STRING1.
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.
SY-FDPOS
SY-SUBRC = 4,
, retorna a posição
string não em que foi encontrada.
encontrada.
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.
http://slidepdf.com/reader/full/academia-sap-abapinterna 92/239
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
RELATÓRIOS
Eventos :
TOP-OF-PAGE
END-OF-PAGE
Elementos de texto :
TEXT-SYMBOLS
HEADINGS
SELECTION TEXTS
System fields
Comando WRITE
http://slidepdf.com/reader/full/academia-sap-abapinterna 94/239
WRITE
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
Comando WRITE
http://slidepdf.com/reader/full/academia-sap-abapinterna 95/239
WRITE
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
Exemplos:
WRITE: ‘****************’.
WRITE: 5 `****************’.
SKIP 2.
ULINE.
ULINE /5(40).
V_DATUM = SY-DATUM.
V_UZEIT = SY-UZEIT.
Comando FORMAT
http://slidepdf.com/reader/full/academia-sap-abapinterna 96/239
FORMAT
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
END-OF-PAGE
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.
http://slidepdf.com/reader/full/academia-sap-abapinterna 98/239
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
ALV
ALV Grid
http://slidepdf.com/reader/full/academia-sap-abapinterna 99/239
• O Alv (Abap List Viewer) Grid é uma ferramenta flexível para
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
ALV Grid
http://slidepdf.com/reader/full/academia-sap-abapinterna 100/239
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
ALV Grid
http://slidepdf.com/reader/full/academia-sap-abapinterna 101/239
O List Viewer permite :
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
ALV Grid
http://slidepdf.com/reader/full/academia-sap-abapinterna 102/239
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
Pode-se acessar
individuais informações detalhadas de
da lista. linhas
• Pesquisa.
ALV Grid
http://slidepdf.com/reader/full/academia-sap-abapinterna 103/239
• Exportação de dados.
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
• Deslocar colunas.
Exercício
http://slidepdf.com/reader/full/academia-sap-abapinterna 106/239
1.
5/21/2018
Relatório. AcademiaSAPAbap_Interna-slidepdf.com
Criar um relatório
seus itens (BKPF),que deverá buscar
listando-os, os documentos
ordenados contábeis (BSEG) e
por documento+item+data
documento.
Exercício
http://slidepdf.com/reader/full/academia-sap-abapinterna 107/239
1.
5/21/2018
Dados para seleção das informações : AcademiaSAPAbap_Interna-slidepdf.com
BSEG (documentos
Exercício contábeis)
(GJAHR) = 2001
Tipo de documento (BLART) = AB ou SA ou SB
Data do documento (BLDAT) = mes 09 e ano 2001
Status do documento (BSTAT) = branco
Exercício
http://slidepdf.com/reader/full/academia-sap-abapinterna 108/239
2.
5/21/2018
Transformar o relatório do item 1, em uma relatório ALV Grid.
AcademiaSAPAbap_Interna-slidepdf.com
Retirar
com os os valores campos
seguintes fixos para seleção dos
: Empresa, dados e incluir
Documento, uma Tipo
Exercício, tela de seleção,
documento
e Data documento.
http://slidepdf.com/reader/full/academia-sap-abapinterna 109/239
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
Introdução
http://slidepdf.com/reader/full/academia-sap-abapinterna 110/239
• Online são tipos de programas que, como o próprio nome
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
Screen 1
GUI-01
GUI-02
Módulos PAI tela 3
Screen 3
Módulos PBO tela 3
• Evento PBO
Evento executado antes da exibição da tela para o usuário:
Definição do GUI Status e GUI Title para a tela correspondente
Seleção inicial de dados e atribuição de valores a serem exibidos na tela
• Evento PAI
Evento executado após um comando do usuário (enter, click de um botão, etc...)
Verificação do código de comando executado (definido no GUI Status)
Código ABAP para execução da lógica do comando
SE80
http://slidepdf.com/reader/full/academia-sap-abapinterna 114/239
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
Lista de objetos
do Module Pool
Área de
programação
Module Pool – Exemplo
http://slidepdf.com/reader/full/academia-sap-abapinterna 115/239
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
Nomódulos
os include O01
dos ficarão
PBOs. armazenados
Tela – Lógica de Processamento
http://slidepdf.com/reader/full/academia-sap-abapinterna 116/239
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
PBO
PAI
TITLE GUI
Onde é modificado os nomes/‟título das telas.
Elementos disponíveis
para a tela
Propriedades de
cada objeto
Subtela
http://slidepdf.com/reader/full/academia-sap-abapinterna 119/239
A Subtela é uma área na Tela onde podemos variar os campos
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
Subtela
http://slidepdf.com/reader/full/academia-sap-abapinterna 120/239
Tela
5/21/2018
de Origem AcademiaSAPAbap_Interna-slidepdf.com
Subtela
http://slidepdf.com/reader/full/academia-sap-abapinterna 121/239
Definições
5/21/2018
de Subtela AcademiaSAPAbap_Interna-slidepdf.com
A Subtela (ou
Subscreen) é definida
nas características da
Tela.
Subtela
http://slidepdf.com/reader/full/academia-sap-abapinterna 122/239
Tela
5/21/2018
de Origem AcademiaSAPAbap_Interna-slidepdf.com
Na PBO (PROCESS BEFORE OUTPUT) deverá existir um comando para a execução desta
subtela, sendo:
CALL SUBSCREEN sub1 INCLUDING programa dynpronr.
SUB1 – Seria o nome da área definida para a Subtela
PROGRAMA – Nome do Programa onde se encontra a Subtela. Normalmente, se refere ao
mesmo programa da Tela Normal
DYNPRONR – Número da Subtela a ser executada
Quando este comando é executado, a PBO desta Subtela é executada, com todas as rotinas
definidas nela.
Na PAI (PROCESS AFTER INPUT) deverá existir um comando para a execução desta
subtela, sendo:
CALL SUBSCREEN sub1.
Table Control
http://slidepdf.com/reader/full/academia-sap-abapinterna 123/239
Definição
5/21/2018
da Table Control AcademiaSAPAbap_Interna-slidepdf.com
Table Control
http://slidepdf.com/reader/full/academia-sap-abapinterna 124/239
Definição
5/21/2018 de Campos na Table Control
AcademiaSAPAbap_Interna-slidepdf.com
Table Control
http://slidepdf.com/reader/full/academia-sap-abapinterna 125/239
Definição de Campos na Table Control
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
Pode-se também incluir os
campos de Entrada e Saída
de informações na Table
Campo Texto Control e depois incluir um
campo texto no cabeçalho do
campo.
Campo de E/S
Table Control
http://slidepdf.com/reader/full/academia-sap-abapinterna 126/239
Atributos da Table Control
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
Nos Atributos da Table Control existem algumas
informações que podem ser úteis, conforme a
necessidade do desenho da Table Control.
Define se os campos terão
Título
Table Control
http://slidepdf.com/reader/full/academia-sap-abapinterna 127/239
Definições de Código
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
Para utilização de uma Table Control é necessário variável „tc1‟, que deve ter o
mesmo nome da Table Control desenhada na Tela. A informação „9000‟ se refere
ao código da Tela onde está a Table Control.
CONTROLS: tc1 TYPE TABLEVIEW USING SCREEN ‘9000’.
Na PBO deve exitir o seguinte comando:
LOOP WITH CONTROL tc1.
ENDLOOP.
No PBO, serão feitos n looping´s, conforme a quantidade de linhas que teremos
da Table Control na Tela.
No PAI, este „Loop‟ faz uma leitura de todas as linhas da Table Control que
Table Control
http://slidepdf.com/reader/full/academia-sap-abapinterna 128/239
Definições
5/21/2018
de Código AcademiaSAPAbap_Interna-slidepdf.com
Comandos úteis:
CHAIN – Verifica quando um campo é alterado ou utilizado.
Table Control
http://slidepdf.com/reader/full/academia-sap-abapinterna 129/239
Atributos da Table Control
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
Alguns Atributos da Table Control podem ser alteradas conforme a necessidade
do programa, sendo:
Atributo Tipo Tamanho Conteúdo
Numérico indicando quantas colunas
FIXED_COLS INT 4
ficarão fixas
Define quantas Linhas teremos na
LINES INT 4
Table Control
COLS (*1)
‘X’ – significa que o campo está
INVISIBLE CHAR 1 invisível
‘ ‘ – significa que o campo não está
invisível
Table Control
http://slidepdf.com/reader/full/academia-sap-abapinterna 130/239
Atributos
5/21/2018
da Table Control AcademiaSAPAbap_Interna-slidepdf.com
(*1) – O parâmetro COLS é uma outra estrutura que contém a definição
de alguns dados por campo da Table Control.
Para alteração destes parâmetros, basta alterar o conteúdo dos campos,
movimentando a informações para a Table Control-Campo (Ex.: TC1-
TOP_LINE = 5).
Table Control
http://slidepdf.com/reader/full/academia-sap-abapinterna 131/239
Inibir
5/21/2018 e Exibir Campos AcademiaSAPAbap_Interna-slidepdf.com
Para os campos da Tela, com excessão de Table Control, para inibir e exibir
campos é utilizado o seguinte comando:
LOOP AT SCREEN.
SCREEN-INVISIBLE = ‘X’
ENDLOOP.
Table Control
http://slidepdf.com/reader/full/academia-sap-abapinterna 132/239
Inibir
5/21/2018 e Exibir Campos AcademiaSAPAbap_Interna-slidepdf.com
Para Table Control, caso haja necessidade de inibir uma coluna da Table Control,
o comando deve ser outro:
DATA: wa TYPE cxtab_column .
LOOP AT tc1-COLS INTO wa .
wa-INVISIBLE = ‘X’.
MODIFY tab1-COLS FROM wa .
ENDLOOP.
Onde: TC1 – Nome da Table Control
WA – Variável com tipo referenciando „TYPE CXTAB_COLUMN‟
„X‟ – Se informado „0‟ o campo não será inibido, se „1‟ o campo será
inibido
Com esse comando, todos os campos serão inibidos pois não há nenhuma
checagem de qual campo deverá ser inibido. Para escolher o campo, usar a
variável WA-SCREEN-NAME que contém o nome do campo. Também podem ser
utilizados os campos WA-SCREEN-GROUP1, WA-SCREEN-GROUP2, WA-
SCREEN-GROUP3 e WA-SCREEN-GROUP4.
Exercício
http://slidepdf.com/reader/full/academia-sap-abapinterna 133/239
1. Exercício de Module Pool
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 134/239
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
Batch-Input
Call Transaction
Objetivos
http://slidepdf.com/reader/full/academia-sap-abapinterna 135/239
5/21/2018 • O que é Batch-Input AcademiaSAPAbap_Interna-slidepdf.com
Dados SAP
Externos INTERFACES BANCO SAP
X
Dados
Externos CONSISTÊNCIAS BANCO SAP
(Legado)
Sessão de
BATCH INPUT
Programa
Banco de Dados
SAP
http://slidepdf.com/reader/full/academia-sap-abapinterna 138/239
5/21/2018 Arquivo Sequêncial
AcademiaSAPAbap_Interna-slidepdf.com
Arquivo Fonte
SAP R/3
http://slidepdf.com/reader/full/academia-sap-abapinterna 139/239
Arquivo BANCO
5/21/2018
Telas Sequêncial
AcademiaSAPAbap_Interna-slidepdf.com
SAP
Transação 1 Transação 2
SAP R/3
http://slidepdf.com/reader/full/academia-sap-abapinterna 140/239
Arquivo
5/21/2018
Sequêncial
AcademiaSAPAbap_Interna-slidepdf.com
CALL FUNCTION
FILA
Codificação
http://slidepdf.com/reader/full/academia-sap-abapinterna 142/239
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
APPENDING
http://slidepdf.com/reader/full/academia-sap-abapinterna 143/239
5/21/2018 OPEN DATASET <nome do arquivo>
AcademiaSAPAbap_Interna-slidepdf.com
OUTPUT
For INPUT
APPENDING
BINARY MODE
In
TEXT MODE
http://slidepdf.com/reader/full/academia-sap-abapinterna 144/239
BINARY MODE
5/21/2018 TEXT MODE
AcademiaSAPAbap_Interna-slidepdf.com
ABAP /4 A B C ABAP /4 A B C
A B A B
A B C D A B C D
TRANSFER TRANSFER
A B C A B A B C D A B C A B A B C D
ABAP /4 A B C ABAP /4 A B C
A B A A B
B C D A B C
http://slidepdf.com/reader/full/academia-sap-abapinterna 145/239
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
TRANSFER <campo> TO <nome do arquivo>
DEFINIR ESTRUTURAS
http://slidepdf.com/reader/full/academia-sap-abapinterna 146/239
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
ABRIR ARQUIVO
Gravar Ler
Mais Fim do
dados ? Arquivo?
Sim Não
Não Sim
FECHAR ARQUIVO
http://slidepdf.com/reader/full/academia-sap-abapinterna 148/239
5/21/2018
CALL FUNCTION BDC_OPEN_GROUP AcademiaSAPAbap_Interna-slidepdf.com
EXPORTING
Client * = <Client> (Sy-Mandt)
Group * = <Nome da Sessão>
Holddate = <Data>
Keep * = Flag de Deleção
User * = <Usuário BDC> (Sy-Uname)
EXCEPTIONS
* - Parâmetros Obrigatórios
* - Default = ‘ ’ (apagar a sessão)
http://slidepdf.com/reader/full/academia-sap-abapinterna 149/239
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
Programa Tela Início Nome do Campo Valor do Campo
<Programa> <Número 1> X
<Campo 01> <Valor 01>
<Campo 05> <Valor 05>
Transação SHDB
http://slidepdf.com/reader/full/academia-sap-abapinterna 150/239
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 151/239
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 152/239
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 153/239
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 154/239
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 155/239
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 156/239
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 157/239
5/21/2018 Sessão de Batch
Academia Input
SAPAbap_Interna-slidepdf.com
Síntese Log
Sessões presas
Mostra as pastas
Análise Mostra os dados da pasta
Log / Estatísticas
Processa em “FOREGROUND”
Processar Mostra apenas os erros
Processa em “BACKGROUND”
http://slidepdf.com/reader/full/academia-sap-abapinterna 158/239
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 159/239
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
Função OKCODE
http://slidepdf.com/reader/full/academia-sap-abapinterna 160/239
5/21/2018 Processada Sessão processada corretamente
AcademiaSAPAbap_Interna-slidepdf.com
Nome_arq = arquivo.
IF TP_UNIX = 'X'.
PERFORM ABRE_ARQUIVO_UNIX.
ELSE.
PERFORM ABRE_ARQUIVO_WINDOWS.
ENDIF.
PERFORM OPEN_GROUP.
PERFORM PREPARA_BDC.
PERFORM FECHA_GROUP.
END-OF-SELECTION.
ENDFORM.
IF SY-SUBRC NE 0.
WRITE: / 'Erro Abrindo arquivo do Windows ', NOME_ARQ.
EXIT.
ENDIF.
ENDFORM. “ABRE_ARQUIVO_WINDOWS
CALLEXPORTING
FUNCTION 'BDC_OPEN_GROUP'
CLIENT = SY-MANDT
GROUP = ’SAP_2'
KEEP = 'X'
USER = SY-UNAME
EXCEPTIONS
CLIENT_INVALID = 1
DESTINATION_INVALID = 2
GROUP_INVALID = 3
GROUP_IS_LOCKED = 4
HOLDDATE_INVALID = 5
INTERNAL_ERROR = 6
QUEUE_ERROR = 7
RUNNING = 8
SYSTEM_LOCK_ERROR = 9
USER_INVALID = 10
OTHERS = 11.
WRITE:
EXIT. 'Erro no Open Group'.
ENDIF.
ENDFORM. “OPEN_GROUP
REFRESH BDC_TAB.
LOOP AT REGISTRO.
PERFORM
REFRESH INSERT.
BDC_TAB.
ENDLOOP.
ENDFORM.
IFMOVE:
DYNBEGIN
NAME= TO
'X'.
BDC_TAB-PROGRAM,
VALUE TO BDC_TAB-DYNPRO,
'X' TO BDC_TAB-DYNBEGIN.
APPEND BDC_TAB.
ELSE.
MOVE: NAME TO BDC_TAB-FNAM,
VALUE TO BDC_TAB-FVAL.
APPEND BDC_TAB.
ENDIF.
CLEAR BDC_TAB.
ENDFORM.
EXPORTING
TCODE = 'TFBA'
TABLES
DYNPROTAB = BDC_TAB
EXCEPTIONS
INTERNAL_ERROR = 1
NOT_OPEN = 2
QUEUE_ERROR = 3
TCODE_INVALID = 4
PRINTING_INVALID = 5
POSTING_INVALID = 6
OTHERS = 7.
IF WRITE:
SY-SUBRC NE 0.
'Erro no Insert'.
EXIT.
ENDIF.
ENDFORM.
CALL EXCEPTIONS
FUNCTION 'BDC_CLOSE_GROUP'
NOT_OPEN = 1
QUEUE_ERROR = 2
OTHERS = 3.
IF SY-SUBRC NE 0.
WRITE: 'Erro no Open Group'.
EXIT.
ELSE.
WRITE: 'Sessão Criada'.
ENDIF.
ENDFORM.
Programa
ABAP/4
SAP
Verificar os dados
Converter os dados
Analisar resultados
Avaliar os Erros
http://slidepdf.com/reader/full/academia-sap-abapinterna 177/239
Call Transaction <Código da Transação>
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
Modo de Visualização
A - Visualiza Tudo <default>
E - Visualiza apenas se der erro
N - Não Visualiza nada
Modo de Atualização
S - Modo Síncrono (Espera terminar)
A - Modo Assíncrono <default>
http://slidepdf.com/reader/full/academia-sap-abapinterna 178/239
SY-SUBRC
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
0 -- Erro
<1000 Sucesso
no Programa do SAP
>1000 - Erro no Processamento
(Ver campos de Sistema)
Campos de Sistema
SY-MSGID - Classe da Mensagem
SY-MSGTY - Tipo da Mensagem (E, I, W, S, A)
SY-MSGNO - Número da Mensagem
SY-MSGV1
SY-MSGV2 - Variável de Mensagem 2
1
SY-MSGV3 - Variável de Mensagem 3
SY-MSGV4 - Variável de Mensagem 4
http://slidepdf.com/reader/full/academia-sap-abapinterna 179/239
5/21/2018
Batch Input Call Transaction
AcademiaSAPAbap_Interna-slidepdf.com
Pág. 01
MODO(1) TYPE C,
CONT TYPE I VALUE 0,
C_TEXTO(255) TYPE C.
START-OF-SELECTION.
NOME_ARQ = ARQUIVO.
IF ALL = 'X'.
MODO = 'A'.
ELSEIF ERRO = 'X'.
MODO = 'E'.
ELSE.
MODO = 'N'.
ENDIF.
Pág. 03
IF TP_UNIX = 'X'.
PERFORM ABRE_ARQUIVO_UNIX.
ELSE.
PERFORM ABRE_ARQUIVO_WINDOWS.
ENDIF.
PERFORM PREPARA_BDC.
IF CONT > 0.
PERFORM FECHA_BDC.
ENDIF.
Pág. 04
LOOP AT REGISTRO.
PERFORM PREENCHE_BDC USING:
'X' 'SAPMTFBA' '0100',
' ' 'SCUSTOM-ID' REGISTRO-ID,
' ' 'BDC_OKCODE' '/00',
Pág. 05
ELSE.APPEND BDC_TAB.
MOVE: NAME TO BDC_TAB-FNAM,
VALUE TO BDC_TAB-FVAL.
APPEND BDC_TAB.
ENDIF.
CLEAR BDC_TAB.
ENDFORM.
Pág. 06
FORM INSERT.
CALL TRANSACTION 'TFBA'
USING BDC_TAB
MODE MODO
UPDATE 'S'
MESSAGES INTO MSG_TAB.
IF SY-SUBRC NE 0.
CONT = CONT + 1.
PERFORM PREPARA_PASTA_ERRO.
ENDIF.
PERFORM MENSAGENS.
ENDFORM.
Pág. 07
FORM ABRE_ARQUIVO_UNIX.
DO.
READ DATASET NOME_ARQ INTO REGISTRO.
IF SY-SUBRC NE 0.
EXIT.
ENDIF.
APPEND REGISTRO.
ENDDO.
ENDFORM.
Pág. 08
EXCEPTIONS
CONVERSION_ERROR = 1
FILE_OPEN_ERROR = 2
FILE_READ_ERROR = 3
INVALID_TABLE_WIDTH = 4
INVALID_TYPE = 5
NO_BATCH = 6
UNKNOWN_ERROR = 7
GUI_REFUSE_FILETRANSFER = 8
OTHERS = 9.
Pág. 09
IF SY-SUBRC NE 0.
WRITE: / 'Erro Abrindo arquivo do Windows ', NOME_ARQ.
EXIT.
ENDIF.
ENDFORM.
Pág.10
LOOP AT MSG_TAB.
Pág.11
IF MSG_TAB-MSGV2 NE SPACE.
REPLACE '&2' WITH MSG_TAB-MSGV2 INTO C_TEXTO.
IF SY-SUBRC NE 0.
REPLACE '&' WITH MSG_TAB-MSGV2 INTO C_TEXTO.
ENDIF.
CONDENSE C_TEXTO.
ENDIF.
IF MSG_TAB-MSGV3 NE SPACE.
REPLACE '&3' WITH MSG_TAB-MSGV3 INTO C_TEXTO.
IF SY-SUBRC NE 0.
REPLACE '&' WITH MSG_TAB-MSGV3 INTO C_TEXTO.
ENDIF.
CONDENSE C_TEXTO.
ENDIF.
Pág.12
IF MSG_TAB-MSGV4 NE SPACE.
REPLACE '&4' WITH MSG_TAB-MSGV4 INTO C_TEXTO.
IF SY-SUBRC NE 0.
REPLACE '&' WITH MSG_TAB-MSGV4 INTO C_TEXTO.
ENDIF.
CONDENSE C_TEXTO.
ENDIF.
CONCATENATE MSG_TAB-MSGTYP ' - ' C_TEXTO INTO C_TEXTO.
WRITE: C_TEXTO.
ENDLOOP.
REFRESH MSG_TAB.
ENDFORM.
Pág.13
FORM PREPARA_PASTA_ERRO.
IF CONT = 1.
PERFORM ABRE_BDC.
PERFORM INSERT_BDC.
ELSE.
PERFORM INSERT_BDC.
ENDIF.
ENDFORM.
Pág.14
CLIENT = SY-MANDT
GROUP = 'ERROS'
KEEP = 'X'
USER = SY-UNAME
EXCEPTIONS
CLIENT_INVALID = 1
DESTINATION_INVALID = 2
GROUP_INVALID = 3
GROUP_IS_LOCKED = 4
HOLDDATE_INVALID = 5
INTERNAL_ERROR = 6
QUEUE_ERROR = 7
RUNNING = 8
SYSTEM_LOCK_ERROR = 9
USER_INVALID = 10
OTHERS = 11.
Pág.15
CLIENT = SY-MANDT
GROUP = 'ERROS'
KEEP = 'X'
USER = SY-UNAME
EXCEPTIONS
CLIENT_INVALID = 1
DESTINATION_INVALID = 2
GROUP_INVALID = 3
GROUP_IS_LOCKED = 4
HOLDDATE_INVALID = 5
INTERNAL_ERROR = 6
QUEUE_ERROR = 7
RUNNING = 8
SYSTEM_LOCK_ERROR = 9
USER_INVALID = 10
OTHERS = 11.
Pág.15
IF SY-SUBRC NE 0.
WRITE: 'Erro no Open Group'.
EXIT.
ENDIF.
ENDFORM.
Pág.16
TCODE = 'TFBA'
TABLES
DYNPROTAB = BDC_TAB
EXCEPTIONS
INTERNAL_ERROR = 1
NOT_OPEN = 2
QUEUE_ERROR = 3
TCODE_INVALID = 4
PRINTING_INVALID = 5
POSTING_INVALID = 6
OTHERS = 7.
IF SY-SUBRC NE 0.
WRITE: 'Erro no Insert'.
EXIT.
ENDIF.
ENDFORM.
Pág.17
FORM FECHA_BDC.
Pág.18
Exercício
1) Batch-Input
http://slidepdf.com/reader/full/academia-sap-abapinterna 199/239
a) Criar um programa que faça o batch input dos dados obrigatórios no
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
2) Call Transaction
a) Permitir como parâmetro que o usuário informe se deseja executar a pasta
automaticamente. Exibir as Mensagens do Processo, quebrando por
Fornecedor.
http://slidepdf.com/reader/full/academia-sap-abapinterna 200/239
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
SAPScript
Sapscript
O que é Sapscript ?
http://slidepdf.com/reader/full/academia-sap-abapinterna 201/239
5/21/2018
O SAPSCRIPT é a ferramenta do SAP para criação de
AcademiaSAPAbap_Interna-slidepdf.com
Sapscript
Deficiências da Ferramenta
http://slidepdf.com/reader/full/academia-sap-abapinterna 202/239
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
-Debug
-Checar erro de sintaxe
-Client Dependent
Sapscript
JANELA DE
PÁGINAS
http://slidepdf.com/reader/full/academia-sap-abapinterna 203/239
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
PÁGINAS
Partes de um Formulário
JANELAS E ELEMENTOS DE
TEXTO
Sapscript
http://slidepdf.com/reader/full/academia-sap-abapinterna 204/239
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
Sapscript
http://slidepdf.com/reader/full/academia-sap-abapinterna 205/239
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
Sapscript
ESTRUTURA FORMULÁRIO
Cabeçalho
http://slidepdf.com/reader/full/academia-sap-abapinterna 206/239
Informações gerais do formulário, título, a classe de desenvolvimento e os
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
idiomas.
Parágrafos
São elementos que podem ser criados e apresentam informações dos textos
de uma determinada janela.
Caracter de Seleção
São informações semelhantes às do parágrafo, no que diz respeito a
formatação de textos, no entanto podem ser aplicados a trechos de textos e
não necessariamente a linhas inteiras do formulário.
Páginas
São os elementos responsáveis pelo agrupamento das janelas durante
certos momentos do relatório.
Sapscript
ESTRUTURA FORMULÁRIO
http://slidepdf.com/reader/full/academia-sap-abapinterna 207/239
Elementos de Texto
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
Corresponde à lógica de processamento e comportamento de uma janela
durante a execução do formulário.
* Parágrafo Padrão
= Linha longa
( Linha Bruta
/ Avanço de Linha
/ = Avanço de Linha e Linha Longa
/( Avanço de Linha e Linha Bruta
/: Linha de Comando
/* Linha de Comentário
/E Elemento de Texto
Sapscript
ESTRUTURA FORMULÁRIO
http://slidepdf.com/reader/full/academia-sap-abapinterna 208/239
Janelas
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
Podem ser criadas sem limites e tem por finalidade dividir por espaço as
regiões de um formulário para operações independentes.
MAIN
Somente
janela é permitido
obrigatória um tipo
em uma de janela MAIN por formulário, e é a única
página.
VAR
Esse tipo de janela deve ser utilizado quando se pretende trabalhar com
textos que variam.
CONST
Nesse tipo de janela são incluído objetos e textos que permanecem os
mesmos durante todo o relatório, independente do número de páginas.
Sapscript
CONDIÇÕES CONDIÇÕES
NÃO EXISTENTES
http://slidepdf.com/reader/full/academia-sap-abapinterna
EXISTENTES 209/239
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
NO SAPSCRIPT NO SAPSCRIPT
CN (Contains Not only) = EQ (Igual)
CO (Contains Only) < LT (Menor que)
CA (Contains Any) > GT (Maior que)
NA (Contains Not Any) <= LE (Menor ou igual a)
CS (Contains String) >= GE (Maior ou igual a)
NS (Contains No String) <> NE (Diferente)
CP (Contains Pattern) NOT (Não)
NP (contains No Pattner) AND (E)
OR (Ou)
Sapscript
SIMBOLOS UTILIZADOS
http://slidepdf.com/reader/full/academia-sap-abapinterna 210/239
DATE: Data
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
DAY: Dia
NAME_OF_DAY: Nome do Dia
MONTH: Mês
NAME_OF_MOUNTH: Nome do Mês
YEAR: Ano
Sapscript
COMANDOS
ADDRESS
http://slidepdf.com/reader/full/academia-sap-abapinterna PRINT-CONTROL 211/239
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
BOTTOM PROTECT
BOX RESET
CASE SET COUNTRY
DEFINE SET DATE MASK
NEW-WINDOW SUMMING
PERFORM TOP
POSITION
Sapscript
Estrutura de Chamada e Controle do SAPSCRIPT
http://slidepdf.com/reader/full/academia-sap-abapinterna
CALL FUNCTION “OPEN_FORM” 212/239
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
Sapscript
PROGRAMA DE POVOAMENTO DE SAPSCRIPT
http://slidepdf.com/reader/full/academia-sap-abapinterna 213/239
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
Controla impressão formulário através de:
- Inicialização
- Envio dados para formulário
- Finalização
- Fechamento
Sapscript
ABERTURA
http://slidepdf.com/reader/full/academia-sap-abapinterna 214/239
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
A abertura de um formulário gera automaticamente a inicialização de um
formulário.
FUNÇÃO:
Call function „OPEN_FORM‟
PARÂMETROS ESSÊNCIAIS:
DEVICE
FORM
LANGUAGE
Sapscript – OPEN_FORM
- TDCOPIES (Número de Cópias)
- TDDEST (Dispositivo de Saída)
- TDPREVIEW (Print Preview)
http://slidepdf.com/reader/full/academia-sap-abapinterna 215/239
- TDIMMED (Saída Imediata)
5/21/2018
call function 'OPEN_FORM ' AcademiaSAPAbap_Interna-slidepdf.com
exporting
* APPLICATION = 'TX'
* ARCHIVE_INDEX = ' '
* ARCHIVE_PARAMS = ' '
DEVICE = 'PRINTER' ou 'SCREEN'
* DIALOG = 'X' ou '' (Tela de características de impressão)
FORM = 'Z_SCRIPT' (Nome do Formulário)
LANGUAGE = 'P' (Idioma do Formulário)
* OPTIONS = ITCPO (Estrutura com todas as características)
* importing
* language =
* new_archive_params =
* result =
exceptions
canceled = 1
device = 2
form
options = 3
4
unclosed = 5
others = 6.
Sapscript
INICIALIZAÇÃO
http://slidepdf.com/reader/full/academia-sap-abapinterna 216/239
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
Permite
um novoaformulário
geração de vários
para cadaformulários
situação. diferentes, como se estivesse abrindo
FUNÇÃO:
Call function „START_FORM‟
PARÂMETROS ESSÊNCIAIS:
FORM
LANGUAGE
Sapscript – START_FORM
Este comando não é obrigatório e pode não ser utilizado caso não haja necessidade da quebra e criação de vários
formulários para uma só seleção de dados.
A função é muito similar à função OPEN_FORM, e novamente os parâmetros mais importantes são o nome (FORM)
http://slidepdf.com/reader/full/academia-sap-abapinterna 217/239
e o idioma (LANGUAGE) do formulário.
Para que se possa utilizar um comando START_FORM é obrigatório que um comando de OPEN_FORM tenha sido
5/21/2018 Academia
executado. Caso isso não seja feito um erro de sintaxe SAP
irá Abap_Interna-slidepdf.com
aparecer.
*
* PROGRAM
importing = ' '
* language =
exceptions
form = 1
format = 2
unended = 3
unopened = 4
unused = 5
others = 6.
Sapscript
ENVIO DADOS AO FORMULÁRIO
http://slidepdf.com/reader/full/academia-sap-abapinterna 218/239
Depois
5/21/2018
da seleção e processamento dos dados, envia-se os dados ao
formulário.
AcademiaSAPAbap_Interna-slidepdf.com
FUNÇÃO:
Call function „WRITE_FORM‟
PARÂMETROS ESSÊNCIAIS:
ELEMENT
WINDOW
Sapscript – WRITE_FORM
Um ponto importante que deve ser observado é que não é possível utilizar tabelas internas e variáveis do programa
para a impressão dos dados no SAPSRIPT. Portanto, se algum dado que deva ser impresso estiver numa tabela
interna ou variável, este deve ser copiado para uma estrutura para que possa ser enviado ao SAPSCRIPT.
http://slidepdf.com/reader/full/academia-sap-abapinterna 219/239
A impressão dos dados nas janelas na maioria das vezes é feita simultaneamente com a seleção dos dados, ou seja, a
medida que os dados são selecionados, são enviados imediatamente para o formulário.
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
O comando para impressão dos dados é a seguinte função:
window
others 6
= 7.
Sapscript – WRITE_FORM
Dois parâmetros são os mais importantes:
1234
5678
Já as janelas que não forem do tipo MAIN imprimem os dados uma única vez, no final da impressão do formulário
ou na quebra de página, com os valores armazenados nos campos no momento do encerramento ou no momento da
quebra, e não no momento da escrita (write_form), ou seja, se no exemplo anterior fosse utilizada uma janela não-main,
o resultado final seria somente 5678.
Na realidade, a utilização de um comando WRITE_FORM numa janela não-main é utilizada para a escolha de
qual elemento de texto será utilizado para a impressão dos dados.
Exemplo: Uma janela HEADER não-main contém dois elementos de texto chamados FRASE1 e FRASE2 da
seguinte forma:
/E FRASE1
&MARA-MATNR& Teste de Frase 1
/E FRASE2
&MARA-MATNR& Teste de Frase 2
Sapscript – WRITE_FORM
Se um comando WRITE_FORM for executado para a janela HEADER utilizando o elemento de texto FRASE1,
estará sendo indicado ao programa que, ao se encerrar o formulário, deve ser impresso o elemento de texto
FRASE1 para a janela HEADER (somente um elemento de texto é utilizado para cada janela não-main).
No caso do exemplo, se o campo MATNR for igual a „1234‟ no encerramento do formulário, seria impressa a
seguinte frase:
Teste de Frase 1
O elemento de texto a ser impresso será sempre o último a ser selecionado antes do final ou da quebra de
página.
Se nenhum for selecionado, ao encerrar o formulário ou mudar de página serão impressos os dados que não
pertençam a nenhum elemento de texto. Portanto no caso de um campo que deva ser impresso sempre em
todas
as páginas, como numero de página por exemplo, basta colocá-lo fora de qualquer elemento de texto e não
selecionar nenhum elemento de texto para a janela que, automaticamente, este dado será impresso em todas as
páginas.
Sapscript
FINALIZAÇÃO FORMULÁRIO
http://slidepdf.com/reader/full/academia-sap-abapinterna 222/239
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
FUNÇÃO:
Call function „END_FORM‟
FECHAMENTO FORMULÁRIO
FUNÇÃO:
Call function „CLOSE_FORM‟
Sapscript – END_FORM/CLOSE_FORM
END FORM - Serve para finalizar um formulário.
Sapscript
INFORMAÇÕES ÚTEIS
Transação SE71
http://slidepdf.com/reader/full/academia-sap-abapinterna 224/239
Tabela TTXFP
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
Programa RSTXSCRP (download / upload)
Programa RSTXLDMC (tipo .TIF)
Programa RSTXPDFT4 (download .PDF quando gerar na sp01)
DICAS
* Nunca esquecer de ativar o formulário no idioma original, caso contrário
ficará bloqueado as modificações nos outros idiomas.
* Visualização x Impressão mesma máquina (impressora / basis SPAD)
* Visualização distinta em computadores distintos (versão Sapgui)
* Não deletar janelas e elementos de textos
Exercício
1) SAPScript
Nome do formulário : Z_FORM## Nome do programa : Z_STK##_SCRIPT
Crie um formulário com o layout :
http://slidepdf.com/reader/full/academia-sap-abapinterna 225/239
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna 226/239
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
Exits
Exits
Definição
Exist são pontos em locais pré-definidos pela SAP, onde o cliente pode
http://slidepdf.com/reader/full/academia-sap-abapinterna 227/239
incluir códigos próprios, por alguma necessidade específica.
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
Tipos de exit :
User-Exit
Field-Exit
Menu-Exit
Exits
User-Exit
call customer-function…
Exits – CMOD / User-Exit
As ampliações SAP são agrupadas em projetos de ampliação sob um nome de projeto. O projeto de ampliação consiste
em pelo menos uma ampliação SAP:
As ampliações SAP que estão no mesmo projeto de ampliação são sempre ativadas e desativadas em conjunto.
As ampliações SAP foram criadas pela SAP e, de forma, geral, são constituídas por vários componentes (por exemplo,
por uma área de tela e pelos exits de função para a transferência de dados).
http://slidepdf.com/reader/full/academia-sap-abapinterna 229/239
Destas ampliações SAP, o cliente seleciona aquelas que pretende processar, reune as mesmas em projetos de
ampliação, processa os componentes e ativa osAcademia
5/21/2018 projetos.
SAPAbap_Interna-slidepdf.com
Exits – CMOD / User-Exit
http://slidepdf.com/reader/full/academia-sap-abapinterna 230/239
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
Projeto :
Características Gerais Ampliações do projeto.
Exits – CMOD / User-Exit
http://slidepdf.com/reader/full/academia-sap-abapinterna 231/239
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
Ampliações e suas
exit relacionadas.
Exits – CMOD / User-Exit
http://slidepdf.com/reader/full/academia-sap-abapinterna 232/239
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
Exits
Field-Exit
Exits – Field-Exit
Programa para busca/manutenção
de field-exist.
http://slidepdf.com/reader/full/academia-sap-abapinterna 234/239
5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com
Exits – Field-Exit
http://slidepdf.com/reader/full/academia-sap-abapinterna 235/239
5/21/2018
Field-Exits existentes AcademiaSAPAbap_Interna-slidepdf.com
e seus status.
Quando se opta pela criação
de novo field-exit, ele solicita
qual o campo que se deseja
customizar.
Exits – Field-Exit
Field-exit Criar/Modificar –
R e q u i si t o s:
a) nome do programa Standard onde se encontra o campo onde se quer colocar codificação
http://slidepdf.com/reader/full/academia-sap-abapinterna 236/239
b) número da tela
5/21/2018
c) nome do elemento de dados do campoAcademiaSAPAbap_Interna-slidepdf.com
Transação CMOD
Obs.: Se um campo com field-exit codificado por alguma razão aparecer inibido, este field-exit não será
executado.
Uso de SET/GET: se o campo da tela contiver um field-exit com SET, este SET será limpo da memória se
em
telas posteriores existir o mesmo elemento de dados com o campo aberto.
Field-Exit não funcionam em campos check-box ou radio-buttom.
F I M
http://slidepdf.com/reader/full/academia-sap-abapinterna 239/239