Sei sulla pagina 1di 153

Marcelo Pereira de

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

ABAP/4 (Advanced Business Application Programming 4GL)


uma linguagem "orientada por eventos", "Top-Down, bem
estruturada e poderosa.

O que so transaes no SAP


Transao um cdigo alfanumrico de 20 caracteres,
utilizado para iniciar um processamento dentro do sistema
SAP. Todo e qualquer processo ou parte dele deve ser
executado dentro do sistema atravs de uma transao. A
customizao de ABAP/4, sempre utilizada para necessidade
de um GAP ( procedimentos operacionais que no constam no
SAP e que exigem adaptaes ), isso gera pelo menos uma
transao, de modo que o usurio possa executar esse
produto customizado de dentro do sistema.
Toda operao realizada atravs do menu do sistema,
tambm corresponde a uma transao. Um mtodo para
conhecermos o cdigo de uma transao, cujo caminho pelo
menu sabido, entrarmos na mesma, na tela inicial desta
transao e utilizarmos o menu SISTEMA STATUS, que
informa o programa, tela e transao executados.

O que so transaes no SAP

No desenvolvimento em ABAP/4, as principais transaes


so:
ABAP Editor (SE38) para escrita e edio de programas,
mais utilizado para desenvolvimentos de programas do tipo
executvel (Relatrios e Cargas).
ABAP Dictionary (SE11) para edio de objetos
relacionados com o banco de dados.
Menu Painter (SE41) para desenho de interfaces de
usurio (barra de menu).

O que so transaes no SAP

Screen Painter (SE51) para desenho de telas para


dilogo de usurio,
no utilizado para telas de seleo em report.
Function Builder(SE37) para programao de mdulos
de funes.
Repository Browser (SE80) integra todas as
ferramentas do ABAP Workbench, muito utilizado para
criao de programas do tipo on-line ou module pool, pois,
facilita e muito a visualizao de todos os objetos em uma
mesma tela. Todo objeto do ABAP Workbench pode ser
editado nessa transao e de uma forma bem mais
organizada.

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.

Instncia X Client ( Dependent/Independent)


Ex: Cdigo Fonte
Independent
Telas,Menus e funes
Independent
Estrutura de tabelas,elementos e domnios - Independent
Registros de dados em tabela
- Dependent
Formulrio SapScript
- Dependent

Conceito de classe de desenvolvimento

Classe de desenvolvimento (Pacotes)


So importantes para transporte entre sistemas de
produo, qualidade e desenvolvimento.
As classes tambm so importantes para combinar todos os
objetos pertencentes a um determinado desenvolvimento,
como por exemplo:
ZBC0
Classe de desenv.para Basis
ZCO_DES
Classe para objetos de CO
ZFI_DES
Classe para objetos de FI

Controlando e administrando transportes

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

Permite verificar as ordens de objetos


dependent criados por um usurio.

client

Captulo 2

DICIONRIO DE DADOS

Captulo 2 Dicionrio de dados

Conceito de banco de dados relacionais.


Tipo de dados do dicionrio ABAP.
Conceito de domnio, elemento de dados.
Criao de tabelas transparentes, estruturas e view.
Criao de ndices primrios e secundrios.
Criao de dilogo de manuteno.

Conceito de banco de dados relacionais


Modelo de Entidade e Relacionamento

Modelo desenvolvido para facilitar o projeto de banco de dados,


permitindo a especificao de um esquema que represente a
estrutura lgica global de um banco de dados.

Entidade: um objeto que existe e distinguvel de outros


objetos, ou seja, identifica o agrupamento de objetos do mesmo
tipo. Exemplos: Clientes, Bancos, Agncias, Contas-corrente.
Atributos: So os qualificadores de uma entidade, isto ,
representam no modelo o que uma entidade pretende ser.
Exemplos: Nome, RG, CPF, Endereo, Nmero conta, Nmero
agncia, Nmero banco.

Conceito de banco de dados relacionais

Domnio: Conjunto de valores permissveis para um atributo.


Exemplo: (Casado,Solteiro e Etc ).
Relacionamento: a associao entre duas entidades, ou
seja, representa a maneira como duas entidades esto
relacionadas ou ligadas. Exemplos: Conta-corrente de um
Cliente, Agncias de um Banco, Contas-Corrente de uma
Agncia.
Restries de Mapeamento: Representam o modo como as
diferentes entidades de um modelo se relacionam.
Determinadas pela cardinalidade dos relacionamentos entre
as entidades.

Conceito de banco de dados relacionais

Um-para-Um: Uma ocorrncia da entidade A est relacionada


com uma e apenas uma ocorrncia da entidade B.
Um-para-N: Uma ocorrncia da entidade A est relacionada
com uma ou vrias ocorrncias da entidade B.
EX : MARCA X CARRO
N-par-N: Vrias ocorrncias da entidade A esto relacionadas
com vrias ocorrncias da entidade B.
EX : FORNECEDOR X PRODUTO

Conceito de banco de dados relacionais

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.

Conceito de banco de dados relacionais

Como distinguir as ocorrncias umas das outras?


Utilizando o conceito de chave primria.
Chave Primria: Conjunto de atributos que garante a
unicidade de cada ocorrncia da tabela. Exemplos: RG, CPF,
Nmero do Chassis.
Normalizao: Processo de reconhecimento da chave primria.

Como representar os relacionamentos entre tabelas?


Transferindo a chave primria de uma tabela para a outra.
Chave Estrangeira: Quando a chave primria de uma tabela
um atributo em outra(s) tabela(s).

Tipo de dados do dicionrio ABAP

O dicionrio ABAP (Transao SE11) permite a administrao


central de todas as definies de dados do R/3, permitindo a
criao de tipos de dados definidos pelo usurio para uso
posterior, alm de vrios itens auxiliares ao desenvolvimento de
programas ( p.ex: search helps ).
Podem ser definidas tabelas e vises dentro do dicionrio. O R/3
se encarrega, durante a ativao desses elementos, de cri-los no
banco de dados. O dicionrio permite, ainda, a criao de ndices,
que agilizam as buscas. A definio de ndices apropriados de
suma importncia para o bom desempenho do sistema. Cabe
lembrar que uma busca sem ndice realizada em um tabela
extensa pode ter pesado custo em termos de performance.

Tipo de dados do dicionrio ABAP

As definies de tipos de dados dentro do R/3 incluem os


elementos de dados, que definem um tipo elementar
descrevendo o tipo bsico de dados, o comprimento e,
eventualmente, as casas decimais; as estruturas, que podem
receber elementos de vrios tipos (semelhante
representao de um registro numa tabela); e as estruturas
append, que seriam campos em formato de tabela.
Por exemplo, uma estrutura do registro de uma estrutura de
usurio que tivesse um campo para nmeros de telefone
poderia usar um table type e permitir colocar vrios nmeros
num mesmo campo.

Tipo de dados do dicionrio ABAP


Alm dessas definies, o dicionrio ABAP permite criar os search
helps, que so tabelas de busca auxiliares aos campos de tela so as
buscas e tabelas que aparecem quando se tecla F4 dentro de um
campo em qualquer tela do R/3.
Criando documentao para o elemento de dados dentro do dicionrio,
automaticamente est disponvel a ajuda do campo, que pode ser
invocada usando-se a tela F1 dentro dos campos de tela. Pode-se,
ainda, definir verificaes de entrada automaticamente, bastando
definir uma relao de foreign key.
No dicionrio tambm so criados os objetos de lock, que permitem
definir o travamento de dados dentro do R/3. Por exemplo, podem-se
definir objetos de lock para impedir que dois usurios editem a mesma
informao ao mesmo tempo no sistema.

Tipo de dados do dicionrio ABAP

O dicionrio integrado s ferramentas de desenvolvimento e


execuo do R/3, permitindo o acesso das ferramentas s
definies nele contidas. Por exemplo, possvel navegar de um
programa que esteja sendo criado no editor ABAP para
definies de campos, elementos e tabelas usadas no
programa.

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.

Tipo de dados do dicionrio ABAP

N Campo alfa, utilizado para conter nmeros sem decimais e


preenchidos com zeros esquerda.
D Campo data, armazenado no banco de dados no formato
AAAAMMDD, permite-se fazer contas do tipo 20041201 +
31 = 20050101.
T Campo hora, armazenado no banco de dados no formato
HHMMSS.

Conceito de domnio, elemento de dados.

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.
A definio de uma tabela consiste dos seguintes
componentes:

Campos - Define o nome e o tipo dos campos da tabela.

Chaves Estrangeiras( Check Table ) - define o relacionamento


entre a tabela e outras tabelas do sistema, usadas para manter a
integridade dos dados no BD.

Opes Tcnicas - controla como a tabela deve ser criada no


Banco de Dados.

ndices - Para melhorar a performance nos acessos a tabela, podese criar ndices secundrios para ela.

Criao de tabelas transparentes,


estruturas e view.
Ao se criar uma tabela ser necessrio informar :
Campo: O nome do campo pode conter at 16
caracteres, devendo comear com uma letra.
Flag-Chave: Indicativo para campos chave.
Tipo: Tipo de dado do campo.
Comprimento: Comprimento do campo.
Casas Decimais: Nmero de casas decimais aps a
vrgula.
Texto Breve: Descrio breve do campo.

Criao de tabelas transparentes,


estruturas e view.

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.

Criao de tabelas transparentes,


estruturas e view.

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.

Criao de tabelas transparentes,


estruturas e view.
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.
O ndice primrio separado dos ndices secundrios. O
ndice primrio constitudo dos campos indicados como
campo-chave na criao da tabela.

Criao de dilogo de manuteno

Pode ser feita uma criao automtica de programa on-line para


manuteno de tabelas transparentes atravs da transao
SE11. Para tanto basta seguir estes procedimentos :
Informar o nome da tabela a ser alimentada.
Clicar no menu utilitrios/Gerador de atualizao de tabelas.
Informar grupo de funes
Informar o grupo de autorizao
Se a tabela contiver poucos campos, usar nvel nico, seno
2 nveis.
Clicar
procurar nmero de tela. O sistema sugere os
nmeros das
telas.Deixar assim.

Criao de dilogo de manuteno

Gerar mdulo.

Captulo 3

INTRODUO LINGUAGEM
ABAP

Captulo 3 Introduo linguagem ABAP


Como funciona a transao SE38 Editor ABAP.
Blocos de eventos.
Declarao de variveis, tabelas internas, ranges e
constants.
Definio de parmetros de entrada.
Principais comandos ABAP.
Executando um programa report.

Como funciona a transao SE38 Editor 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.

Como funciona a transao


SE38 Editor ABAP

Como funciona a transao


SE38 Editor ABAP

- Voltar, encerrar e cancelar.


- Compilar e ativar.

- Executar,ref.cruzada,anlise de ambiente e ajuda on-line.


- Eliminar,copiar e renomear.

- Criar o novo programa.

Como funciona a transao


SE38 Editor ABAP

Texto fonte Texto principal do programa.


Variantes Exibe as variantes gravadas p/execuo do
programa.
Caractersticas Exibe as caractersticas do programa
como classe de desenvolvimento,
tipo do fonte (includes, executvel e etc).
Documentao Documentao simplificada do
programa.
Elementos de texto Textos que sero utilizados para
execuo do programa

- Exibio do fonte e modificao do fonte.

Como funciona a transao


SE38 Editor ABAP

- 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.
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.

AT SELECTION SCREEN Evento processado depois da entrada do


usurio na tela de seleo ativa.Isso pode ser quando o usurio
pressiona uma tecla de funo ou d um clique em um boto.

Blocos de eventos

START-OF-SELECTION Evento onde executa o processamento


principal do programa.
END-OF-SELECTION Evento onde finaliza o processamento do
programa.
TOP-OF-PAGE (incio relatrio) Evento utilizado quando
executado o primeiro comando write.
END-OF-PAGE (fim relatrio) - Evento utilizado no final do
relatrio.
AT USER-COMMAND (tratamento de botes) Evento para
tratamento de botes.

Blocos de eventos

AT LINE-SELECTION O processamento das listas de detalhe


dentro do R/3 feito pelo evento AT LINE-SELECTION. O R/3
executa os comando que houver dentro desse evento toda vez
que o usurio clica duas vezes sobre uma linha em uma lista
ou clica sobre um campo marcado com HOTSPOT, ou teclandose F2 sobre um registro, ou escolhendo um boto que tenha o
cdigo standard PICK a ele associado.

Blocos de eventos

Declarao de variveis, tabelas internas,


ranges e constants

Declarao : Locais e Globais.


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
Entre as formas de tipos de dados, as mais usadas no desenvolvimento de
programas ABAP/4 so:
Variveis : So declaradas para receber valores que so alterados durante a
execuo do programa.
Contants : So declaradas quando existem valores que no so alterados
durante a execuo do programa. A forma da declarao e o tipos de dados
seguem o mesmo padro das variveis.
Ranges : Tabela interna com a mesma estrutura de um select-options, mas sem
conexo com uma tela de entrada.

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: So declaradas quando existem seleo, insero,
alteraes e excluso de valores em tabelas.

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
Tabela Interna : Uma tabela interna consiste em uma srie de linhas do
mesmo tipo de dados. Os dados so armazenados linha a linha na memria, e
cada
linha
tem
a
mesma
estrutura.
Deve-se usar tabelas internas sempre que precisar usar registros de tabelas
transparentes dentro do programa.

Declarao de variveis, tabelas internas,


ranges e constants
Tipos de tabelas internas :
Standard table: Permite acesso sequncial aos dados;
Sorted table: o tipo mais apropriado se voc precisa de uma tabela
ordenada independente do seu preenchimento. No pode ser utilizar o
comando sort nesse tipo de tabela;
Hashed table: As tabelas do tipo Hashed table so organizadas de acordo
com a chave especificada e no permitem operaes utilizando o nmero
sequncial dos registros. So mais adequadas a grande volume de dados.

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:So modelos de tabelas sem dados. Esses modelos podem ser
utlizados com referncias para criao de tabelas internas, parmetros de
funo e etc.

Declarao de variveis, tabelas internas,


ranges e constants

Estruturas

TYPES: BEGIN OF <typename>,


var1 TYPE _,
var2 LIKE tab1-campo,
.....
END OF <typename>.
TYPES BEGIN OF <typename>,.
INCLUDE
STRUCTURE
<tabbanco>.
TYPES END OF <typename>,.

Exemplo
TYPES: BEGIN OF TP_BANCO
numero
TYPE N,
agencia TYPE N,
nome(30) TYPE C,
END OF TP_BANCO.

TYPES BEGIN OF FORNECEDOR.


INCLUDE STRUCTURE LFA1.
TYPES END OF FORNECEDOR.

Declarao de variveis, tabelas internas,


ranges e constants

Registros

Exemplo

TYPES: BEGIN OF <typename>,


var1 TYPE _,
var2 LIKE tab1-campo,
.....
END OF <typename>.

TYPES: BEGIN OF TP_BANCO


numero
TYPE N,
agencia TYPE N,
nome(30) TYPE C,
END OF TP_BANCO.

DATA: T_TAB1 TYPE <typename>.

DAtA: T_BANCO TYPE TP_BANCO.

Definio de parmetros de entrada


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.
PARAMETERS: uma forma de entrada de dados que o usurio poder escolher
apenas 1 valor em cada execuo.
SELECT-OPTIONS: Select-Options uma forma de entrada de dados que o usurio
poder escolher N valores em cada execuo. No parmetro SELECT-OPTIONS
podemos tambm definir faixas de dados, valores individuais, excluso de valores
individuais, excluso de faixas e etc.
CHECK-BOX : Esse parmetro utilizado para funcionalidades ligadas ou desligadas.
No trabalha com grupo de seleo.
RADIOBUTTON: Esse parmetro utilizado para funcionalidades ligadas ou desligadas,
envolvendo vrias opes. Trabalha com grupo de seleo.

Definio de parmetros de entrada

PARAMETERS: p_par1 TYPE __


,
p_par2 LIKE var1 DEFAULT valor_default,
p_par3 AS CHECKBOX
,
p_par4 RADDIOBUTTON GROUP grpname
OBLIGATORY.

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

SELECT-OPTIONS: s_par1 FOR campo1


NO-EXTENSION.
NO INTERVALS.
DEFAULT valor1 TO valor2.
OBLIGATORY.
NO-DISPLAY.
MEMORY ID mem.
MATCHCODE OBJECT obj.

Principais comandos ABAP

Comando/Funo
ADD
APPEND

Descrio
Adiciona um valor a outro campo
numrico
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>
AS SYMBOL / AS ICON / AS LINE

Atribuio dinmica
Comandos usados para formatao
em relatrios

Principais comandos ABAP

Comando/Funo
CALL TRANSACTION
CASE... WHEN... ENDCASE

Descrio
Comando usado para chamar
transaes
Comando para tomadas de deciso

CHECK

Substitui o comando IF

CLEAR

Limpar o contedo de uma varivel

CLOSE DATASET
CLOSE_FORM
COLLECT

COMMIT WORK

Fecha um arquivo externo


Funo usada para fechar um
formulrio sapscript
Organiza a tabela com todas as
descries esquerda totalizando os
campos numricos
Efetiva as alteraes no banco

Principais comandos ABAP

Comando/Funo
CONCATENATE
CONSTANTS

Descrio
Agrupa vrios campos em um s
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
HIDE
ID... FIELD...

Descrio
Usado para definir campos para uma
segunda janela em relatrios
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
LOOP AT
MESSAGE
MESSAGE-ID
MODIFY

Limita o nmero de colunas por


pgina
Loop no contedo de uma tabela
interna
Usado para mostrar mensagens na
tela
Usado para definir uma classe de
mensagem
Modifica o contedo de uma linha da
tabela interna

Principais comandos ABAP

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

Principais comandos ABAP

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

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
SET PF-STATUS
SET TITLEBAR

Criar BOX na tela


Comando usado para definir menu a
ser usado
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
START-OF-SELECTION

Funo para iniciar formulrio


sapscript
Evento para marcar incio da rotina
principal do programa

Principais comandos ABAP

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

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
SY-SUBRC
SY-TABIX

Descrio
Retorna o resultado de uma
execuo(OK ou No OK)
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
UPDATE
WHILE... ENDWHILE
WRITE

Define estrutura para tabelas internas


Atualiza o contedo de uma tabela
transparente
Cria laos de execuo
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

CONCEITO DE PROCEDURES,
FUNO E INCLUDES

Conceito de Procedures, funo e includes

Como criar uma procedure.


Como criar um Include.
Como criar uma mdulo de funo em ABAP.
Testando a execuo de uma funo.
Criando um report chamando procedures e funes.

Conceito de Procedures, funo e includes

Procedures: mdulos internos do programa, que possuem uma interface.


Com uma declarao ABAP, possvel chamar um subprograma em um
programa, a partir de qualquer outro bloco de processamento.

Mdulos de funo: mdulos com uma interface transparente, disponveis


em todo o sistema. Esses mdulos podem ser chamados de qualquer
bloco de processamento e em qualquer programa ABAP que utilize uma
declarao ABAP especial.

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.

Conceito de Procedures, funo e includes

- A interface definida da seguinte maneira:

Aps USING, deve-se relacionar em uma lista todos os parmetros que o


subprograma s precisa ler.

Aps CHANGING, deve-se relacionar em uma lista todos os parmetros


que o subprograma vai modificar e cujos valores sero transferidos para o
programa de chamada.

Aps TABLES, deve-se relacionar em uma lista todas as tabelas internas


que ir modificar e cujos valores sero transferidos para o programa
principal.

Conceito de Procedures, funo e includes


Exemplo :

DATA sflight_tab TYPE STANDARD TABLE OF sflight.

PARAMETERS: p_carr TYPE sflight-carrid,


p_conn TYPE sflight-connid.

PERFORM select_sflight TABLES sflight_tab


USING p_carr p_conn.

FORM select_sflight TABLES flight_tab LIKE sflight_tab


USING f_carr TYPE sflight-carrid
f_conn TYPE sflight-connid.
SELECT *
FROM sflight
INTO TABLE flight_tab
WHERE carrid = f_carr AND
connid = f_conn.
f_carr = BB.
ENDFORM.

Conceito de Procedures, funo e includes

As rotinas FORM podem ser chamadas a partir de qualquer bloco de


processamento ABAP por meio de PERFORM <nome do subprograma>
<interface>.

O nmero de parmetros atuais deve ser igual ao de parmetros formais.


No possvel ter parmetros opcionais. Os parmetros so atribudos na
seqncia em que esto relacionados na lista.

Quando um subprograma chamado com a declarao PERFORM, o


sistema verifica se os tipos dos parmetros atuais de PERFORM so
compatveis com os parmetros formais.

Conceito de Procedures, funo e includes

Existe a possibilidade de omitir o tipo. Nesse caso, o parmetro formal


herda o tipo do parmetro atual correspondente.

Como criar um mdulo de funo em ABAP

Exemplo :

DATA: a1 TYPE string value 'a1',


a2 TYPE string value 'a2',
a3 TYPE string value 'a3',
a4 TYPE string value 'a4'.
PERFORM test USING a1 a2 a3 a4.
a1 = 'a1'. a2 = 'a2. a3 = 'a3'. a4 = 'a4'.
PERFORM test CHANGING a1 a2 a3 a4.
a1 = 'a1'. a2 = 'a2. a3 = 'a3'. a4 = 'a4'.
PERFORM test USING a1 CHANGING a2 a3 a4.
a1 = 'a1'. a2 = 'a2. a3 = 'a3'. a4 = 'a4'.
PERFORM test USING a1 a2 CHANGING a3 a4.
a1 = 'a1'. a2 = 'a2. a3 = 'a3'. a4 = 'a4'.
PERFORM test USING a1 a2 a3 CHANGING a4.
FORM test USING p1 TYPE string
p2 TYPE string
CHANGING p3 TYPE string
p4 TYPE string.
p1 = 'b1'.
p2 = 'b2'.
p3 = 'b3'.
p4 = 'b4'.
ENDFORM.

Testando a execuo de uma funo

Tambm podemos executar procedures relacionadas em outros program


utilizando a sintaxe abaixo:

- PERFORM <nome da procedure> IN PROGRAM <nome do programa>


CHANGING <valor> IF FOUND.

Criando um report chamando procedures


e funes
- Submit

O comando submit utilizado para chamar de dentro de um programa outro


programa com os parmetros desejados.
Ex : SUBMIT < Nome do programa >
USING SELECTION-SCREEN < Nmero da tela >
WITH <PARAMETERS>
EQ <valor do parmetro>
<SELECT-OPTIONS> IN <valor do parmetro>
AND RETURN.

Criando um report chamando procedures


e funes
Funes :
-Mdulos de funo so subprogramas externos com uma interface
transparente. A interface considerada transparente porque no est includa
nas declaraes do programa ABAP para a parte executvel do mdulo de
funo. A interface definida separadamente e pode ser atualizada
independentemente do texto.
-Com os parmetros opcionais, acrscimos interface podem tornar as
declaraes do programa ABAP completamente executveis sem qualquer
modificao. Eles so armazenados de forma centralizada no Repository R/3.
-Cada mdulo de funo pertence a um grupo de funes.
-Existem vrias funes STANDARD que podem ser utilizadas nos programas
customizados (Pesquisa na SE37).

Criando um report chamando procedures


e funes
- Transao SE37
A transao SE37 responsvel pela criao de funes.

Criando um report chamando procedures


e funes
Caractersticas: So definidas as caractersticas da funo, como texto breve,
qual grupo de funo pertence, responsvel etc.
- Mdulo de funo normal definida como default. Trata-se de uma
funo internamente pelo sistema.
- Mdulo de acesso remoto definida quanto a funo chamada
remotamente de outra plataforma No SAP.
Parmetros da interface: possvel utilizar objetos de dados elementares, estruturas ou
tabelas internas como parmetros de importao, exportao e modificao. Os mdulos
de funo utilizam os mesmos mtodos de transmisso de parmetros que as rotinas
FORM.
Excees: se, durante o processamento, ocorre um erro em um mdulo, possvel inserir
a correo dentro do prprio mdulo como uma exceo.
possvel antecipar possveis erros e escrever o programa de modo que eles no
causem erros de tempo de execuo. As possveis excees so denominadas na
interface do mdulo de funo e acionadas a partir do texto de programa, por meio da
declarao RAISE. Cada programa que chama o mdulo de funo consulta sy-subrc
para interpretar as excees.

Criando um report chamando procedures


e funes
Valor proposto : Valor inicial para o parmetro caso no seja passado
nenhum valor na interface.
Opcional: Parmetro no obrigatrio.
Transf.Valores: A transferncia do parmetro efetuada com transferncia de
valor. Isto significa que o contedo do parmetro copiado durante a
transferncia. Em estruturas que contm tabelas, isto pode levar a fortes
redues de performance e, se possvel, no deve ser utilizado.

Criando um report chamando procedures


e funes
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:
Programas do tipo include, pode se modularizar um programa utilizando
cdigos fontes no executveis e chama-se esses cdigo de dentro do
programa principal. utilizado para declaraes de variveis em programas
muito extensos.

Criando um report chamando procedures


e funes
- Criar um programa utilizando funo e procedures.

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

ALGUNS TIPOS DE SELECT


SELECT FROM <table> INTO TABLE <INTERNAL
TABLE> .
A estrutura da tabela interna deve corresponder estrutura
da tabela que est sendo acessada. O sistema l os
registros em conjunto, no individualmente, e os coloca
dentro de uma internal table. Este processo mais rpido
que ler individualmente atravs de um LOOP e ir gravando
os registros, um a um.

Comandos SQL

SELECT * FROM <table> APPENDING TABLE <internal table>.


L os registros e os inclui - no sobrepe - em uma internal table.

SELECT . INTO CORRESPONDING FIELDS OF TABLE <itab>.


Neste caso a estrutura da tabela interna no precisa corresponder
estrutura da tabela que est sendo acessada. <itab> o nome da
internal
table. Movimentar os registros para as colunas definidas na
internal table
que possuam nome igual ao da tabela acessada).
Obs.: corresponding ou appending corresponding no exigem o
endselect.

Comandos SQL

SELECT .. APPENDING CORRESPONDING FIELDS OF TABLE <itab>.


L e grava (no sobrepe) os dados em uma internal table que possua
nomes idnticos aos nomes da tabela que est sendo lida.

SELECT SINGLE * FROM SPFLI


WHERE ..<campo>.. EQ
<contedo>
Toda vez que se usa select single * a chave primria completa deve ser
especificada. Se a chave especificada no qualificada, voc receber
uma mensagem de warning e a performance ficar prejudicada.
No caso de haver a necessidade de acessar um nico registro via select,
as opes so: select * .. seguido de comando exit OU select * up
to 1 row. Neste caso no necessrio especificar a chave completa.

Comandos SQL

SELECT * FROM <tabela>


Quando no se impe nenhum tipo de restrio, ocorre uma varredura
sequencial dos registros da tabela. Quando se utiliza grandes
tabelas, isso obviamente afeta o runtime.
Select * seleciona todas as colunas de uma tabela. melhor sempre
especificar as colunas, pois em caso de tabelas com muitas
colunas, prejudicar performance.
SELECT * FROM <tabela> WHERE <campo> eq <contedo>.
L todos os registros da tabela especificada onde o campo igual ao
contedo especificado. O ideal que se qualifique a clusula
WHERE tanto mais quanto seja possvel. Atentar que isso vlido
para tabelas do tipo Pool e Transparent. Para Cluster, seguir as
recomendaes dadas anteriormente.

Comandos SQL

SELECT <a1> <a2> INTO (<f1>, <f2>, ) FROM


.<tabela>
WHERE .
L as colunas especificadas (a1, a2). Aps INTO devero ser
especificadas as reas de trabalho auxiliares (f1, f2). O nmero de
colunas lidas dever ser igual ao nmero de work-areas
especificadas.

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

Comandos SQL

Comandos SQL

Performance

Para se obter uma otimizao da performance em programas


ABAP, deve-se minimizar o tempo de acesso ao database.

Grandes viles no que se refere performance


Ninhos de select;
Select . Endselect ao invs de comandos que recuperem do
banco de dados todos os registros de uma nica vez;
Select * ao invs de select com as colunas necessrias ao
processamento;
Select single sem chave completa especificada ao invs de
Select up to 1 row;
Selects genricos, ou seja, onde a clusula where no foi
fortemente especificada, com vrias condies, visando
restringir ;
ndices no utilizados;

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

Dicas para otimizao do cdigo


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

Sempre identifique se um SORT ascending ou descending e especifique a


clusula BY <fields>. Caso contrrio, todos os campos sero classificados.
Evitar lgicas do tipo IF not CPOA = CPOB. mais claro codificar IF CPOA
ne CPOB.
Evitar construes do tipo:
SORT tabela1, SORT tabela2, SORT tabela3.
LOOP tabela1, LOOP tabela2, LOOP tabela3
Para cada SORT fazer o LOOP correspondente. A ento iniciar novo
SORT e LOOP, e assim por diante.
Campos chave devem ser sempre os primeiros campos da tabela. Assim,
todos os demais campos sero comprimidos;

Performance

SELECT (para Transparent e Pool Tables): a clusula WHERE deve conter,


preferencialmente, os campos chaves e demais campos que possam restringir
a pesquisa;
SELECT (para Cluster Tables): s os campos chaves devem ser especificados
na clusula WHERE. Os demais devem ser checados atravs do comando
CHECK;
O conhecimento do contedo dos dados de uma tabela pode auxiliar no
momento da codificao do comando select. O campo que ocorrer em nmero
menor de vezes dever constar na clusula where antes daquele que ocorre
um nmero maior de vezes, caso seja necessrio satisfazer a ambas
condies. Isso faz com que o processamento seja mais gil.
Manuseio de tabelas: Estudar a possibilidade de manuseio em tabelas
internas para agilizar o processo. Analisar tambm o uso de comando select,
sendo o que melhor se adapte a situao em questo.

Performance

MXIMAS DA BOA PROGRAMAO:

Remova todo o cdigo/processamento desnecessrio/redundante!


Gaste tempo documentando e adote boas prticas de alterao de
cdigo!
Gaste todo tempo preciso analisando as necessidades de negcio,
fluxos de processos, estruturas de dados e modelos de dados!
Qualidade a chave! Planeje e execute um bom plano de testes
A Experincia sempre ajuda!

Performance

Para mais informaes chame a Transao


SE30
Boto Tips & Tricks

Captulo 6

PROGRAMAS ON-LINE

Captulo 6 Programas On-line

Conceito de PBO e PAI e module.


Como criar um programa ON-LINE.
Criando telas no ON-LINE.
Criando um ON-LINE.

Conceito de PBO, PAI e module.

Mdulo Pool o programa principal de um "Dialog" ou On-line. O


Dialog composto por um programa principal (pool module),
includes, mdulos e telas.
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).
A SE80 a transao usada para se gerar on-lines, pois nela todos
os objetos e programas podem ser criados e manipulados
facilmente.
Um programa do tipo mdulo pool s pode ser executado atravs
de uma transao, o que uma particularidade deste tipo de
programa.

Conceito de PBO, PAI e module.

Lembre-se: no programa tipo pool de mdulo voc s ver os


includes, para entender todo o funcionamento ter que entrar
nos includes modules screens. Geralmente os includes
pertencem a 4 nveis distintos:
1) Top (rea geral de declarao);
2) PBO (Process Before Output - Processos antes de Apresentar
a Tela);
3) PAI (Process After Input - Processos aps Entrada de Dados ) e
4) Contm
"PERFORM".

as

subrotinas

chamadas

pelos

mdulos

Como criar um programa ON-LINE

Os Componentes Principais de um Dialog Program


(On-line)
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

Comunicao: Tela ABAP/4 module Pool


O fluxo lgico da tela dividido em dois eventos para cada tela:
O evento PBO executado antes da tela ser apresentada.
O evento PAI executado aps o usurio pressionar ENTER.
O sistema processa os mdulos de evento numa sequncia
Em cada mdulo, o controle passa do processador de dilogo
para o processador ABAP/4. Depois do processamento, o
controle retornado para o processador de dilogo.

Como criar um programa ON-LINE

Quando todos os mdulos do PBO forem processados, o


contedo dos campos da rea de trabalho (work rea)
ABAP/4 so copiados para os campos de mesmo nome da
rea de trabalho (work rea) da tela.
Antes do mdulo PAI processado. O contedo dos campos
na rea de trabalho da tela (work rea) so copiados para
campos de mesmo nome na rea de trabalho (work rea)
ABAP/4.

Criando telas no ON-LINE

Screen Painter - ABAP/4


Para criar uma tela, siga os seguintes passos:
Defina as caractersticas bsicas da tela (screen
atributes);
Projete um layout de tela (in full screen editor);
Defina os atributos dos campos (field list);
Escreva o fluxo lgico da tela (programa).

Criando telas no ON-LINE

Definindo o Layout (Graphical Screen Painter)


A interface do Graphical Screen Painter contm funes
fceis de usar para definir os vrios elementos da tela
(ex.: campos de entrada e sada, campos textos, caixas,
etc.).
Voc escolhe cada elemento da tela e posiciona na tela
usando o mouse.
Para deletar elementos da tela, voc seleciona o
elemento com o mouse e ento escolhe Delete.
Para mover elementos da tela, voc usa o mouse para
arrastar o elemento para a posio desejada.

Criando um 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

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'


EXPORTING
i_callback_program
i_callback_pf_status_set
i_callback_user_command
is_layout
it_fieldcat
it_sort
TABLES
t_outtab

=
=
=
=
=

= c_repid
'SET_PF_STATUS'
'USER_COMMAND'
s_layout2
it_inf_campos2
t_qbr_campos[]

= it_lote2.

Principais comandos para uma lista

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

Principais comandos para uma lista

SLIS_SORTINFO_ALV
Criar estrutura do tipo SLIS_SORTINFO_ALV
Ex.: sortinfo type slis_sortinfo_alv
Campos fundamentais da SLIS_SORTINFO_ALV

Spos Sequncia de ordenao.


Fieldname Nome do campo da i_tab que deseja fazer a ordenao.
Up Direo de ordenao ascendente.
Tabname Nome da i_tab de sada

Principais comandos para uma lista

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
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

Captulo 8 Conceito de Batch-input e Bapis

Qual a funo de um Batch-input


O que uma BAPI
Criar um mapeamento.
Criar um report utilizando Batch-input

Qual a funo de um Batch-input

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:

Criao da sesso de Batch Input com os dados;


Processamento da sesso de Batch Input executando transaes do sistema R/3

As pastas de Batch input podem ser processadas de vrias formas:

Foreground;
Background;
Durante o processamento com display de erro;

Qual a funo de um Batch-input

Funes para criar Sesses:


call function 'BDC_OPEN_GROUP'
exporting
client = <cliente>
group = <nome_pasta>
user
= <usurio>
keep
= 'X'. (manter pasta)
call function 'BDC_INSERT'
exporting
tcode
= <cod_trans>
tables
dynprotab = <bdc_tab>.
call function 'BDC_CLOSE_GROUP'.

Qual a funo de um Batch-input

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

tal como carga de dados -

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

BAPIs so funes disponibilizadas pela SAP para realizar


processos dentro do R/3. Exemplo: Criao pedido de compra,
ordem de venda e outros.
Normalmente so implementadas como mdulos de funes.
Todas so criadas e gerenciadas no Function Builder (SE37).
Pode ser executada por uma aplicao externa. Exemplo: VB,
Delphi, VBA e outras.
Para consultar as BAPIs disponveis executar a transao BAPI.
O ideal verificar a existncia de uma BAPI e s se no existir,
utilizar o batch input ou call transaction.

Criar um mapeamento.

Transao SHDB

Captulo 9

DEBUG

Captulo 9 Debug

Qual a funo do Debug.


Principais comandos para utilizar um Debug.
Executar um Debug

Qual a funo do Debug

O ABAP Debugger uma ferramenta integrada de teste dentro do


ABAP Workbench. usada para achar erros no cdigo fonte de um
programa ABAP.

No Debugger, podemos executar o cdigo fonte passo a passo,


desta forma o programa em execuo interrompido depois de
cada passo, permitindo que voc verifique seu processo lgico e o
resultado individual de comandos.

Existem duas estratgias para inicializar o Debugger no ABAP


Workbench:
Definindo breakpoints e ento rodando o programa
Ou rodando o programa em modo debugging.

Principais comandos para utilizar um Debug

Para chamar o debugger do SAP (R/3) basta inserir o /h


como uma transao.

Verificar a barra de status.

A partir deste momento o mode debugger do SAP est em


funcionamento, em qualquer transao, que estivermos,
poderemos visualizar cdigo-a-codigo, o que o compilador,
ABAP est interpretando.

Principais comandos para utilizar um Debug

Observe no modo Debug a seguinte tela:

Nesta tela que poderemos EXIBIR e MODIFICAR valores


das variveis em tempo de execuo do programa, Lembrese estamos em modo debug onde cada comando segue
passo a passo o que pedimos.

Principais comandos para utilizar um Debug

Etapa Individual: Boto

ou F5 :

Use essa opo para navegar no programa comando a comando.


Isto permite que voc passe em subrotinas e em mdulos de funo,
executando-as passo a passo tambm. Uma vez que um mdulo da
subrotina ou da funo foi processado, o controle retorna ao comando
seguinte do CALL FUNCTION ou do PERFORM.
Entra nas subrotinas
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

Retorno: Boto

ou F7:

O debugger retorna de uma rotina para o ponto de controle


definido no programa principal. Use esta opo para retornar de
uma subrotina, mdulo de funo, ou programa chamado ao
programa de chamada.
Executa a subrotina e pra aps seu trmino

Avanar (at o cursor): Boto

ou F8:

Use essa opo para processar o programa at o prximo


breakpoint. Se no existir mais breakpoints no programa e
nenhum cursor for definido o sistema sai do modo debugging e
executa o resto do programa normalmente.
Executa toda a rotina at o final, sem parar.

Potrebbero piacerti anche