Академический Документы
Профессиональный Документы
Культура Документы
marcelo.azevedo38@yahoo.com.br
ABAP
Captulo 1 Introduo
Captulo 2 Dicionrio de dados
Captulo 3 Introduo linguagem ABAP
Captulo 4 Conceito de Procedures, funo e includes
Captulo 5 SQL
Captulo 6 Programas On-line
Captulo 7 Listas e ALV
Captulo 8 Conceito de Batch-input e Bapis
Captulo 9 Debug
Captulo 1
INTRODUO
Captulo 1 - introduo
Conceito do SAP
O que so transaes no SAP
Instncia X Client ( Dependent/Independent)
Conceito de classe de desenvolvimento
Controlando e administrando transportes - Request
Worbench Organizer
Conceito do SAP
O que ?
um conjunto integrado de aplicativos projetado para tratar o processamento
de dados em grandes corporaes. Ele foi desenvolvido na Alemanha pela
empresa denominada SAP {uma sigla de Systems Applications and Products for
data processing - aplicativos e produtos de sistemas para processamento de
dados).
Request
Transaes importantes :
DICIONRIO DE DADOS
Captulo 2 Dicionrio de dados
Modelo Relacional
Um banco de dados relacional a implementao fsica do modelo
entidade-relacionamento e traduz concretamente o que o modelo
conceitual procura representar. Consiste em uma coleo de tabelas cada
uma das quais associada a um nome nico e que possuem
relacionamentos entre si. Tabelas representam fisicamente as entidades.
Tipos de Dados
I Campos numricos sem decimais, contadores, etc.
C Campo alfa, mais utilizado para conter textos, pode conter nmeros at
efetuar clculos, mas no usual.
Tipo de dados do dicionrio ABAP
Domnios
O domnio contm os tipo de dado e comprimento do campo. Podem
conter os valores vlidos para o campo, atravs de valores fixos entrados
no domnio ou por uma tabela de valores (Value Table).
Tabela de Valores
Contm os valores que o domnio pode assumir.
Elementos de dados.
Os elementos de dados agrupam as definies de tipo, tamanho e
descrio dos campos em um s objeto. til quando os campos se
repetem em diversas tabelas.
Criao de tabelas transparentes,
estruturas e view.
Tabela Transparente
Estruturas
Vises
So tabelas virtuais que resultam da unio de tabelas transparentes e que
contm uma certa quantidade de informaes.
Criao de ndices primrios e secundrios
ndices
Um ndice pode ser considerado como uma cpia da tabela que foi
reduzida a um certo nmero de campos. Esta cpia est sempre
ordenada. A ordenao faz com que o acessos ao registros se torne
mais rpido, o ndice tambm contm, um ponteiro para o registro
real na tabela transparente, para que os campos que no esto no
ndice tambm possam ser lidos.
Gerar mdulo.
Captulo 3
Transao SE38.
- Compilar e ativar.
- Eliminar,copiar e renomear.
- Gravar o fonte.
- Imprimir fonte,localizar e localizar prxima.
- Modificar, ativar desativar, outro objeto e ampliar.
- Compilar, ativar,testar e ref.cruzada.
- Lista de Objetos,janela de navegao, tela completa e ajuda.
- Ponto de parada na sesso, ponto de parada externo,
modelo e identao.
- Recuar, recuperar,localizar,localizar prxima,
upload e download.
Como funciona a transao
SE38 Editor ABAP
- Controle de verso
Como funciona a transao
SE38 Editor ABAP
Como funciona a transao
SE38 Editor ABAP
- Tipos de editor
Blocos de eventos
Eventos:
Evento um Tag que identifica uma seo de cdigo. A seo de cdigo
Associada com um evento comea com um nome de evento e termina
quando o prximo encontrado.
Locais:
Essas declaraes so apenas vistas dentro da mesma sub-rotuna.
So utilizadas no caso de processos individuais dentro do programa.
Globais:
Essas declaraes podem vistas de qualquer ponto no programa,
seja dentro de um evento ou sub-rotina. boa a prtica de
colocar definies globais na parte superior do programa.
Declarao de variveis, tabelas internas,
ranges e constants
- Tipos de dados:
Declarao de variveis, tabelas internas,
ranges e constants
Variveis
DATA: varname(n) TYPE _.
DATA: varname LIKE varname2 VALUE valor_default.
Exemplo:
DATA: w_contador TYPE I value 100.
DATA: w_data LIKE sy-datum VALUE 20040106.
Declarao de variveis, tabelas internas,
ranges e constants
Constantes
CONSTANTS: constname(n) TYPE _.
CONSTANTS: constname(n) LIKE varname2 VALUE valor_default.
Exemplo:
CONSTANTS: c_contador TYPE I value 100.
CONSTANTS: c_data LIKE sy-datum VALUE 20040106.
Declarao de variveis, tabelas internas,
ranges e constants
Ranges
Ranges: rangename FOR _.
Exemplo:
Ranges: r_vstel FOR vbap-vstel.
Declarao de variveis, tabelas internas,
ranges e constants
Tabelas Transparentes:
TABLES: tabbanco, tab1, tab2, tab3,...tabn.
Exemplo:
TABLES: LFA1, EKKO.
Declarao de variveis, tabelas internas,
ranges e constants
Deve-se usar tabelas internas sempre que precisar usar registros de tabelas
transparentes dentro do programa.
Declarao de variveis, tabelas internas,
ranges e constants
Tabelas Internas:
DATA: t_tab1 TYPE tabinttipo OF estrutname WITH HEADER LINE,
t_tab2 LIKE tabinttipo OF tab1 WITH HEADER LINE.
Exemplo:
DATA: T_TAB1 TYPE STANDARD TABLE OF TP_BANCO WITH HEADER LINE,
T_TAB2 TYPE STANDARD TABLE OF LFA1 WITH HEADER LINE.
Declarao de variveis, tabelas internas,
ranges e constants
Estruturas Exemplo
Registros Exemplo
Parmetros de entrada :
Essa instruo muito parecida com a instruo data, mas quando voc executa o
programa, o sistema exiber os parmetros como campos de entrada em uma tela de
seleo antes que o programa realmente comece a ser executado. O usurio pode digitar
ou modificar seus valores e ento pressionar o boto execute, para iniciar o
processamento.
SELECTION-SCREEN:
BEGIN OF BLOCK bl_name WITH FRAME
TITLE title_text.
END OF BLOCK bl_name.
BEGIN OF LINE.
END OF LINE.
COMMENT pos(dim) text
POSITION pos.
Definio de parmetros de entrada
Comando/Funo Descrio
ADD Adiciona um valor a outro campo
numrico
APPEND Gravar em tabela interna
APPEND LINES Gravar linhas em tabela interna
APPEND SORTED BY Usado para classificar linhas em
ordem durante o append
AT END OF Identifica o ultimo registro de uma
sequncia (quebra)
AT EXIT-COMMAND Usado para definir a execuo de
mdulos com botes
AT FIRST Identifica o primeiro registro da
tabela percorrida
AT LAST Identifica o ultimo registro da tabela
percorrida
Principais comandos ABAP
Comando/Funo Descrio
AT LINE-SELECTION Evento para abrir uma segunda tela
dentro de um relatrio
AT NEW Identifica o primeiro registro de uma
sequncia
AT SELECTION-SCREEN ON Analisar o resultado de uma varivel
AT USER-COMMAND Evento para inicializar os botes
criados
AUTHORITY-CHECK OBJECT Para verificar a autorizao para
determinado objeto
AS TEXT Usado para classificar caracteres
acentuados
ASSIGN f1 TO <f> Atribuio dinmica
AS SYMBOL / AS ICON / AS LINE Comandos usados para formatao
em relatrios
Principais comandos ABAP
Comando/Funo Descrio
CALL TRANSACTION Comando usado para chamar
transaes
CASE... WHEN... ENDCASE Comando para tomadas de deciso
CHECK Substitui o comando IF
CLEAR Limpar o contedo de uma varivel
CLOSE DATASET Fecha um arquivo externo
CLOSE_FORM Funo usada para fechar um
formulrio sapscript
COLLECT Organiza a tabela com todas as
descries esquerda totalizando os
campos numricos
COMMIT WORK Efetiva as alteraes no banco
Principais comandos ABAP
Comando/Funo Descrio
CONCATENATE Agrupa vrios campos em um s
CONSTANTS Criar constantes para serem usadas
em todo o programa
CONTINUE Volta ao incio de um loop aps a
verificao de uma condio
CONDENSE Remove os espaos em branco em
um texto
DATA Criar tabelas internas e variveis
DELETE Deleta um registro de uma tabela
interna
DESCRIBE TABLE Determina o nmero de linhas de
uma tabela interna
DO... ENDDO Usado para criar um loop
Principais comandos ABAP
Comando/Funo Descrio
GUI_DOWNLOAD Funo para download de arquivo
END_FORM Funo usada para finalizar um
formulrio sapscript
END-OF-PAGE Evento executado ao finalizar a
impresso de uma pgina
END-OF-SELECTION Evento executado logo aps o
evento START-OF-SELECTION
EXIT Comando usado para sair de um
loop ou sub-rotina
FORM Indica o incio de uma sub-rotina
FORMAT COLOR Usado para formatar a sada do
comando write(COR)
FREE Libera espao de memria utilizado
por uma tabela interna
Principais comandos ABAP
Comando/Funo Descrio
HIDE Usado para definir campos para uma
segunda janela em relatrios
ID... FIELD... Objetos de autorizao
IF... ELSE... ENDIF Comando de deciso
IF NOT... IS INITIAL Verifica se uma varivel est vazia
INITIALIZATION Primeiro evento executado dentro de
um programa
INSERT Insere o contedo de um registro em
uma tabela transparente
INSERT LINES Insere mais de uma linha em uma
tabela transparente
Principais comandos ABAP
Comando/Funo Descrio
LEAVE PROGRAM Comando encerra um programa
LEAVE TO SCREEN Comando que direciona a ida de uma
tela para outra
LINE-COUNT Limita o nmero de linhas por pgina
LINE-SIZE Limita o nmero de colunas por
pgina
LOOP AT Loop no contedo de uma tabela
interna
MESSAGE Usado para mostrar mensagens na
tela
MESSAGE-ID Usado para definir uma classe de
mensagem
MODIFY Modifica o contedo de uma linha da
tabela interna
Principais comandos ABAP
Comando/Funo Descrio
MODULE Usado para a criao de sub-rotinas
em programas on-line
MOVE Move o contedo de uma varivel
para outra
MOVE-CORRESPONDING Move apenas campos com o mesmo
nome
NEW-PAGE Fora quebra de pgina em um
relatrio
NO STANDARD PAGE HEADING Ignora a impresso do cabealho
standard do SAP em relatrios
OPEN DATASET Para abrir arquivo externo(somente
para UNIX)
OPEN_FORM Funo para abrir formulrio
sapscript
Principais comandos ABAP
Comando/Funo Descrio
PARAMETERS Criar parmetros de seleo
PERFORM Usado para chamar sub-rotinas
READ DATASET... INTO Usado para ler e importar dados de
um arquivo externo (UNIX)
READ TABLE Ler registro em tabela interna
REFRESH Limpa todo o contedo de uma
tabela interna
REPLACE Substitui um texto dentro de outro
texto
REPORT Incio de um relatrio(programa)
SEARCH Procura um texto dentro de outro
texto
SELECT Usado para selecionar dados em
uma tabela
Principais comandos ABAP
Comando/Funo Descrio
SELECT-OPTIONS Declarar parmetros de seleo com
opes
SELECTION-SCREEN Criar BOX na tela
SET PF-STATUS Comando usado para definir menu a
ser usado
SET TITLEBAR Criar ttulos em janelas
SKIP Saltar linha
SORT Ordenar o contedo de uma tabela
interna
SPLIT... AT... INTO Comando usado para separar
contedo de uma varivel e outra(s)
START_FORM Funo para iniciar formulrio
sapscript
START-OF-SELECTION Evento para marcar incio da rotina
principal do programa
Principais comandos ABAP
Comando/Funo Descrio
STRLEN Retorna o tamanho de um texto
SUBTRACT Subtrai um valor numrico de outro
valor
SUM Totaliza um campo numrico
SY-BATCH Indica execuo em background
SY-DATUM Retorna a data atual do sistema
SY-LANGU Retorna o idioma de logon
SY-LINNO Linha corrente em um relatrio
SY-LISEL Linha selecionada em relatrios
interativos
SY-MANDT Retorna o mandante
SY-PAGNO Faz paginao automtica(num.
Pagina)
Principais comandos ABAP
Comando/Funo Descrio
SY-SUBRC Retorna o resultado de uma
execuo(OK ou No OK)
SY-TABIX Linha corrente de uma tabela interna
SY-UCOMM Retorna o nome de um boto
SY-UNAME Retorna o usurio logado
SY-UZEIT Retorna a hora atual do sistema
SY-VLINE Serve para fazer o fechamento de
bordas de um relatrio
SY-ULINE Imprime uma linha com n posies
SY-CPROG Retorna o nome do programa
principal
SY-TCODE Retorna o cdigo da transao
TABLES Usado para declarar tabelas
Principais comandos ABAP
Comando/Funo Descrio
TOP-OF-PAGE Evento para incio de cabealho em
um relatrio
TRANSFER... TO... Usado para ler e gravar em arquivo
externo (UNIX)
TYPES Define estrutura para tabelas
internas
UPDATE Atualiza o contedo de uma tabela
transparente
WHILE... ENDWHILE Cria laos de execuo
WRITE Sada em relatrio
WRITE_FORM Funo para escrever no formulrio
sapscript
WS_UPLOAD Funo para fazer upload de um
arquivo externo
Executando um programa report
Captulo 4
Procedures
Exemplo :
DATA sflight_tab TYPE STANDARD TABLE OF sflight.
Exemplo :
DATA: a1 TYPE string value 'a1',
a2 TYPE string value 'a2',
a3 TYPE string value 'a3',
a4 TYPE string value 'a4'.
- Submit :
O comando submit utilizado para chamar de dentro de um programa outro
programa com os parmetros desejados.
Funes :
-Existem vrias funes STANDARD que podem ser utilizadas nos programas
customizados (Pesquisa na SE37).
Criando um report chamando procedures
e funes
- Transao SE37
Criar uma funo z_busca_price. Essa funo dever buscar o campo price
da tabela SFLIGHT, utilizando os parmetros abaixo :
Parmetros de importao :
carrid companhia area(obrigatrio).
connid cdigo de conexo do vo(obrigatrio).
fldate data do vo(No obrigatrio).
Parmetros de exportao :
Price preo do vo.
Excees :
Error_parameters = 1
Criando um report chamando procedures
e funes
- Includes:
SQL
Captulo 5 SQL
Comandos SQL.
Performance.
Comandos SQL
Comandos SQL
Comandos SQL
Comandos SQL
IF SY-SUBRC EQ 0.
WRITE: / SY-DBCNT, 'Connections'.
SKIP.
LOOP AT ITAB INTO WA.
WRITE: / WA-CARRID,
WA-CONNID,
WA-CITYFROM,
WA-CITYTO.
ENDLOOP.
ENDIF.
Comandos SQL
SELECT * FROM <table> WHERE <table field> BETWEEN <field1> and <field2>.
Ex.: field1 = 100 e field2 = 500. Pega inclusive 100 e 500. Voc trabalha
com o range.
Comandos SQL
Obs.: Classifica a tabela interna numa rea auxiliar, sem afetar a tabela
original. Evitar o uso de sorts dentro de um select. Consome mais tempo
que descarregar os dados em uma tabela interna e classific-los.
Performance
Falta de ndices;
Select em tabelas com alto nmero de registros utilizando clusula
where baseada em tela de seleo onde o preenchimento no
obrigatrio;
Definio funcional falha;
Grandes tabelas do sistema: BKPF, BSEG, EKKO, EKPO, VBAK, VBAB,
MKPF, MSEG, J_1BNFDOC, J_1BNFLIN, EKET, EKBZ.
Performance
Comandos Select
Use o comando FREE para liberar espao em internal tables; Sempre usar os
comandos Clear / Refresh aps o fim de um LOOP;
Evite comparaes num SELECT com campos numricos versus campos
alfanumricos; o sistema perde tempo para converso;
Testar SY-SUBRC aps cada acesso ao banco de dados;
O comando MOVE-CORRESPONDING bom para tabelas pequenas. interessante
que a tabela interna contenha os campos na sequncia em que sero
movimentados;
Ao utilizar o comando CASE, codificar sempre a clusula WHEN OTHERS;
Performance
Evitar lgicas do tipo IF not CPOA = CPOB. mais claro codificar IF CPOA ne CPOB.
Campos chave devem ser sempre os primeiros campos da tabela. Assim, todos os
demais campos sero comprimidos;
Performance
PROGRAMAS ON-LINE
Captulo 6 Programas On-line
No pool de mdulo voc encontrar apenas os includes que por sua vez
contm os mdulos e sub-rotinas que formam o programa. Cada mdulo
est associado a uma tela, e a tela possui sua parte grfica que pode ser
desenhada usando a transao SE80(screen painter).
Voc usa o Screen Paiter e o Menu Painter para criar e desenhar telas e
programas de telas.
Voc define o processamento lgico no module pool do programa ABAP/4
.
Estruturas de dados so definidas no Dicionrio ABAP/4. Voc pode
acessar essas estruturas do programa ABAP/4 e quando define campos de
tela.
O processador de dilogo controla o fluxo do seus programa dilogo.
Como criar um programa ON-LINE
Transao SE80
Captulo 7
LISTAS E ALV
Captulo 7 Listas e ALV
Formatao de relatrios
Principais comandos para uma lista
Formatao do relatrio ALV
Criando uma Lista e um relatrio ALV
Formatao de relatrios
O que o ALV
O Abap List Viewer(ALV) uma ferramenta que padroniza e simplifica o
uso de listas e relatrios no sistema R/3 tanto para o desenvolvedor tanto
para o usurio que interage com o relatrio.
O ALV atravs de suas funes e estruturas torna o desenvolvimento mais
simples na medida que economiza significativas linhas de cdigo como por
exemplo no tratamento de quebras,totais,subtotais,cores e outras
vantagens que veremos a seguir.
Principais estruturas de montagem do relatrio ALV
slis_layout_alv
slis_sortinfo_alv
slis_t_fieldcat_alv
Formatao de relatrios
SLIS_LAYOUT_ALV
Criar estrutura do tipo SLIS_LAYOUT_ALV
Ex:s_layout2 type slis_layout_alv
Campos fundamentais da SLIS_LAYOUT_ALV
SLIS_SORTINFO_ALV
SLIS_T_FIELDCAT_ALV
Criar Workarea do tipo SLIS_T_FIELDCAT_ALV.
Ex: data: s_fieldcat type slis_t_fieldcat_alv with header line.
Campos fundamentais da SLIS_T_FIELDCAT_ALV
row_pos sada na linha desejada.
col_pos - Coluna a qual desejamos exibir o campo da I_tab de sada
Fieldname Nome do campo da tabela interna(importante que esse nome de campo da
tabela referida em ref_tabname)
Tabname Tabela interna onde se encontra campo.
Key Definio de campo chave na sada do relatrio com formatao especfica do
padro do R3.
Checkbox Precisamos informar apenas em ALV Hierarquico na i_tab de itens
Just Justificar e podemos passar Right( R ) Left(L) ou Center( C )
Lzero Omitir zeros em impresso de relatrio
fix_column Flag ou no para manter campo fixado na tela
do_sum total do campo especificado
no_out Exibio obrigatria(O) No exibir em sada default(X)
Formatao do relatrio ALV
type-pools slis
Batch Input
Executar Sesses:
SM35 (transao utilizada para rodar o batch input)
Gerar automat.programa:
SHDB (grava a transao para rodar automaticamente, tal como carga de dados - parecido
com macro)
Processamento:
Cancelar sesso:/N
Apagar sesso: /BDEL
Cancelar e marcar incorreta: /NEND
Alterar p/ mdulo de dilogo: /BDA
Alterar p/ visuallizao de Erro: /BDE
Alterar p/ execuo em background: /BDN
Qual a funo de um Batch-input
Call Transaction
O call transaction mais rpido que o batch input. Tambm usado para carga de
dados.
Sintaxe:
CALL TRANSACTION <tcod>
[AND SKIP FIRST SCREEN] (pula a 1 tela da transao) [USING <itab>]
[MODE <display_mode>]
[UPDATE <update_mode>]
MESSAGES INTO <imsg > (mensagem standard)
O que uma BAPI
Pode ser executada por uma aplicao externa. Exemplo: VB, Delphi, VBA e outras.
Transao SHDB
Captulo 9
DEBUG
Captulo 9 Debug
Executar: Boto ou F6 :
Use essa opo para executar o programa linha a linha. Todos os comandos da
linha corrente so processados em um nico passo. Se estiver posicionado em
uma linha que chama uma subrotina, o Debugger processa a subrotina em
modo oculto e retorna para a linha seguinte a chamada da subrotina. Isso
permite que pule nos comandos dentro da subrotina.
No entra nas subrotinas
Principais comandos para utilizar um Debug