Academia SAP Abap_Interna
Short Description
Descrição: Academia SAP Abap_Interna...
Description
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
ACADEMIA INTERNA ABAP / SAP R3
http://slidepdf.com/reader/full/academia-sap-abapinterna
1/239
Cronograma
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
• Introdução SAP R/3 • Dicionário de Dados* • Programação • Relatórios • ALV* • On Line* • Batch-Input/Call Transaction* • SapScript* • Exits * exercícios http://slidepdf.com/reader/full/academia-sap-abapinterna
2/239
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
Click to edit Master title style
INTRODUÇÃO SAP R/3
www.softtek.com.br
http://slidepdf.com/reader/full/academia-sap-abapinterna
3
3
3/239
Objetivos
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
• O que é SAP R/3 • Funcionais e Basis Components • Arquitetura • Projetos • Navegação
http://slidepdf.com/reader/full/academia-sap-abapinterna
4/239
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
O que é o SAP R/3?
http://slidepdf.com/reader/full/academia-sap-abapinterna
5/239
SAP - R/3
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
• Gestão Empresarial - ERP • Integração • Acesso a informação em tempo real e segura • 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 Distribuição MM Gerenc.de Materiais
Arquitetura
Sistemas abertos
CO Controladoria
PP Plan. da Produção
Cliente/Servidor QM Controle de Qualidade
Funcionalidades sofisticadas
FI Contabilidade Financeira
AM Ativos. Fixos
R/3
Cliente / Servidor ABAP/4
PM Manutenção da Planta
HR Recursos Humanos
Desenhado tipopara de negócios todo
PS Gerenc. de Projetos
OC Comunicação
Multinacional
IS Solucões 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
Sales & Distribution : A de solução paravendas, o gerenciamento integrado todascompleta tarefas para 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.
http://slidepdf.com/reader/full/academia-sap-abapinterna
9/239
Sistema R/3
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
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.
http://slidepdf.com/reader/full/academia-sap-abapinterna
10/239
Sistema R/3
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
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.
http://slidepdf.com/reader/full/academia-sap-abapinterna
11/239
Estrutura Organizacional
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
Grupo de empresas
001
Sociedade
0001
0002
Organização de compras
1000
2000
3000
0004
0005
Centro
0001
0002
0003
Armazém
0001
0002
WM 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-GL
Contabilidade Geral
FI-AP
Contas a Pagar
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
MM
Fornecedores
SD
Clientes FI
FI
Contabilidade Geral
CCA Contab. JOB Centros Ordens Custos de Custos
PMPP
PCB
Custos
HR AM MM
de Projetos
Pessoal Ativos Materiais
PC Custo de Produtos
Consolidação Ledgers
PA
Análise de Rentabilidade
Base Dados Documentos http://slidepdf.com/reader/full/academia-sap-abapinterna
14/239
Contas a Pagar
5/21/2018
MM EDI
AcademiaSAPAbap_Interna-slidepdf.com
CO Pagtos
Fornecedor Qualificação
Pedido de compra
EDI
de fornecedor Estatísticas Antecipações
Recebto.
Promissórias Auditoría
Fatura
Pagtos. parciais
Recebto.
Compensação Gestão e prevenção de tesouraria
Relatórios
Pagtos
Correspondência Cálculo de interesses Cartas a forn. Confirmação de saldos
http://slidepdf.com/reader/full/academia-sap-abapinterna
Previsão de cobrança e pagto. Registro de moeda Rankings
Cheque Transferência Compensação
Letras Pagar 15/239
Gestão de Materiais - Processo de Abastecimento
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
Pedidos
Planejamento de necesidades
Fatura 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
Follow-up de Pedidos
Seleção de fornecedores
Gestão de Pedidos
http://slidepdf.com/reader/full/academia-sap-abapinterna
16/239
Logística - R/3
5/21/2018
Cliente
AcademiaSAPAbap_Interna-slidepdf.com
Plano de Vendas SD
Provedor
PP
PM
Planej, Produção
Planej. Paradas Manutenção
MRP
Vendas Distribuição Faturamento
Planej. Capacidade
MM
Controle de produção
QM
Financeira
PPSFC Controle em planta PDC
CAD CAM CAP CAQ
Compras Gestão de Estoques Verif. Facturas
FI Contabil.
Planej. Inspeção Gestão de inspeção
Custo de Produtos
CO Contabilid. AM Ativos HR Recursos
http://slidepdf.com/reader/full/academia-sap-abapinterna
de Custos
Fixos
Humanos
17/239
Recursos Humanos
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
FI / CO Contabilidade Financeira / Analítica Gastos de Viagens
Salários Organizacão de Rec. Humanos
HR
Datos Mestres de Pessoal
Relatórios estatísticas
Planejamento Rec. Humanosde Control de custos de Rec. Humanos
Gestão 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 B A P
dvanced usiness pplication rogramming
/ 4 http://slidepdf.com/reader/full/academia-sap-abapinterna
20/239
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
Click to edit Master title style
Arquitetura
www.softtek.com.br 21 http://slidepdf.com/reader/full/academia-sap-abapinterna
21 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
Servidor
Servidor
Servidor
DV4
QA4
PR4
Ambiente de desenvolvimento
Ambiente de consolidação
Ambiente de produção
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
Ambiente de desenvolvimento: client 200
Request
Task
http://slidepdf.com/reader/full/academia-sap-abapinterna
26/239
Transporte
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
Servidor
Servidor
Servidor
DV4
QA4
PR4
Ambiente de desenvolvimento
Ambiente de consolidação
Ambiente de produção
http://slidepdf.com/reader/full/academia-sap-abapinterna
27/239
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
Click to edit Master title style
Projetos
www.softtek.com.br 28
http://slidepdf.com/reader/full/academia-sap-abapinterna
28 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
Click to edit Master title style
Navegação
www.softtek.com.br 30
http://slidepdf.com/reader/full/academia-sap-abapinterna
30 30/239
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
Click to edit Master title style
DICIONÁRIO DE DADOS
www.softtek.com.br 31
http://slidepdf.com/reader/full/academia-sap-abapinterna
31 31/239
Objetivos
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
• 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
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
• Ativação dos Dados
Banco de Dados R/3
http://slidepdf.com/reader/full/academia-sap-abapinterna
33/239
5/21/2018
Tabela
AcademiaSAPAbap_Interna-slidepdf.com
Tabela Campo 1
Campo 2
Campo 3
Campo 4
DICIONÁRIO ABAP/4 DEFINIÇÃO LÓGICA DA 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
Tabela 2 Campo 1
Campo 2
Campo 4
Campo 5
Tabela “n” Campo 2
Campo 3
Campo 5
“DB UTILITY”
• Sistema de gerenciamento de banco de dados
relacional
Banco de Dados R/3 Tabela 1
Tabela 2
Tabela “n”
• Dados trabalhados via SQL
http://slidepdf.com/reader/full/academia-sap-abapinterna
35/239
Elementos do Dicionário de Dados
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
• 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
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 Modelagem Ferramentas Telas de Dados
Banco de Dados R/3
Controle de Interpretador Interfaces Módulos Diálogo AMBIENTE DE EXECUÇÃO DA APLICAÇÃO
http://slidepdf.com/reader/full/academia-sap-abapinterna
37/239
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
Click to edit Master title style
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 Elemento de Dados
Definição Semântica
Utiliza Definição Técnica
http://slidepdf.com/reader/full/academia-sap-abapinterna
Domínio
39/239
Generalizando
5/21/2018
Tabela 1
AcademiaSAPAbap_Interna-slidepdf.com
Tabela 2
Elemento de Dados 1
Tabela 3
Tabela 4
Elemento de Dados 2
Tabela 5
Elemento de Dados 3
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 Primary Key
Field 2
Field 3
Field 4
Foreign Key Field
Table T2 (check table) Field A
Field B
Field C
Field D
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
Click to edit Master title style
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
Tabela 1
Tabela 2
Tabela “n”
Banco de Dados R/3
http://slidepdf.com/reader/full/academia-sap-abapinterna
44/239
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
Trabalhando com a SE11
http://slidepdf.com/reader/full/academia-sap-abapinterna
45/239
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
Click to edit Master title style
Levantamento de Informações
www.softtek.com.br
46 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
1. Criar uma tabela Z no dicionário de dados, com o nome ZTESTE_001. Layout : - DOCUMENTO - ITEM - TEXTO - MATERIAL - QUANTIDADE - PRECO_UNITARIO - PRECO_TOTAL
chave chave
numérico numérico alfa numérico numérico numérico numérico
10 05 40 06 04 15(02) 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.
http://slidepdf.com/reader/full/academia-sap-abapinterna
48/239
Exercício - continuação
5/21/2018
2.
AcademiaSAPAbap_Interna-slidepdf.com
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
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
1000000002
00003
Documento teste 001
900003
0009
50,00
http://slidepdf.com/reader/full/academia-sap-abapinterna
Preço Tot
500,00
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
• Tipos de progamas possíveis
• Estrutura geral de um programa abap
http://slidepdf.com/reader/full/academia-sap-abapinterna
52/239
Declaração de tabelas
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
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.
http://slidepdf.com/reader/full/academia-sap-abapinterna
53/239
Como funciona o Header Line
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
Header Line
1001 1002
ABC DEF
A90S J82J
23,00 02,03
2003
GHI
KK89
00,01
Registros da Tabela
Obs.: os registros são trabalhados no Header e posteriormente levados à tabela.
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. 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.
http://slidepdf.com/reader/full/academia-sap-abapinterna
55/239
Declaração de variáveis
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
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
http://slidepdf.com/reader/full/academia-sap-abapinterna
LIKE tabela02.
56/239
Tipos de dados
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
Tipos I N P F
-> -> -> ->
inteiro (4 bytes c/ sinal) numérico (só números) compactado ponto flutuante
C D T X
-> -> -> ->
caracter data (AAAAMMDD) hora (HHMMSS) hexadecimal (sequência de bytes)
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
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.
http://slidepdf.com/reader/full/academia-sap-abapinterna
59/239
Tela de seleção
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
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
http://slidepdf.com/reader/full/academia-sap-abapinterna
60/239
Eventos de um programa Abap
5/21/2018
INITIALIZATION:
AcademiaSAPAbap_Interna-slidepdf.com
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:
END-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. Este evento ocorre quando se ultrapassa o número de linhas da página corrente. Ou quando se passa de uma página à outra.
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 . … ENDIF. Exemplo: IF VBAP-VBELN IS INITIAL. MESSAGE E001(ZSSI). ENDIF. -IF... ELSE... ENDIF. IF . … ELSE. … ENDIF. Exemplo.: IF VBAP-VBELN is INITIAL. MESSAGE E001(ZSSI). ElSE. MOVE VBAP-VBELN TO W_VBELN. ENDIF.
http://slidepdf.com/reader/full/academia-sap-abapinterna
62/239
Comandos básicos IF
5/21/2018
-IF
AcademiaSAPAbap_Interna-slidepdf.com
…ELSEIF…ELSEIF…ENDIF.
IF . … ELSEIF . ... ELSEIF . ... 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.
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 . … … … ENDLOOP. LOOP AT WHERE . … … … 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 . WHEN [OR OR ...]. ... WHEN .[OR OR ...] ... WHEN [OR 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.
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 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.
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 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 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.
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 USING p_variavel_referencia CHANGING p_variavel_valor Instruções ENDFORM.
TABLES p_tabela.
PERFORM -PERFORM Executa chamadas de subrotinas do programa ABAP. Exemplos:
PERFORM f_leitura_bseg.
Opções: PERFORM 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.
Tabela interna – READ / Leitura
http://slidepdf.com/reader/full/academia-sap-abapinterna
73/239
Tabela interna READ / Leitura 5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
READ
-READ… Realiza a leitura de dados de uma tabela interna. READ TABLE WITH KEY … READ TABLE 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 – APPEND / Gravando
http://slidepdf.com/reader/full/academia-sap-abapinterna
74/239
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
APPEND
-APPEND Para incluir novos registros na tabela interna. APPEND . Exemplos: CLEAR table01. = ‘Jose’. table01- nome table01-cracha = v_cracha. table01- situacao = ‘Ativo’. APPEND table01.
“Limpa a header line da tabela
“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 5510
1999 1999
72000001553 72000001552
25.10.1999 25.10.1999
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 . 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 . 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
COLLECT
AcademiaSAPAbap_Interna-slidepdf.com
-COLLECT . 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
Soma os campos numéricos
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 . 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 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).
Tabela DB SAP - SELECT
http://slidepdf.com/reader/full/academia-sap-abapinterna
78/239
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
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 . 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 WHERE .
-Select inserindo em uma tabela interna. SELECT INTO TABLE FROM WHERE .
Tabela DB SAP - SELECT
http://slidepdf.com/reader/full/academia-sap-abapinterna
79/239
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com -Select inserindo dados em determinados campos de uma tabela interna.
SELECT INTO CORRESPONDING FIELDS OF TABLE FROM WHERE . -Select inserindo dados em uma tabela, usando como base os dados de outra já preenchida. SELECT INTO TABLE FROM FOR ALL ENTRIES IN 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.
Tabela DB SAP - SELECT
http://slidepdf.com/reader/full/academia-sap-abapinterna
80/239
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com -Select para buscar apenas um registro específico.
SELECT SINGLE INTO TABLE FROM WHERE . 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 INTO TABLE FROM UP TO 1 ROW WHERE . ENDSELECT.
-Select com range de valores. SELECT INTO TABLE FROM WHERE BETWEEN AND .
-Select em um intervalo de valores SELECT INTO TABLE FROM WHERE IN (valor_mínimo,valor_máximo).
Tabela DB SAP - INSERT
http://slidepdf.com/reader/full/academia-sap-abapinterna
81/239
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
INSERT
-INSERT 1.Insere registros na tabela do dicionário. INSERT INTO [ FROM ][ VALUES ] . 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. WA-CARRID = 'UA'. WA-CITYFROM = 'LONDON'. … INSERT SPFLI FROM WA.
Mesmo feito do comando acima.
Tabela DB SAP - INSERT
http://slidepdf.com/reader/full/academia-sap-abapinterna
82/239
5/21/2018
INSERT
AcademiaSAPAbap_Interna-slidepdf.com
2.Insere registros na tabela do dicionário, a partir de uma tabela interna. INSERT INTO FROM TABLE [ 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.
Tabela DB SAP - UPDATE
http://slidepdf.com/reader/full/academia-sap-abapinterna
83/239
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
UPDATE
-UPDATE 1.Modifica registros na tabela do dicionário. Um registro por vez. UPDATE [ FROM ]. 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' MOVE '0017' MOVE 'BERLIN' … UPDATE SPFLI.
TO SPFLI-CARRID. TO SPFLI-CONNID. TO SPFLI-CITFROM.
Tabela DB SAP - UPDATE
http://slidepdf.com/reader/full/academia-sap-abapinterna
84/239
5/21/2018
UPDATE
AcademiaSAPAbap_Interna-slidepdf.com
2.Modifica registros na tabela do dicionário. Vários registros por vez. UPDATE SET .. [ 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 FROM TABLE . 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.
Tabela DB SAP - MODIFY
http://slidepdf.com/reader/full/academia-sap-abapinterna
85/239
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
MODIFY
-MODIFY Este comando também altera registros na tabela do dicionário, mas contém uma diferença importante. este se o registro a ser alterado não for encontrado, ele é inserido na Com tabela docomando, dicionário. Segue o mesmo esquema do comando UPDATE. MODIFY [ FROM ]. MODIFY FROM TABLE . Exemplos: TABLES: SPFLI.
TABLES: SPFLI.
DATA: WA LIKE SPFLI.
DATA ITAB LIKE SPFLI OCCURS 10 WITH HEADER LINE.
MOVE 'AA' MOVE '0064' MOVE 'WASHINGTON' … MODIFY SPFLI FROM
ITAB-CARRID = 'UA'. ITAB-CONNID = '0011'. APPEND ITAB. ITAB-CARRID = 'LH'. ITAB-CONNID = '1245'. APPEND ITAB. ITAB-CARRID = 'AA'. ITAB-CONNID = '4574'.
TO WA-CARRID. TO WA-CONNID. TO WA-CITYFROM. WA.
APPEND ITAB. … MODIFY SPFLI FROM TABLE ITAB.
Tabela DB SAP - DELETE
http://slidepdf.com/reader/full/academia-sap-abapinterna
86/239
DELETE
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
-DELETE 1.Deleta registros da tabela do dicionário. DELETE FROM . Exemplos: TABLES: SPFLI. DATA: WA LIKE SPFLI. MOVE 'AA'
TO WA-CARRID.
„Serão deletados os registros na estrutura
WA, de acordo com os campos chave.
MOVE '0064' TO WA-CONNID. DELETE SPFLI FROM WA. 2.Deleta registros da tabela do dicionário. Vários registros por vez. DELETE FROM WHERE . Exemplos: TABLES: SFLIGHT. DELETE FROM SFLIGHT WHERE PLANETYPE = 'A310' AND CARRID = 'LH'.
Tabela DB SAP - DELETE
http://slidepdf.com/reader/full/academia-sap-abapinterna
87/239
DELETE
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
3. Modifica registros na tabela do dicionário, a partir de uma tabela interna. DELETE FROM TABLE . 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.
Os registros são deletados baseando-se nos campos chave.
ITAB-CARRID = 'AA'. ITAB-CONNID = '4574'. APPEND ITAB. DELETE SPFLI FROM TABLE ITAB.
COMMIT WORK / ROLLBACK WORK
http://slidepdf.com/reader/full/academia-sap-abapinterna
88/239
COMMIT WORK
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
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.
Primeira gravação.
Exemplos: …
COMMIT WORK. … …
Deleta registros da tabela.
DELETE FROM bkpf WHERE … …
Insere registros na tabela.
… INSERT zteste_001 from zteste_001. IF sy-subrc 0. ROLLBACK WORK. continue. ELSE. COMMIT WORK. ENDIF.
Se ocorrer erro na inserção, desfaz tudo o que foi feito após o primeiro COMMIT. Efetiva operações realizadas até este COMMIT.
Trabalhando com cadeia de caracteres
http://slidepdf.com/reader/full/academia-sap-abapinterna
89/239
CONCATENATE AcademiaSAPAbap_Interna-slidepdf.com Utilizado para concatenar/juntar várias strings em uma só.
5/21/2018
CONCATENATE … INTO [ SEPARATED BY ].
CONDENSE Utilizado para eliminar os espaços em branco de uma string. CONDENSE [ 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 TO UPPER CASE. TRANSLATE TO LOWER CASE. TRANSLATE USING . DATA: STRING1 (10) VALUE 'AbCdEfGhIj', STRING2 (20) VALUE 'AxbXCydYEzfZ'. TRANSLATE STRING1 USING STRING2.
A string utilizada para o TRANSLATE, STRING2 tem a seguinte instrução : A x b X C y d Y E z f
Z
WRITE / STRING1. A saída será a seguinte string : xXyYzZGhIj
Trabalhando com cadeia de caracteres
http://slidepdf.com/reader/full/academia-sap-abapinterna
90/239
REPLACE AcademiaSAPAbap_Interna-slidepdf.com Substitui o conteúdo de uma string por outra, em uma outra string destino.
5/21/2018
Exemplos: DATA: T(10) STRING LIKE T,VALUE STR1(4) VALUE STR2(4) VALUE STR3(2) VALUE STR4(6) VALUE
'abcdefghij', 'cdef', 'klmn', 'kl', '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
Trabalhando com cadeia de caracteres
http://slidepdf.com/reader/full/academia-sap-abapinterna
91/239
SEARCH AcademiaSAPAbap_Interna-slidepdf.com Permite que se busque uma string em uma cadeia de caracteres ou em uma tabela interna.
5/21/2018
SY-SUBRC = 0, string encontrada. SY-FDPOS , retorna a posição em que foi encontrada. SY-SUBRC = 4, string não encontrada. SEARCH FROM . SEARCH FOR [ 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 ).
http://slidepdf.com/reader/full/academia-sap-abapinterna
92/239
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
RELATÓRIOS
Formatando listas : Overview
http://slidepdf.com/reader/full/academia-sap-abapinterna
93/239
Comandos de saída/Opções de formatação : SAPAbap_Interna-slidepdf.com Academia WRITE FORMAT NEW-PAGE
5/21/2018
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
Formato de saída dos tipos de dados pré-definidos : Tipo Dado
Tamanho Saída
Positioning
C D F I N P T X
tamanho do campo 8 22 11 tamanho do campo 2 * tamanho do campo + 1 6 2 * tamanho do campo
esquerda esquerda direita direita esquerda direita esquerda esquerda
Revendo as opções do comando WRITE: ... ... ... ... ...
NO-ZERO. DD/MM/YY. DD/MM/YYYY. DDMMYY. DECIMALS d.
... ... ... ... ...
NO-SIGN. MM/DD/YY. MM/DD/YYYY. CURRENCY w. ROUND R.
... ... ... ...
UNIT u. UNDER g. LEFT-JUSTIFIED. RIGHT-JUSTIFIED.
... USING EDIT MASK mask. ... NO-GAP. ... CENTERED.
Comando WRITE
http://slidepdf.com/reader/full/academia-sap-abapinterna
95/239
WRITE
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
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 ‘__:__:__’.
Comando FORMAT
http://slidepdf.com/reader/full/academia-sap-abapinterna
96/239
FORMAT
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
-Trabalhando com cores.
Opções para se modificar as cores da lista, via comando FORMAT. 1. 2. 3. 4. 5. 6.
… … … … … …
FORMAT FORMAT FORMAT FORMAT WRITE:
COLOR n [ON] INTENSIFIED [ON] INVERSE [ON] HOTSPOT [ON] INPUT [ON] RESET
or or or or or
… … … … …
COLOR OFF INTENSIFIED OFF INVERSE OFF HOTSPOT OFF INPUT OFF
INTENSIFIED OFF. INTENSIFEID. COLOR COL_KEY. COLOR COL_TOTAL INTENSIFIED OFF. /05 V_TOTAL COLOR COL_POSITIVE.
Comando NEW-PAGE / END-OF-PAGE
http://slidepdf.com/reader/full/academia-sap-abapinterna
97/239
NEW-PAGE
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
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 com colunas por linha. Cria o report LINE-COUNT n(m) Cria o report com 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. SY-COLNO : número da coluna em que o cursor está posicionado.
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
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 .
ALV Grid
http://slidepdf.com/reader/full/academia-sap-abapinterna
100/239
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
• 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.
ALV Grid
http://slidepdf.com/reader/full/academia-sap-abapinterna
101/239
O List Viewer permite :
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
• 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.
ALV Grid
http://slidepdf.com/reader/full/academia-sap-abapinterna
102/239
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
• Exibição de informações detalhadas.
Pode-se acessar informações detalhadas de individuais da lista.
linhas
• 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.
ALV Grid
http://slidepdf.com/reader/full/academia-sap-abapinterna
103/239
• Exportação de dados.
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
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.
Um programa ALV simples
http://slidepdf.com/reader/full/academia-sap-abapinterna
104/239
• Programa : Z_ALV_SIMPLE.
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
Estruturas de um programa ALV
http://slidepdf.com/reader/full/academia-sap-abapinterna
105/239
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
• O programa endereçado no link E x e m p l o A L V 0 1.d o c
contém as estruturas necessárias para se desenvolver um programa mais abrangente e formatado.
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 deverá buscar os documentos contábeis (BSEG) e seus itens (BKPF),que listando-os, ordenados por documento+item+data documento. Deverá existir uma somatória por documento contábil, de todos os campos de valor. Incluir entre os documentos uma linha de separação. O relatório deverá conter um cabeçalho que identifique o título do relatório, a hora e data de execução, além do usuário. Incluir também indicador de páginas. O cabeçalho deverá ter cor diferente das demais linhas do relatório. Já as linhas de detalhe devem se alterar entre duas cores, de mesma tonalidade, mas de intensidades diferentes.
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 contábeis) Exercício (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 Buscar os itens na tabela BKPF, pela chave. Incluir ao final do relatório um demonstrativo do total de registros lidos das tabelas. Campos a inserir no relatório : BSEG (BUKRS, BELNR, GJAHR, BLART, BLDAT, BKTXT, BSTAT) e BSEG (BUZEI, AUGCP, AUGBL, WRBTR, PSWBT, PSWSL).
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 valores campos fixos para seleção dos dados e incluir uma Tipo tela de seleção, com os os seguintes : Empresa, Documento, Exercício, documento e Data documento. Validar - ao menos um dos campos da tela de seleção deverá estar preenchido. Incluir no cabeçalho, o logotipo da Softtek. Incluir sumarizador pelos campos de valor.
http://slidepdf.com/reader/full/academia-sap-abapinterna
109/239
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
On Line / Module Pool
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
indica, funcionam online, ou seja, instantaneamente. Por isso, eles são dotados de uma maior capacidade de customização das telas e maior flexibilidade para criarem uma interface mais amigável com o usuário. • Eles são especialmente úteis na criação de aplicações que
necessitem de subtelas ou quando é necessário fornecer informações aos usuários de outra maneira que não um relatório. Na maioria dos casos, os programas standard funcionam assim.
Estrutura de um Module Pool
http://slidepdf.com/reader/full/academia-sap-abapinterna
111/239
Módulos PAI tela 1 5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
Screen 1
Módulos PBO tela 1 GUI-01
Programa Principal
Screen 2
Módulos PAI tela 2 Módulos PBO tela 2
GUI-02 Módulos PAI tela 3 Screen 3 Módulos PBO tela 3
Estrutura de um Module Pool
http://slidepdf.com/reader/full/academia-sap-abapinterna
112/239
•
Screen AcademiaSAPAbap_Interna-slidepdf.com Desenho da Tela (Definição dos Campos) Lista de campos para tratamento de erros Definição dos módulos PBO e PAI relacionados com a tela
•
GUI Status e GUI Title Definição dos comandos de botão e menus disponíveis: Definição do título de tela Habilitação dos comandos standards existentes
5/21/2018
Criação de novos comandos necessários •
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
Desenvolvendo um Module Pool
http://slidepdf.com/reader/full/academia-sap-abapinterna
113/239
SE80 A transação SE80 é a mais adequada para se desenvolver um module pool, pois
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
possibilita acesso dinâmico a qualquer elemento do programa, bem como as estruturas GUI, includes, modules e telas. Os programas desenvolvidos pelos clientes – não SAP, devem iniciar com SAPMZ. Por exemplo, SAPMZABAP05. A tela é desenhada no Screen Painter Gráfico, que possui ferramentas de fácil utilização. A programação das telas é feita em uma área da própria tela, destinada a lógica de programação da mesma. As sub-rotinas chamadas a partir da lógica de programação das telas, recebem o nome de módulo – MODULE... Os módulos do PBO ficam armazenados em um include do próprio PBO. O mesmo acontecendo com os módulos do PAI.
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
No include TOP ficam definidas as variáveis globais, tabelas, estruturas. Bem como definições de includes e tables-control.
Nomódulos include O01 os dos ficarão PBOs. armazenados
No include I01 ficarão armazenados os módulos dos PAIs. O include F01 não definido aqui, ficaria responsável por armazenar os FORMs utilizados nos módulos, etc…
Tela – Lógica de Processamento
http://slidepdf.com/reader/full/academia-sap-abapinterna
116/239
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
PBO PAI
Module Pool – Mais conceitos
http://slidepdf.com/reader/full/academia-sap-abapinterna
117/239
STATUS GUI Onde pode ser customizada as barras de menu, deAcademia botõesSAP e teclas de função. 5/21/2018 Abap_Interna-slidepdf.com
TITLE GUI Onde é modificado os nomes/‟título das telas.
Screen Painter Gráfico
http://slidepdf.com/reader/full/academia-sap-abapinterna
118/239
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
Elementos disponíveis para a tela Propriedades de cada objeto
Área para desenho da tela
Subtela
http://slidepdf.com/reader/full/academia-sap-abapinterna
119/239
A Subtela é uma área na Tela onde podemos variar os campos conforme a necessidade, não deixando fixo os campos numa tela e não
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
havendo necessidade de replicar alguns campos e várias telas.
Podemos dividir a definição da Subtela em 2 Partes: • Tela de Origem: onde definimos uma área específica para
da Subtela.
chamada
• Subtela: Tela onde serão definidos os campos da Subtela.
Subtela
http://slidepdf.com/reader/full/academia-sap-abapinterna
120/239
Tela
5/21/2018
de Origem
AcademiaSAPAbap_Interna-slidepdf.com
Na criação da Tela em que será feita a referência à Subtela, criamos uma área específica para esta Subtela. Área para Subtela
Botão para Criar a Área para Subtela
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. Onde: SUB1 – Seria o nome da área definida para a Subtela (como na PBO) Quando este comando é executado, a PAI desta subtela é executada, com todas as rotinas definidas nela. A Subtela não tem PF-STATUS definido, utiliza-se as definições da Tela de Origem, de onde está sendo executada a Subtela.
Table Control
http://slidepdf.com/reader/full/academia-sap-abapinterna
123/239
Definição
5/21/2018
da Table Control
AcademiaSAPAbap_Interna-slidepdf.com
Opção para Criar Table Control
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
Os campos devem ser incluídos dentro da Table Control. Se for utilizado a opção de busca de campos do Banco de Dados ( ), é incluído automaticamente o campo de Entrada de Dados e o cabeçalho do Campo.
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
Campo Texto
Pode-se também incluir os campos de Entrada e Saída de informações na Table 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 5/21/2018
da Table Control
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 Define se a Table Controle terá Título Define se a Table Control terá Linhas Verticais e Horizontais separando os Campos Define se as Linhas e Colunas terão marcador, e se serão Simples ou Múltiplas
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 estiverem sendo exibidas na tela, tendo os campos conteúdo ou não. Dentro deste Looping (tanto na PBO como na PAI) podemos incluir quantos MODULE´s forem necessários. Lembrando que estes MODULE´s serão executados para todas as linhas da Table Control que estiverem sendo exibidas na tela, como explicado acima.
Table Control
http://slidepdf.com/reader/full/academia-sap-abapinterna
128/239
Definições
5/21/2018
de Código
AcademiaSAPAbap_Interna-slidepdf.com
Sugere-se que estas informações da Table Control sejam movimentadas para uma tabela interna, já que na PBO todos os dados da Tela são “limpos” para receberem os dados novamente. Então, o que normalmente utiliza-se é criar uma Tabela Interna com o mesmo formato da Table Control e na PAI é feito um MODULE onde se grava os dados da Tela na Tabela Interna. Na PBO, estes dados são movimentados novamente para a Table Control. 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
FIXED_COLS
INT
4
LINES
INT
4
TOP_LINE
INT
4
CURRENT_LIN E
INT
4
H_GRID
CHAR
1
Define qual será a primeira linha a ser apresentada na Table Control Dentro de um Looping da Table Control, esta informação diz qual linha está sendo processado no momento Grade Horizontal que separa campos
V_GRID
CHAR
1
Grade Vertical que separa campos
COLS INVISIBLE
Conteúdo Numérico indicando quantas colunas ficarão fixas Define quantas Linhas teremos na Table Control
(*1) que
‘X’ – significa
CHAR
1
Table Control
http://slidepdf.com/reader/full/academia-sap-abapinterna
o
campo
está
invisível ‘ ‘ – significa que o campo não está invisível
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.: TC1TOP_LINE = 5). Múltiplos
Table Control
• Para cada Table Control desenhada na Tela, existirá um Loop/Endloop
no PAI e PBO; • O Nome das Table Control´s devem ser diferentes entre elas;
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.
Onde „X‟ pode ser „0‟ para exibir e „1‟ para inibir. Caso seja necessário escolher um campo em específico, basta fazer o filtro através do campo SCREEN-NAME. Também podem ser utilizados os campos SCREEN-GROUP1, SCREEN-GROUP2, SCREEN-GROUP3 e SCREENGROUP4.
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, WASCREEN-GROUP3 e WA-SCREEN-GROUP4.
Exercício
http://slidepdf.com/reader/full/academia-sap-abapinterna
133/239
1. 5/21/2018
Exercício de Module Pool AcademiaSAPAbap_Interna-slidepdf.com
Utilizar o exercício 2 do tópico anterior (ALV). Será um programa com duas telas. A primeira se equivalerá a tela de seleção dos dados. Na segunda tela, acima, os campos que foram digitados na primeira – travados; abaixo, criar uma lista (table control), com os itens do documento solicitado. Para este programa, os campos da primeira tela – documento e ano, deverão ser obrigatórios.
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
• Como realizar uma carga através desta
técnica • Call Transaction Direct Input •
Transferindo Dados Externos
http://slidepdf.com/reader/full/academia-sap-abapinterna
136/239
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
Dados Externos
SAP INTERFACES
SAP (Host) BANCO SAP
X Dados Externos
CONSISTÊNCIAS
BANCO SAP
Nunca gravar na base direto
http://slidepdf.com/reader/full/academia-sap-abapinterna
137/239
Sistema Externo (Legado)
5/21/2018
X
AcademiaSAPAbap_Interna-slidepdf.com
Sessão de BATCH INPUT
Programa
Banco de Dados SAP
http://slidepdf.com/reader/full/academia-sap-abapinterna
138/239
Arquivo Sequêncial
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
Programa de Batch Input
Arquivo Fonte Função Batch Input
SAP R/3 Tabela 1
http://slidepdf.com/reader/full/academia-sap-abapinterna
Tabela 2
Tabela 3
139/239
5/21/2018
Arquivo Sequêncial
Telas
BANCO SAP
AcademiaSAPAbap_Interna-slidepdf.com
Sessão batch Input Transação 1
Tela 1
Transação 2
Tela 2
Tela 1
Tela 2
Log SAP R/3 Tabela 1
http://slidepdf.com/reader/full/academia-sap-abapinterna
Tabela 2
Tabela 3
140/239
Arquivo Sequêncial
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
Dicionário ABAP/4
READ DATASET
Estrutura BDCDATA
Programa de BATCH INPUT Tabela BDC
INCLUDE STRUCTURE
CALL FUNCTION
FILA
Seqüência para codificação http://slidepdf.com/reader/full/academia-sap-abapinterna
141/239
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
ABRIR SESSÃO DE BATCH INPUT
INSERIR DADOS DA TRANSAÇÃO
FECHAR SESSÃO DE BATCH INPUT
Codificação http://slidepdf.com/reader/full/academia-sap-abapinterna
142/239
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
OPEN DATASET OUTPUT For
INPUT APPENDING
OUTPUT - Se existir, apaga e cria um novo INPUT - Abre apenas para leitura (default) APPENDING - Se existir, adiciona, se não existir, cria.
http://slidepdf.com/reader/full/academia-sap-abapinterna
143/239
5/21/2018
OPEN DATASET AcademiaSAPAbap_Interna-slidepdf.com
For
In
OUTPUT INPUT APPENDING BINARY MODE TEXT MODE
BINARY MODE - Não interfere na leitura (default) TEXT MODE - Interfere na leitura (preenche com brancos, por ex.)
http://slidepdf.com/reader/full/academia-sap-abapinterna
144/239
TEXT MODE
BINARY MODE
5/21/2018
ABAP /4 A
AcademiaSAPAbap_Interna-slidepdf.com
B C B B C
A A
ABAP /4 A
A A
D
TRANSFER
B C B B C
D
TRANSFER
A B C A B A B C D
A B C
A B
READ DATASET ABAP /4 A
A B
B C B A C D
http://slidepdf.com/reader/full/academia-sap-abapinterna
A B C D READ DATASET
ABAP /4 A
A A
B C B B C
145/239
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
TRANSFER TO
READ DATASET INTO
CLOSE DATASET
DELETE DATASET
DEFINIR ESTRUTURAS
http://slidepdf.com/reader/full/academia-sap-abapinterna
146/239
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
ABRIR ARQUIVO Gravar
Ler
Preencher Dados
Ler os Dados
Transferir Estrutura
Processar os Dados
Mais dados ?
Fim do Arquivo?
Sim
Não
Sim
Não
FECHAR ARQUIVO
Funções Para Batch-Input http://slidepdf.com/reader/full/academia-sap-abapinterna
147/239
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna
148/239
5/21/2018
CALL FUNCTION BDC_OPEN_GROUP AcademiaSAPAbap_Interna-slidepdf.com
EXPORTING Client Group Holddate Keep User EXCEPTIONS
* * * *
= (Sy-Mandt) = = = Flag de Deleção = (Sy-Uname)
*
- Parâmetros Obrigatórios
*
- Default = ‘ ’ (apagar a sessão)
http://slidepdf.com/reader/full/academia-sap-abapinterna
149/239
5/21/2018
Programa
Tela
AcademiaSAPAbap_Interna-slidepdf.com
Início Nome do Campo Valor do Campo
X
X
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
Academia SAPAbap_Interna -slidepdf.com Sessão de Batch Input
5/21/2018
Síntese
Log Sessões presas
Análise
Mostra as pastas Mostra os dados da pasta Log / Estatísticas
Administração
Processar
Seleciona pastas para deleção Prende Sessão Libera Sessão Processa em “FOREGROUND” Mostra apenas os erros Processa em “BACKGROUND”
http://slidepdf.com/reader/full/academia-sap-abapinterna
158/239
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
Visível
Exibir Apenas Erro
Background
Mostra Passo a Passo a transação
Mostra apenas a transação quando der erro
Não mostra nada
http://slidepdf.com/reader/full/academia-sap-abapinterna
159/239
5/21/2018
Função
AcademiaSAPAbap_Interna-slidepdf.com
Sai da transação corrente, marca como incorreta Apaga o dado corrente na transação
OKCODE
/n / bdel
Sai da transação e marca como incorreta Muda de “Display Error...” para “Foreground”
/ bend / bda
Muda de “Foreground” para “Display Errors...”
/ bde
http://slidepdf.com/reader/full/academia-sap-abapinterna
160/239
5/21/2018
Processada Incorreto
Sessão processada corretamente AcademiaSAPAbap_Interna-slidepdf.com Sessão foi processada mas contém algum erro
To be Processed Sessão criada mas ainda não foi processada Criando
Sessão que está sendo gravada no momento
Processando
Sessão que está sendo Processada no momento
Background
Sessão que está sendo Processada em “Background”
Programa Modelo Batch-Input http://slidepdf.com/reader/full/academia-sap-abapinterna
161/239
5/21/2018
REPORT Z_TESTE .
AcademiaSAPAbap_Interna-slidepdf.com
DATA: BEGIN OF BDC_TAB OCCURS 0. INCLUDE STRUCTURE BDCDATA. DATA: END OF BDC_TAB. DATA: BEGIN OF REGISTRO OCCURS 0, ID LIKE SCUSTOM-ID, TEL LIKE SCUSTOM-TELEPHONE, END OF REGISTRO.
Programa Modelo Batch-Input - Continuação http://slidepdf.com/reader/full/academia-sap-abapinterna
162/239
SELECTION-SCREEN BEGIN OF BLOCK 1 WITH FRAME TITLE TEXT-001. 5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
PARAMETERS:
ARQUIVO(80) TYPE C DEFAULT 'H:\TEAMSAP\ABAP\batch.txt’ LOWER CASE. SELECTION-SCREEN END OF BLOCK 1. SELECTION-SCREEN BEGIN OF BLOCK 2 WITH FRAME TITLE TEXT-002. PARAMETERS:
TP_UNIX TP_WS
RADIOBUTTON GROUP TP, RADIOBUTTON GROUP TP DEFAULT 'X'.
SELECTION-SCREEN END OF BLOCK 2. DATA: NOME_ARQ LIKE RLGRAP-FILENAME.
Programa Modelo Batch-Input - Continuação http://slidepdf.com/reader/full/academia-sap-abapinterna
163/239
START-OF-SELECTION.
5/21/2018
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.
Programa Modelo Batch-Input - Continuação http://slidepdf.com/reader/full/academia-sap-abapinterna
164/239
FORM ABRE_ARQUIVO_UNIX. 5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
OPEN DATASET NOME_ARQ FOR INPUT IN TEXT MODE. DO. READ DATASET NOME_ARQ INTO REGISTRO. IF SY-SUBRC NE 0. EXIT. ENDIF. APPEND REGISTRO. ENDDO. ENDFORM.
Programa Modelo Batch-Input - Continuação http://slidepdf.com/reader/full/academia-sap-abapinterna
165/239
FORM ABRE_ARQUIVO_WINDOWS. 5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
CALL FUNCTION 'WS_UPLOAD' EXPORTING FILENAME FILETYPE TABLES DATA_TAB EXCEPTIONS CONVERSION_ERROR FILE_OPEN_ERROR FILE_READ_ERROR INVALID_TABLE_WIDTH INVALID_TYPE NO_BATCH
= NOME_ARQ = 'ASC' = REGISTRO = = = = = =
1 2 3 4 5 6
UNKNOWN_ERROR = 7 GUI_REFUSE_FILETRANSFER = 8 OTHERS
= 9.
Programa Modelo Batch-Input - Continuação http://slidepdf.com/reader/full/academia-sap-abapinterna
166/239
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
IF SY-SUBRC NE 0. WRITE: / 'Erro Abrindo arquivo do Windows ', NOME_ARQ. EXIT. ENDIF. ENDFORM.
“ABRE_ARQUIVO_WINDOWS
Programa Modelo Batch-Input - Continuação http://slidepdf.com/reader/full/academia-sap-abapinterna
FORM OPEN GROUP.
167/239
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
CALLEXPORTING FUNCTION 'BDC_OPEN_GROUP' CLIENT = SY-MANDT GROUP = ’SAP_2' KEEP = 'X' USER = SY-UNAME EXCEPTIONS CLIENT_INVALID DESTINATION_INVALID GROUP_INVALID GROUP_IS_LOCKED HOLDDATE_INVALID INTERNAL_ERROR QUEUE_ERROR RUNNING SYSTEM_LOCK_ERROR USER_INVALID OTHERS
= = = = = = = = = = =
1 2 3 4 5 6 7 8 9 10 11.
Programa Modelo Batch-Input - Continuação http://slidepdf.com/reader/full/academia-sap-abapinterna
168/239
IF SY-SUBRC NE 0.
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
WRITE: EXIT. 'Erro no Open Group'. ENDIF. ENDFORM.
“OPEN_GROUP
Programa Modelo Batch-Input - Continuação http://slidepdf.com/reader/full/academia-sap-abapinterna
169/239
FORM PREPARA_BDC. 5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
REFRESH BDC_TAB. LOOP AT REGISTRO. PERFORM PREENCHE_BDC USING: 'X' 'SAPMTFBA' ' ' 'SCUSTOM-ID' ' ' 'BDC_OKCODE' 'X' ' ' ' '
'SAPMTFBA' 'SCUSTOM-TELEPHONE' 'BDC_OKCODE'
'0100', REGISTRO-ID, '/00', '0200', REGISTRO-TEL, '=SAVE'.
PERFORM REFRESH INSERT. BDC_TAB. ENDLOOP. ENDFORM.
Programa Modelo Batch-Input - Continuação http://slidepdf.com/reader/full/academia-sap-abapinterna
FORM PREENCHE BDC USING DYNBEGIN NAME VALUE.
170/239
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
IFMOVE: DYNBEGIN 'X'. NAME= TO 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.
Programa Modelo Batch-Input - Continuação FORM INSERT.
http://slidepdf.com/reader/full/academia-sap-abapinterna
171/239
5/21/2018
CALL FUNCTION 'BDC_INSERT' AcademiaSAPAbap_Interna-slidepdf.com 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.
Programa Modelo Batch-Input - Continuação http://slidepdf.com/reader/full/academia-sap-abapinterna
FORM FECHA_GROUP.
172/239
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
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.
Formas de Inserir dados no SAP R/3 http://slidepdf.com/reader/full/academia-sap-abapinterna
Dados
173/239
Externos 5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
Programa ABAP/4 Batch Input
Call Transaction
Direct Input
SAP
Etapas para Inserir dados no SAP R/3 Definir Estruturas Antigas http://slidepdf.com/reader/full/academia-sap-abapinterna
174/239
5/21/2018
Importar Estruturas SAP AcademiaSAPAbap_Interna-slidepdf.com
Inicializar as Estruturas do SAP Ler os dados do Arquivo Verificar os dados Converter os dados Colocar dados na estrutura do SAP Transferir dados para arquivo sequêncial
Etapas para Inserir dados no SAP R/3 Analisar dados http://slidepdf.com/reader/full/academia-sap-abapinterna
175/239
5/21/2018
Criar estruturas SAP
AcademiaSAPAbap_Interna-slidepdf.com
Desenvolver programa de Transferência Criar Arquivo seqüencial Criar programa de Batch Input Criar sessão de Batch Input Analisar resultados Avaliar os Erros
Batch-Input X Call Transaction http://slidepdf.com/reader/full/academia-sap-abapinterna
176/239
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
http://slidepdf.com/reader/full/academia-sap-abapinterna
177/239
Call Transaction 5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
USING MODE UPDATE MESSAGES INTO
Modo de Visualização A - Visualiza Tudo 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
http://slidepdf.com/reader/full/academia-sap-abapinterna
SY-SUBRC
178/239
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
0 -- Erro Sucesso 1000 - Erro no Processamento (Ver campos de Sistema)
Campos de Sistema SY-MSGID SY-MSGTY SY-MSGNO
- Classe da Mensagem - Tipo da Mensagem (E, I, W, S, A) - Número da Mensagem
SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4
1 - Variável de Mensagem 2 - Variável de Mensagem 3 - Variável de Mensagem 4
http://slidepdf.com/reader/full/academia-sap-abapinterna
179/239
Batch Input
5/21/2018
Call Transaction
AcademiaSAPAbap_Interna-slidepdf.com
Código de Retorno
Não
Sim
Log de Erro
Sim
Não
2 Fases
Imediato
Processamento
Programa Modelo Call Transaction http://slidepdf.com/reader/full/academia-sap-abapinterna
180/239
5/21/2018
REPORT Z_TESTE .
AcademiaSAPAbap_Interna-slidepdf.com
DATA: BEGIN OF BDC_TAB OCCURS 0. INCLUDE STRUCTURE BDCDATA. DATA: END OF BDC_TAB. DATA: BEGIN OF MSG_TAB OCCURS 0. INCLUDE STRUCTURE BDCMSGCOLL. DATA: END OF MSG_TAB. DATA: BEGIN OF REGISTRO OCCURS 0, ID LIKE SCUSTOM-ID, TEL LIKE SCUSTOM-TELEPHONE, END OF REGISTRO.
Pág. 01
Programa Modelo Call Transaction – Continuação http://slidepdf.com/reader/full/academia-sap-abapinterna
181/239
SELECTION-SCREEN BEGIN OF BLOCK 1 WITH FRAME TITLE TEXT-001. AcademiaSAPAbap_Interna-slidepdf.com PARAMETERS: ARQUIVO(80) TYPE C DEFAULT 'H:\TEAMSAP\ABAP\batch.txt' LOWER CASE. SELECTION-SCREEN END OF BLOCK 1.
5/21/2018
SELECTION-SCREEN BEGIN OF BLOCK 2 WITH FRAME TITLE TEXT-002. PARAMETERS:
TP_UNIX
RADIOBUTTON GROUP TP,
TP_WS
RADIOBUTTON GROUP TP DEFAULT 'X'.
SELECTION-SCREEN END OF BLOCK 2. SELECTION-SCREEN BEGIN OF BLOCK 3 PARAMETERS: ALL RADIOBUTTON ERRO RADIOBUTTON NADA RADIOBUTTON
WITH FRAME TITLE TEXT-003. GROUP MODE DEFAULT 'X', GROUP MODE, GROUP MODE.
SELECTION-SCREEN END OF BLOCK 3. Pág. 02
Programa Modelo Call Transaction – Continuação http://slidepdf.com/reader/full/academia-sap-abapinterna
182/239
AcademiaSAPAbap_Interna-slidepdf.com DATA: NOME_ARQ LIKE RLGRAP-FILENAME, MODO(1) TYPE C, CONT TYPE I VALUE 0, C_TEXTO(255) TYPE C.
5/21/2018
START-OF-SELECTION.
NOME_ARQ = ARQUIVO. IF ALL = 'X'. MODO = 'A'. ELSEIF ERRO = 'X'. MODO = 'E'. ELSE. MODO = 'N'. ENDIF.
Pág. 03
Programa Modelo Call Transaction – Continuação http://slidepdf.com/reader/full/academia-sap-abapinterna
183/239
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
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
Programa Modelo Call Transaction – Continuação http://slidepdf.com/reader/full/academia-sap-abapinterna
184/239
FORM PREPARA_BDC. 5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com REFRESH BDC_TAB. LOOP AT REGISTRO. PERFORM PREENCHE_BDC USING: 'X' 'SAPMTFBA' '0100', ' ' 'SCUSTOM-ID' REGISTRO-ID, ' ' 'BDC_OKCODE' '/00',
'X' 'SAPMTFBA' ' ' 'SCUSTOM-TELEPHONE' ' ' 'BDC_OKCODE' WRITE: / REGISTRO-ID, REGISTRO-TEL. PERFORM INSERT. REFRESH BDC_TAB. ENDLOOP. ENDFORM.
'0200', REGISTRO-TEL, '=SAVE'.
Pág. 05
Programa Modelo Call Transaction – Continuação http://slidepdf.com/reader/full/academia-sap-abapinterna
185/239
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
FORM PREENCHE_BDC USING DYNBEGIN NAME VALUE. IF DYNBEGIN = 'X'. MOVE: NAME TO BDC_TAB-PROGRAM, VALUE TO BDC_TAB-DYNPRO, 'X' TO BDC_TAB-DYNBEGIN.
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
Programa Modelo Call Transaction – Continuação http://slidepdf.com/reader/full/academia-sap-abapinterna
186/239
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
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
Programa Modelo Call Transaction – Continuação http://slidepdf.com/reader/full/academia-sap-abapinterna
187/239
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
FORM ABRE_ARQUIVO_UNIX. OPEN DATASET NOME_ARQ FOR INPUT IN TEXT MODE. DO. READ DATASET NOME_ARQ INTO REGISTRO. IF SY-SUBRC NE 0. EXIT. ENDIF. APPEND REGISTRO. ENDDO. ENDFORM.
Pág. 08
Programa Modelo Call Transaction – Continuação http://slidepdf.com/reader/full/academia-sap-abapinterna
FORM ABRE ARQUIVO WINDOWS.
188/239
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
CALL FUNCTION 'WS_UPLOAD' EXPORTING FILENAME FILETYPE TABLES DATA_TAB
EXCEPTIONS CONVERSION_ERROR FILE_OPEN_ERROR FILE_READ_ERROR INVALID_TABLE_WIDTH INVALID_TYPE NO_BATCH
= NOME_ARQ = 'ASC' = REGISTRO = = = = = =
1 2 3 4 5 6
UNKNOWN_ERROR = 7 GUI_REFUSE_FILETRANSFER = 8 OTHERS = 9. Pág. 09
Programa Modelo Call Transaction – Continuação http://slidepdf.com/reader/full/academia-sap-abapinterna
189/239
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
IF SY-SUBRC NE 0. WRITE: / 'Erro Abrindo arquivo do Windows ', NOME_ARQ.
EXIT. ENDIF. ENDFORM.
Pág.10
Programa Modelo Call Transaction – Continuação http://slidepdf.com/reader/full/academia-sap-abapinterna
190/239
FORM MENSAGENS.
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
LOOP AT MSG_TAB. SELECT SINGLE TEXT INTO C_TEXTO FROM T100 WHERE SPRSL = 'PT' AND ARBGB = MSG_TAB-MSGID
AND MSGNR = MSG_TAB-MSGNR. IF MSG_TAB-MSGV1 NE SPACE. REPLACE '&1' WITH MSG_TAB-MSGV1 INTO C_TEXTO. IF SY-SUBRC NE 0. REPLACE '&' WITH MSG_TAB-MSGV1 INTO C_TEXTO. ENDIF. CONDENSE C_TEXTO. ENDIF.
Pág.11
Programa Modelo Call Transaction – Continuação http://slidepdf.com/reader/full/academia-sap-abapinterna
191/239
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
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
Programa Modelo Call Transaction – Continuação http://slidepdf.com/reader/full/academia-sap-abapinterna
192/239
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
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
Programa Modelo Call Transaction – Continuação http://slidepdf.com/reader/full/academia-sap-abapinterna
193/239
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
FORM PREPARA_PASTA_ERRO. IF CONT = 1. PERFORM ABRE_BDC.
PERFORM INSERT_BDC. ELSE. PERFORM INSERT_BDC. ENDIF. ENDFORM.
Pág.14
Programa Modelo Call Transaction – Continuação FORM ABRE_BDC.
http://slidepdf.com/reader/full/academia-sap-abapinterna
194/239
CALL FUNCTION BDC_OPEN_GROUP EXPORTING 5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com CLIENT = SY-MANDT GROUP = 'ERROS' KEEP = 'X' USER = SY-UNAME EXCEPTIONS CLIENT_INVALID = 1
DESTINATION_INVALID GROUP_INVALID GROUP_IS_LOCKED HOLDDATE_INVALID INTERNAL_ERROR QUEUE_ERROR RUNNING SYSTEM_LOCK_ERROR USER_INVALID OTHERS
= = = = = = = = = =
2 3 4 5 6 7 8 9 10 11. Pág.15
Programa Modelo Call Transaction – Continuação FORM ABRE_BDC.
http://slidepdf.com/reader/full/academia-sap-abapinterna
195/239
CALL FUNCTION BDC_OPEN_GROUP EXPORTING 5/21/2018 AcademiaSAPAbap_Interna-slidepdf.com CLIENT = SY-MANDT GROUP = 'ERROS' KEEP = 'X' USER = SY-UNAME EXCEPTIONS CLIENT_INVALID = 1
DESTINATION_INVALID GROUP_INVALID GROUP_IS_LOCKED HOLDDATE_INVALID INTERNAL_ERROR QUEUE_ERROR RUNNING SYSTEM_LOCK_ERROR USER_INVALID OTHERS
= = = = = = = = = =
2 3 4 5 6 7 8 9 10 11. Pág.15
Programa Modelo Call Transaction – Continuação http://slidepdf.com/reader/full/academia-sap-abapinterna
196/239
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
IF SY-SUBRC NE 0. WRITE: 'Erro no Open Group'. EXIT. ENDIF. ENDFORM.
Pág.16
Programa Modelo Call Transaction – Continuação FORM INSERT_BDC. CALL FUNCTION 'BDC INSERT'
http://slidepdf.com/reader/full/academia-sap-abapinterna
197/239
5/21/2018
EXPORTING TCODE TABLES DYNPROTAB EXCEPTIONS INTERNAL_ERROR NOT_OPEN
AcademiaSAPAbap_Interna-slidepdf.com
= 'TFBA' = BDC_TAB = 1 = 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
Programa Modelo Call Transaction – Continuação http://slidepdf.com/reader/full/academia-sap-abapinterna
198/239
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
FORM FECHA_BDC. CALL FUNCTION 'BDC_CLOSE_GROUP' EXCEPTIONS NOT_OPEN = 1 QUEUE_ERROR = 2
OTHERS
= 3.
IF SY-SUBRC NE 0. WRITE: 'Erro no Open Group'. EXIT. ENDIF. ENDFORM.
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
cadastro de fornecedores: Transação FK01.
b) Permitir como parâmetro que o usuário informe se o arquivo vem do servidor ou local.
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 formulários mais elaborados. A opção pela utilização desta ferramenta se dá pela necessidade de alguns recursos gráficos que não podem ser obtidos através de código de ABAP comum. Com o SAPSCRIP é possível criar um formulário com logotipo, letras formatadas de vários tamanhos, criação de grades, código de barras, etc. Apesar de ser uma ferramenta poderosa na geração de formulários, o SAPscript ainda apresenta uma série de limitações, o seu verificador de erros e debug não possuem as mesmas características do editor ABAP. Caso, seja digitado um comando com grafia errada ou sem sentido lógico dentro de um formulário, não será detectado pelo mesmo e poderá não ser executado, passando as vezes despercebido pelo programador. Para que o SAPSCRIPT funcione é necessário que um trabalho em conjunto com um programa ABAP que deverá conter algumas funções de chamada e controle do SCRIPT. AcademiaSAPAbap_Interna-slidepdf.com
Sapscript Deficiências da Ferramenta
http://slidepdf.com/reader/full/academia-sap-abapinterna
202/239
5/21/2018
-Debug -Checar erro de sintaxe
AcademiaSAPAbap_Interna-slidepdf.com
-Client Dependent -Criar logotipos (.tif objeto não transportável)
Sapscript http://slidepdf.com/reader/full/academia-sap-abapinterna
JANELA DE PÁGINAS
203/239
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
PÁGINAS
Partes de um Formulário JANELAS E ELEMENTOS DE TEXTO
CARACTERES DE COMANDO
P PARÁGRAFOS
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
5/21/2018
Informações gerais do formulário, título, a classe de desenvolvimento e os idiomas. Parágrafos AcademiaSAPAbap_Interna-slidepdf.com
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
Elementos de Texto
207/239
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
Janelas
208/239
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 é permitido um tipo de janela MAIN por formulário, e é a única janela obrigatória em uma 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
EXISTENTES
http://slidepdf.com/reader/full/academia-sap-abapinterna
209/239
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
NO SAPSCRIPT = EQ (Igual)
NO SAPSCRIPT CN (Contains Not only) CO (Contains Only)
< LT
(Menor que)
CA (Contains Any)
> GT
(Maior que)
NA (Contains Not Any) 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
DATE:
Data
210/239
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
DAY: NAME_OF_DAY:
Dia Nome do Dia
MONTH:
Mês
NAME_OF_MOUNTH: Nome do Mês YEAR:
Ano
TIME: HOURS:
Hora Total Hora Atual
MINUTES:
Minuto Atual
SECONDS:
Segundo Atual
PAGE:
Número da Pagina
NEXTPAGE: SPACE:
Número da nova página Espaço
ULINE:
Linha Horizontal
VLINE:
Linha Vertical
Sapscript COMANDOS ADDRESS
http://slidepdf.com/reader/full/academia-sap-abapinterna
PRINT-CONTROL
211/239
5/21/2018
BOTTOM BOX
AcademiaSAPAbap_Interna-slidepdf.com
PROTECT RESET
CASE
SET COUNTRY
DEFINE
SET DATE MASK
HEX IF
SET SIGN SET TIME MASK
INCLUDE
SIZE
NEW-PAGE
STYLE
NEW-WINDOW PERFORM
SUMMING 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
CALL FUNCTION “START_FORM”
CALL FUNCTION “ WRITE_FORM”
CALL FUNCTION “END_FORM”
CALL FUNCTION “ CLOSE_FORM”
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: - Seleção e Processamento dos Dados - Abertura - 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 - TDIMMED (Saída Imediata)
215/239
5/21/2018
call function 'OPEN_FORM ' exporting * APPLICATION * ARCHIVE_INDEX * ARCHIVE_PARAMS DEVICE * DIALOG FORM LANGUAGE * OPTIONS * importing * language * new_archive_params * result exceptions canceled device form options unclosed others
AcademiaSAPAbap_Interna-slidepdf.com
= = = = = = = =
'TX' ' ' ' ' 'PRINTER' ou 'SCREEN' 'X' ou '' (Tela de características de impressão) 'Z_SCRIPT' (Nome do Formulário) 'P' (Idioma do Formulário) ITCPO (Estrutura com todas as características)
= = = = 1 = 2 = = =
3 4 5 6.
Sapscript INICIALIZAÇÃO
http://slidepdf.com/reader/full/academia-sap-abapinterna
216/239
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
Permite geração de vários um novoaformulário 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 e o idioma (LANGUAGE) do formulário.
217/239
Para que se possa utilizar um comando START_FORM é obrigatório que um comando de OPEN_FORM tenha sido Academia SAP Abap_Interna-slidepdf.com executado. Caso isso não seja feito um erro de sintaxe irá aparecer.
5/21/2018
call function 'START_FORM ' exporting * ARCHIVE_INDEX = ' FORM = ' LANGUAGE = ' * STARTPAGE = ' * * *
PROGRAM importing language exceptions form format unended unopened unused others
' ' ' '
= ' ' = = = = = =
1 2 3 4 5
= 6.
Sapscript ENVIO DADOS AO FORMULÁRIO
http://slidepdf.com/reader/full/academia-sap-abapinterna
218/239
Depois da seleção e processamento dos dados, envia-se os dados ao formulário.
5/21/2018
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 A impressão dos dados nas janelas na maioria das vezes é feita simultaneamente com a seleção dos dados, ou seja, a
219/239
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: call function ' WRITE_FORM ' exporting ELEMENT = ' ' * FUNCTION = 'SET' * TYPE = 'BODY' WINDOW = 'MAIN' * importing * pending_lines = exceptions element = 1 function = 2 type = 3 unopened = 4 unstarted = 5 window others
6 = 7.
Sapscript – WRITE_FORM Dois parâmetros são os mais importantes:
Element – Determina qual Data Element será utilizado dentro do Sapscript http://slidepdf.com/reader/full/academia-sap-abapinterna Window – Janela na qual os dados devem ser impressos.
220/239
Academia SAP Abap_Interna -slidepdf.com Neste ficado evidente a diferenciação entre tipos de janela MAIN e demais Para asponto janelas tipo MAIN, cada comando deosescrita (write_form) significa umajanelas. nova linha no formulário e o valor a ser impresso é o valor que o campo armazena no momento do comando de impressão. Por exemplo, digamos que o campo MARA-MATNR tenha o valor „1234‟ e que um comando de impressão seja dado para a janela MAIN que irá imprimir este campo. Logo em seguida uma nova seleção da tabela MARA é feita e o campo MATNR agora vale „5678‟. Se uma nova impressão na janela MAIN for executada o resultado será o seguinte:
5/21/2018
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,
call function 'WRITE_FORM' exporting ELEMENT = 'FRASE1' http://slidepdf.com/reader/full/academia-sap-abapinterna * FUNCTION = 'SET'
221/239
* 5/21/2018
TYPE
= 'BODY'
WINDOW
= 'HEADER‘ Academia SAPAbap_Interna-slidepdf.com
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. call function 'END_FORM' importing
http://slidepdf.com/reader/full/academia-sap-abapinterna
223/239
5/21/2018
RESULT exceptions unopened others
= = 1 = 2.
AcademiaSAPAbap_Interna-slidepdf.com
CLOSE FORM - Serve para fechar um formulário. call function 'CLOSE_FORM' importing RESULT = ' ' Tables * OTFDATA = exceptions unopened = 1 others = 2.
Sapscript INFORMAÇÕES ÚTEIS Transação
SE71
http://slidepdf.com/reader/full/academia-sap-abapinterna
Tabela
TTXFP
224/239
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## Crie um formulário com o layout :
http://slidepdf.com/reader/full/academia-sap-abapinterna
Nome do programa : Z_STK##_SCRIPT 225/239
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
Para imprimir o logotipo, use o programa RSTXLDMC que converte imagens. Os dados devem ser extraídos das tabelas : EKPO (Item do pedido). EKKO (Cabeçalho do pedido). LFA1 (Dados Mestre de Fornecedor)
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 incluir códigos próprios, por alguma necessidade específica.
http://slidepdf.com/reader/full/academia-sap-abapinterna
227/239
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
Tipos de exit : User-Exit Field-Exit Menu-Exit A chamada de uma exit no código Abap, se assemelha a chamada de um módulo de funções qualquer. Sintase : call customer-function ‘…’.
Exits User-Exit A criação de user-exit acontece pela transação CMOD/SMOD. O primeiro passo é saber se existe uma user-exit, que se possa alterar.
http://slidepdf.com/reader/full/academia-sap-abapinterna
228/239
5/21/2018
Isto pode ser feito, procurando-se no código Abap uma chamada de um módulo de função customizá-vel… AcademiaSAPAbap_Interna-slidepdf.com
call customer-function…
ou, através da execução de um programa Abap que varre outros programas buscando user-exits…
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 projetos. SAPAbap_Interna-slidepdf.com
5/21/2018
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. Módulo de função que guarda o include da aexit. codificada exit.Onde é
Exits – CMOD / User-Exit http://slidepdf.com/reader/full/academia-sap-abapinterna
232/239
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
O inlcude onde fica codificado as customizações da exit.
Exits Field-Exit O Field-Exit se diferencia do user-exit, pois não existe uma entrada no meio do código fonte Abap onde este é customizado. Ele existe atrelado a um
http://slidepdf.com/reader/full/academia-sap-abapinterna
233/239
5/21/2018
campo/elemento de dados, além de ser necessário amarra-ló a um programa e uma tela, específicos. AcademiaSAPAbap_Interna-slidepdf.com
Para se criar um Field-Exit, ou mesmo, saber se o elemento possibilita uma exit, utilizamos a execução do programa RSMODPRF. Onde este, lista todos os Field-Exits já criados e nos dá a opção de criação de outros.
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 e seus status.
AcademiaSAPAbap_Interna-slidepdf.com
Quando se opta pela criação de novo field-exit, ele solicita qual o campo que se deseja customizar.
– Field-Exit Exits 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 b) número da tela
http://slidepdf.com/reader/full/academia-sap-abapinterna
236/239
5/21/2018
c) nome do elemento de dados do campoAcademiaSAPAbap_Interna-slidepdf.com Transação CMOD 1) Rodar o programa RSMODPRF, opção criar. 2) Fornecer nome do elemento de dados Na tela de Function Builder: 3) Escolher um grupo de funcões(customizado) de acordo com o módulo 4) o novo de de função (somente tela Adminstracao) e voltar (tela do passo 2) 5) Gravar Flegar linha domódulo elemento dados 6) No menu: Atribuir prog/tela 7) Fornecer nome do programa e tela standard 8) Flegar linha do elemento de dados 9) No menu: Processar MF 10) Codificar ABAP 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.
Algumas Transações Úteis
SE09 – Organização de transporte (Utilizado para controlar as request‟s). SE11 – Dicionário ABAP (Utilizado para criar, alterar e apagar domínios, elemento de dados, campos, tabelas, estrutura). SE16 – Data browser http://slidepdf.com/reader/full/academia-sap-abapinterna SE37 – Módulos de função ABAP. (Utilizado para criar, alterar e apagar funções (Módulos de funções).
237/239
– SE38 para criar, alterar e apagar programas ABAP). SE39 – Editor Editor de de programas tela divididaABAP. (UtilizadaAcademia SAPAbap_Interna-slidepdf.com SE71 – Formulário SAPscript. (Utilizado para criar, alterar e apadar formulários de SapScript). SE80 – Repository Browser. (Utilizado para criar, alterar e apagar, Programas (On-Line ou Module Pool), grupos de função, etc.). SE91 – Atualização de mensagem SE92 – Mensagens do Log do sistema SE93 – Códigos de transação (Utilizado para criar, alterar e apagar transações).
5/21/2018
SM04 e derruba sessões(Utilizado para desbloquear programas, transações, etc.). SM12 – Exibir e eliminar bloqueios – Visualiza SM35 – Moritorar pasta de Batch-Input. SM37 – Monitora os jobs colocados para processamento ST05 – Possui várias funções, a mais utilizada e para realizar o trace SQL.(Mostra todos acessos realizados no BD). ST22 – ABAP análise dump. SHDB – Registrador transação - batch input. (Utilizado para criar o “mapeamento” para posteriormente criar os programas para gerar a pasta de batch input.). – Definição CMOD Gerenciamento de projetos (Exits) SMOD – de ampliações (Exits) SMARTFORMS – Formulário SmartForm
Click to edit Master title style http://slidepdf.com/reader/full/academia-sap-abapinterna
238/239
5/21/2018
AcademiaSAPAbap_Interna-slidepdf.com
F I M
http://slidepdf.com/reader/full/academia-sap-abapinterna
239/239
View more...
Comments