Escolar Documentos
Profissional Documentos
Cultura Documentos
4
Treinamento - Módulo 1
Conteúdo
Arquitetura SAP
Linguagem ABAP
Dicionário de Dados
ABAP OO
Relatório ALV
Ampliações
Depuração
Arquitetura SAP
Produtos
Componentes
SAP GUI
Customizing e WorkBench
Transporte
Usuário e Perfis
Transação e Programa
Arquitetura SAP
Produtos
SAP NW AS
• ABAP
• Java
Arquitetura SAP
SAP Business Suite 7
Business Suite
• SRM
• CRM
• SCM
• PLM
• ERP
S/4Hana
Módulos
Arquitetura SAP
Enhancement Package e Support Package
• Versão do Produto
• Enhancement Package
• Support Package
‣ Notas
‣ Melhorias
‣ Correções
Arquitetura SAP
Ambiente 3Corações
Customizing
• Configurações
• SPRO
WorkBench
• Objetos
• Programas
Client
• Dependência
Arquitetura SAP
Transporte de Request
• WorkBench
100 300
Cópia entre mandantes 400
• Customizing 200 400
Arquitetura SAP
Usuários e Perfis
Acesso
Desenvolvedor
Perfis e Permissões
Internacionalização
Arquitetura SAP
Transações e Programas
Transações
Desenvolvimento
Negócio
Transações de negócio dos diversos módulos
Arquitetura SAP
Prática
Configurar acessos
Verificar versão do sistema
Navegar no Menu SAP (Desenvolvimento)
Linguagem ABAP
Transações e Navegação
Lista de Utilização
Sintaxe
Primeiro Programa
Tipo e Variáveis
Fluxo de Programa
…
Linguagem ABAP
SAP GUI
• SE38 (t-code)
Eclipse - ADT
Programa ABAP
report ycurso_teste1.
write ‘Hello World!’.
Linguagem ABAP
Primeiro Programa
Nome do programa
- SAP e Cliente
Pacote
- Produtivo
- Temporário
Linguagem ABAP
Características e Execução
Características
Verificação
Pretty Printer
Ativação
Execução
Linguagem ABAP
Prática
Classic List
• Write
Output Class
• cl_demo_output (=>write( ) , =>display( ) )
• cl_demo_text ( exemplo DEMO_SHOW_TEXT )
ABAP List Viewer *
• Função
• Classe
Linguagem ABAP
Tipos, Variáveis e Constantes
Tipo primitivos
Variáveis
Declarar tipos
Constantes
Numéricos (i, f, p)
Data
Hora
Texto (c, String e n)
Literais
Texto
Numérico
String Expression
Símbolo de Texto
Linguagem ABAP
Sintaxe
Programa ABAP
report ycurso_teste2.
* calcula soma
data: var1 type i.
var1 = 2 + 2.
write:/ ‘Soma: ’, var1. “ Soma: 4
data(var2) = 2 + 2.
write:/ ‘Soma: ’, var2. “ Soma: 4
cl_demo_output=>write( 'Soma' ).
cl_demo_output=>display( var2 ).
Linguagem ABAP
Prática
Atribuição
=
Numéricos
operand1 [{+|-|*|/|DIV|MOD|**} operand2
Funções numéricas
abs, trunc, acos, sin, sqrt, round, …
String / String Expression ( 'texto' / |texto {1+1}| )
&&, concatenate, strlen, (length), +position, …
Data
YYYYMMDD, operação matemática, manipulação com cadeia de caracteres
Hora
HHMMSS operação matemática, manipulação com cadeia de caracteres
Linguagem ABAP
Prática
Variável SY
Retorno de execução
sy-subrc
Dados do sistema
sy-mandt
sy-sysid
sy-opsys
Informações do usuário
sy-uname
Constantes
sy-abcde
Linguagem ABAP
Prática
Sintaxe
message <tipo><número>. “ usando: report … message-id <id>.
message <tipo><número>(<classe_de_mensagem>).
message ‘<texto>' type '<tipo>' id ‘<classe_de_mensagem>’ number <número>.
message … with [v1] [v2] [v3] [v4].
Linguagem ABAP
Mensagem
Tipos
- Information
- Warning
- Error
- Sucess
- Abend
- X Dump
Classe de mensagem
Variáveis de ambiente
sy-msgid
sy-msgty
sy-msgno
Linguagem ABAP
Prática
Criar programa….
Verificar a diferença entre cada tipo de mensagem e qual a reação de cada uma na execução
do programa.
Linguagem ABAP
Tipos de Programas
Report
Module
Include
Pool de Subrotinas
* Grupo de Funções
* Pool de Classe e Interfaces
Linguagem ABAP
Fluxo de Programa Report
REPORT …
INITIALIZATION.
LOAD-PROGRAM.
AT SELECTION-SCREEN.
AT SELECTION-SCREEN OUTPUT.
AT SELECTION-SCREEN ON <objeto>.
START-OF-SELECTION.
Obsoletos:
END-OF-SELECTION.
GET …
Linguagem ABAP
Tela de seleção
Parameters
PARAM TYPE type [DECIMALS dec] [OBLIGATORY]
AS CHECKBOX
RADIOBUTTON GROUP group
Selection Options
SELEC FOR type
[OBLIGATORY] [NO INTERVALS]
[DEFAULT …]
Selection Screen
BEGIN OF BLOCK block [WITH FRAME [TITLE title]]
...
SELECTION-SCREEN END OF BLOCK block.
Linguagem ABAP
Prática
Regras…
Linguagem ABAP
Estrutura de Controle - Condição
IF <cond>.
ELSEIF <cond>.
ELSE.
ENDIF.
CASE <var>.
WHEN <valor1> [OR <varlo2> […]]
WHEN OTHERS.
ENDCASE.
Linguagem ABAP
Estrutura de Controle - Operação Lógicas
Regras…
Linguagem ABAP
Estrutura de Controle - Condição
In-Line
Condicional para atribuição
COND
COND type( WHEN <cond> THEN res1 [WHEN <cond> THEN res2]… [ELSE resN] ).
DATA(r1) = COND string( WHEN x = 1 THEN 'A' WHEN x = 2 THEN 'B' ELSE 'X' ).
SWITCH
SWITCH type( oper WHEN val1 THEN res1 [WHEN val2 THEN res2]… [ELSE resN] ).
DATA(r2) = SWITCH string( x WHEN 1 THEN 'A' WHEN 2 THEN 'B' ELSE 'X' ).
Linguagem ABAP
Prática
DO [n TIMES].
ENDDO.
WHILE <cond>.
ENDWHILE.
Lista de utilização
Linguagem ABAP
Prática
Subrotina
FORM <sub_rotina> [TABLES <…>] [USING <…>] [CHANGING <…>] […].
ENDFORM.
Função
Function Builder (transação SE37)
Classe
Classe Builder (Transação SE24)
Linguagem ABAP
Modularização - SubRotina
Definir
FORM fazer_acao USING VALUE(p_um) TYPE i VALUE(p_dois) TYPE i
CHANGING p_texto TYPE string.
p_texto = |Numero { p_um + p_dois }|.
ENDFORM.
Executar
PERFORM fazer_acao USING p_num1 p_num2 CHANGING text.
Linguagem ABAP
Prática - Modularização SubRotina
Function Builder
Grupo de Funções
Parametros
Importing
Exporting
Changing
Tables
Estrutura / WorkArea
TYPES: BEGIN OF <ty_estrutura>,
<campo1> TYPE <tipo>,
<campoN> TYPE <tipo>,
END OF <ty_estrutura>.
DATA: <wa_workarea> TYPE <ty_estrutura>.
Tabela Intera
DATA: <it_tabela> TYPE TABLE OF <estrutura>.
Linguagem ABAP
Operação com Tabelas Internas
Incluir
INSERT
APPEND
COLLECT
Modificar
MODIFY
Excluir
DELETE
Linguagem ABAP
Prática - Tabelas Internas
Buscar
READ TABLE <it_tabela> WITH KEY <campo> = <valor>.
Percorrer as linhas
LOOP AT <tabela>.
[…]
ENDLOOP.
Ordenação
SORT <tabela> BY <campo> [ASC|DESC].
Linguagem ABAP
Prática - Tabelas Internas
Criar programa…
Linguagem ABAP
Expressões de Tabela e Funções de Tabela
Linhas
LINES( <table> )
Existe linha
LINE_EXIST( <table_expression> )
Indice da Linha
LINE_INDEX( <table_expression> )
Linguagem ABAP
Prática - Tabelas Internas
Criar programa…
Transações e Navegação
Lista de Utilização
Sintaxe
Primeiro Programa
Tipo e Variáveis
Fluxo de Programa
…
Dicionário de Dados
Categorias de Dados
Domínio
Tipo de Dados
Elementos de Dados
Domínio
Tipo de Dados
Dicionário de Dados
Prática - Data Dictionary
Tipo de Dados
Campo Campo … Campo
Elementos de Dados
Domínio
Elemento Elemento Tipo de
de Dados de Dados Dados
Tipo de Dados
Estrutura Tipo de
Domínio
Dados
Campos (Elementos, Tipo de Dados)
Tabela Tipo de
Dados
Campos (Elementos, Tipo de Dados)
Dicionário de Dados
Prática - Data Dictionary
Tabela
Nível
Grupo de Função
Autorização
Dicionário de Dados
Prática - Data Dictionary
Open SQL
Native SQL
Evolução
Selecionar linhas
SELECT <campos>
FROM <tabela_ddic>
INTO TABLE <@tabela_interna>
WHERE <campo> <operador> <@variavel> […]
Dicionário de Dados
Acessando Tabelas do Dicionário de Dados
Comando
SELECT <campos> FROM <tabela_ddic> INTO TABLE <@tabela_interna> WHERE <…>.
SELECT SINGLE <campos> FROM <tabela_ddic> INTO <@work_area> WHERE <…>.
Laço de repetição
SELECT <campos> FROM <tabela_ddic> INTO <@work_area> WHERE <…>.
[…]
ENDSELECT.
Dicionário de Dados
Prática - Data Dictionary
Criar programa usando Parameters e Selection screen para a seleção de dados nas tabelas
criadas.
ABAP OO
Transações
Classes
Atributos
Métodos
Usando classes
ABAP OO
Transações
Function Builder
SE24
Editor
Teste
ABAP OO
Classes
Tipo de Classes
Características
Visibilidade
Public
Protected
Private
ABAP OO
Atributos
Tipo de atributos
Constante
Instância
Estático
Visibilidade
ABAP OO
Métodos
Tipo
Instância
Estático
Visibilidade
Parametros
Importing
Exporting
Changing
Returning
Transfere Valor
Opcional
ABAP OO
Prática - Criando Classes
Declarar
Instanciar
Acessar atributos
Chamar métodos
ABAP OO
Prática - Data Dictionary
Classic List
Output Class
ALV
Report
Classic List
Classes
cl_demo_output=>display()
cl_text_output
Report
ABAP List Viewer - Função
Tabela Dados
Catálogo de Campos
Tabela Interna com definição dos campos exibíveis
REUSE_ALV_FIELDCATALOG_MERGE
Exibição do ALV
REUSE_ALV_GRID_DISPLAY
Exemplos
T-Code SE83
Programas BCALV*
Report
ABAP List Viewer - Classe
Tabela Dados
Catálogo de Campos
Factory
Columns
Classes
CL_SALV_TABLE
CL_GUI_ALV_GRID
Exemplos
Programas SALV_DEMO*
BCALV_GRID_DEMO
Report
Prática
Break Point
Comando de Depuração
Usando depurador
Depuração
Break Point
Comando de depuração
BREAK-POINT
BREAK <user>
Depuração
Comando
Entrada de comando
/H
Todo programa ABAP é depuravel
Depuração de Sistema
Chamadas não depurareis
Depuração
Usando o Depurador
Fluxo de programa
Área de dados
Pilha de Execução
Pontos de parada
Depuração
Prática
Ativar depuração condicional via código e usar depurador para consultar e modificar variáveis