Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Azevedo
marcelo.azevedo38@yahoo.co
m.br
ABAP
Curso de Introduo Linguagem
De Programao ABAP
CONTEDO PROGRAMTICO
CONTEDO PROGRAMTICO
Captulo
Captulo
Captulo
Captulo
Captulo
Captulo
Captulo
Captulo
Captulo
1
2
3
4
5
6
7
8
9
Introduo
Dicionrio de dados
Introduo linguagem ABAP
Conceito de Procedures, funo e includes
SQL
Programas On-line
Listas e ALV
Conceito de Batch-input e Bapis
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).
Dentro do SAP , h um ambiente de tempo de execuo e um
conjunto integrado de programas aplicativos escritos em 4GL
do SAP - ABAP/4. Esses programas aplicativos foram projetados
para atender ao processamento de dados necessrios para o
negcio.
Conceito do SAP
Instncia X Client
(Dependent/Independent)
Client definido como sendo uma unidade independente do
R/3. Em termos comerciais,organizacionais e tcnicos.Isso
significa que possuem sua prpria configurao e dados
cadastrais (master data).
Instncia definida como um ambiente do R/3 que agrupa um
ou mais clients, onde se executa um determinado trabalho.
Objetos Client Dependent: Dependentes do mandante, por
exemplo formulrios de Sapscript,
Relatrios de Report
Writer/Painter, ABAP QUERY(se criada na rea Standard),
parametrizao/customizaes, contedo de tabelas etc.
Objetos Client Independent: Independentes de mandante, por
exemplo programas Z*, todos os programas standards, todas as
funes, estrutura de tabelas etc.
Request
Guarda as modificaes ou customizaes feitas e que se
deseja transportar para um determinado ambiente. Uma
vez liberada a ordem de transporte mantm as alteraes
feitas
at
aquele
momento.
Novas
alteraes/customizaes no mesmo lugar iro solicitar
nova ordem de transporte.
Ex : AF1K900109
AF1 Instncia
K Gerao de arquivo de controle (Interno SAP)
900109 - Sequncial
Worbench Organizer
Esta transao pemite controlar as ordens (requests) geradas
atravs das
alteraes feitas nos objetos ABAP e customizaes funcionais.
Ordem Local : Alteraes no transportveis para objetos ABAP/4
so
gravadas em ordens locais.
Ordens Transportveis : Alteraes transportveis para objetos do
ABAP/4.
Isto permite que as ordens possam ser transportadas entre clients.
Transaes importantes :
SE09/SE10
independent e
client
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.
Cada tabela possui uma estrutura similar quilo que pretende
representar, isto , tabelas so formadas de linhas que por sua vez so
formadas por colunas. Colunas representam fisicamente os atributos.
A cada linha da tabela chamaremos de ocorrncia e o conjunto de
ocorrncias pode ou no estar relacionado com ocorrncias de outras
tabelas.
Tipos de Dados
I Campos numricos sem decimais, contadores, etc.
P Campos numricos com decimais, quantidade e moeda.
C Campo alfa, mais utilizado para conter textos, pode conter
nmeros at efetuar clculos, mas no usual.
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.
ndices - Para melhorar a performance nos acessos a tabela, podese criar ndices secundrios para ela.
Tabela Transparente
Existe uma tabela fsica no banco de dados para uma
tabela transparente. Os nomes da tabela fsica e da
definio lgica de tabela so coincidentes no ABAP
Dictionary.
Todos os dados empresariais e dados de aplicao so
arquivados em tabelas transparentes.
Estruturas
So como tabelas que no armazenam dados, definem um
conjunto de campos e geralmente so utilizadas para
definir os dados na interface de pools de mdulos e telas,
assim como para atribuir o tipo aos parmetros de mdulos
de funo. Uma estrutura diferentemente de uma tabela
no tem uma tabela de banco de dados associada a ela.
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.
O ndice primrio separado dos ndices secundrios. O
ndice primrio constitudo dos campos indicados como
campo-chave na criao da tabela.
Gerar mdulo.
Captulo 3
INTRODUO LINGUAGEM
ABAP
Transao SE38.
Permite a visualizao, edio e execuo de programas ABAP,
bem
como duplicao de um programa e deleo do mesmo, entre
outros
recursos.
- 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.
- Controle de verso
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.
INITIALIZATION Evento acionado antes da tela de seleo ser
acionada.
Seria uma preparao para executar o programa.
Ex: inicializao de variveis de tela com condio.
Blocos de eventos
Blocos de eventos
Blocos de eventos
Variveis
DATA: varname(n) TYPE _.
DATA: varname
LIKE varname2 VALUE valor_default.
Exemplo:
DATA: w_contador TYPE I value 100.
DATA: w_data
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.
Ranges
Ranges: rangename FOR _.
Exemplo:
Ranges: r_vstel FOR vbap-vstel.
Tabelas Transparentes:
TABLES: tabbanco, tab1, tab2, tab3,...tabn.
Exemplo:
TABLES: LFA1,
EKKO.
Tabelas Internas:
Exemplo:
Estruturas
Exemplo
TYPES: BEGIN OF TP_BANCO
numero
TYPE N,
agencia TYPE N,
nome(30) TYPE C,
END OF TP_BANCO.
Registros
Exemplo
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.
Comando/Funo
ADD
APPEND
Descrio
Adiciona um valor a outro campo
numrico
Gravar em tabela interna
APPEND LINES
APPEND SORTED BY
AT END OF
AT EXIT-COMMAND
AT FIRST
AT LAST
Comando/Funo
Descrio
AT LINE-SELECTION
AT NEW
AT SELECTION-SCREEN ON
AT USER-COMMAND
AUTHORITY-CHECK OBJECT
AS TEXT
ASSIGN f1 TO <f>
AS SYMBOL / AS ICON / AS LINE
Atribuio dinmica
Comandos usados para formatao
em relatrios
Comando/Funo
CALL TRANSACTION
CASE... WHEN... ENDCASE
Descrio
Comando usado para chamar
transaes
Comando para tomadas de deciso
CHECK
Substitui o comando IF
CLEAR
CLOSE DATASET
CLOSE_FORM
COLLECT
COMMIT WORK
Comando/Funo
CONCATENATE
CONSTANTS
Descrio
Agrupa vrios campos em um s
Criar constantes para serem usadas
em todo o programa
CONTINUE
CONDENSE
DATA
DELETE
DESCRIBE TABLE
DO... ENDDO
Comando/Funo
Descrio
GUI_DOWNLOAD
END_FORM
END-OF-PAGE
END-OF-SELECTION
EXIT
FORM
FORMAT COLOR
FREE
Comando/Funo
HIDE
ID... FIELD...
Descrio
Usado para definir campos para uma
segunda janela em relatrios
Objetos de autorizao
Comando de deciso
IF NOT... IS INITIAL
INITIALIZATION
INSERT
INSERT LINES
Comando/Funo
Descrio
LEAVE PROGRAM
LEAVE TO SCREEN
LINE-COUNT
LINE-SIZE
LOOP AT
MESSAGE
MESSAGE-ID
MODIFY
Comando/Funo
MODULE
MOVE
MOVE-CORRESPONDING
NEW-PAGE
NO STANDARD PAGE HEADING
OPEN DATASET
OPEN_FORM
Descrio
Usado para a criao de sub-rotinas
em programas on-line
Move o contedo de uma varivel
para outra
Move apenas campos com o mesmo
nome
Fora quebra de pgina em um
relatrio
Ignora a impresso do cabealho
standard do SAP em relatrios
Para abrir arquivo externo(somente
para UNIX)
Funo para abrir formulrio
sapscript
Comando/Funo
PARAMETERS
PERFORM
READ DATASET... INTO
READ TABLE
Descrio
Criar parmetros de seleo
Usado para chamar sub-rotinas
Usado para ler e importar dados de
um arquivo externo (UNIX)
Ler registro em tabela interna
REFRESH
REPLACE
REPORT
Incio de um relatrio(programa)
SEARCH
SELECT
Comando/Funo
Descrio
SELECT-OPTIONS
SELECTION-SCREEN
SET PF-STATUS
SET TITLEBAR
SKIP
Saltar linha
SORT
START_FORM
START-OF-SELECTION
Comando/Funo
STRLEN
SUBTRACT
SUM
Descrio
Retorna o tamanho de um texto
Subtrai um valor numrico de outro
valor
Totaliza um campo numrico
SY-BATCH
SY-DATUM
SY-LANGU
SY-LINNO
SY-LISEL
SY-MANDT
Retorna o mandante
SY-PAGNO
Comando/Funo
SY-SUBRC
SY-TABIX
Descrio
Retorna o resultado de uma
execuo(OK ou No OK)
Linha corrente de uma tabela interna
SY-UCOMM
SY-UNAME
SY-UZEIT
SY-VLINE
SY-ULINE
SY-CPROG
SY-TCODE
TABLES
Comando/Funo
Descrio
TOP-OF-PAGE
TRANSFER... TO...
TYPES
UPDATE
WHILE... ENDWHILE
WRITE
WRITE_FORM
WS_UPLOAD
Captulo 4
CONCEITO DE PROCEDURES,
FUNO E INCLUDES
Procedures
O bloco de processamento de um subprograma comea com 'FORM
<subroutine name> <interface definition>' e termina com ' ... ENDFORM. ' .
possvel utilizar a declarao DATA em uma rotina FORM para declarar
os dados locais. Se um objeto local tem o mesmo nome de um objeto
global, o global ser invisvel dentro do subprograma.
Exemplo :
Captulo 5
SQL
Captulo 5 SQL
Comandos SQL.
Performance.
Comandos SQL
Comandos SQL
Comandos SQL
Comandos SQL
DATA:
BEGIN
OF
WA,
CARRID
TYPE SPFLI-CARRID,
CONNID
TYPE
SPFLI-CONNID,
CITYFROM TYPE SPFLI-CITYFROM,
CITYTO
TYPE SPFLI-CITYTO,
END OF WA,
ITAB
LIKE
SORTED
TABLE
OF
WA
WITH
NON-UNIQUE
KEY
CITYFROM CITYTO.
SELECT CARRID CONNID CITYFROM CITYTO
INTO
CORRESPONDING FIELDS OF TABLE
ITAB
FROM
SPFLI.
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
Comandos SQL
Comandos SQL
Comandos SQL
Comandos SQL
Comandos SQL
Comandos SQL
Comandos SQL
Performance
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
Visando garantir a performance e evitar problemas
futuros, cuidado com os comandos empregados. Existem
alguns tipos de select mais eficientes que outros.
Analise a aplicao que ser desenvolvida e faa a
melhor escolha.
Performance
Performance
Performance
Performance
Performance
Captulo 6
PROGRAMAS ON-LINE
as
subrotinas
chamadas
pelos
mdulos
Criando um ON-LINE
Transao SE80
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
=
=
=
=
=
= c_repid
'SET_PF_STATUS'
'USER_COMMAND'
s_layout2
it_inf_campos2
t_qbr_campos[]
= it_lote2.
SLIS_LAYOUT_ALV
Criar estrutura do tipo SLIS_LAYOUT_ALV
Ex:s_layout2 type slis_layout_alv
Campos fundamentais da SLIS_LAYOUT_ALV
colwidth_optimize - otimizao de largura de colunas.Passar flag ou
no.
zebra - mudana de cores de cada sada de linha do Relatrio na
mesma estrutura. Passar flag ou no.
box_fieldname Exibio de checkbox em cada item da(s) I_TABs de
exibio do relatrio.Passar o nome real do(s) campo(s) checkbox.
window_titlebar Ttulo na barra de ttulo
SLIS_SORTINFO_ALV
Criar estrutura do tipo SLIS_SORTINFO_ALV
Ex.: sortinfo type slis_sortinfo_alv
Campos fundamentais da 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)
type-pools slis
Seleo de dados e tratamento de informaes em tabela
de sada
Slis_t_fieldcat_alv para Formatao dos campos
Slis_layout_alv para Layout
Slis_sortinfo_alv para ordenao
Captulo 8
CONCEITO DE BATCH-INPUT E
BAPIS
Batch Input
O Batch Input uma tcnica standard para a transferncia de
grandes volumes de dados para o Sistema R/3. O fluxo transacional
simulado ( SHDB) e os dados so transferidos como se entrassem
de forma online. A vantagem que so executados todas as
verificaes relevantes garantindo uma entrada consistente dos
dados.
O processo de Batch Input dividido em duas fases:
Foreground;
Background;
Durante o processamento com display de erro;
Executar Sesses:
SM35
(transao utilizada para rodar o batch input)
Gerar automat.programa:
SHDB
(grava a transao para rodar automaticamente,
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
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)
Criar um mapeamento.
Transao SHDB
Captulo 9
DEBUG
Captulo 9 Debug
ou F5 :
ou F6 :
Retorno: Boto
ou F7:
ou F8: