Anda di halaman 1dari 69

Material de treinamento Conceitos ABAP

Academia ABAP 2006 PROCWORK Software.


Material de apoio Conceitos resumidos - Instrutor: Lus Fernando Aguiar
da Rocha.

NDICE:

INTRODUO:........................................................................................................................... 3
SOBRE ESSA APOSTILA:........................................................................................................ 6
DIAMANTE:................................................................................................................................. 6
R3 COMO UM SISTEMA ABERTO COMUNICAO: ....................................................... 6
ARQUITETURA: ......................................................................................................................... 7
O MIDDLEWARE BASIS: .......................................................................................................... 9
SAP ON LINE SERVICE SYSTEM: ........................................................................................ 10
CONCEITO DE MANDANTE:.................................................................................................. 10
CHANGE REQUEST:............................................................................................................... 11
UNIDADES LGICAS COM SEUS MANDANTES -> DESENHO. ...................................... 12
OBJETOS Z E Y: .................................................................................................................. 13
CLASSE DE DESENVOLVIMENTO OU PACOTE: .............................................................. 13
PROGRAMAS STANDARD DO SAP:.................................................................................... 13
FIELD EXITS ............................................................................................................................. 13
SCREEN EXIT........................................................................................................................... 17
USER-EXIT................................................................................................................................ 17
TRANSAES IMPORTANTES AO DESENVOLVIMENTO: ............................................. 18
ENTRADAS POSSVEIS NO CAMPO DE COMANDO: ....................................................... 18
TELAS DE SELEO:............................................................................................................. 19
PARAMETER:........................................................................................................................... 20
DECLARAO DE VARIVEIS: ............................................................................................ 22
CATEGORIA SIGNIFICADO ADEQUADO PARA ........................................................................ 23
MENSAGENS: .......................................................................................................................... 24
TRANSAO: .......................................................................................................................... 25
DEBUGGER:............................................................................................................................. 26
TIPOS DE TABELAS: .............................................................................................................. 27
DICIONRIO (DDIC). ............................................................................................................... 28
ATUALIZADOR DE TABELA.................................................................................................. 30
TABELA INTERNA................................................................................................................... 32
HEADER LINE .......................................................................................................................... 32
MODULARIZAO:................................................................................................................. 36
COMANDO WRITE: ................................................................................................................. 37
TABELA SYST: ........................................................................................................................ 37
COMMIT WORK/ROOLBACK WORK: .................................................................................. 38
LOOP ENDLOOP: ................................................................................................................. 40
IF, ELSE, ENDIF: ...................................................................................................................... 41
CASE: ........................................................................................................................................ 42
INSERT. ..................................................................................................................................... 42
SORT. ........................................................................................................................................ 43
MODIFY. .................................................................................................................................... 44

Material de treinamento Conceitos ABAP

DELETE..................................................................................................................................... 44
CLEAR:...................................................................................................................................... 44
INCLUDE :................................................................................................................................. 45
UPDATE: ................................................................................................................................... 47
CONCATENATE: ..................................................................................................................... 47
WS_UPLOAD E WS_DOWNLOAD: ....................................................................................... 48
WORK REA: ........................................................................................................................... 49
SELECT:.................................................................................................................................... 50
SELECT <RESULT> FROM <TABLES> INTO <TARGET> WHERE <CONDITION>. .................. 50
SELECT SINGLE LEITURA DE UM NICO REGISTRO. ............................................................ 50
SELECT....ENDSELECT LEITURA DE MLTIPLAS LINHAS; .................................................. 50
SELECT....FROM...INTO....FOR ALL ENTRIES IN <ITAB>...WHERE....<F1> EQ <ITAB><FX>........................................................................................................................................... 51
SELECT......UP TO <N> ROWS................................................................................................ 51
SELECT <T1>~<F1> <T2>~<F1> FROM <T1> INNER JOIN <T2> ON <T1>~<F3> EQ
<T2>~<FX> INTO ...WHERE... ................................................................................................. 51
SUBMIT: .................................................................................................................................... 53
EXPORT IMPORT: ................................................................................................................... 53
READ TABLE: .......................................................................................................................... 54
MODULE POOL: ...................................................................................................................... 55
CALL SCREEN:........................................................................................................................ 56
LEAVE: ...................................................................................................................................... 56
TABLE CONTROL: .................................................................................................................. 57
COLUNA DE MARCAO:..................................................................................................... 58
CRIAO DE BOTES EM TELA: ........................................................................................ 59
TABSTRIP:................................................................................................................................ 59
CARGAS EM BANCO DE DADOS:........................................................................................ 62
1 - DIRECT INPUT ........................................................................................................................ 62
2 - BATCH INPUT ......................................................................................................................... 62
3 CALL TRANSACTION ............................................................................................................. 63
4 BAPI..................................................................................................................................... 65
SAPSCRIPT:............................................................................................................................. 65

Material de treinamento Conceitos ABAP

INTRODUO:

O que SAP ???


Os passos iniciais para que o SAP viesse ao mundo comearam a ser dados em 1972, na
cidade de Waldorf, na Alemanha, quando cinco engenheiros, funcionrios de uma multinacional ,
decidiram criar sua prpria empresa de desenvolvimento de sistemas: a SAP AG. Isso mesmo,
SAP no apenas o nome do pacote de gesto mais falado no mundo, tambm o nome da
empresa que o desenvolveu.
O nome da empresa era na verdade uma acrossemia (nome formado pelas iniciais de uma
srie de palavras). As iniciais SAP significam Systeme, Anwendung und Programme (Sistemas,
Aplicaes e Produtos). O AG era a abreviao de Agentur, um termo em alemo que quer dizer
Sociedade Annima.
O primeiro produto importante da nova empresa foi o SAP R/2 (Realtime System Version
2), um conjunto de mdulos de software destinado a mainframes, que em 1995 ainda era utilizado
por mais de 2000 empresas.
A medida que novos conceitos iam surgindo no campo da informtica, a SAP ia
atualizando seu produto, at que em 1989, as primeiras aplicaes do SAP R/3 foram
apresentadas numa conferncia em Hanover, Alemanha.
R/2 e R/3 no representam verses de um mesmo sistema, tratam-se na verdade de
produtos diferentes. O R/2 era um conjunto de mdulos de software destinado a mainframes,
enquanto o R/3 foi desenvolvido para o ambiente cliente/servidor (ambiente em que algumas
estaes solicitam servios, os clientes, e outras, os servidores, atendem, realizando determinados
tipos de processamento ou compartilhando recursos como impressoras, arquivos e bancos de
dados).
Os Principais Mdulos do SAP R/3 (Copyright by SAP AG).
O SAP R/3 um sistema que oferece um conjunto de mdulos com diversas aplicaes de
negcio. Os mdulos so integrados e contm a maior parte das funcionalidades necessrias s
grandes corporaes , incluindo manufatura, finanas, vendas e distribuio e recursos humanos.
Cada mdulo responsvel por mais de 1000 processos de negcio, cada um deles baseado em
prticas consagradas no mundo dos negcios. A configurabilidade do sistema tornada possvel
por 8000 tabelas que administram desde a estrutura corporativa at a poltica de desconto

Material de treinamento Conceitos ABAP

oferecida aos clientes. O sistema oferece o processamento de informaes em verdadeiro tempo


real ao longo da empresa onde estiver implementado. No a toa que o sistema um best-seller.
como provam os nmeros a seguir. Em 1995, a SAP AG tinha mais de 6600 colaboradores ao
redor do mundo. Neste mesmo ano, a SAP liderava o mercado de softwares para ambiente
cliente/servidor. Alm disso a SAP ocupava a quinta posio no ranking das empresas de software.
Hoje mais de 4000 empresas possuem o produto da SAP implementado. Um dos motivos do
sucesso da SAP o montante investido em pesquisa e desenvolvimento e as alianas estratgicas
que forma com outros desenvolvedores de sistemas. Estes parceiros criam add-ons (programas
complementares) que suprem algumas deficincias do R/3. Este tipo de unio permite que a SAP
foque seus esforos no seu principal produto.
Em 1995 o SAP chegou ao Brasil, mas para que pudesse ser utilizado no nosso pais ele
passou por um processo chamado de customizao, que nada mais que a alterao do sistema
de modo a atender a legislao fiscal brasileira .
Quando o SAP chegou ao Brasil com fora total em 1991 as empresas de consultoria j
sabiam que esta ferramenta seria um timo instrumento para aumentar suas receitas. Sendo
assim, um ano antes elas comearam a montar a infraestrutura necessria para implementar o
pacote no Brasil. Gerentes mais experientes eram enviados ao exterior para saber como os
departamentos dedicados a implementao do SAP eram estruturados fora do pas. Outro objetivo
destas viagens era conhecer a metodologia de implementao e as ferramentas utilizadas em
locais onde a experincia com o sistema fosse maior. Alm disso os escolhidos para estas tarefas
passavam por cursos onde eram introduzidos ao pacote de gesto que estava para invadir o
mundo corporativo brasileiro.
Mas os preparativos para a chegada do SAP ao Brasil no envolviam apenas os gerentes
das chamadas "Big Six", havia um enorme trabalho de bastidores, deixado a cargo dos scios
destas empresas. O resultado seria a formao de um sistema de parceria entre a SAP e as
empresas de consultoria segundo o qual o foco da SAP seria a venda do sistema, deixando a
implementao na mo de seus parceiros.
Com as prticas de SAP devidamente estruturadas, do ponto de vista organizacional ,
restava apenas uma questo: quem iria por a mo na massa e implementar realmente o sistema
nos clientes, uma vez que a princpio apenas uns poucos gerentes haviam tido treinamento formal
nos assuntos relativos ao SAP e como todos sabemos nunca foi atribuio de um gerente sentar
na frente de uma de micro-computador e configurar um pacote de gesto, tendo em mente que seu
papel em projetos muito mais estratgico do que prtico.
A resposta a esta questo era relativamente simples: as grandes consultorias possuiam um
contingente de especialistas em outros pacotes de gesto como por exemplo MMX (Suprimentos e
Manufatura) ou Interquadram (Financeiro). Estes consultores podiam no conhecer muito de SAP,
mas dominavam a metodologia de implementao de sistemas e conheciam processos de negcio
a fundo.
Estas pessoas foram ento enviadas para os Estados Unidos, para tomar parte na to
falada academia de SAP. O que era a Academia de SAP ? Era um curso de 5 semanas onde os
profissionais aprendiam como configurar o sistema e como executar uma srie de transaes. Os
especialistas em Interquadram faziam, em sua maioria, o curso do mdulo FI/CO. Os entendidos
em MMX faziam academia de MM ou PP. Ao fim das cinco semanas de curso os participantes
deviam fazer um estudo de caso e uma prova. Para receber o certificado de implementador, o
aluno deveria ter aproveitamento de 70%. Ao voltar da academia os profissionais eram
imediatamente alocados em projetos.

Material de treinamento Conceitos ABAP

Para enfrentar os problemas mais complexos de configurao as consultorias traziam


especialistas estrangeiros. s vezes muitos brasileiros que trabalhavam no exterior com SAP h
algum tempo eram contratados a peso de ouro pelas grandes empresas.
Como a demanda por especialistas era maior que a oferta, as consultorias iniciaram
grandes processos de contratao. Avalanches de curriculum chegavam aos escritrios. Entre os
remetentes havia at mesmo enfermeiros . Os envelopes eram distribudos em 4 pilhas:
- Pessoas com experincia em SAP,
- Pessoas com experincia em implementao de pacotes,
- Pessoas com conhecimento de Ingls e
- Demais
As consultorias realmente no exigiam experincia com SAP, pois o processo de formao
dos contratados seria financiado por elas mesmas. Cabe ressaltar que apenas empregados de
empresas de consultoria podiam tomar parte na academia. Em resumo os participantes eram
escritos no curso por seus empregadores.
Ao trmino da academia os formandos eram disputados imediatamente por todas as
consultorias num processo no muito tico. Para moralizar a situao as consultorias fizeram um
acordo de cavalheiros segundo o qual elas no poderiam roubar profissionais umas das outras.
E assim o mercado do SAP foi crescendo. medida que mais e mais empresas utilizavam
o sistema, eram formados mais profissionais de implementao de SAP. Muitos funcionrios de
empresas que passaram por implementaes acabaram indo para o mercado de consultoria.

Material de treinamento Conceitos ABAP

SOBRE ESSA APOSTILA:

Essa uma apostila no oficial da SAP do mdulo de ABAP 4 (linguagem


de programao do SAP/R3) que se destina a pessoas com experincia em
programao linear, anlise estruturada e estrutura de dados.
O objetivo dessa apostila mostrar de forma simples alguns do vrios
comandos, sintaxes e tcnica de programao utilizando ABAP 4. Vale ressaltar
que o material foi feito utilizando a lngua portuguesa e no apresenta todo o
contedo de sintaxes e tcnicas de programao, se tornando assim apenas
referncia para o auto-estudo e gesto de uma academia ABAP 4.
A utilizao das apostilas oficiais da SAP se torna, como sempre foi,
material fundamental para o estudo e aprendizagem da linguagem bem como para
a prova de certificao da SAP.

DIAMANTE:

SAP/R3 um sistema que pode agregar diversos mdulos que por sua vez
possuem diversas funcionalidades, todas integradas seguindo o conceito de
tabelas relacionais.
O R/3 segue o princpio administrativo conhecido como DIAMANTE onde
diversos mdulos separados entre si podem ser acoplados dentro de um mesmo
conceito definido por sistema, onde todos esses mdulos podem enxergar e
conversar entre si, garantindo integridade e integrao entre todos os mdulos.

R3 COMO UM SISTEMA ABERTO COMUNICAO:

O R/3 utiliza protocolos Standard da indstria para garantir integrao com


outras aplicaes:

TCP/IP: o protocolo de comunicao difundido mundialmenmte.


EDI: Eletronic Data Interchange , o mecanismo utilizado para trocar
informaes de negcio com diferentes sistemas; muito utilizados por
bancos.
OLE: Object Linking and Embendding: integra aplicaes PC com o R/3
(padro Microsoft).
Open Interfaces: Arquivamento tico, dispositivo de cdigo de barras,
etc.
6

Material de treinamento Conceitos ABAP

Alm dos protocolos Standard da indstria o R/3 tambm utiliza:

RFC: Remote Function Call, que utiliza o protocolo copiado do CPI-C da


IBM para comunicao e processamento das aplicaes e tasks dentro
do sistema R/3 ou com o sistema R/2 ou outros sistemas.
ALE: Application Link Enabling permite o processamento distribudo
dentro do R/3. Na prtica est associado a distribuio de informaes a
partir de um modelo de divulgao pr-estabelecido.

ARQUITETURA:

O R/3 possui uma arquitetura modular de software seguindo o princpio da


arquitetura
cliente/servidor com enfoque na distribuio da fora de processamento entre as
vrias pataformas envolvidas.
Esta arquitetura permite que se separe a lgica da aplicao da base de
dados e da camada de apresentao. Esta configurao permite ainda otimizar os
custos e distribuir a carga atravs de configuraes variadas de hardware. Com
isto possvel dimensionar os servidores de acordo com a carga, permitindo a
fcil escalabilidade do ambiente.
Os ganhos nesta arquitetura na implementao R/3 so muitos:
Simples instalao de novos servidores para eliminar eventuais gargalos
de processamento;
Servidores trabalham em paralelo, com carga homognea e execuo
local dos programas;
Baixo trfego de rede com a localizao dos buffers de dados e
programas;
Balanceamento de carga, seja para o processamento online (logon) seja
para o processamento batch.
Ou seja, o ponto alto da arquitetura a facilidade para escalar e
aumentar o poder de
processamento.
Princpios cliente/servidor
Na implementao R/3, a arquitetura client/server orientada para o
software, e no para o
hardware como estamos acostumados a ver. Desta forma, Client quem requisita
e utiliza o servio.
7

Material de treinamento Conceitos ABAP

Um servidor de aplicao por exemplo server de alguns servios das


estaes clients, porm client dos servios fornecidos pelo servidor de banco de
dados. Ou seja, o conceito do papel de quem o cliente e de quem o servidor
o que prevalece no importando quem tem mais hardware ou quem normalmente
executa a atividade.
R/3 System Client/Server Configurations
Os servios (ou camadas) fundamentais de uma aplicao so trs:
Presentation, Application e Database services e existem vrias formas de se
implementar um sistema R/3, a saber :

Central, onde todos os componentes esto implementados em um mesmo


host. Esta implementao corresponde a clssica implementao mainframe e
no comum de ser implementada;
Two-tier, onde uma camada normalmente executa as funes de
presentation usualmente um PC) e a outra camada executa os servios de
application e database. Uma outra implementao two-tier poderia ser uma
camada executando os servios de database e a outra composta por PCs mais
potentes que executariam as funes de presentation e application. A primeira
implementao comum em ambientes pequenos e com pouca disponibilidade de
hardware para os servidores. A ltima implementao normalmente utilizada em
simulaes ou desenvolvimento de software.
Three-tier, onde cada servio tem o seu prprio host. Nesta configurao
possvel ainda assegurar uma diviso de carga na camada de aplicao,
garantindo que determinados hosts fiquem dedicados para aplicaes especficas.
Por exemplo dedicar um host para servidor de aplicao dos usurios de MM,
ganhando com isto performance na distribuio dos servios. A configurao
three-tier a mais recomendada em R/3 por garantir a melhor distribuio de
carga e escalabilidade nos grandes sistemas.

Um sistema R/3 agrupa todos os componentes que esto associados com


um banco de dados. Se utilizamos uma implementao em 3 camadas, os
componentes do R/3 estaro presentes em todas as camadas da hierarquia:
Database Server, instalado em um host central, onde todos os servios de
bancos de dados

Material de treinamento Conceitos ABAP

Um ou mais Application Servers conectados ao servidos de banco de dados.


Nestes servidores estaro sendo processados a lgica da aplicao, ou seja, os
programas.
rios Presentation Servers conectados aos servidores de aplicao. Estas
V
mquinas so tambm chamadas de frontends ou workstations. Nestas mquinas
os usurios iro interagir com o sistema R/3 utilizando uma interface que prover
os servios de presentation.

O MIDDLEWARE BASIS:

O software Basis do R/3 (tambm chamado de middleware) roda em


diferentes plataformas e tambm pode ser adaptado para atender as
necessidades individuais das empresas. So vrios os papel de BASIS:
Prov o ambiente de runtime para as aplicaes R/3
Cuida da perfeita interao das aplicaes com o sistema
Define uma arquitetura estvel para as melhorias do sistema
Contm todas as ferramentas necessrias para a administrao do
ambiente
Permite a distribuio eqitativa dos recursos e componentes do sistema
Prov as interfaces necessrias para os sistemas descentralizados e os
produtos externos ao R/3
As principais caractersticas da tecnologia Basis so:
uma arquitetura voltada para a configurao client/server
Trabalha com bancos de dados relacionais
Possui interface grfica com o usurio (GUI)
Basis o responsvel ainda pela integrao dos aplicativos e do ABAP
workbench com o software
O profissional BASIS em geral o gerente do sistema, sendo responsvel
ainda pelo transporte de requests, controle das rotinas de backup, coordenao da
manuteno do sistema (como aplicao de notas e hot packages).

Material de treinamento Conceitos ABAP

SAP ON LINE SERVICE SYSTEM:


OSS um service 24 x 7 disponibilizado pela SAP que permite acesso ao
banco de dados de Notas, que provm solues para problemas no sistema R/3.
Atravs do OSS os clientes abrem chamados ao suporte relatando problemas que
so analisados pela equipe da SAP.
Atualmente a SAP j disponibiliza esse servio pela Internet. O OSS est
disponibilizado no site http://service.sap.comque faz parte do chamado market
place da SAP.
Como a grande maioria (quase totalidade) dos grandes sistemas o SAP/R3
tambm passvel de erros. Erros esses que podem e devem ser corrigidos com
a aplicao de notas.
Notas so comunicados/documentos emitidos pela SAP que relatam e
tentam corrigir erros em programas dos diversos mdulos do SAP.
Atravs do portal SAPnet na WEB podemos procurar uma nota que pode
ser aplicada ao erro encontrado. No existindo uma nota especfica para o
problema devemos abrir uma OSS que uma comunicao SAP de um possvel
problema no R3. Essa OSS ento analisada pelos profissionais da SAP que nos
informam qual o possvel problema, qual a soluo e se realmente no existir uma
nota especfica a SAP trata de providenciar uma (cria uma nova nota e a divulga).

CONCEITO DE MANDANTE:

O R/3 um sistema voltado para clients. Com este conceito possvel


controlar vrias empresas em um nico sistema, separando-os por client (ou
mandante). As chaves para se logar no sistema tambm so separadas por client.
Para efetuar um logon preciso ter chave no client especfico. Alm disso o
sistema exige um password e por ser multilinge , deve-se ainda especificar a
lngua desejada no momento do logon.
Um client pode ser visto como uma entidade organizacional separada
dentro do R/3, com seus prprios dados e parmetros especficos de
customizao. Apesar dos dados serem armazenados em tabelas nicas, os
dados dos diferentes clients coexistem separados pela diferenciao do campo
MANDT que faz parte da chave da maioria das tabelas (client dependents). A
nica exceo a tabela T000 (definio dos clients do sistema) que
independent apesar de ter como primeiro o campo MANDT.

10

Material de treinamento Conceitos ABAP

Mandantes so como unidades independentes dentro de uma mesma


unidade lgica.
Geralmente temos a seguinte configurao de mandantes: Ambientes de
desenvolvimento e parametrizaes funcionais em uma unidade lgica, ambiente
de qualidade e testes em outra unidade lgica e o ambiente de produo em outra
unidade lgica (esse representado por um mandante apenas).

CHANGE REQUEST:
As alteraes no software R/3 podem ser divididas em cinco categorias:
Customizing: a configurao dos processos de negcio e funes de
menu atravs do IMG
Personalization: so as mudanas globais das caractersticas das telas e
definio de valores default para determinados campos (SM3)
Modification: so mudanas efetuadas pelo cliente no repositrio de
objetos do R/3 (os SAP objects). estas alteraes precisam ser cuidadosamente
avaliadas quando do upgrade de verses do sistema. A partir do release 4.5A a
SAP introduziu o Modification Assistent para auxiliar a gerenciar e automatizar
estas mudanas
Enhancement: criao pelo cliente de objetos no repositrio que so
referenciados pelos objetos standard do R/3 atravs de user exits. Estes
desenvolvimentos so os ideais por reduzirem as necessidades de modification
adjustments durante o processo de upgrade Customer Development: criao
pelo cliente de objetos no repositrio atravs do ABAP Workbench (programas,
etc.)
Uma change request um pacote contendo os objetos que sero
transportados de um sistema R/3 para outro. Por exemplo, no caso de um abap
ser encapsulado o source, no caso de uma configurao ser encapsulado as
entradas nas tabela e sua respectiva ao (cria/deleta/altera). Uma change
request pode ser atribuida a vrios usurios atravs do conceito de tarefa. Apesar
do nome tarefa ela no representa o que vai ser feito, ela representa a associao
da change request com o usurio e a respectiva documentao (que no
obrigatoria) do que foi feito.
Todas as alteraes efetuadas nos objetos do repositrio so criadas e
mantidas atravs do ABAP Workbench e gravadas em change requests. As
demais alteraes de customizing e personalizations so criadas e mantidas pelas
ferramentas de business engineer e tambm gravadas em change requests. Estes

11

Material de treinamento Conceitos ABAP

mecanismos permitem que estas alteraes sejam posteriormente propagadas


pelo landscape para consistncia do ambiente.
O workbench organizer oferece mecanismos que permite que os change
requests sejam documentados atravs de uma descrio do seu propsito. Os
change requests devem ser criados por gerentes de projeto que associam os
objetos do repositrio que sero trabalhados, onde permanecem lockados com
acesso permitido apenas aos desenvolvedores que foram autorizados ao
change. As alteraes nos objetos do repositrio so criadas como tasks
associadas ao change request e quando liberadas so transferidas como um todo
atravs das rotas que definem o landscape, j que a unidade de transporte o
change request. A liberao de um change request faz com que uma nova verso
dos objetos nele contidos seja gravado no database de verses (somente no
sistema R/3 que foi utilizado para o desenvolvimento).

UNIDADES LGICAS COM SEUS MANDANTES -> DESENHO.

DESENVOLVIMENTO

REQUEST

QUALIDADE

PRODUO

REQUEST

12

Material de treinamento Conceitos ABAP

OBJETOS Z E Y:

Todos os objetos no Standard do SAP comeam com a letra Z ou Y,


portanto quando criamos um programa, transao ou tabela dentro do SAP
obedecemos essa nomenclatura de criao de nomes.

CLASSE DE DESENVOLVIMENTO OU PACOTE:

CADA MDULO POSSUI O SEU.


O conceito de classe de desenvolvimento ou pacote se refere a uma diviso
lgica criada por BASIS para instanciar diferentes mdulos de aplicao do R/3,
proporcionando por exemplo que cada classe de desenvolvimento ou pacote
tenha uma rota de transporte especfica.
Assim temos diversas classes de desenvolvimento dentro do R/3 que
permitem o transporte de change requests entre os diversos mandantes e
unidades lgicas. Temos inclusive uma classe de desenvolvimento local, que no
gera change requests e portanto no possui uma rota de transporte, sendo muito
utilizada para testes locais num determinado ambiente.

PROGRAMAS STANDARD DO SAP:

No podem ser alterados. Caso haja essa necessidade a SAP disponibiliza


EXITS para codificao ABAP. Os programas STANDARD so fechados.
O que so exits?
Espaos ou brechas em que a SAP permite que coloquemos codificao.
Temos ento:
FIELD EXITS Que so exits criadas para determinado campo. Ao
trabalharmos com esses campos o SAP desvia a codificao para um espao em
que podemos acrescentar cdigo ABAP. As field exits so criadas conforme as
necessidades encontradas no ambiente de programao/regra de negcio.
A Field exit, permite que seja feita alguma seleo ou checagem de um
determinado campo no programa e tela desejados.
Para isso, se faz necessrio, buscar o elemento de dados do campo que se
deseja fazer a field exit.

13

Material de treinamento Conceitos ABAP

Para verses do R/3 at 4.5:


Ir at a transao CMOD, clicar AMPLIAES TEXTO(menu), depois
escolher Exits campo, aparecero todas as fields existentes.
Para verses do R/3 aps 4.5:
Rodar pela transao SE38 o relatrio Standard RSMODPRF.
Para se criar uma nova:
Exit campo (menu ou relatrio, dependendo da verso)
Criar
Digitar o elemento de dados - Avanar
Digitar o cdigo, como uma funo
Depois clicar no boto Atribuir progr/tela, colocando o nome do programa e
o nmero da tela, p/ pegar estas informaes, clicar F1 e F9, no campo
desejado
6) Visualiza ou modifica o contedo da field, no boto Processar MF, deve-se
selecionar o elemento de dado desejado
7) Ativar a field exit
1)
2)
3)
4)
5)

IMPORTANTE: Na field exit, voc precisa pegar o valor digitado no campo


desejado, para isso existe a importao e a exportao, ou seja, as variveis
INPUT e OUTPUT, voc precisa sempre colocar OUTPUT = INPUT, para que o
valor possa voltar para tela origem.
Observao: A Field exit s funcionar, se a mesma estiver ativa.
Exemplo: Campo AUART na transao VA01

14

Material de treinamento Conceitos ABAP

Elemento de dados: AUART


Programa: SAPMV45A
Tela:0101

Cdigo desenvolvido
function field_exit_auart.
*"---------------------------------------------------------------------*"*"Interface local:
*"
IMPORTING
*"
VALUE(INPUT)
*"
EXPORTING
*"
VALUE(OUTPUT)
*"---------------------------------------------------------------------data: w_auart like vbak-auart.
w_auart = input.
export w_auart to memory id 'w_auart'.
output = input.
endfunction.
15

Material de treinamento Conceitos ABAP

Exemplo da tela de ativao de field_exit:

Notar que temos uma listagem com:

Elemento de dados.
Status (ativo ou inativo).
Programa (nome do programa especfico ou global)
Tela (nmero da tela do programa na qual a exit estar ativa)
Numerao para quando tivermos a exit ativa para mias de uma tela ou
programa.
Descrio herdada do elemento de dados.

Tambm importante destacar que para cada funo que for criada para a
field exit especfica deveremos associar um grupo de funes. A dica criar
um grupo de funes para cada field exit criada.

16

Material de treinamento Conceitos ABAP

SCREEN EXIT So locais em telas de transaes Standard do SAP onde


podemos criar campos adicionais ou qualquer outro objeto em tela. As menu exits
so pr-definidas em determinadas telas de transaes e criadas pela prpria SAP
como uma maneira de incluso de funcionalidades.
USER-EXIT So espaos vazios que algumas transaes e seus
programas possuem e so apresentadas como uma Include vazia dentro desses
programas onde nos d a possibilidade de incluir codificao ABAP e alterar com
isso
diversos
procedimentos
de
programao
executados
pela
transao/programa Standard.
As User Exits foram desenvolvidas originalmente para o Mdulo SD, com o
propsito de permitir ao usurio modificar o sistema sem, no entanto, modificar o
cdigo fonte.
Consistem basicamente de sub-rotinas (rotinas FORM) em includes
especiais, criados em um Pool de Mdulo ou Grupo de Funo, onde chamar
essas sub-rotinas nos pontos do programa no qual ser permitida alterao pelo
usurio.
 Essas sub-rotinas devem satisfazer a nomenclatura: USEREXIT_<nome>.
 A SAP nunca altera os includes.
 Se novas User Exits so adicionadas em uma nova verso, elas so
colocadas em um novo programa include.
 A chamada da sub-rotina j est implementada nos programas dos
mdulos Standard (SD, MM, FI, etc.).
 Normalmente, sub-rotinas desse tipo s trabalham com variveis globais.
Obs: Como exemplo, podemos verificar os includes MV45AFZB e
MV45AFZZ, referente ao programa SAPMV45A.
Para encontrarmos User Exits em um determinado programa, podemos
utilizar a transao SE38, em Utilitrios, na opo Encontrar na Fonte, e
userexit_ como texto de procura. O resultado ser uma lista de todas as User
Exits do programa, e onde elas foram chamadas em todas as telas do Pool de
Mdulo.
H ainda a viso de tabelas chamada INFO_MODS nas quais podemos
visualizar todas as possibilidades de exits existentes em um programa especfico.
Deveremos ento indicar o nome do programa que queremos buscar por exits no
campo MEMBER e o campo TYP significa qual o tipo da exit como abaixo:

17

Material de treinamento Conceitos ABAP

TRANSAES IMPORTANTES AO DESENVOLVIMENTO:

SE38 EDITOR ABAP


SE80 OBJECT BROWSER (pode ser usada para chamarmos diversas
outras transaes).
SE11 DICIONRIO
SE16 DATA BROWSER
SE71 FORM PAINTER (EDITOR DE SAPSCRIPT)
SE10 TRANSPORT ORGANIZER
SM30 ATUALIZADOR DE VISO DE TABELAS
ST22 ABAP ANLISE DE DUMP.
ST05 TRACE REQUESTS (anlise de performance).

ENTRADAS POSSVEIS NO CAMPO DE COMANDO:

Chamar uma transao:


- no mesmo modo (janela)
Entrar: /nxxxx (xxxx = cdigo de transao).
- no mesmo modo (janela), a primeira tela ignorada.
Entrar: /*xxxx (xxxx = cdigo de transao).
- em um modo adicional
Entrar: /oxxxx (xxxx = cdigo de transao).
Encerrar a transao atual:

18

Material de treinamento Conceitos ABAP

Entrar: /n.
Ateno: modificaes no gravadas so perdidas sem aviso
Eliminar o modo atual:
Entrar: /i.
Gerar uma lista de modos:
Entrar: /o.
Encerrar a transao atual e voltar ao menu inicial :
Entrar: /ns000.
Logoff do sistema:
Entrar: /nend.
Logoff do sistema sem consulta de segurana:
Entrar: /nex.
Ateno: modificaes no gravadas so perdidas sem aviso.

TELAS DE SELEO:

Chama-se telas de seleo as telas especiais usadas para a informao de


valores nos programas Abap: em vez de usar o Screen Painter, podem ser criadas
por meio de instrues Abap na lgica de processamento do programa. A lgica
de fluxo de tela fornecida pelo sistema e permanece invisvel ao usurio como, o
programador da aplicao.
Definem-se as telas de seleo na parte da declarao de um programa
Abap por meio das instrues de declarao especiais (PARAMETERS, SELECTOPTIONS e SELECTION-SCREEN). Tais instrues declaram e formatam os
campos de entrada de todas as telas de seleo.
Os elementos mais importantes de uma tela de seleo so os campos de
entrada para valores individuais e para tabelas de seleo. Estas permitem a
entrada de critrios de seleo mais complicados e so fceis de usar no sistema
Abap por serem processadas no prprio sistema. Como acontece no caso de
outras telas. O sistema fornece ajuda de campos e os possveis valores para os
campos de entrada que fazem referencia a um campo do Abap Dictionary. O

19

Material de treinamento Conceitos ABAP

sistema fornece conjuntos pr-configurados de valores de entrada para telas de


seleo denominados variantes. Quando usada a instruo CALL SELECTIONSCREEN, o sistema permite chamar uma tela de seleo de um programa Abap.
Caso se trate de um programa executvel (relatrio) de categoria 1, um programa
do sistema automaticamente chama a tela de seleo definida na parte de
declarao do programa. As telas de seleo acionam eventos e podem, assim,
chamar blocos de evento em programas Abap.
Posto que as telas de seleo contem principalmente campos de entrada,
os dilogos da tela de seleo so mais orientados por entradas do que as telas
definidas a partir do Screen Painter. As telas de dialogo podem conter campos de
entrada e de sada. As telas de seleo, entretanto, mostram-se apropriadas
quando o programa requer dados do usurio antes que possa continuar o
processamento.
Por exemplo, a tela de seleo poderia ser usada antes de acessar o banco
de dados, para restringir o volume de dados lidos.

PARAMETER:

OBLIGATORY
DEFAULT
AS CHECKBOX
RADIOBUTTON GROUP B1
Exerccio.
Criar um REPORT utilizando todas as opes acima com PARAMETERS.
Combinar com os j apresentados

SELECT-OPTIONS:
A declarao SELECT-OPTIONS <nome> FOR <objeto de dados> insere
dois campos de entrada na tela de seleo, com o mesmo tipo definido na
referencia. Com isso, os usurios podem entrar um intervalo de valores ou
selees mais complexas
Os diversos valores ou intervalos, entrados para uma opo de seleo,
so inseridos na tabela interna quando o usurio selecionar Executar.

Exemplo:
1 - Para exibirmos em tela um parmetro simples de entrada de dados:

20

Material de treinamento Conceitos ABAP

PARAMETERS: P_PEDIDO LIKE EKKO-EBELN.


O que resultar na tela:

2 - Para exibirmos em tela um parmetro composto de entrada de


dados (possibilitando a digitao de um RANGE de dados):
SELECT-OPTIONS:
SO_PED FOR EKKO-EBELN.
O que resultar na tela:

21

Material de treinamento Conceitos ABAP

DECLARAO DE VARIVEIS:
uma definio de objetos de dados.
A atribuio de categoria de objeto de dados feita pela referencia do objeto a
uma categoria abap, a uma categoria definida pelo usurio ou a um objeto do
dictionary.
Sintaxe:

DATA: < varname>

TYPE <ABAP-data-type> .
TYPE <user-definied.type>.
LIKE <ABAP-dictionary-object>.

22

Material de treinamento Conceitos ABAP

O sistema permite tambm referir o objeto a um outro objeto de dados existentes.


Neste caso todos os atributos da categoria so herdados pelo novo objeto de
dados.
Exemplo:
DATA: <varname> LIKE <data-object>.

Categoria de dados
2 tipos: Predefinidos
Definidos pelo usurio
- Predefinidos
No Abap existem 8 categorias de dados predefinidos:

Numricos:

Categoria

Significado

Adequado para

numero compactado

contadores, quantidade, ndices, prazos

numero inteiro

moedas, comprimentos, pesos

numero ponto flutuante

calculo em um intervalo de valor muito


grande.

Alfanumricos:

Categoria

Significado

texto numrico

texto (caracter)

data

horrio (time)

hexadecimal

23

Material de treinamento Conceitos ABAP

Exemplo:
DATA: <varname> TYPE <ABAP-data-type>.

DATA: counter
name(18)
start_date
sum(3)

TYPE
TYPE
TYPE
TYPE

I,
C,
D,
P DECIMALS 2.

Numero de posies
Determina o numero de casa decimais a ser usado

Regras para dar nome aos objetos de dados:


- Um nome pode Ter 30 caracteres no mximo.
- Os seguintes smbolos NO so permitidos: ( ) + . , :
- SPACE um campo obrigatrio.

MENSAGENS:
uma caixa de texto configurada para ser exibida ao usurio quando um
determinado evento disparado.
Todas as messages devero ser executadas com textos padres ou
personalizados.
Exemplos:
- Texto padro:
MESSAGE I027 (BCTRAIN).

Chamada da
message

Tipo de message
utilizada

N da message
na biblioteca

Texto utilizado de
uma biblioteca padro

- Texto personalizado:
MESSAGE W001(PC) WITH Cuidado, operao pode gerar danos ao
sistema!.

Chamada
da message

Tipo de
message
utilizada

N aleatrio
atribudo
message

Utilizao
no
padronizada

Texto no
padro
utilizado

24

Material de treinamento Conceitos ABAP

Tipos de mensagens:
A Abend
W - Warning
I - Information
S Status
E Erro.
X Exit (termina com short dump).
Exerccio.
01 Criar um report em que os parameters de entrada sejam exibidos em
mensagens (testar todos os tipos).

TRANSAO:

Conceito: Um processo lgico no sistema R/3.


Do ponto de vista do usurio, uma transao uma unidade lgica (por
exemplo, gerar uma lista de clientes, criar uma reserva para um vo ou executar
um programa).
Do ponto de vista do programador um objeto complexo, que consiste num
grupo de mdulos e uma srie de telas. As transaes se iniciam usando um
cdigo de transao.
Depois de entrar no sistema R/3 existem 3 nveis: nvel SAP, nvel Work
rea e nvel de aplicao. Uma transao um processo em nvel de aplicao.
Para iniciar a transao, o usurio poder usar os menus ou entrar com 4
caracteres para o cdigo da transao na linha de comando.
Componentes de uma Transao:
Programa ABAP
Dilogos do usurio (Telas, listas e telas de seleo)
GUI Interface grfica do usurio (Barra de Menus, Barra de
ferramentas Standard e de aplicao e barra de ttulos)
Etapas para criar uma nova transao:
 Analisar o problema escrevendo uma especificao do programa.
importante tambm checar se existem solues similares j existentes;
 Baseado nessas anlises, escolher os tipos de dilogos do usurio (telas,
listas ou telas de seleo). As telas permitem criar dilogos amigveis com
25

Material de treinamento Conceitos ABAP














botes, controles de Tabstrip, Table Control e outros elementos grficos.


Vide PBO, PAI e seqncias de telas e comunicao entre tela e programa;
Iniciar uma transao usando o seu cdigo correspondente. Esse cdigo
deve iniciar com Z ou Y e o sistema armazena cdigo de transao na
tabela TSTC;
Inserir na caixa de texto User Command o cdigo de transao SE80;
Clicar no boto Processar Objeto;
Escolher a opo TRANSAO e escolher o nome da transao;
Clicar em criar;
Escolher o Tipo de Transao:
Transao Dilogo Module Pool Chamada de tela
Transao Reports Para reports
Transao Variante
Menu de rea Habilitar menu de rea
Transao Parmetros
Caso os passos acima tenham sido executados com sucesso a transao
foi criada com xito.

DEBUGGER:
uma ferramenta de depurao de erros e anlise de execuo de
comandos/instrues.
Ele utilizado para procurar erros semnticos nos programas. Existem
vrios modos de iniciar o Depurador:
-

No Repository Browser, selecionar Testar/Executar


No ABAP Editor, selecionar Depurao
Na transao a ser testada, digitar /h no campo de comando
Em qualquer tela, selecionar Sistema => Utilitrios => Depurao.

A tela Depurador tem duas reas. A rea superior exibe o cdigo do


programa. Na rea inferior, o sistema exibe vrias informaes adicionais,
dependendo da viso selecionada. Para alterar entre as vrias vises, usam-se os
botes da parte superior da tela.
Selecionar Campos na parte inferior da tela para exibir o seu contedo. Posicionar
o cursor no nome do campo na rea cdigo de programa e selecionar F2 ou
clicar duas vezes no nome do campo.

Pontos de parada

Finalidade: quando selecionado Avanar no Depurador, o sistema


continua a processar at alcanar o prximo ponto de parada. Os pontos de
parada podem ser definidos como abaixo:

26

Material de treinamento Conceitos ABAP




no Depurador: atravs de um clique duplo;


no Editor: atravs da instruo ABAP BREAK-POINT.

TIPOS DE TABELAS:

Tabela Transparente
Existe uma tabela fsica no banco de dados para uma tabela transparente.
Todos os dados empresariais e dados de aplicao so arquivados em
tabelas transparentes.
Exemplo:
Todas as nossas tabelas do PW.ce.
EKKO Cabealho do documento de compras.
EKPO - Item do documento de compras.
Nosso sistema PW.ce grava todas as informaes em tabelas
transparentes

Tabela Cluster uma tabela no banco de dados que contm um campo


LONG RAW (como uma linha comprida). O campo long raw contm uma
string concatenando vrias informaes. Essas tabelas existem para
permitir a criao de tabelas com mais de 255 campos que de outra forma
no seria possvel por uma limitao do banco de dados.
Exemplo: Tabela BSEG.
Nosso sistema PW.ce NO utiliza tabelas cluster.

Tabela Pool - Um pool de tabelas uma tabela de banco de dados que


permite que os dados de mltiplas tabelas do R/3 sejam armazenados
dentro dele. As tabelas de Pool so uma estrutura proprietria da SAP e
so utilizadas para armazenar um grande nmero de tabelas muito
pequenas.
Nosso sistema PW.ce NO utiliza tabelas pool.

Viso ou view Um conjunto de duas ou mais tabelas transparente


integradas de forma relacional de forma que possam fornecer os dados de
forma integradas (fazendo um join). Muito utilizadas para melhoria de
performance de leitura dos programas ABAP, evitando que sejam criadas
leituras com condies de JOIN muito complexas e demoradas.
A view uma Viso de um BD, ou seja, criam-se vises de bancos com o
27

Material de treinamento Conceitos ABAP

objetivo de que certos dados sejam visualizados sempre que for chamada
uma view
associada a eles.
A maior utilidade deve-se ao fato de criar uma consulta default e toda vez
que se quiser visualizar os dados no ser necessrio reinventar a roda,
ou seja, montar todo o select novamente.
Imagine uma consulta que manipule 10 tabelas e 40 campos ser que h
necessidade de ficar refazendo toda vez? Claro que no, crie uma view e
toda vez que haja necessidade faa uma chamada a ela!
Uma view no utilizada apenas para visualizao dos dados, caso se crie
uma view de apenas uma tabela, tem-se a opo de efetuar alteraes
(update, insert e delete) na mesma replicando assim os dados para a tabela
de onde a view foi gerada.

Estruturas - So como tabelas que no armazenam dados, definem um


conjunto de campos e geralmente so utilizadas para definir os dados em
interface e telas, assim como para atribuir o tipo aos parmetros de
mdulos de funo. Utilizado para alocar memria para um grupo de
campos. Uma estrutura diferentemente de uma tabela no tem uma tabela
de banco de dados associada a ela.
Nosso sistema PW.ce utiliza estruturas para a exibio/alterao de
dados nas telas de nossos programas, porm esses dados NO esto
gravados fisicamente nessa estrutura, no caso esse campo dessa
estrutura no possui dados fsicos. Os dados esto todos gravados
em tabelas transparentes.

DICIONRIO (DDIC).

Funciona como uma interface com um banco de dados ou ainda como um


mini gerenciador de banco de dados onde podemos definir e criar diversos objetos
de dicionrio como tabelas transparentes, vises, estruturas elemento de dados,
domnios, ajudas de pesquisa e objetos de bloqueio.
SE11 MOSTRAR.
Transao onde podemos criar, alterar, exibir eliminar objetos como:
Tabelas transparente, vises, estruturas, elementos de dados, domnios,
ajudas de pesquisa e objetos de bloqueio.
APRESENTAR TABELA TRANSPARENTE -> Conceito tabela fsica no BD
CRIAR UMA DE EXEMPLO: ZTALUNO.

28

Material de treinamento Conceitos ABAP

MANDANTE -> SEMPRE CHAVE


TIPO DE CAMPO - CRIAR DENOMINAO
DOMNIO CRIAR E EXIBIR AS CATEGORIAS
MOSTRAR OPES TCNICAS.
MOSTRAR ATUALIZAES PERMITIDAS.
POPULAR A TABELA.
Exerccio:
1 - Criar as tabelas ZTALUNO, ZTCLASSE, ZTPROF.
CONCEITO DE CHAVE ESTRANGEIRA Toda chave estrangeira chave
primria em alguma outra tabela do DDIC.
Criar uma CE entre a tabela de classe e a tabela de professores:
ZTCLASSE-CODPROF -> ZTPROF-CODPROF.
Exerccio:
1 Criar CE entre a tabela de alunos e a tabela de classe onde:
ZTALUNO-CLASSE -> ZTCLASSE-CLASSE.
APRESENTAR ESTRUTURA Utilizado para exibir dados em tela,
passagem de
parmetros entre programas e criao de SAPscript..
No armazena dados -> Espao reservado para trnsito de dados.
CRIAR UMA ESTRUTURA: ZFALUNO IDNTICA TABELA ZTALUNO

Conceito de Tabelas de Verificao:


Uma verificao de valores automaticamente executada, na tabela de
verificao, caso um campo de tela faa referencia a um campo do Abap
Dictionary com controle de chave externa.
O Sistema exibe uma mensagem de erro e disponibiliza o campo para nova
entrada quando uma tabela de verificao do campo no contem a entrada
realizada.
O boto (F4) exibe todas as entradas contidas na tabela de verificao de
um campo.
Todos os valores entrados em uma tela que possui valores fixos so,
automaticamente, comparados com esses valores fixos.
O sistema exibe uma mensagem de erro e disponibiliza o campo para nova
entrada quando uma entrada no corresponde a qualquer um dos valores fixos da
tela.

29

Material de treinamento Conceitos ABAP

Exerccio:
1 Criar uma estrutura para cada tabela transparente criada (ZTALUNO,
ZTCLASSE, ZTPROFESSOR)

ATUALIZADOR DE TABELA.

MOSTRAR SM30 ATUALIZAO DE TABELAS.


Podemos criar uma interface prpria para atualizarmos dados em tabelas
transparentes. Essa interface se chama Viso de Atualizao e criada atravs
da transao SM30.
Temos que criar primeiro o gerados de atualizao de tabela atravs da
transao SM11, opo do menu: utilitrios -> Gerador de atualizao de tabelas.
Logo aps criado o gerador de atualizao de tabelas devemos:
Entrar na transao SE93 -> Digitar um nome vlido para a trasao e
clicar em criar.
Na tela seguinte informar uma descrio para a transao e marcar a opo
de Transao com parmetros e confirmar:

30

Material de treinamento Conceitos ABAP

Na tela seguinte informar: Uma descrio para o texto da transao. Na


opo transao informar a SM30 na caixa de texto e marcar o flag Omitir 1
tela

Na parte inferior da tela informar em valores propostos:


Nome do campo de tela
VIEWNAME
UPDATE_LTD

Valor
Nome da tabela transparente
X

31

Material de treinamento Conceitos ABAP

TABELA INTERNA.

CONCEITOS:
1 - So espaos de memria criados por um programa ABAP que s podem
ser utilizadas enquanto um programa est sendo utilizado.
2 - Armazenar dados temporariamente dentro de um prog. ABAP. As
tabelas internas s existem enquanto o programa estiver rodando.
3 - Tabelas criadas e declaradas dentro de um programa abap que no
existem fisicamente no BD.
4 - So alimentadas por seleo em tabelas ou insero via comando do
programa e servem para guardar momentaneamente esses dados.

HEADER LINE

As tabelas internas podem ser definidas com ou sem uma linha de


cabealho. Uma tabela interna com linha de cabealho composta por uma rea
de trabalho e o corpo real da tabela, ambos endereados com o mesmo nome.
O usurio pode declarar uma tabela interna com uma linha de cabealho
atravs do suplemento WITH HEADER LINE.
Para evitar erros, recomenda-se que o usurio crie tabelas internas sem
linha de cabealho. Entretanto, nas tabelas internas com linhas de cabealho
quase sempre possvel usar uma sintaxe reduzida para certas operaes.
Uma tabela interna uma seqncia de linhas do mesmo tipo.
Em geral as tabelas internas ( tambm denominada matriz) so usadas
para arquivar os resultados de processamento ou os dados de origem.
Elas so usadas para:
Armazenamento temporrio de dados das tabelas de banco de dados
para processamento posterior.
Arquivamento de dados para exibio de listas.
Arquivo de dados para comunicao com o computador de mesa, outros
servidores de aplicao do sistema R/3 ou sistemas no SAP.
As tabelas internas so descritas atravs de vrios atributos, um dos quais o tipo
de linha. O tipo de linha determina a estrutura dos registros de dados que podem
ser armazenados em uma tabela interna.
32

Material de treinamento Conceitos ABAP

CARRID CONNID DISTANCIA


AA
LH

0017
0400

2,572
6,162

Tipo de Linha

Dados

Outro atributo das tabelas internas so as chaves, que ajudam a identificar


as entradas da tabela. O importante na definio de uma chave a seqncia de
seus campos.
Por exemplo, a chave CARRID CONNID diferente de CONNID CARRID.
Existem dois tipos diferentes de acesso aos dados no Abap: com ndice e
com chave.
Acesso com ndice: Significa usar o ndice do registro de dados que o
sistema mantem para acessar os dados.
Acesso com chave: significa usar o termo de pesquisa, em geral uma chave
da tabela ou uma chave da tabela genrica, para ter acesso aos dados.
-

Categorias de Tabelas

As tabelas internas podem ser divididas em trs categorias. De acordo com


o modo de acesso aos dados:

Tabelas Standard: mantm, internamente, um ndice linear e


podem ser acessadas atraves do seu ndice ou de sua chaves.

Tabelas Ordenadas: So ordenadas de acordo com a chave e


gravadas. Aqui, tambm um ndice linear utilizado internamente.
Este tipo de tabela tambm pode ser acessada atravs do seu
ndice ou de suas chaves.

Tabelas Aleatrias de Prova: No mantm ndice linear interno e


podem ser acessadas apenas atravs de suas chaves.

As seguintes operaes podem ser executadas com tabelas internas


em ABAP:
Comando

Efeito

APPEND

Anexa o contedo de uma rea de trabalho ao final de


uma tabela interna
Insere o contedo de uma rea de trabalho em um
determinado ponto ( N linha).

INSERT

33

Material de treinamento Conceitos ABAP

MODIFY

Sobrescreve uma linha especifica com o contedo de


uma rea de trabalho;

DELETE

Apaga uma linha especifica de uma tabela interna.

LOOP AT

Insere as entradas de uma tabela interna. Linha por


linha em uma rea de trabalho.

READ TABLE
Insere exatamente uma entrada da tabela interna
em uma rea de trabalho.

SORT

Ordena uma tabela interna.

CLEAR

Limpa (apaga) uma rea de trabalho ou uma tabela


interna.

Preenchimento de Tabelas Internas

O sistema permite usar tabelas internas sempre que houver uma seqncia
de entradas ou linhas de mesmo tipo. Isto ocorre quase sempre quando um
programa precisa de uma copia interna de uma determinada tabela do banco de
dados.
O usurio pode preencher uma tabela interna com registros de dados de
uma tabela do banco de dados utilizando um loop SELECT para colocar registros
individuais de dados na rea de trabalho de uma tabela interna e, depois,
anexando o contedo da rea de trabalho tabela interna no loop SELECT.
A instruo APPEND deve ser utilizada para preencher uma tabela interna.
Ao declarar uma tabela standard, o usurio no precisa usar o suplemento
STANDARD.
Exemplos de criao.
Debugar e mostrar vazia.
Passar os parameters para dentro da ITAB. Mostrar APPEND -> explicar
header line.
Exerccio:

Algumas sintaxes de criao:


DATA: BEGIN OF itab_zprof OCCURS 0,
codprof like zprofessor-codprof,

34

Material de treinamento Conceitos ABAP

nomeprof like zprofessor-nomeprof,


dtnasc like zprofessor-dtnasc,
END of itab_zprof.
OU
DATA: itab_zprof like zprofessor occurs 0 with header line.
DATA: BEGIN OF itab_zprofessor OCCURS 0.
include structure zprofessor.
data: idade(02) type c.
DATA: END OF itab_zprof.
OU
data: itab_zprof like zprofessor occurs 0 with heaDER LINE.

Exerccio:
01 Criar dentro do programa teste a declarao de tabela interna e
compilar.
02 Debugar a o programa e exibir HEADER LINE -> explicar.
03 - Criar parameters para tabela ZPROFESSOR e mover para tabela
interna.
04 Criar SELECTION SCREEN com bloco e frame.

Adendo a respeito da declarao OCCURS N em tabelas internas:


General Performance Notes for Internal Tables
OCCURS Value or INITIAL SIZE Specification
Internal tables are a dynamic data structure. Their memory requirements are met
in blocks. The initial memory allocation (hereafter called the OCCURS area), can
be controlled using the " OCCURS n" or "INITIAL SIZE n " addition in the table
definition (see DATA, TYPES). Once the OCCURS area is full, the next block to be
created is twice as big as the OCCURS area (as long as this is not greater than 8
KB). All further blocks are then created with a constant size of 12 KB.
You can leave it to the system to determine the size of the OCCURS area by
specifying n = 0. In this case, the system allocates only a "small" portion of memory
at the first INSERT or APPEND statement. "OCCURS 0" or "INITIAL SIZE 0"
means that 16 <= n <= 100 (depending on the line width).
It only makes sense to specify a concrete value of n > 0 when you know exactly
how many entries the table will have, and you want to set up the OCCURS area
exactly. This can be particularly important if you want to nest internal tables (where
an "outer" internal table contains one or more other internal tables in each line, and
the "inner" tables only have a few entries (no more than 5, for example).
35

Material de treinamento Conceitos ABAP

To avoid excessive memory requirements, the system handles large values of n as


follows: The largest possible value of n is n_max = 8 KB divided by the line width.
For larger values, n is set such that n multiplied by the line width is around 12 KB.

MODULARIZAO:

CONCEITOS:
Organizao do programa:
INITIALIZATION.
START-OF-SELECTION.
END-OF-SELECTION.
TOP-OF-PAGE.
Form Perform.
A estrutura Form / Perform muito utilizada com qualquer tipo de programa,
com ela executasse a modularizao do cdigo fonte atravs de blocos de
processamento.
Algumas vezes comum ocorrerem confuses entre funes e a estrutura
form/perform pela seguinte causa:
Na funo so passados valores quaisquer para serem processados e
obtido um retorno X qualquer definido pelo programador, enquanto no
form/perform valores so passados para serem processados (podendo-se passar
at uma tabela inteira), mas no obtem-se um nico retorno.
O que ocorre uma chamada a um processamento em bloco passando
valores, representada pelo perform (que na realidade uma chamada ao form). O
contedo do programa que vem abaixo do PERFORM s executado se o bloco
de processamento FORM permitir, ou seja, neste tipo de estrutura no se fica
esperando um nico retorno e sim um contnuo processamento.
A maior utilizao do FORM / PERFORM d-se ao fato que em um
programa bem modularizado o tempo de manutenabilidade fica reduzido gerando
assim uma otimizao das tarefas.
Exemplo:
Criar os eventos e forms de processamento.
Passar parmetros para o FORM.

36

Material de treinamento Conceitos ABAP

COMANDO WRITE:

CONCEITO:
Serve tanto para mover dados tanto para sada de dados em tela.
Criar no END-OF-SELECTION a sada da tabela ZTPROF.
Separadores do WRITE -> Cabealho de sada.
FORMAT COLOR. INTENSIFYED ON/OFF.
Criar e mostrar a sada de dados da tabela interna ZTPROF.
Exerccio:
1 Criar o evento end-of-selection, o FORM de sada, o cabealho da
sada, a sada dos dados e fazer a formatao de cores.

TABELA SYST:
CONCEITO:
Tabela interna do sistema SAP/R3
que exibe controles internos
importantes para o processamento dos Programas ABAP.
A tabela Syst representatividade de todo o sitema R/3 atravs de alguns
parmetros. Parmetros estes que permitem ao profissonal ABAP fazer
verificaes no sistema.
Verificaes englobam muitos detalhes, a tabela Syst to completa que
nos permite fazer desde verificaes simples como a obteno da data corrente
at checks mais complexos como a verificao de qual evento foi disparado pelo
usurio em um determinado momento.
Uma viso completa dos campos da tabela Syst importante para que o
profissional ABAP fique alerta sobre quais os eventos que ele pode controlar
dentro do sistema, abaixo seguem alguns exemplos:
Sy-Index: Retorna um nmero de passagem atribudo, como por exemplo
dentro de um loop.
Sy-Tabix: Em tempo de execuo retorna a linha atual utilizada em uma
tabela interna.
Sy-Ttabc: Nmero da ltima linha lida em uma tabela interna.
Sy-Linct: Nmero total de linhas de uma certa lista gerada.
Sy-Listi: Nmero da linha que estiver atualmente selecionada em uma lista.
Sy-Lsind: Nmero da lista de ramificao , pode-se por exemplo checar
quantas sub-listas foram executadas a partir de uma lista X.
Sy-Currow: Mostra a posio do cursor em uma linha.
Sy-Lisel: Mostra a linha selecioanda.

37

Material de treinamento Conceitos ABAP

Sy-Cucol: Posio do cursor em uma coluna.


Sy-Binpt: Retorna se um batch input est ou no ativo.
Sy-Calld: Retorna se um modo de call est ou no ativo.
Sy-Mandt: Nmero do mandante logado no sistema SAP.
Sy-Opsys: Sistema operacional utilizado.
Sy-Ucomm: Mostra a ao X qualquer que o usurio deseja realizar, aps
um evento ter sido executado pelo usurio.
Sy-Waers: Tipo de moeda utilizado.
Sy-Datum: Data do dia.
Sy-Uzeit: Hora
Sy-Uname: Usurio logado no SAP.
Sy-Host: Nome do host (mquina).
Sy-Subrc: return code (resultado de comandos)
Sy-tcode: Nome da transao.
SY-SUBRC = um dos mais importantes -> Retorna 0 (zero) se a
instruo anterior foi executada com sucesso.
Nmero de retorno aps uma instruo ABAP.
Instruo com sucesso = 0.
Instruo com erro <> 0.
Sempre utilizado aps SELECTS e diversos comandos de busca, insero
e deleo de dados.

COMMIT WORK/ROOLBACK WORK:

Commit Work uma tcnica utilizada para salvar dados em um BD, esta
gravao fsica, ou seja, os dados so jogados diretamente nas tabelas, para
confirmar as operaes efetuadas no insert, update, etc. Normalmente deixamos o
SAP fazer este gerenciamento de gravao pois ele consiste todos os dados em
todas as tabelas, replicando assim as alteraes.
O Commit no uma tcnica muito utilizada pois a margem de
acontecimentos de erros em sua execuo bastante alta.
Caso um processo de carga esteja sendo executado e acontea um erro e
o Commit ainda no tenha sido efetuado podemos desfazer as operaes
executadas at aquele momento com o comando ROLLBACK WORK.
Exemplo I:
Program .............................................
Module User_Command Input.

38

Material de treinamento Conceitos ABAP

............................................................
............................................................
Case save_ok.
When BACK.
....................................
....................................
Message Axxxx.
ROLLBACK WORK.
When SAVE.
....................................
....................................
COMMIT WORK.
EndCase.
EndModule.
Exemplo II:
Ciclo de vida COMMIT x ROLLBACK
Rollback

Incio

Rollback

|---------------------------------------|---------------------------------------|
Commit

Fim

Commit

Lock Enqueue / Dequeue


O programa SAP R/3 utiliza lock nas tabelas por motivo de consistncia
dados; em tempo de execuo podem existir 2 ou mais pedidos de alterao
quase ao mesmo tempo em um campo X.
O sistema para evitar alteraes incorretas nos seus dados, se utiliza de um
processo denominado LOGICAL LOCKS que consiste em criar uma fila de
processamento com utilizao exclusiva da table para cada transao que deseja
manipular a mesma.
Exemplo:
Em um intervalo de tempo de 0,001 s. chegam duas solicitaes para
alterao, a transao de n.: 01 trava a tabela para que esta seja somente
manipulada por ela que chegou 1. Aps a liberao desta tabela pela transao
de n.: 01 a n.: 02 ir comear a manipular a tabela, ficando esta neste momento
exclusiva da prpria transao.
Observa-se que o processo de travamento da table efetuada por um objeto que
chamado exclusivamente para isto:

39

Material de treinamento Conceitos ABAP

- ENQUEUE_<Nome da Tabela>.
Para a liberao da mesma chamado um outro objeto:
- DEQUEUE_<Nome da Tabela>.
Outro detalhe a ser observado que antes de se utilizar os objetos, os mesmos
devem ser criados no ABAP Dictionary. A criao destes objetos poder ser
efetuada para a manipulao de 1 ou N tabelas, vale lembrar apenas que se
houver manipulao em N tabelas deve antes existir um relacionamento entre
elas.

LOOP ENDLOOP:

Estrutura de repetio comumente usada nos programas ABAP.


Serve para percorrermos as tabelas internas, permitindo que registro a
registro possam ser lidos e atualizados na header line fazendo com que esse
possa ser manipulado.
A instruo de loop LOOP AT .. ENDLOOP permite processar mltiplas
entradas de tabela interna. Cada vez que a instruo executada no loop, o
sistema coloca a prxima entrada da tabela na rea de trabalho <wa>
especificada no campo INTO.
O comando LOOP permite acessar as entradas da tabela interna atravs de
ndice e de chaves.
Ao acessar atravs de chaves, recomenda-se restringir o numero de
entradas ou linhas a serem lidas com a clausula WHERE, exatamente como se faz
com um comando SELECT.
Sintaxe bsica:
LOOP itab where campo = varivel.
.
.
.
ENDLOOP.

Exerccio:
01 Dar LOOP nas tabelas internas criadas nos exerccios passados e
debugar.
02 Dar LOOP com condies. (EX: Salrio do professor maior que
R$1000,00).

40

Material de treinamento Conceitos ABAP

03 Dar LOOP na sada de resultados e s imprimir se salrio <>


R$1000,00.

IF, ELSE, ENDIF:

Estrutura condicional usada para desviarmos o curso da programao TOPDOWN.


Sintaxe bsica:
IF condiao1.
Seqncia de comandos X
.
ELSE.
Seqncia de comandos Y
.
ENDIF.
A seqncia de comandos X ser executada caso a condio 1 seja
verdadeira. Se a condio 1 for falsa somente a seqncia Y ser executada.
Exerccio:
01 Criar um novo REPORT onde:
Tela de seleo com Cdigo do aluno (obrigatrio), nome do aluno e sexo
do aluno (usar a tabela ZTALUNOS como referncia).
O relatrio dever ter no mximo 80 colunas .
Mudar a descrio de tela dos parmetros utilizados para que fiquem com a
aparncia do cabealho abaixo.
O programa dever gravar em tabela interna todo o contedo da tela de
seleo e apresentar como resultado de tela a seguinte listagem:

Cd. Do aluno

Nome do aluno

Sexo

Na tela de sada o programa deve verificar o sexo do aluno (se = M ou F) e


preencher no campo de sada Sexo o texto varivel: MASCULINO ou
FEMININO.

41

Material de treinamento Conceitos ABAP

Se o cdigo do aluno for igual a 000 o programa imprimir na tela de sada


a constante: TRMINO DA LISTAGEM com o fundo em AMARELO.
ATENO:
01 Adicionalmente podemos incluir um TOP-OF-PAGE com os seguintes
dados: ACADEMIA ABAP 2006 DATA DD/MM/AAAA HORA: HH:MM:SS
02 os campos da tabela SYST contm valores referentes ao sistema,
como hora, data, cdigo de transao que est sendo executada, cdigo de
retorno de comandos (sy-subrc).
03 Inserir na tabela interna ao menos 3 registros (1 via parameters 2 via
MOVE/APPEND.

CASE:

Instruo condicional que permite diferenciao de caso.


Exemplo:
CASE sy-ucomm.
WHEN INC.

Verifica o valor da varivel


Executa se o usurio clicar no boto

incluir
PERFORM incluir.
WHEN CANC OR VOLT. Executa se clicar no boto cancelar
SET SCREEN O.
WHEN OTHERS.
Executa quando for escolhida outra
opo
Instrues
ENDCASE.

INSERT.

Adiciona novas linhas a uma tabela de dados.


Grava fisicamente registros em tabelas transparentes.
Se os dados da chave da tabela estiverem duplicados os registros na sero
gravados -> SY-SUBRC = 4.
Sintaxe bsica:

42

Material de treinamento Conceitos ABAP

INSERT dbtable FROM itab.


Adiciona os dados de uma tabela interna em uma tabela de banco de
dados.
INSERT dbtable.
Adiciona 1 registro na tabela de banco de dados.
IMPORTANTE: Confirmar com SY-SUBRC = 0 e dar COMMIT WORK.
Exerccio:
01 Utilizando o exerccio anterior realizar a gravao dos dados da tabela
interna e aps a gravao exibir uma mensagem do tipo I (informao) dizendo se
o registro corrente foi gravado ou no.

SORT.

O Comando SORT realiza uma organizao da tabela interna conforme a


ordem declarada em sua sintaxe.
Para ordenar uma tabela interna, deve-se usar a instruo SORT. As
adies BY e ASCENDING ou DESCENDING permitem restringir a ordenao a
campos especficos e determinar a seqncia e a hierarquia da ordenao.
Campos texto podem ser ordenados por idioma utilizando o suplemento AS
TEXT.

DATA: itab_aluno TYPE TABLE OF ztaluno.


SELECT * FROM ztalunoi INTO TABLE itab_aluno.
SORT itab_aluno BY nomeal ASCENDING
dtnasc DESCENDING.
Sintaxe bsica:
SORT itab BY campo1 campo2 campon.
SORT itab DESCENDING BY campo1 campo2 campon.
Exerccio:
01 utilizar o exerccio anterior e exibir a sada do relatrio organizando por
nome do aluno e sexo -> ASCENDING e DESCENDING.

43

Material de treinamento Conceitos ABAP

MODIFY.

Realiza alteraes de gravao em um registro de uma tabela interna.


Insere registros em tabelas de banco de dados, se o registro j existir um
UPDATE executado automaticamente nesse registro.
Sintaxe bsica:
MODIFY dbtable.
MODIFY dttable FROM itab.
MODIFY itab INDEX n TRANSPORTING c1 c2 cn.
MODIFY itab transporting c1 c2 cn WHERE condio.
Exerccio:
01 Com o exerccio anterior alterar todos os nomes dos alunos para a
constante JOS DA SILVA.

DELETE.

Deleta registros de uma tabela interna.


Deleta registros de uma tabela do BD.
Sintaxe bsica:
DELETE FROM dbtable WHERE condio.
DELETE itab WHERE condio.
DELETE ADJACENT DUPLICATES FROM itab.

CLEAR:

A instruo CLEAR utilizada para restaurar o contedo de um objeto de


dados ao seu valor inicial, de acordo com a sua categoria.
Considerando que as entradas da tabela interna so sempre de uma nica
categoria, suficiente uma instruo CLEAR para eliminar toda a tabela ou os
valores em sua header line.

44

Material de treinamento Conceitos ABAP

Sintaxe bsica:
CLEAR itab.
CLEAR itab[].
CLEAR wa.

INCLUDE :

So incluses no programa cuja finalidade chamar um sub-programa.


Criada uma determinada include esta pode ser utilizada por diversos programas
ao mesmo tempo bastando que para isso ela seja declarada no corpo do
programa:
INCLUDE zi_0001.
Onde zi_0001 -> Include no Standard (criada por programador).
INCLUDE <icon>
Onde <> se refere a includes pr-definidas no SAP e que podem ser
utilizadas como bibliotecas.
A declarao da include comumente feita no incio do programa aps a
declarao de TABLES.
IMPORTANTE: Exibir a transao icon e explicar que podemos exibir em
lista de sada esses cones com WRITE nome_do_cone AS ICON.

Exerccio:
01 - Retirar do programa principal todas as declaraes de tabelas internas
e variveis e coloc-las dentro de uma include criada pelo aluno.

Exerccio (DELETE + CONES):


01 Deletar da tabela interna ZPROFESSOR os registros que o campo
NOME estejam vazios.
02 Deletar da tabela transparente ZTPROFESSOR todos os registros que
SALRIO = 0.

45

Material de treinamento Conceitos ABAP

03 Criar um report baseado na tabela ZTPROFESSOR onde a tela de


seleo dever conter os seguintes campos:
CDIGO DO PROFESSOR
NOME DO PROFESSOR
SALRIO
MOEDA
Com cdigo do professor obrigatrio.
Incluir ao menos 4 registros na tabela interna de professor.
Para todos os registros da tabela interna:
Apagar da tabela transparente todos os registros onde SALRIO = vazio .
Para cada registro da tabela interna:
Se NOME DO PROFESSOR = vazio -> Alterar o campo da tabela interna
para a constante NO INFORMADO, essa informao dever aparecer na
tela de sada com a letra VERMELHA e fundo NORMAL.
Gravar fisicamente o registro corrente na tabela transparente de
professores e :
Caso o registro seja gravado com sucesso acrescentar 1 a um contador de
acerto (varivel do tipo I).
Caso o registro no seja gravado com sucesso acrescentar 1 a um contador
de erro (varivel do tipo I).
ATENO:
Funo para obteno do nome do dia da semana:
RH_GET_DATE_DAYNAME

LAY-OUT DE SADA:

Academia ABAP 2006 PROCWORK Software


Data: DD/MM/AA Quarta feira.
Hora: HH:MM:SS
Usurio : Login

46

Material de treinamento Conceitos ABAP

Cd. Professor Nome

Salrio

Moeda

_______________________________________________________________
_______________________________________________________________
_______________________________________________________________

As 3 ltimas linhas do relatrio trar a informao:

INFORMAO.
- Nmero de registros gravados com sucesso: XX.
- Nmero de registros com erro
: XX.

UPDATE:
Sobrescreve o contedo de campos na tabela transparente. Usado para
alterar o contedo de um ou mais campos especficos de acordo com condies
ou tabela interna.
UPDATE dbtab SET f1 ... fn WHERE condio.
UPDATE dbtab FROM TABLE itab.
Mostrar um exemplo de UPDATE num dos programas exemplo.

CONCATENATE:

Concatenar string ou pedao de string em variveis do tipo texto (char).


Exemplo:
Data: v_nome(15) type c value JooMariaJose.
Data: v_concatenado(40) type c.
Concatenate v_nome+04(05) mulher do v_nome(04)
v_nome+09(04) into v_concatenado separated by space.

irm

do

String v_concatenado ficar: Maria mulher do Joo irm do Jos

47

Material de treinamento Conceitos ABAP

WS_UPLOAD e WS_DOWNLOAD:

WS_UPLOAD:Funo Standard do SAP. Tem por finalidade carregar para


tabela interna o contedo de um arquivo gravado localmente na estao de
trabalho. Esse arquivo deve obedecer uma formatao que possa ser lida e
jogada nos campos da tabela interna.

Utilizar arquivo c:\teste.txt de exemplo.

Exemplo de utilizao:
DATA: v_salario TYPE p DECIMALS 2.
DATA: BEGIN OF itab_prof OCCURS 0,
mandt LIKE zprof-mandt,
codprof LIKE zprof-codprof,
nomeprof LIKE zprof-nomeprof,
dtnasc LIKE zprof-dtnasc,
salario(13) TYPE c,
waers LIKE zprof-waers,
END OF itab_prof.

CALL FUNCTION 'WS_UPLOAD'


EXPORTING
filename
= 'c:\teste.txt'
FILETYPE
= 'ASC'
tables
data_tab
= itab_prof
EXCEPTIONS
FILE_OPEN_ERROR
=1
FILE_READ_ERROR
=2
NO_BATCH
=3
GUI_REFUSE_FILETRANSFER
=4
INVALID_TYPE
=5
NO_AUTHORITY
=6
UNKNOWN_ERROR
=7
BAD_DATA_FORMAT
=8
HEADER_NOT_ALLOWED
=9
SEPARATOR_NOT_ALLOWED
= 10
HEADER_TOO_LONG
= 11
UNKNOWN_DP_ERROR
= 12
ACCESS_DENIED
= 13
DP_OUT_OF_MEMORY
= 14
DISK_FULL
= 15
DP_TIMEOUT
= 16
OTHERS
= 17.
LOOP AT itab_prof.
MOVE:
itab_prof-mandt TO zprof-mandt,
itab_prof-codprof TO zprof-codprof,
itab_prof-nomeprof TO zprof-nomeprof,
itab_prof-dtnasc TO zprof-dtnasc,

48

Material de treinamento Conceitos ABAP

itab_prof-waers TO zprof-waers,
itab_prof-salario TO v_salario,
v_salario TO zprof-salario.
INSERT zprof.
ENDLOOP.

WS_DOWNLOAD: Funo Standard do SAP. Tem por finalidade gravar na


estao de trabalho um arquivo com os dados de uma tabela interna.
Exemplo de utilizao:
CALL FUNCTION 'WS_DOWNLOAD'
EXPORTING
filename
= 'c:\teste.txt'
filetype
= 'ASC'
* IMPORTING
* FILELENGTH
=
TABLES
data_tab
= itab_prof
EXCEPTIONS
file_open_error
=1
file_write_error
=2
invalid_filesize
=3
invalid_type
=4
no_batch
=5
unknown_error
=6
invalid_table_width
=7
gui_refuse_filetransfer
=8
customer_error
=9
OTHERS
= 10.

Exerccio:
01 Apagar o contedo das tabelas ZTALUNO, ZTCLASSE e ZTPROF
utilizando DELETE.
02 Carregar as tabelas internas de alunos, professores e classe com os
arquivos texto correspondentes.
03 Carregar as tabelas transparentes de alunos, professores e classe
com as tabelas inernas.
04 Com uma das trs tabelas internas carregadas utilizar a funo
WS_DOWNLOAD
e
gravar
o
arquivo
com
a
nomenclatura
C:\saida_ddmmaaaa_hhmmss.txt

WORK REA:
Assim como a declarao tables, podemos criar uma rea de memria para
uma estrutura de dados declarada na qual podemos manipular dados de
cabealho, no podendo portanto armazenar mais do que uma linha de
informao.

49

Material de treinamento Conceitos ABAP

Essa estrutura pode ser definida campo a campo ou fazendo-se referncia


a tabelas transparente, tabelas internas ou estruturas.

SELECT:

Utilizado para preenchimento de dados em memria para podermos


trabalhar com informaes gravadas em tabela.

SELECT <result> FROM <tables> INTO <target> WHERE <condition>.

<results> - conjunto dos campos a serem selecionados


<tables> - tabela transparente ou viso de consulta
<target> - Estrutura de destino, em memria
<condition> - caso queira, condies de seleo
Variaes

SELECT SINGLE leitura de um nico registro.

Para uma melhor performance, necessrio a apresentao da chave


primria completa na clusula WHERE.
INTO <wa> - destino work area, registro, estrutura;
INTO (f1, f2,...,fn) destino, campos especficos;
INTO CORRESPONDING FIELDS OF <wa> - destino, campos
correspondente de um determinada estrutura. A comparao se d pelo nome das
colunas;
INTO TABLE <itab> - destino, para uma tabela interna;
INTO CORRESPONDING FIELDS OF TABLE <itab> - destino, campos
com mesmos nomes de uma determinada tabela interna;

SELECT....ENDSELECT leitura de mltiplas linhas;

Para esta situao no poderemos utilizar como adicionais do cdigo:


SELECT SINGLE, INTO TABLE e INTO CORRESPONDING FIELD OF TABLE;
gerado um SELECT-Loop para o pocesso.(Vide FETCH);

50

Material de treinamento Conceitos ABAP

SELECT....FROM...INTO....FOR ALL ENTRIES IN <itab>...WHERE....<F1>


EQ <itab>-<FX>.

FOR ALL ENTRIES restrio de seleo com base em tab. Interna


preenchida anteriormente;
Obrigatrio a apresentao de comparaes dos campos da tab. Interna na
clusula WHERE;
IMPORTANTE: CASO A TABELA INTERNA DE COMPARAO ESTEJA
VAZIA, TODOS OS REGISTRO IRRESTRITAMENTE SERO CARREGADOS

SELECT......UP to <n> ROWS

Seleo de dados com restrio de ocorrncias;


<n> pode ser fixo ou varivel;
Vises

SELECT <t1>~<f1> <t2>~<f1> FROM <t1> INNER JOIN <t2> ON


<t1>~<f3> EQ <t2>~<fx> INTO ...WHERE...

<t1> e <t2> tabelas a se relacionarem;


INNER JOIN condio para somente os egistros relacionados;
ON condio da relao;
INTO e WHERE mesmo critrio da forma bsica;

Exerccio:
01 Selecionar todos os dados das 3 tabelas (professores, alunos e classe)
e armazenar em tabela interna.
01.01 Exibir um relatrio com a sada (formatada campo a campo) com o
contedo de todas as 3 tabelas internas carregadas.
LAY-OUT:
TABELA DE ALUNOS:
Todos os campos menos o mandante.

51

Material de treinamento Conceitos ABAP

TABELA DE PROFESSORES:
Todos os campos menos o mandante.
TABELA DE PROFESSORES:
Todos os campos menos o mandante.
02 Criar o parmetro de tela: Cdigo do aluno.
Selecionar na tabela aluno o nome do aluno a data de nascimento e a classe do
aluno onde CODAL = Cdigo do aluno e armazenar numa WORK REA.
02.01 Selecionar da tabela de classe o cdigo do professor e a sala onde
CLASSE = classe do aluno e armazenar numa WORK AREA.
02.03 Selecionar da tabela de professores o nome do professor onde
CODPROF = cdigo do professor.
02.04 A sada dos dados deve ser apresentada da seguinte maneira:
LAY-OUT:
CDIGO DO ALUNO: XXXX.
NOME DO ALUNO: XXXXXXXXXXXXXXXXXX.
Sala
aula

de Cd. do professor

Nome do professor

03 Criar um parmetro de seleo de tela Cdigo do Professor.


Selecionar o nome do professor da tabela ZTPROFESSOR e armazenar numa
WORK AREA.
03.01 Com o cdigo de professor selecionar os campos classe e sala da
tabela ZCLASSE (todos os registros encontrados) e armazenar numa tabela
interna.
03.02 Para todas as entradas da tabela interna de classe selecionar o
nome do aluno e sexo da tabela ZTALUNOS onde CLASSE = classe da tabela de
classe.
03.03 A sada dos dados deve ser apresentada da seguinte maneira:
LAY-OUT:
CDIGO DO PROFESSOR: XXXX.
NOME DO PROFESSOR: XXXXXXXXXXXXXXXXXXXX.
Classe Sala

Nome do aluno

Sexo

52

Material de treinamento Conceitos ABAP

TOTAL DA LISTAGEM: XX

SUBMIT:
Comando utilizado para chamarmos reports externos ao programa
atualmente executado.
Sintaxe bsica:
SUBMIT report.

EXPORT IMPORT:
Comandos utilizados para transferncia de dados entre programas.
Basicamente podemos jogar em memria e recuperar informaes relevantes que
podem ser usadas em outros programas ou exits.
Podemos passar para memria dados como valores de variveis. work
reas e tabelas internas atravs do comando EXPORT e recuperar eses dados
em um determinado ponto com o comando IMPORT.
Sintaxe bsica:
EXPORT work_area to memory id MEM1.
EXPORT varivel to memory id MEM2.
Onde MEM1 e MEN2 so nomes qualquer dados por ns que se
referenciaro automaticamente como endereos de memria no R/3.
EXPORT itab TO DATABASE(01) id MEM1.
Onde 01 um ndice numrico sequencial dados por ns e MEM1 um
nome qualquer dados por ns.
Por sua vez o IMPORT faz o commando contrrio, ou seja, busca da
memria os dados passados pelo EXPORT:
IMPORT work_area from memory id MEM1.
IMPORT varivel from memory id MEM2.
IMPORT itab from database(01) id MEM1.

53

Material de treinamento Conceitos ABAP

READ TABLE:

Comando utilizado para procura de uma nica ocorrncia dentro de uma


tabela interna. Podemos utiliz-lo dentro de LOOP para procura dinmica dentro
de cada lao.
No suporta AND e OR.
A instruo READ TABLE <itab> deve ser utilizadas para ler entradas
individuais da tabela. Todas as entradas de tabela lidas so colocadas na header
line.
Com o comando READ o usurio pode acessar as entradas da tabela
interna atravs do ndice e das chaves.
Sintaxe bsica:
READ TABLE itab1 WITH KEY
campo1 = itab_2-campo1
campo2 = itab_2-campo2
campo3 = 001 <BINARY SEARCH>.
A adio BINARY SEARCH realiza uma procura mais rpida e utiliza
pesquisa binria, para funcionar corretamente a tabela deve estar sorteada pela
chave completa. Caso no seja usada essa clusula a procura se torna linear.
READ TABLE itab1 INDEX n.
Onde INDEX n aponta para o nmero do registro que queremos ler dentro
da itab.
ATENO: Devemos sempre testar o retunr code (SY-SUBRC) aps a
utilizao do comando READ TABLE.
Exerccio:
01 Incluir um SELECT-OPTIONS na tela com o campo cdigo da classe
da tabela ZTCLASSE (SO_CLASSE).
01.01 Selecionar CLASSE e CDIGO DO PROFESSOR da tabela
ZCLASSE onde CLASSE = SO_CLASSE.
01.02 Selecionar da tabela de professores ZTPROFESSOR todos os
CDPROF de acordo com as entradas da tabela ZTCLASSE selecionada.

54

Material de treinamento Conceitos ABAP

01.03 Dentro de um lao na tabela interna de classes procurar a entrada


correspondente na tabela interna de professores onde ZTPROFESSORCODPROF = ZTCLASSE-CODPROF.

MODULE POOL:

Tambm conhecido como ON-LINE o tipo de programa que roda sempre


em foreground e permite criao de telas, botes em telas de seleo, grid de
dados, tabstrip.
Permite atualizao de dados em tela.
Controles:
INCLUDE PBO: Sigla de PROCESS BEFORE OUTPUT.
o evento sempre executado antes da exibio da tela corrente. Todas as
telas de MODULE POOL possuem PBO, onde inserimos codificao que pode ou
no ser apresentada em tela e/ou processada.
INCLUDE PAI Sigla de PROCESS AFTER INPUT.
o evento sempre executado aps a exibio da tela corrente. Todas as
telas MODULE POOL possuem PAI, a codificao que processar os dados
fornecidos pela tela.
INCLUDE TOP o local reservado para declaraes de tabelas,
estruturas, tabelas internas, variveis, etc. Tudo que for declarado no TOP
global ( enxergado em qualquer parte do programa).
INCLUDE FORM Local reservado para incluirmos os FORMs criados
durante a programao. Permite melhor organizao do programa.

PBO
process before
output .
module:
load_data,
status_0100,
set_screen.

Tela do programa

PAI
process after input.
field zycie006-bukrs
module
authority_empresa.
module:
user_command_0100.

55

Material de treinamento Conceitos ABAP

Criar a tela como tela normal geralmente a primeira tela 001.


Criar transao para o programa.
Declara em TOP uma work rea para tabela professores.
Mostrar a tela de desenho de LAYOUT.
Puxar do programa o cdigo do professor e botar em tela.
Criar botes de sada da transao.
Criar um boto de seleo.
Criar break point e debugar para mostar a dinmica do PBO e PAI.

Exerccio:
01 Criar um programa on-line com 1 tela e duas caixas de texto onde
informado o cdigo do professor seja exibido o nome do professor. Incluir os
controles de sada do programa e criar transao para o programa.
01.01 Aps informar o cdigo do professor e confirmar o nome do
professor dever ser exibido no campo correspondente.
01.02 Caso no exista o registro na tabela de professores o programa
dever exibir uma mensagem informando que o registro no foi encontrado e
dever limpar o campo de nome do professor.
02 Incluir no exerccio anterior um boto EM TELA que dever chamar
uma segunda tela em branco. Essa segunda dela deve ter os controles de
VOLTAR, ENCERRAR e CANCELAR ativados e funcionando.

CALL SCREEN:
Comando executado para chamar outra tela no programa. A tela chamada
precisa estar criada e ativa.
Criar uma tela 0100 para o exerccio de module pool.

LEAVE:

Abandona o processamento da tela atual.


Pode ser:
LEAVE PROGRAM.
LEAVE TO SCREEN xxx.
56

Material de treinamento Conceitos ABAP

Etc... (ver help e apostilas).

TABLE CONTROL:

o nome dado ao GRID com dados exibidos em tela. Servindo para


consulta, edio, insero e deleo de dados de acordo com a programao
executada. Podendo ter botes de maneira a controlarmos os dados e postos
nesse grid.
Uma table control uma rea na tela na qual o sistema mostra os dados
em forma tabular. Ela processada usando um loop.
O top line de uma table control a header line.
O uso da Table Control utilizado quando houver a necessidade de
desenvolvimento de prottipos module pool onde necessite navegar, visualizar,
editar, gravar dados de uma tabela transparente de forma interativa na sua screen.
A linha da tabela interna correspondente a linha da table control sendo
processada lida da header line da tabela interna.
Os dados da header line da tabela interna so copiados para a linha
relevante da tabela interna.
Os campos do table control podem ser abertos ou fechados para edio e
alguns outros atributos podem ser alterados. Podemos controlar isso com
programao no PBO:
LOOP AT SCREEN nome_tbc.
IF screen-name = campon.
SCREEN-INVISIBLE = 1.
SCREEN-INPUT = 0.
SCREEN-REQUIRED = 0.
ENDIF.
MODIFY SCREEN.
ENDLOOP.

-> ESCONDE O CAMPO.


-> DESABILITA PARA ENTRADA.
-> TIRA A OBRIGATORIEDADE.

Exerccio:
01 Criar um programa module pool com uma tela e um GRID com os
campos nome, data de nascimento, salrio e moeda da tabela de professor.
Os campos do grid devero estar em uma estrutura.

57

Material de treinamento Conceitos ABAP

Criar os controles de voltar, encerrar e cancelar.


ATENO:
Devemos declarar o grid no TOP:
Controls: Nome_do_grid type tableview usind screen 0100.
Devemos declarar a tabela interna para guardar os dados vindos da tabela
transparente e dar loop no PBO e PAI:
PROCESS BEFORE OUTPUT.
MODULE STATUS_0100.
loop at itab_prof
CURSOR tbc100-CURRENT_LINE.
MODULE CARREGA_PROF.
endloop.
*
PROCESS AFTER INPUT
MODULE USER_COMMAND_0100.
loop at itab_prof.
endloop.

COLUNA DE MARCAO:

Serve para identificarmos dentro da tabela interna do TABLE CONTROL


qual linha est marcada no momento de executarmos algum processamento.
Podemos ento impor a condio de s realizar determinado processamento se a
linha estiver marcada.
Devemos clicar no flag C/ col. Marc nos atributos da table control.
Devemos criar um campo de flag na tabela interna com o mesmo nome do
flag de atributo.
Exerccio:
01 Com a table control do exerccio anterior criar coluna de marcao e
atualizar os dados da table control para a tabela interna.

58

Material de treinamento Conceitos ABAP

CRIAO DE BOTES EM TELA:

Serve para acionarmos algum procedimento que ser processado no PAI


do programa. Devemos dar nome ao boto e ao CDIGO DE FUNO em
propriedades.
O apertar do boto deve ser testado no module PAI e devemos testar se
SY-UCOMM = CDIGO DE FUNO.
Criar um boto em tela e debugar mostrando o valor do SY-UCOMM.
Exerccio:
01 Criar um boto de INSERIR no exerccio anterior. Testar se na table
control existe alguma linha selecionada. Se no: dar mensagem de informao
dizendo que no h linhas selecionadas.
Se o registro (chave) j existir na tabela de professores deveremos dar uma
mensagem informando O registro no ser inserido. Caso no exista o registro
dever ser gravado na tabela de professores o registro selecionado.
02 Criar um boto em tela EXCLUIR. Verificar se alguma linha foi
selecionada. Se sim: excluir o registro corrente da tabela transparente e atualizar a
table control.

TABSTRIP:

Nome dado s tela com abas, como se fossem orelhas de navegao, vide
tela abaixo:

59

Material de treinamento Conceitos ABAP

So compostas por:
- Tela principal (tela de fundo)
- Declarao da tabstrib:
- Abas de controle
- Subtelas
Onde:
Tela principal:
Tela obrigatria onde conter as chamadas das subtelas. Essa tela pode ter
campos como cabealho ou no ter nada, apenas as prprias subtelas. Na tela
principal obrigatoriamente precisamos ter a chamada de subscreen no PBO e no
PAI.
Exemplo:
PROCESS BEFORE OUTPUT.
MODULE STATUS_0100.
call subscreen:
SS_PROF including syst-cprog '0101',
SS_ALUN including syst-cprog '0102'.
PROCESS AFTER INPUT.
call subscreen:
ss_prof,
ss_alun.

MODULE USER_COMMAND_0100.

Declarao de TABSTRIP:
a declarao de dados feita no TOP INCLUDE onde criamos a
TABSTRIP propriamente dita. declarado como CONTROLS.
Exemplo:
controls:
ts_curso

TYPE TABSTRIP .

Abas de controle:
o nome da aba propriamente dita. O local onde sero criadas as
SUBSCREENs e deve ser criada dentro do SCREEN PAINTER.
No nosso exemplo os nomes das abas so: TAB_PROF e TAB_AL.

60

Material de treinamento Conceitos ABAP

Exemplo:

Subtelas ou subscreen:
rea fsica criada dentro das abas de controle que contm o objeto rea de
subtela do screen painter.
No nosso exemplo as subscreens criadas tem o nome: SS_PROF e SS_ALUN.
Toda subscreen criada tem que ser referenciada a uma tela criada. No nosso
casso essas telas so 0101 e 0102. Essas telas no momento de criao so do
tipo SUBTELA.
Exerccio:
01 criar um module-pool onde:
Tela 1: Digitar o cdigo da classe. Aps clicar em boto de status B1 exibir nessa
tela o campo sala.
Tela 2: uma tela de exibio de tabstrip que ser acionada pela tela 1 clicandose em boto de status B2.
Tela 3 uma subtela da tela 2 e ser a aba PROFESSOR da tabstrip. Listar o
contedo da tabela de proferssores onde ZTPROFESSORES-CODPROF =
ZTCLASSE-CODPROF.
61

Material de treinamento Conceitos ABAP

Tela 4 uma subtela da tela 2 e ser a aba ALUNOS da tabstrip. Listar o


contedo da tabela de alunos numa table control onde ZTCLASSE-CLASSE =
ZTALUNO-CLASSE (a table control poder ter diversas linhas).
Ateno: Criar os botes de sada das telas.

CARGAS EM BANCO DE DADOS


Carga em BD um processo de preencher tabelas com dados j existentes,
normalmente jogando os dados em um arquivo .txt e fazendo o up-load. Podemos
tambm alimentar tabelas internas e/ou estruturas utilizando programas e assim
fazer as cargas desses dados em tabelas ou transaes existentes.
Atualmente j existem algumas ferramentas que fazem este up-load
automaticamente, em alguns casos podemos tambm fazer o up-load diretamente
via cdigo puxando dados de um outro BD j existente.
Alguns tipos de cargas existentes no SAP:

1 - Direct Input

Este tipo de carga no utilizado pois no h uma consistncia dos dados


na insero dos mesmos no SAP.
Se trata de uma gravao direta nas tabelas do sistema feita por um
programa ABAP, essa tcnica no recomendada pela SAP para gravaes em
tabelas Standard devido a comprometer a integridade dos dados gravados pelas
transaes Standard.
Quando os dados so gravados eles no se propagam para as outras
tabelas que manipulam os mesmos.

2 - Batch Input

O Batch Input um processo de carga onde os dados no so inseridos


diretamente em uma tabela, eles so carregados em transaes.
Essas transaes so indicadas no processo de Batch Input. Para cada
transao diferente deve-se criar um novo Batch input. A partir do momento que

62

Material de treinamento Conceitos ABAP

se manipula transaes, evita-se o erro de insero errada de dados nas tabelas


pois o SAP trata da propagao desses dados dentre as vrias tabelas utilizadas.
O mapeamento dos campos que sero manipulados nas transaes pode ser
feito de duas formas:

Transao SHDB: Nesta transao efetua-se o mapeamento de todos os


campos a serem utilizados na execuo do Batch Input. normalmente o
mtodo mais utilizado.

F1 + F9: Utilizado quando a transao SHDB no est disponvel, um


pouco mais trabalhoso de se usar pois cada campo ser mapeado
individualmente, em cada campo a ser manipulado vou ter que pressionar
essas teclas para efetuar a verificao.

No Batch Input podemos fazer uma leitura de um arquivo .txt que conter os
dados a serem inseridos nas transaes, para isto utiliza-se a funo
WS_UPLOAD. Quando o up-load efetuado a tabela BDC serve como interface
entre o .txt e as transaes, efetuando assim o gerenciamento dessa operao de
carga, incluindo neste momento a manipulao dos campos e seus respectivos
usos.
Podemos tambm fazer o carregamento da tabela BDC atravs de selees de
dados e append em tabelas internas que serviro de passagem de dados para a
BDC.
A grande vantagem de utilizao do Batch Input deve-se ao fato de que a
carga no precisa ser efetuada no momento da criao da pasta que o conter.
A pasta pode ser criada em um dado momento e em outro process-la, o
processo em si pode ser executado de diferentes formas, seja ele com a
interveno do usurio, oculto (sem interveno) ou ento somente o usurio
intervir quando der um erro.

3 Call Transaction

Normalmente utilizado como uma alternativa ao Batch Input, possui


caractersticas prprias, mas tambm pode se utilizar do batch input para ser
efetuado de uma forma mais rpida.
No call transaction existe uma transferncia direta dos dados em contraste
ao batch input. Para armazenar dados de tela temporariamente usada uma
tabela interna (tabela BDC com a mesma estrutura do batch input), a transao
63

Material de treinamento Conceitos ABAP

chamada no programa e o sistema importa os dados temporariamente


armazenados na tabela BDC para as telas de transao.
Um programa de CALL TRANSACTION tem uma estrutura similar a do BATCH
INPUT.

Chamada:
CALL TRANSACTION nnnn USING a MODE b UPDATE c
MESSAGES INTO d.
Onde:
- nnnn = nmero da transao
- a = tabela BDC vide B.I.
- Mode:
A (default)  O sistema mostra todas as telas com seus dados.
N  O sitema no mostra as telas logo aps a transao ter sido
processada, existe um retorno do controle programa (o valor de
UPDATE determina se haver atualizao no BD)
E  Logo que um erro ocorre na tela o sistema devia para o modo A
para que sejam efetuadas as correes.
-

Update:
c  Controla como as atualizaes do BD chamadas pela
transao so executadas.
Divide-se em 3 modos:
A (Atualizao assncrona) A transao chamada no
aguarda at que o BD atualize o que tem que ser executado mas
passa a atualizao para o SAP UPDATE TASK, o programa de
Batch Input ser executado mais rpido porm no se ter um
retorno se a atualizao foi bem sucedida no BD.
As ferramentas de anlise e correo de erros no so to simples
de se uasr quanto as do modo sncrono.
S (Atualizao sncrona) A transao chamada aguarda at
que a atualizao esteja finalizada, o processamento por motivo
dessa espera fica um pouco mais lento do que no modo assncrono
porm esta transao pode listar erros caso acontea algum na
execuo, simplificando desta forma a anlise e correo dos
mesmos.
L (Local) O BD atualizado na chamada do processo do
programa.

Messages Into <it_table>: Especifica que todas as mensagens geradas


pelo sistema atravs do CALL TRANSACTION sero armazenadas na

64

Material de treinamento Conceitos ABAP

tabela interna especificada, esta tabela interna obrigatoriamente dever ter


a estrutura: BDCMSGCOLL .

4 BAPI

BAPI uma ferramenta de carga de dados criada a partir da verso 4.0 e


mais comumente usada a partir da 4.5. Trata-se de um conjunto de funes
Standard criadas pela SAP que realizam de forma invisvel o preenchimento dos
dados necessrios a determinadas transaes Standard para a criao ou
modificao de dados nessas transaes sejam feitas de forma correta e
consistente.
Internamente as BAPIs agregam diversos elementos de orientao a
objetos e no permitem que a codificao da mesma seja alterada.
Devemos ento passar parmetros como tabelas e estruturas preenchidas
corretamente de acordo com a necessidade de cada transao e regra de
negcio.
Atravs da transao BAPI podemos visualizar as BAPIs disponveis e
temos tambm uma listagem com a descrio dos parmetros a serem
preenchidos para cada BAPI.
Se torna fundamental o acompanhamento do consultor funcional para
podermos distinguir todos os campos/parmetros que deveremos informar para o
correto funcionamento da regra de negcio.
Exemplos de uso:
Criao de pedidos de compra;
Criao de material;
Entrada fsica em estoque;
Entrada fiscal em estoque;
Etc...

SAPSCRIPT:

a forma de imprimirmos em formulrios customizados. Podemos criar


formatos de pginas, tipos de pargrafo, tipos de caracteres de forma a exibirmos
em tela ou em papel formulrios completamente customizados de acordo com a
real necessidade da aplicao.

65

Material de treinamento Conceitos ABAP

Como exemplos de SAPscript tradicional temos o formulrio de nota fiscal e o


pedido de compra. Cada empresa pode utilizar um lay-out diferente e pessoal para
a sada de sua nota fiscal de acordo com um modelo qualquer. Temos ento
alguns relatrios com formulrios SAPscripts que podem seguir lay-outs
estabelecidos.
Com a transao se 71 podemos criar um formulrio de SAPscript.
Devemos informar no - cabealho -> configuraes globais o Formato de
Pgina que uma configurao de tamanho de pgina que configurado e criado
por BASIS na transao SPAD.
Assim para comearmos a criao de um formulrio devemos saber em
primeiro lugar qual o formato de pgina utilizar. Podemos utilizar um j existente
ou teremos que fazer contato com a equipe de BASIS para ser criado um formato
de pgina especfico.
Informaremos ainda o alinhamento (vertical ou horizontal), os tamanhos do
caracter, as distncias de tabulador, a fonte padro utilizada e variaes como
sublinhado, itlico e negrito.
Os formulrios so divididos em pginas e janelas, sendo que a cada pgina
so atribudas as janelas que constaro da mesma. Ou seja, cada pgina dever
ter uma ou mais janelas associadas. E devemos ter ao menos uma janela de
nome MAIN que indentificar a janela principal do formulrio, onde as informaes
mais relevantes do formulrio sero impressas.
Podemos criar formulrios de SAPscripts para diversas aplicaes no
standards do SAP, ficando a critrio de desenvolvimentos adicionais a criao dos
programas e desenho do formulrio. Temos ento uma nomenclatura bsica para
a chamada, utilizao e exibio via programa dos formulrios de SAPscript:
Utilizaremos por padro as seguintes funes:
1 OPEN_FORM
CALL FUNCTION 'OPEN_FORM'
EXPORTING
device = 'PRINTER'
dialog = 'X'
EXCEPTIONS
canceled = 1
device = 2
form = 3
options = 4
unclosed = 5
OTHERS = 6.

66

Material de treinamento Conceitos ABAP

Utilizada para abertura do formulrio, onde:


Device = Dispositivo de sada por padro PRINTER
Dialog = Abrir caixa de dilogo de impresso de SAPscript.
2 START_FORM
CALL FUNCTION 'START_FORM'
EXPORTING
form = 'Z_SAPSCRIPT_CURS'
EXCEPTIONS
form = 1
format = 2
unended = 3
unopened = 4
unused = 5
OTHERS = 6.

Utilizada para informarmos o nome do formulrio, onde:


Form = Nome do formulrio SAPscript.

3 WRITE_FORM
CALL FUNCTION 'WRITE_FORM'
EXPORTING
window = 'CABEC'
element = 'TEXTCB'
EXCEPTIONS
element = 1
function = 2
type
=3
unopened = 4
unstarted = 5
window = 6
OTHERS = 7.

Utilizada para chamar a janela e o elemento da janela corresponde no


formulrio, onde:
Windown = Nome da janela do formulrio SAPscript.
Element = Objeto ELEMENTO criado dentro da janela.

4 END_FORM
CALL FUNCTION 'END_FORM'
EXCEPTIONS

67

Material de treinamento Conceitos ABAP

unopened = 1
OTHERS = 2.

Utilizada para informarmos que o formulrio no est mais em uso.

5 CLOSE_FORM
CALL FUNCTION 'CLOSE_FORM'
EXCEPTIONS
unopened = 1
OTHERS = 2.

Utilizada para fechamento do formulrio SAPscript.

Utilizaremos para exemplo o programa: Z_SAPSCRIPT_CURSO e o


formulrio Z_SAPSCRIPT_CURS.

Vale ressaltar ainda que na transao SE71 temos a opo Utilitrios Ativar
depurador.
Essa opo liga o debuger de SAPscript que se apresenta num lay-out um
pouco diferente do debuger conhecido para programas. Vale a pena ento
ativar o debuger de SAPscript e vermos como ele se comporta.

Exerccio:
Criar um report onde:
Informado o cdigo do aluno, o report dever chamar um formulrio de
sapscript e imprimir 3 janelas onde:
Primeira janela:
RELATRIO DE ALUNO
Cdigo do Aluno: XXX

Segunda janela (janela MAIN):


Nome do aluno : XXXXXXXXX
Classe

: XXXX

Sexo

:X

Data nascimento: XX/XX/XXXX


68

Material de treinamento Conceitos ABAP

Terceira janela
Rodap do relatrio
Data: XX/XX/XXXX.
Hora: XX:XX:XX

Todas as 3 janelas devero ter BOX (quadrado separador com os textos


dentro).
Utilizar formato de pgina j existente e alinhamento no formato vertical.

69

Anda mungkin juga menyukai