Você está na página 1de 107

Manual

ABAP
By Antonio Carlos Roberto
Manual ABAP 2
SUMARIO
CONCEITO BREVE DO SAP .......................................................................................................... 1
INSTNCIA X CLIENT .................................................................................................................... 1
Estrutura da Empresa .................................................................................................................................... 1
Fbricas .................................................................................................................................................... 1
1.1.1.1Amrica do Norte (Estados Unidos) ......................................................................................... 1
b!etos "#lient $ependent% e "#lient &ndependent% .................................................................................... 1
'ransa()es .................................................................................................................................................... 2
EDITOR ABAP/4 ................................................................................................................................ 2
'abela de *umrio de #on+en(,o de Nomes ................................................................................................ -
EXEMPLOS CURSO BSICO ........................................................................................................ 6
E.EMP/* ................................................................................................................................................. 0
E.E1#2#&* ............................................................................................................................................ 23
1E*/U45E* .......................................................................................................................................... 26
TEORIA BDC SESSION ................................................................................................................. 31
B$# *ession .............................................................................................................................................. -1
Passos para cria(,o de uma B$# *ession .................................................................................................. -1
&denti7icando telas em uma transa(,o ......................................................................................................... -1
8erando a tabela B$# ................................................................................................................................ -1
En+iando uma tabela B$# para o sistema .................................................................................................. -9
Processando dados com #A// '1AN*A#'&N ...................................................................................... -9
Processando dados com B$#:&N*E1' ..................................................................................................... -6
Fun(,o B$#:PEN:81UP ................................................................................................................... -6
Fun(,o B$#:&N*E1' ............................................................................................................................... -6
Fun(,o B$#:#/*E:81UP ................................................................................................................. -6
EXEMPLOS BDC SESSION .......................................................................................................... 36
EXERCCIOS BDC SESSION ....................................................................................................... 40
E;erc<cio B$# ........................................................................................................................................... 99
1esolu(,o= .............................................................................................................................................. 96
COMANDO SELECT ...................................................................................................................... 50
#omando *E/E#' ..................................................................................................................................... 63
*E/E#' > F1M dbtab. ........................................................................................................................... 63
Adi()es = .................................................................................................................................................... 63
*E/E#' > F1M dbtab &N' 'ABE/ itab. ............................................................................................ 61
*E/E#' > F1M dbtab APPEN$&N8 'AB/E itab. ............................................................................... 61
*E/E#' *&N8/E > F1M dbtab ?@E1E 71 A B1 AN$C AN$ 7n D .................................................... 61
*E/E#' > F1M dbtab APPEN$&N8 #11E*PN$&N8 F&/E$* F 'AB/E itab. ........................ 61
*E/E#' > F1M dbtab F1 A// EN'1&E* in itab ?@E1E... ............................................................. 61
TIPOS DE SELECT EXISTENTES E MAIS UTILIZADOS ..................................................... 52
*E/E#' > F1M ... EtabelaF ................................................................................................................... 62
*E/E#' > F1M EtabelaF ?@E1E EcampoF EG EconteHdoF. ............................................................. 62
*E/E#' > F1M EtabelaF ?@E1E Etable 7ieldF BE'?EEN E7ield1F AN$ E7ield2F. ........................ 62
*E/E#' > F1M EtabelaF ?@E1E Etable 7ieldF /&IE C J:1KL. ......................................................... 62
*E/E#' > F1M EtabelaF ?@E1E Etable 7ieldF &N (CC M CC.). ...................................................... 62
*E/E#' > F1M EtabelaF ?@E1E Etable 7ieldF &N Einternal tableF. ................................................... 62
*E/E#' > F1M EtabelaF 1$E1 BN E7ield1F E7ield2F C P1&M A1N IEN. .................................. 62
*E/E#' > F1M EtabelaF BNPA**&N8 BUFFE1. ................................................................................ 62
*E/E#' > F1M EtabelaF APPEN$&N8 'AB/E Einternal tableF. ....................................................... 62
*E/E#' > F1M EtabelaF &N' 'AB/E Einternal tableF. .................................................................... 62
*E/E#' C &N' #11E*PN$&N8 F&E/$* F 'AB/E Einternal tableF. ....................................... 62
*E/E#' > APPEN$&N8 #1EE*PN$&N8 F&E/$* F 'AB/E Einternal tableF. ........................... 6-
*E/E#' *&N8/E > F1M EtabelaF ?@E1E EcampoF EG EconteHdoF. .............................................. 6-
*E/E#' Ea1F Ea2F ... &N' ( E71FM E72FM C) F1M C EtabelaF ?@E1E C . ................................ 6-
*E/E#' MA. (campo) ............................................................................................................................. 6-
Manual ABAP -
*E/E#' > F1M *F/&8@' ?@E1E P1&#E &N &'AB. ......................................................................... 6-
*E/E#' > F1M (EtabelaF) &N' EOorP areaF. .................................................................................... 6-
*E/E#' > F1M EtabelaF F1 A// EN'1&E* &N Etabela internaF .................................................... 6-
*E/E#' carrid M&N( price ) MA.( price ) &N' (caridM minimumM ma;imum) .................................... 6-
COMANDOS MAIS UTILIZADOS EM ABAP ............................................................................ 54
DATA DICTIONAR ....................................................................................................................... 56
b!eti+os ................................................................................................................................................... 60
#onceitos de Bancos de $ados 1elacionais ............................................................................................... 60
Modelo EntidadeQ1elacionamento ............................................................................................................. 60
1estri()es de Mapeamento ......................................................................................................................... 60
Modelo 1elacional ..................................................................................................................................... 60
#omo distinBuir as ocorrRncias umas das outrasS ....................................................................................... 60
#omo representar os relacionamentos entre tabelasS .................................................................................. 60
#omo de7inir todos esses elementos num B$S ........................................................................................... 6T
R/3 DATA DICTIONAR ................................................................................................................ 5!
&ntrodu(,o .................................................................................................................................................. 6T
Fun()es desempenUadas pelo $ata $ictionarV ........................................................................................... 6T
8erenciamento das $e7ini()es de $ados ............................................................................................... 6T
Pro+is,o de in7orma()es para a+alia()es ............................................................................................... 6T
*uporte ao desen+ol+imento .................................................................................................................. 6T
*uporte W documenta(,o ........................................................................................................................ 6T
8arantia de Xue as de7ini()es de dados se!am 7le;<+eis e atualiYadas .................................................... 6T
Elementos de $ados ................................................................................................................................... 6Z
$om<nios .................................................................................................................................................... 6Z
b!eto de BloXueio ..................................................................................................................................... 6Z
MactU #odes &$ ......................................................................................................................................... 6Z
b!etos MatcU #ode ................................................................................................................................... 6[
Pools \ #lusters ........................................................................................................................................... 6[
'abelas 'ransparentes e #luster ................................................................................................................. 03
Nomes de 'abelas Q A'AB ........................................................................................................................ 03
#ampos de 'abelas ..................................................................................................................................... 01
'abela de 2ndice ......................................................................................................................................... 01
'abela de 8rupo ......................................................................................................................................... 01
8rupo de 'ipo ............................................................................................................................................ 01
Estrutura ..................................................................................................................................................... 02
]ieOs ......................................................................................................................................................... 02
ALV .................................................................................................................................................... 63
&ntrodu(,o .................................................................................................................................................. 0-
1elat^rios tradicionais ................................................................................................................................ 0-
1elat^rios A/] .......................................................................................................................................... 09
Barra de 7erramentas .................................................................................................................................. 06
p()es standard ......................................................................................................................................... 00
bot,o de $etalUes ................................................................................................................................... 00
s bot)es de 'otal e *ubtotal .................................................................................................................... 0T
bot,o PrQ+isualY.impress,o ................................................................................................................... 0T
bot,o Microso7t E;cel ............................................................................................................................ 0Z
bot,o Microso7t E;cel _ p(,o E;cel Macros *AP ............................................................................... 0Z
bot,o Microso7t E;cel _ p(,o 'abela ................................................................................................... 0[
bot,o Microso7t E;cel _ p(,o 'abela Pi+ot ......................................................................................... 0[
bot,o Processamento de 'e;to ............................................................................................................... T3
bot,o File /ocal ...................................................................................................................................... T3
bot,o $estinatrio de correio eletr`nico ................................................................................................. T1
bot,o Modi7icar laVout ........................................................................................................................... T1
bot,o 8ra+ar /aVout ............................................................................................................................... T-
bot,o *elecionar /aVout ......................................................................................................................... T-
&nserindo uma 7iBura no cabe(alUo ............................................................................................................. T9
&mportando uma imaBem para o 1\- .......................................................................................................... T9
E;emplo de proBrama ................................................................................................................................ T6
Manual ABAP 9
Estruturas */&* .......................................................................................................................................... Z9
ALV " M#$% D&'#()&% ........................................................................................................................ *!
U'&/&aA4b ............................................................................................................................................ ZZ
#onceito de ]ariante de E;ibi(,o .............................................................................................................. Z[
'ela de *ele(,o 1elat^rio ........................................................................................................................... [1
+ORMATA,-O DO RELAT.RIO EM ALV ............................................................................... /3
$e7ini()es de dados para o laVout A/] ..................................................................................................... [-
1otinas para Formata(,o do /aVout ........................................................................................................... [9
S012&3' ............................................................................................................................................... /5
A3'$45 ................................................................................................................................................. /5
#omo mudar cor de uma coluna ............................................................................................................... 133
#omo mudar a cor de uma linUa ............................................................................................................... 131
#omo utiliYar outros bot)es na tela .......................................................................................................... 132
ProBramas *tandard Q Modelo .................................................................................................................. 13-
Manual ABAP 1
CONCEITO BREVE DO SAP
*AP um sistema Xue trabalUa com um nHmero muito Brande de tabelas interliBadasM Xue armaYenam e
manipulam os +alores de controle dos processos. Essas tabelas s,o respons+eis pelo armaYenamento dos +alores do
sistema e s,o di+ididas em Brupos Xue se interliBam em um todo. AssimM e;istem tabelas respons+eis pelas
in7orma()es de F&M outras pelas in7orma()es de *$M outras ainda por MMM mas todas elas apresentam campos cUa+es
Xue permitemM pelos mais di7erentes e complicados caminUosM a interliBa(,o e consistRncia de todo o sistema. Embora a
7erramenta ABAP\9 dentro do *AP se!a muito poderosa e praticamente capaY de permitir XualXuer customiYa(,o do
sistemaM muito importante manter os conceitos oriBinais sempre em menteM e nunca tentar 7or(ar alBuma coisa Xue
de+eria ter um comportamento natural. Por e;emploM nunca tente alterar um +alor de uma tabela do *AP (embora
per7eitamente poss<+elM com o comando UP$A'E)M sem um minucioso estudo de suas implica()es anteriormente. &sso
pode comprometer a inteBridade dos dados do sistemaM se n,o 7orem atualiYados todos os +alores de todas as tabelas
relacionadas a essa altera(,o.
INSTNCIA X CLIENT
E%'60'06# 7# E896&%#
+:16$3#%
1.1.1.1 A8;6$3# 74 N46'& <E%'#74% U5$74%=
AlsipM &linoisc
AtlantaM 8e^rBiac
#UampaiBnM &linoisc
'ambm muito importante o conceito do 7uncionamento do ambiente do sistema durante a e+olu(,o de um
pro!eto. &nicialmente de+emos entender os conceitos de client e instdncia=
C($&5'= de7inido como sendo uma unidade independente do 1\-M em termos comerciaisM
orBaniYacionais e tcnicos. &sso siBni7ica Xue possuem sua pr^pria con7iBura(,oM dados de aplica(,o e
dados cadastrais (master data)c
I5%'>53$#? de7inida como um ambiente do 1\- Xue aBrupa um ou mais clientsM onde se e;ecuta um
determinado trabalUoc
Uma instdncia de trabalUoM Beralmente possui mais de um clientM onde s,o trabalUados simultaneamente
di7erentes 7rentes de trabalUo do pro!eto. A inten(,o dessa di+is,o Xue se possa trabalUar somando +aloresM sem Xue
Ua!a con7litos de interesse. Por e;emploM durante um pro!etoM o client para desen+ol+imento das customiYa()es de
ABAP de+e ser di7erente dos outrosM pois trabalUa muito com testes e altera()es constantesM o Xue in+iabiliYa outros
tipos de ser+i(os.
*e essa di+is,o muitas +eYes a!udaM alBumas +eYes atrapalUa. 8eralmente as massas de dados s,o di7erentes nos
clientsM e o comportamento principalmente nos testes dos produtos customiYados pode ser di7erente. recomendado
pela pr^pria *AP Xue e;ista um client s^ para testesM com massa de dados completa Xue permita "recarBa% sempre Xue
necessrioM o Xue permitiria Xue as condi()es de teste pudessem ser repetidas. No dia a dia de um pro!eto isso muito
di7<cilM pois a manuten(,o desses clients pelo time de basis Beralmente n,o muito bem +ista.
As instdncias +ariam tambm ao lonBo de um pro!eto. A medida Xue o sistema +ai sendo re7inadoM Beralmente
se inicia uma no+a instdncia li+re dos +<cios e restos de testes da anterior. Pelo menos - instdncias sempre e;istem
durante o per<odo de um pro!eto. A instdncia de desen+ol+imentoM a de prQprodu(,o e 7inalmente a de produ(,o. #ada
+eY Xue o sistema miBrado de uma instdncia para a outraM somente de+e ser apro+eitado o Xue est compro+adamente
7uncionando na instdncia anteriorM de modo a diminuir os erros a cada miBra(,o.
O12&'4% @C($&5' D&9&57&5'A & @C($&5' I57&9&57&5'A
'odos os ob!etos criados em um sistema *APM podem ser di+ididos em dois BruposM tratados di7erentemente ao
lonBo de um pro!eto. s ob!etos cUamados "#lient &ndependents% s,o aXueles Xue uma +eY criados podem ser utiliYados
por todos os clients de uma mesma instdnciaM sem Xue se necessite de nenUuma articula(,o adicional. simples 7ato de
se encontrar ati+o no reposit^rio do sistema Uabilitado para a instdnciaM o permite ser utiliYado por todos os clients dessa
instdnciaM de maneira simultdnea. maior e;emplo de ob!etos independentes do client s,o os proBramas de ABAP\9
normais customiYados. Por e;emploM um report criado em um client de desen+ol+imentoM pode ser e;ecutado de um
outro client de testeM e;istente na mesma instdnciaM uma +eY Xue tenUa sido Berado e ati+ado.
s ob!etos dependentes do clientM ao contrrioM uma +eY criadoM por e;emploM no client de desen+ol+imento n,o
pode ser e;ecutado de nenUum outroM a menos Xue se!a transportado ou copiado para o seu destino. Esse um e;emplo
t<pico dos 7ormulrios em *APscript.
$entro da classe dos ob!etos dependentes do clientM e;iste um subBrupo Xue e;iBe uma aten(,o maior ainda. e
o caso dos loBotipos utiliYados dentro de um *APscript. Esses ob!etosM alm de n,o serem compartilUados pelos clientsM
Manual ABAP 2
tambm n,o Beram reXuest ao serem criadosM o Xue impossibilita serem transportados diretamenteM precisando
associarmosM primeiroM esses elementos a uma #UanBe 1eXuest atra+s de um proBrama. Nesse casoM os loBotipos
de+em ser Berados em cada um dos clientes em Xue se dese!e utiliYQloM atra+s da e;ecu(,o de um proBrama do *AP.
Esse tipo de problemaM ao lonBo de um pro!etoM e;iBe uma aten(,o especialM para e+itar problemas 7uturos. Por e;emploM
o desenUista tcnico de+e tomar o cuidado de ane;ar o arXui+o .'&F do loBotipo na especi7ica(,o do M$MM para 7utura
repeti(,o do processo de Bera(,o do loBotipo dentro do sistema. #aso esse cuidado n,o se!a tomadoM 7uturamente podeQ
se obter um loBotipo de tamanUo di7erenteM Berando reQOorP e perda de tempo.

T6#5%#BC&%
'ransa(,o um c^diBo al7anumrico de 23 caracteresM utiliYado para iniciar um processo dentro do sistema
*AP. 'odo e XualXuer processo ou parte dele de+e ser e;ecutado dentro do sistema atra+s de uma transa(,o. Na
customiYa(,o de ABAP\9M sempre Xue um 8AP do sistema cobertoM isso Bera pelo menos uma transa(,oM de modo Xue
o usurio possa e;ecutar esse produto customiYado de dentro do sistema.
'oda opera(,o realiYada atra+s do menu do sistemaM tambm corresponde a uma transa(,o. Um mtodo para
conUecermos o c^diBo de uma transa(,o cu!o caminUo pelo menu sabidoM entrarmos na mesmaM e na tela inicial
desta transa(,oM utiliYarmos o menu *istema *tatusM Xue in7orma o proBrama tela e transa(,o e;ecutados.
No desen+ol+imento de customiYa()es ABAP\9M as principais transa()es utiliYadasM s,o=
SE3*? abre o editor ABAP\9c
SE16? permite a +isualiYa(,o do conteHdo de tabelas do *APD
SE11? permite a +isualiYa(,o da arXuitetura de uma tabela\estrutura do *APc
SE43? cria(,o de menusc
SE/3? cria(,o de transa()es customiYadasc
SE!1? cria(,o e manuten(,o de 7ormulrios *APscriptsc
CMOD? cria(,o de pro!etos E;its (Field E;itsM User E;itsM ...)c
EDITOR ABAP/4
editor de proBrama(,o ABAP\9 do *AP pode ser encontrado atra+s do caminUo =
Menu *AP AF Ferramentas AF ABAP ?orPbencU AF $esen+ol+imento AF Editor Abap
ou pela transa(,o *E-Z.
Uma tela para a entrada do nome do proBrama abertaM como e;empli7icada abai;o. Para criar um proBrama
no+oM utiliYe um nome ainda n,o e;istente no reposit^rioM e apertar o bot,o #riar. Para editar ou e;ibir um proBrama !
e;istenteM entrar com o nome do proBrama e apertar os bot)es respecti+os.
Manual ABAP -
E;iste um padr,o de nomenclatura Xue de+e ser seBuidoM n,o s^ para nome de proBramasM mas para todos os
desen+ol+imentos no *AP 1\-. Esses padr)es podem +ariar de pro!eto a pro!eto e principalmente com a +ers,o do *AP
com a Xual se est trabalUando. Em todos os casos os nomes dos desen+ol+imentos come(am sempre com a ou N.
T#1&(# 7& S08:6$4 7& C45E&5BF4 7& N48&%
O12&3'
S'603'06& / EG#89(& M#G
L&5H')
P4%$'$45 D&%36$9'$45
ABAP
ProBrams
aP:..:.:KKKKKKKKKKKKKKKKKK
KKKK
-3 1
2
9Q6
T
[Q-3
a _ Permanent
P _ Pro!ect &denti7ier
Functional $escriptor ('able 1 )
ProBram 'Vpe= /iPe tUe old naminB
standards
Free cUoice 7or ProBram Name
E;= aA:MM:1:3313
$ata
Elements
aP:E:..:KKKKKKKKKKKKKKKKKK
KKKK
-3 1
2
9
0QT
[Q-3
a _ Permanent
P _ Pro!ect &denti7ier
E _ For $ata Element
Functional $escriptor ('able 1 )
$$&# name identi7ier
$omains aP:$:..:KKKKKKKKKKKKKKKKKK
KKKK
-3 1
2
9
0QT
[Q-3
a _ Permanent
P _ Pro!ect &denti7ier
$ _ For $omain
Functional $escriptor ('able 1 )
$$&# name identi7ier
MatcU
#ode
b!ects
aPKK 9 1
2
-Q9
a _ Permanent
P _ Pro!ect &denti7ier
Functional $escriptor ('able 1 )
'ables aP'..:KKKKKKKKKK 10 1
2
-
9Q6
TQ10
a _ Permanent
P _ Pro!ect &denti7ier
' _ For 'ables
Functional $escriptor ('able 1 )
*eXuential Number
*tructure aP*..:KKKKKKKKKKKKKKKKKKKKK
K
-3 1
2
-
9Q6
TQ-3
a _ Permanent
P _ Pro!ect &denti7ier
* _ For *tructures
Functional $escriptor ('able 1 )
$$&# name identi7ier
Manual ABAP 9
O12&3'
S'603'06& / EG#89(& M#G
L&5H')
P4%$'$45 D&%36$9'$45
]ieO aP]..:KKKKKKKKKK 10 1
2
-
9Q6
TQ10
a _ Permanent
P _ Pro!ect &denti7ier
] _ For ]ieO Name
Functional $escriptor ('able 1 )
$$&# name identi7ier
Function
Modules
aPF..:KKKKKKKKKKKKKKKKKKKKK
K
-3 1
2
-
9Q6
TQ-3
a _ Permanent
P _ Pro!ect &denti7ier
F _ For Function
Functional $escriptor ('able 1 )
$$&# name identi7ier
Function
8roups
aP:..:KKKKKKKKKKKKKKKKKKKK 20 1
2
9Q6
TQ20
a _ Permanent
P _ Pro!ect &denti7ier
Functional $escriptor ('able 1 )
$$&# name identi7ier
MessaBe
#lass
aP:.. Z 1
2
9Q6
a _ Permanent
P _ Pro!ect &denti7ier
Functional $escriptor ('able 1 )
'ransaction aP..KK 0 1
2
-Q9
6Q0
a _ Permanent
A _ Pro!ect &denti7ier
Functional $escriptor ('able 1 )
*eXuential Number
E.. aAMM31
User e;it
pro!ect
de7inition
aP..KKKK Z 1
2
-Q9
6QZ
a _ Permanent
A _ Pro!ect &denti7ier
Functional $escriptor ('able 1 )
User e;it &denti7ier
*apscript
Form
aP:..:KKKKKKKKKK 10 1
2
9Q6
TQ 10
a _ Permanent
P _ Pro!ect &denti7ier
Functional $escriptor ('able 1 )
$escripti+e &denti7ier
E;. aA:*$:N'AF&*#A/
Table 1 Functional Description
AM Asset ManaBement
# AccountinB
E* Especi7ica(,o do Produto
F& Finance
8P 8eneral Product
MM Material ManaBement
PP Production PlanninB
*$ *ales f $istribution
?M ?areUouse ManaBement
Program Type
1 1eport
n line
B BatcU
& #onsulte padr,o para &nter7ace
. &nclude
* *apscript
Manual ABAP 6
A aparRncia do editor n,o di7ere muito de um editor de te;to bem simplesM onde se poss<+el escre+er linUas
de comando e l^Bica.
Um dos recursos permitidos para Xue se utiliYe um outro editor como o Note Pad do ?indoOsM o recurso de
$oOnload e Upload. Atra+s do menu= Utilitrios AF utros Utilitrios AF Upload\$oOnloadM o sistema permite Xue
c^diBos escritos em outros editores possam ser carreBados no editor ABAP\9 e +iceQ+ersa.
Esse recurso nos permite sal+ar os c^diBos ainda inati+os ou incompletos. e e;tremamente Htil para mantermos
um controle pr^prio das +ers)es Xuando se est codi7icando.
Manual ABAP 0
EXEMPLOS CURSO BSICO
EXEMPLOS
E.EMP/ 1
1EP1' aE.P3331.
?1&'E= g111111g.
?1&'E= g222222gM
g------g.
?1&'E= \g111111g.
?1&'E= 16 g------g.
?1&'E= \ 'E.'Q331.
U/&NE.
U/&NE Z(0).
*I&P.
*I&P 2.
?1&'E = Z *NQ/AN8U.
?1&'E = \ *NQ$A'UM UN$E1 *NQ/AN8U.
E;istem alBuns tipos de +ari+eis cUamadas de +ari+eis do sistema. Elas possuem in7orma()es e dados do
processamentoM como o idioma de acesso (sVQlanBu)M a data (sVQdatum)M a Uora (sVQuYeit)M etc.. Essas in7orma()es est,o
contidas na estrutura *N*' (#ampos de sistema ABAPM Xue pode ser abre+iada para *N) e podem ser acessadas
con7orme o e;emplo acimaM o nome da estrutura mais o campo Xue se dese!a.
Manual ABAP T
E.EMP/ 2
1EP1' aE.#3332 N *'AN$A1$ PA8E @EA$&N8.
?1&'E gPA8 1g.
NE?QPA8E.
?1&'E gPA8 2g.
'PQFQPA8E.
?1&'E = gE.EMP/ 2 Q #U1* ABAP\9gM
Z3 gPaBegM
*NQPA8N.
U/&NE.
Manual ABAP Z
E.EMP/ -
1EP1' aE.P333-.
?1&'E = gN1MA/g.
F1MA' &N'EN*&F&E$ FF.
?1&'E = gNE81&' g.
F1MA' #/1 1.
?1&'E = gFUN$ AaU/g.
F1MA' #/1 FF.
F1MA' &N'EN*&F&E$ N.
?1&'E = gN1MA/g.
Manual ABAP [
E.EMP/ 9
1EP1' aE.P3339.
$A'A= NME(23) 'NPE #M
18(13) 'NPE &M
$A'A /&IE BIPFQBU$A'M
@1A(Z) ]A/UE g19=36=96g.
M]E g*olution #enterg ' NME.
18 A 9216[Z1Z.
$A'A A g1[[T-336g.
*I&P 2.
?1&'E= gNome=gM
NMEM
\ g18=gM
18 UN$E1 NMEM
\ g$ata=gM
$A'AM
\ g@ora=gM
@1A.
E.EMP/ 6
Manual ABAP 13
1EP1' aE.P3336.
PA1AME'E1= P:NME1(16) 'NPE #M
P:NME2(16) 'NPE # $EFAU/' gAbap FactorVgM
P:B'A1 1A$&BU''N 81UP 81M
P:B'A2 1A$&BU''N 81UP 81.
?1&'E P:NME1.
&F P:NME2 NE gABAP FA#'1Ng.
?1&'E P:NME2.
EN$&F.
&F P:B'A1 A g.g.
?1&'E \ gB'b 1 A#&NA$g.
E/*E.
?1&'E \ gB'b 2 A#&NA$g.
EN$&F.
Manual ABAP 11
Manual ABAP 12
E.EMP/ 0
Manual ABAP 1-
1EP1' aE.P3330 messaBeQid Ya.
PA1AME'E1= P:PA&* /&IE '336*Q/AN$1.
'AB/E* '336@.
*E/E#' > F1M '336@ ?@E1E /AN$1 A P:PA&* 1$E1 BN #&'N#.
?1&'E= \ '336@QBeYeiM
'336@Q/AN$1.
EN$*E/E#'.
&F *NQ*UB1# NE 3.
ME**A8E &333.
EN$&F.
Manual ABAP 19
E.EMP/ T
Manual ABAP 16
1EP1' aE.P333T.
'AB/E*= '336@..
$A'A ]:]A11 ]A/UE g1g.
$A'A= BE8&N F ':'336@ ##U1* 3M
/AN$1 /&IE '336@Q/AN$1M
BEaE& /&IE '336@QBEaE&.
$A'A= EN$ F ':'336@.
*E/E#' > F1M '336@ ?@E1E /AN$1 &N (gU*gM g$Eg) 1$E1 BN /AN$1.
':'336@Q/AN$1 A '336@Q/AN$1.
':'336@QBEaE& A '336@QBEaE&.
APPEN$ ':'336@.
EN$*E/E#'.
&F *NQ*UB1# NE 3.
?1&'E 'E.'Q331.
EN$&F.
/P A' ':'336@.
N #@AN8E F ':'336@Q/AN$1.
&F ]:]A11 A 3.
NE?QPA8E.
EN$&F.
F1MA' #/1 FF.
?1&'E g#UN'1N #&'Ng.
#/EA1 ]:]A11.
EN$N.
&F ':'336@Q/AN$1 A g$Eg.
F1MA' #/1 #/:''A/.
E/*E.
F1MA' #/1 #/:N1MA/.
EN$&F.
?1&'E = \ ':'336@Q/AN$1M
21 ':'336@QBEaE&.
EN$/P.
Manual ABAP 10
E.EMP/ Z
Manual ABAP 1T
1EP1' aE.P333Z ME**A8EQ&$ aA.
'AB/E*= BIPF.
PA1AME'E1= P:BE/N1 /&IE BIPFQBE/N1 $EFAU/' g6333333391gM
P:AN /&IE BIPFQ8hA@1 $EFAU/' g 2331g.
$A'A= A1G /&IE 1/81APQF&/ENAME ]A/UE g#=i'EMPicurso.t;tg.
$A'A= BE8&N F ':a#U1* ##U1* 3M
a$A'A /&IE BIPFQBU$A'M
*PA#E1 'NPE # ]A/UE g gM
aBE/N1 /&IE BIPFQBE/N1M
*PA#E2 'NPE # ]A/UE g gM
a8hA@1 /&IE BIPFQ8hA@1.
$A'A= EN$ F ':a#U1*.
*E/E#' > F1M BIPF ?@E1E BE/N1 A P:BE/N1
AN$ 8hA@1 A P:AN.
':a#U1*Qa$A'A A BIPFQBU$A'.
':a#U1*QaBE/N1 A BIPFQBE/N1.
':a#U1*Qa8hA@1 A BIPFQ8hA@1.
APPEN$ ':a#U1*.
EN$*E/E#'.
&F *NQ*UB1# A 3.
#A// FUN#'&N g?*:$?N/A$g
E.P1'&N8
> bin:7ilesiYe A g g
> codepaBe A g g
F&/ENAME A A1G
> 7iletVpe A g g
> mode A g g
> OP1:n:7ormat A g g
> ?I1:N:*&aE A g g
> ?I1:':F1MA' A g g
> ?I1:':*&aE A g g
> col:select A g g
> col:selectmasP A g g
> importinB
> 7ilelenBtU A
'AB/E*
$A'A:'AB A ':a#U1*
> 7ieldnames A
E.#EP'&N*
F&/E:PEN:E111 A 1
F&/E:?1&'E:E111 A 2
&N]A/&$:F&/E*&aE A -
&N]A/&$:'AB/E:?&$'@ A 9
&N]A/&$:'NPE A 6
N:BA'#@ A 0
UNIN?N:E111 A T
'@E1* A Z.
ME**A8E E33T.
E/*E.
ME**A8E E33Z.
EN$&F
Manual ABAP 1Z
Manual ABAP 1[
E.EMP/ [
1EP1' aE.P333[ ME**A8EQ&$ aA.
'AB/E*= a#U1*.
$A'A= A1G /&IE 1/81APQF&/ENAME ]A/UE g#=i'EMPi#U1*.'.'gM
]:#N' 'NPE &.
$A'A= BE8&N F ':a#U1* ##U1* 3M
a$A'A /&IE a#U1*Qa$A'AM
*PA#E1 'NPE # ]A/UE g gM
aBE/N1 /&IE a#U1*QaNUME1M
*PA#E2 'NPE # ]A/UE g gM
a8hA@1 /&IE a#U1*QaAN.
$A'A= EN$ F ':a#U1*.
#A// FUN#'&N g?*:UP/A$g
E.P1'&N8
> #$EPA8E A g g
F&/ENAME A A1G
> F&/E'NPE A g g
> @EA$/EN A g g
> /&NE:E.&' A g g
> '1UN#/EN A g g
> U*E1:F1M A g g
> U*E1:P18 A g g
> importinB
> 7ilelenBtU A
'AB/E*
$A'A:'AB A ':a#U1*
E.#EP'&N*
#N]E1*&N:E111 A 1
F&/E:PEN:E111 A 2
F&/E:1EA$:E111 A -
&N]A/&$:'AB/E:?&$'@ A 9
&N]A/&$:'NPE A 6
N:BA'#@ A 0
UNIN?N:E111 A T
'@E1* A Z.
#/EA1 ]:#N'.
/P A' ':a#U1*.
a#U1*Qa$A'A A ':a#U1*Qa$A'A.
a#U1*QaNUME1 A ':a#U1*QaBE/N1.
a#U1*QaAN A ':a#U1*Qa8hA@1.
&N*E1' a#U1*.

&F *NQ*UB1# A 3.
]:#N' A ]:#N' D 1.
EN$&F.
EN$/P.
?1&'E= gF1AM &N*E1&$* gM ]:#N'M gNA 'ABE/A a#U1*g.
Manual ABAP 23
EXERCCIOS
E.E1#2#& 1
$esen+ol+er um proBrama aE.#jj31 Xue resulte a listaBem seBuinte onde =
a) jj Q NHmero do alunoc
b) ]ari+eis de sistema utiliYadas =
*NQ$A'UM
*NQUaE&'
OBSERVA,IES?
Ap^s indicar a $e+elopment #lass= *A/]A1 o ob!etoM porm Nb sal+ar como /ocal b!ectM
Xuando o *AP perBuntar por um 1eXuest Numberc
Pressionar #1EA'E 1EGUE*' e diBitar a seBuinte descri(,o=
E.E1#2#& 2
$esen+ol+er um proBrama aE.#jj32 Xue resulte o cabe(alUo seBuinte onde =
a) jj Q NHmero do aluno
b) ]ari+el de sistema utiliYada =
*NQUNAME
*NQ$A'UM
E.E1#2#& -
Manual ABAP 21
$esen+ol+er um proBrama aE.#jj3- Xue possua as seBuintes caracter<sticas =
a) jj Q NHmero do aluno
b) *imula(,o de uma calculadora com 9 opera()es ( DM QM \M > ) e dois campos para entrada de dados
c) E;iBRncia Xuanto W entrada de todos os dados
d) /aVQout ( tanto de entrada como de sa<da ) de acordo com os apresentados a seBuir
E.E1#2#& 9
$esen+ol+er um proBrama aE.#jj39 Xue possua as seBuintes caracter<sticas =
a) jj Q NHmero do aluno
Manual ABAP 22
b) Gue atra+s das tabelas *PF/& e *F/&8@' resulte um relat^rio dos +`os e;istentes para um determinado
percursoM sendo Xue a e;posi(,o da aerona+e utiliYada e do pre(o da passaBem ocorram apenas Xuando 7or
uma opera(,o de reser+a
c) /aVQout ( tanto de entrada como de sa<da ) de acordo com os apresentados a seBuir
d) #ampos utiliYados =
*PF/&Q#A11&$
*PF/&Q#&'NF1M
*PF/&Q#&'N'
*PF/&QF/'&ME
*PF/&QA11'&ME
*PF/&Q$EP'&ME
*F/&8@'QF/$A'E
*F/&8@'QP/ANE'NPE
*F/&8@'QP1&#E
Manual ABAP 2-
Manual ABAP 29
E.E1#2#& 6
$esen+ol+er um proBrama aE.#jj36 Xue a partir de um arXui+o te;to contendo a declara(,o de uma das
aerona+es citadas a seBuirM se!a capaY de criar um outro arXui+o com a declara(,o da aerona+e bem como o nome da
companUia area. proBrama de+e conter as seBuintes caracter<sticas=
a) jj Q NHmero do aluno
b) E;ibi(,o de mensaBem tanto no caso de sucesso na cria(,o do arXui+o 7inal como no caso da ocorrencia
de alBum erro.
c) /aVQout ( tanto de entrada como de sa<da ) de acordo com os apresentados a seBuir
d) #ampos utiliYados = *F/&8@'Q#A11&$ *F/&8@'QP/ANE'NPE
Manual ABAP 26
RESOLU,IES
1E*/U4b 1
1EP1' aE.#3331.
*I&P 6.
U/&NE.
U/&NE -3(2[).
?1&'E= \-T 'E.'Q331.
*I&P.
?1&'E= -3g$&AgM
9[ *NQ$A'UMM
\g@1Ag UN$E1 g$&AgM
*NQUaE&' UN$E1 *NQ$A'UM.
*I&P.
U/&NE -3(2[).
U/&NE.
1E*/U4b 2
1EP1' aE.#3332 N *'AN$A1$ PA8E @EA$&N8.
*I&P 9.
U/&NE 9(ZZ).
?1&'E= \9 gkgM
6 'E.'Q331M
0Z gkgM
TT *NQ$A'UMM
[1 gkg.
F1MA' &N'EN*&F&E$ FF.
?1&'E= T3 g$ata= gM
\1 gg.
U/&NE 9(ZZ).
?1&'E= \6 gNome=gM
T3 gUsurio=g.
F1MA' &N'EN*&F&E$ N.
?1&'E= 9 gkgM
11 g*olution #entergM
0Z gkgM
T[ *NQUNAMEM
[1 gkgM
\1 gg.
U/&NE 9(ZZ).
Manual ABAP 20
1E*/U4b -
1EP1' aE.#333- ME**A8EQ&$ NA.
PA1AME'E1 = P:FA'11(6) 'NPE &M
P:FA'12(6) 'NPE &M
P:A$$ 1A$&BU''N 81UP 81M
P:*UB 1A$&BU''N 81UP 81M
P:MU/' 1A$&BU''N 81UP 81M
P:$&] 1A$&BU''N 81UP 81.
$A'A = 1E*U/'(0) 'NPE &M
PE1A#A(16) 'NPE #.
&F P:FA'11 A gg 1 P:FA'12 A gg.
ME**A8E &336.
E/*E.
&F P:A$$ A g.g.
1E*U/' A P:FA'11 D P:FA'12.
PE1A#A A g*MAg.
EN$&F.
&F P:*UB A g.g.
1E*U/' A P:FA'11 Q P:FA'12.
PE1A#A A g*UB'1A4bg.
EN$&F.
&F P:MU/' A g.g.
1E*U/' A P:FA'11 > P:FA'12.
PE1A#A A gMU/'&P/&#A4bg.
EN$&F.
&F P:$&] A g.g.
1E*U/' A P:FA'11 \ P:FA'12.
PE1A#A A g$&]&*bg.
EN$&F.
*I&P -.
U/&NE.
F1MA' #/1 #/:N1MA/.
?1&'E = gPE1A$1 1 AgM
P:FA'11M
1-2 g gM
\ gPE1A$1 2 AgM
P:FA'12M
93 gPE1A4b AgM
PE1A#AM
1-2 g g.
U/&NE.
F1MA' #/1 #/:''A/.
?1&'E = \ g1E*U/'A$ AgM
1E*U/'M
1-2 g g.
U/&NE.
Manual ABAP 2T
EN$&F.
1E*/U4b 9
1EP1' aE.#3339 ME**A8EQ&$ NA N *'AN$A1$ PA8E @EA$&N8.
PA1AME'E1= P:1&8EM /&IE *PF/&Q#&'NF1MM
P:$E*'&N /&IE *PF/&Q#&'N'M
P:1E*E1] 1A$&BU''N 81UP 81M
P:$E*' 1A$&BU''N 81UP 81.
'AB/E*= *PF/&M *F/&8@'.
$A'A = ]:#N'A$1 'NPE &M
]:]A11 'NPE &.
$A'A= BE8&N F ':] ##U1* 3M
#A11&$ /&IE *PF/&Q#A11&$M
#&'NF1M /&IE *PF/&Q#&'NF1MM
#&'N' /&IE *PF/&Q#&'N'M
F/'&ME /&IE *PF/&QF/'&MEM
A11'&ME /&IE *PF/&QA11'&MEM
$EP'&ME /&IE *PF/&Q$EP'&MEM
F/$A'E /&IE *F/&8@'QF/$A'EM
P/ANE'NPE /&IE *F/&8@'QP/ANE'NPEM
P1&#E /&IE *F/&8@'QP1&#E.
$A'A= EN$ F ':].
*E/E#' > F1M *PF/& ?@E1E *PF/&Q#&'NF1M A P:1&8EM
AN$ *PF/&Q#&'N' A P:$E*'&N.
*E/E#' > F1M *F/&8@' ?@E1E *F/&8@'Q#A11&$ A *PF/&Q#A11&$
AN$ *F/&8@'Q#NN&$ A *PF/&Q#NN&$.

]:#N'A$1 A ]:#N'A$1 D 1.
':]Q#A11&$ A *PF/&Q#A11&$.
':]Q#&'NF1M A *PF/&Q#&'NF1M.
':]Q#&'N' A *PF/&Q#&'N'.
':]Q$&*'AN#E A *PF/&Q$&*'AN#E.
':]QF/'&ME A *PF/&QF/'&ME.
':]QA11'&ME A *PF/&QA11'&ME.
':]Q$EP'&ME A *PF/&Q$EP'&ME.
':]Q$&*'&$ A *PF/&Q$&*'&$.
':]QF/$A'E A *F/&8@'QF/$A'E.
':]QP/ANE'NPE A *F/&8@'QP/ANE'NPE.
':]QP1&#E A *F/&8@'QP1&#E.
APPEN$ ':].
EN$*E/E#'.
EN$*E/E#'.
&F *NQ*UB1# NE 3.
ME**A8E E330.
EN$&F.
*I&P.
?1&'E= 'E.'Q331M
]:#N'A$1M
[6 gg.
*I&P 2.
]:]A11 A 1.
Manual ABAP 2Z
/P A' ':].
&F ]:]A11 A 1.
U/&NE.
F1MA' #/1 #/:81UP.
?1&'E= \ gkgM
-3 ':]Q#&'NF1MM
':]Q#&'N'M
[6 gkg.
#/EA1 ]:]A11.
U/&NE.
F1MA' #/1 #/:@EA$&N8.

?1&'E= \ gkgM
2 gPE1A$1AgM
1- g$A'AgM
20 g'EMP $E ]gM
91 g*A2$AgM
61 g#@E8A$Ag.
&F P:1E*E1] A g.g.
?1&'E= 01 gAE1NA]EgM
Z[ gP1E4g.
EN$&F.
?1&'E= [6 gkg.
U/&NE.
EN$&F.
F1MA' #/1 #/:N1MA/.
?1&'E= \ gkgM
2 ':]Q#A11&$M
1- ':]QF/$A'EM
20 ':]QF/'&MEM
91 ':]Q$EP'&MEM
61 ':]QA11'&ME.
&F P:1E*E1] A g.g.
?1&'E= 01 ':]QP/ANE'NPEM
T6 ':]QP1&#E.
EN$&F.
?1&'E= [6 gkg.
EN$/P.
U/&NE
Manual ABAP 2[
1E*/U4b 6
1EP1' aE.#3336 ME**A8EQ&$ NA.
'AB/E*= *F/&8@'.
PA1AME'E1= P:A1G /&IE 1/81APQF&/ENAME $EFAU/' g#=i'EMPiNA]E.'.'gM
P:A1G2 /&IE 1/81APQF&/ENAME $EFAU/' g#=i'EMPi$A$*.'.'g.
$A'A= BE8&N F ':a#U1* ##U1* 3M
aAE1NA] /&IE *F/&8@'QP/ANE'NPE.
$A'A= EN$ F ':a#U1*.
$A'A= BE8&N F ':a#U1*2 ##U1* 3M
aAE1NA] /&IE *F/&8@'QP/ANE'NPEM
E*PA#E1 'NPE # ]A/UE g gM
a#MPANN /&IE *F/&8@'Q#A11&$.
$A'A= EN$ F ':a#U1*2.
#A// FUN#'&N g?*:UP/A$g
E.P1'&N8
> #$EPA8E A g g
F&/ENAME A P:A1G
> F&/E'NPE A g g
> @EA$/EN A g g
> /&NE:E.&' A g g
> '1UN#/EN A g g
> U*E1:F1M A g g
> U*E1:P18 A g g
> importinB
> 7ilelenBtU A
'AB/E*
$A'A:'AB A ':a#U1*
E.#EP'&N*
#N]E1*&N:E111 A 1
F&/E:PEN:E111 A 2
F&/E:1EA$:E111 A -
&N]A/&$:'AB/E:?&$'@ A 9
&N]A/&$:'NPE A 6
N:BA'#@ A 0
UNIN?N:E111 A T
'@E1* A Z.
*E/E#' > F1M *F/&8@' ?@E1E P/ANE'NPE A ':a#U1*QaAE1NA].
':a#U1*2QaAE1NA] A *F/&8@'QP/ANE'NPE.
':a#U1*2Qa#MPANN A *F/&8@'Q#A11&$.
APPEN$ ':a#U1*2.
EN$*E/E#'.
&F *NQ*UB1# A 3.
#A// FUN#'&N g?*:$?N/A$g
E.P1'&N8
> B&N:F&/E*&aE A g g
> #$EPA8E A g g
F&/ENAME A P:A1G2
> F&/E'NPE A g g
> M$E A g g
> ?I1:N:F1MA' A g g
> ?I1:N:*&aE A g g
> ?I1:':F1MA' A g g
> ?I1:':*&aE A g g
Manual ABAP -3
> #/:*E/E#' A g g
> #/:*E/E#'MA*I A g g
> importinB
> 7ilelenBtU A
'AB/E*
$A'A:'AB A ':a#U1*2
> F&E/$NAME* A
E.#EP'&N*
F&/E:PEN:E111 A 1
F&/E:?1&'E:E111 A 2
&N]A/&$:F&/E*&aE A -
&N]A/&$:'AB/E:?&$'@ A 9
&N]A/&$:'NPE A 6
N:BA'#@ A 0
UNIN?N:E111 A T
'@E1* A Z.
ME**A8E &33T.
E/*E.
ME**A8E E33Z.
EN$&F.
Manual ABAP -1
TEORIA BDC SESSION
BDC S&%%$45
ABAP\9 tem uma tcnica de proBrama(,o para a coloca(,o de dados dentro do *AP conUecida como BatcU
$ata #ommunication *ession ou B$# *ession.
P#%%4% 9#6# 36$#BF4 7& 08# BDC S&%%$45
&denti7icar as telas Xue a transa(,o processar
Escre+er o proBrama em ABAP para Berar a tabela de B$# Xue submeter os dados na transa(,o
*ubmeter a tabela de B$# para o sistema em modo batcU ou atra+s do comando #A// '1AN*A#'&N
I7&5'$J$3#574 '&(#% &8 08# '6#5%#BF4
Guando um usurio entra com dados no *AP utiliYa transa()es. #ada transa(,o tem +rias telas identi7icadas
por um nome de proBrama e um nHmero de tela. As in7orma()es sobre a tela atual obtida atra+s no menu *VstemM
item *tatus.
('ela *tatus)
Alm de identi7icar o nome do proBrama e nHmero da telaM de+eQse tambm identicar o(s) campo(s) Xue se
dese!a entrar com o dados. Para conseBuir saber o nome da tabela\estrutura e o nome do campo de+eQse clicar sobre o
campo Xue entraria com o dado e teclar EF1F seBuido do bot,o "&n7orma()es 'cnicas%.
E'ela &n7orma(,o 'cnicaF
Nesta tela conseBueQse Xuase todos os dados para a sess,o de B$#. nome do proBramaM o nHmero da tela e o
nome do campo para a sess,o de BatcU input.
Alm destes dados de+eQse saber Xuais as teclas\7un()es de mo+imenta(,o entres as telas. Por e;emploM se para
passar para a pr^;ima tela da transa(,o de+eQse teclar EEnterFM o c^diBo para a B$# "\3%.
$e modo BeralM de+eQse pensar na transa(,o sem a utiliYa(,o do mouse. *e um bot,o de+e ser clicado pelo
mouse de+eQse descobrir Xual o nome da 7un(,o deste bot,o e passar este c^diBo para a tabela B$#.
K&6#574 # '#1&(# BDC
A tabela B$# uma tabela interna com uma estrutura espec<7ica no Xual preencUida para ser en+iada para a
sess,o batcU input. Esta estrutura se cUama B$#$A'A e tem os seBuintes campos=
Campo Tipo Descrio
program Char(40) Nome do programa da transao
dynpro Numc(4) Nmero da tea da transao
dynbegn Char(1) Indcador de uma nova tea
Fnam Char(132) Nome do campo da tea
fva Char(132) Vaor a ser coocado no campo
Manual ABAP -2
E;emplo de uma tabela com estrutura B$#$A'A com dados=
program dynpro dynbegin fnam fval
SAPMF02K 0100 X
RF02K-LIFNR 0010010
RF02K-EKORG CNTL
SAPMF02K 0200 X
. . . . .
c^diBo em ABAP para isto seria=
1EP1' a........
$A'A= BE8&N F 'B$# ##U1* 133.
&N#/U$E *'1U#'U1E B$#$A'A.
$A'A= EN$ F 'B$#.
> &n<cio do proBrama principal
M]E J*APMF32IL ' 'B$#QP181AM.
M]E J3133L ' 'B$#Q$NNP1.
M]E J.L ' 'B$#Q$NNBE8&N.
APPEN$ 'B$#.
M]E J1F32IQ/&FN1L ' 'B$#QFNAM.
M]E J3313313L ' 'B$#QF]A/.
APPEN$ 'B$#.
M]E J1F32IQEI18L ' 'B$#QFNAM.
M]E J#N'/L ' 'B$#QF]A/.
APPEN$ 'B$#.
> E assim por diante at Xue a tabela este!a completa
e claro Xue e;istir uma repeti(,o muito Brande de linUas para a cria(,o de uma tabela B$# e por isso mesmo
de+eQse criar 7orms para aBiliYar esta mo+imenta(,o.
Para 7acilitar o trabalUo de mapeamento dos camposM o *AP disp)e de uma 7erramenta Xue 7aY isso para o
proBramador. e a transa(,o *@$B. Essa transa(,o monitora todos os passos Xue o usurio 7aY Xuando utiliYa uma
transa(,o e a resposta do *@$B uma lista com os campos e telas Xue 7oram utiliYadosM permitindo Xue o proBramador
crie as tabelas B$#. @ ainda um recurso Xue Bera automaticamente o c^diBo do proBrama para a cria(,o da tabela
B$#M 7acilitando ainda mais o trabalUoM mas a lista ! su7iciente e Ws +eYes pre7er<+elM para mantermos os mesmos
padr)es nos c^diBos.
Essa transa(,o 7unciona da seBuinte 7orma=
Na primeira telaM in7ormaQse um nome para o mapeamento Xue se dese!a e7etuar=
Manual ABAP --
Em seBuidaM in7ormaQse a transa(,o Xue de+e ser mapeada.
A transa(,o ent,o cUamada. $e+eQse 7aYer o processamento normal nesta transa(,o. Guando terminar (sal+ar
ou cancelar)M o *@$B e;ibe a seBuinte telaM com a lista dos campos e telas utiliYados=
#aso esses dados satis7a(am o proBramadorM podeQse sal+Qlos. Para a no+a consultaM de+eQse in7ormar na
primeira tela o nome com o Xual o mapeamento 7oi sal+o e clicar em s<ntese. Uma tela aparecer com os mapeamentos
correspondentes (podeQse criar mais de um com o mesmo nome)=
Manual ABAP -9
NelaM teremos os seBuintes bot)es=
Eles permitem Xue se crie uma pasta de BatcU &nputM um proBramaM dados de teste e ainda um m^dulo de
7un(,oM com base no mapeamento 7eito.
E5E$#574 08# '#1&(# BDC 9#6# 4 %$%'&8#
#omo 7oi citado no in<cioM e;istem duas 7ormas de se en+iar uma tabela B$# para o sistema. ]ia #A//
'1AN*A#'&N ou +ia BatcU &nput.
P643&%%#574 7#74% 348 CALL TRANSACTION
comando #A// '1AN*A#'&N possibilita o processamento de uma tabela B$# imediatamente pelo
sistema. s dados da tabela B$# s,o utiliYados para e;ecutar a transa(,o e o return code deste comando nos mostra se
a transa(,o 7oi e;ecutada com sucesso ou n,o.
A sinta;e deste comando =
CALL TRANSACTION '6#5% LUSINK 173'#1 MODE 847&M.
s modos para e;ecutar este comando s,o=
A M4%'6# '47#% #% '&(#%
E M4%'6# #9&5#% '&(#% 348 &664%
N NF4 84%'6# #% '&(#%
Em adi(,o ao return codeM podemos utiliYar as +ari+eis de sistema para recuperar a mensaBem Xue o *AP
en+iou ao trmino do processamento. As +ari+eis mais utiliYadas s,o= *NQM*8&$M *NQM*8]1M *NQM*8]2M *NQ
M*8]- e *NQM*8]9.
Manual ABAP -6
P643&%%#574 7#74% 348 BDCNINSERT
A seBunda maneira para processar uma sess,o de B$# submetendoQa ao sistema +ia processamento batcU.
#om este mtodoM +rias transa()es podem ser e;ecutadas pelo *AP masM ao contrrio do #A// '1AN*A#'&NM
estas transa()es n,o ser,o e;ecutadas imediatamenteM ser,o colocadas em uma pasta de BatcU &nput Xue pode ser
e;ecutada na transa(,o *M-6 ou scUedulada para rodar em um dia e uma Uora dese!ada.
E;istem trRs m^dulos de 7un()es Xue de+em ser e;ecutados para este tipo de processamento.
BDCNOPENNKROUP
Esta 7un(,o abre a sess,o de B$# e necessita ser cUamada antes de XualXuer processamento.
BDCNINSERT
Esta 7un(,o cUamada para cada transa(,o no processamento BatcU.
BDCNCLOSENKROUP
Esta 7un(,o de+e ser cUamada ap^s todo processamento para Xue a pasta de processamento BatcU se!a criada.
+05BF4 BDCNOPENNKROUP
s seBuintes pardmetros s,o passados para a 7un(,o=
#/&EN' #liente do *AP Xue ser processada a sess,o
81UP Nome para a pasta de BatcU input (n,o precisa ser Hnico)
@/$$A'E *uspende o processamento da pasta de BatcU input at a data especi7icada
IEEP Mantem a pasta de BatcU &nput ap^s o processamento
U*E1 Nome de usurio Xue e;ecutar o BatcU &nput.
+05BF4 BDCNINSERT
s seBuintes pardmetros s,o passados para a 7un(,o=
'#$E #^diBo da transa(,o na Xual ser e;ecutada a tabela B$#
$NNP1'AB Nome da tabela interna utiliYada para Berar a pasta de BatcU
+05BF4 BDCNCLOSENKROUP
N,o e;istem pardmetros a serem passados para esta 7un(,o.
Manual ABAP -0
EXEMPLOS BDC SESSION
> E;emplo=
> En+io de dados para a transa(,o F$31 atra+s de BatcU &nput ou #all
> 'ransaction (a escolUa do usurio).
> Ao 7inal do proBrama um relat^rio emitido com a tabela de B$#
> 7eita.
> Ao e;ecutar o proBrama escolUa a +ariante criada para Xue os dados
> se!am preencUidos.
>
> *e alBum erro ocorrer na transa(,o\dados +ia #all 'ransaction uma
> pasta de erro ser Berada para posterior e;ecu(,o atra+s da transaQ
> (,o *M-6.
>
P181AM aaB$#..1 /&NEQ*&aE 266
ME**A8EQ&$ aa.
$A'A= BE8&N F ':B$# ##U1* 3.
&N#/U$E *'1U#'U1E B$#$A'A.
$A'A= EN$ F ':B$#.
*E/E#'&NQ*#1EEN BE8&N F B/#I B1 ?&'@ F1AME '&'/E '1.
PA1AME'E1*= P:BUI1* /&IE INB1QBUI1*M lEmpresa
P:I'I$ /&IE INA1QI'I$M l8rupo de contas
P:NAME1 /&IE INA1QNAME1M lNome
P:*1'/ /&IE INA1Q*1'/M l'ermo de busca
P:1'31 /&IE INA1Q1'31M l#idade
P:/AN$1 /&IE INA1Q/AN$1M lpa<s
P:P*'/a /&IE INA1QP*'/aM l#ai;a postal
P:/&FN1 /&IE INA1Q/&FN1M lFornecedor
P:AIN' /&IE INB1QAIN'M l#onta de reconcilia(,o
P:F$81] /&IE INB1QF$81]M
P:]a*Ia /&IE INB1Q]a*IaM
P:a'E1M /&IE INB1Qa'E1MM
P:'81U /&IE INB1Q'81UM
P:.a]E1 A* #@E#IB. $EFAU/' g.gM
P:.]E11 A* #@E#IB. $EFAU/' g.g.
*E/E#'&NQ*#1EEN EN$ F B/#I B1.
*E/E#'&NQ*#1EEN BE8&N F B/#I B2 ?&'@ F1AME '&'/E '2.
PA1AME'E1*= P:BA'#@ 1A$&BU''N 81UP 11M l+ia BatcU input
P:#A// 1A$&BU''N 81UP 11M l+ia #all 'ransaction
P:M$E(1) 'NPE # $EFAU/' gNg. lmodo call transaction
*E/E#'&NQ*#1EEN EN$ F B/#I B2.
&N&'&A/&aA'&N.
'1 A g$ados para a sess,o B$#g.
'2 A g'ipo processamento da sess,o B$#g.
*'A1'QFQ*E/E#'&N.
> #ria os reBistros na tabela de B$#
PE1F1M F:?1&'E:1E#1$*.
> En+ia a sess,o B$#
PE1F1M F:*UBM&':B$#.
> 8era um relat^rio de auditoria
PE1F1M F:?1&'E:/8.
EN$QFQ*E/E#'&N.
Manual ABAP -T
F1M F:?1&'E:1E#1$*.
> proBrama *APMF32$ Q tela 136
PE1F1M F:B$#:*#1EEN 'AB/E* ':B$#
U*&N8 g*APMF32$g g3136g.
PE1F1M F:B$#:F&E/$ 'AB/E* ':B$#=
U*&N8 g1F32$QBUI1*g P:BUI1*M
U*&N8 g1F32$QI'I$g P:I'I$M
U*&N8 gB$#:I#$Eg g\3g.
> proBrama *APMF32$ Q tela 113
PE1F1M F:B$#:*#1EEN 'AB/E* ':B$#
U*&N8 g*APMF32$g g3113g.
PE1F1M F:B$#:F&E/$ 'AB/E* ':B$#=
U*&N8 gINA1QNAME1g P:NAME1M
U*&N8 gINA1Q*1'/g P:*1'/M
U*&N8 gINA1Q*P1A*g *NQ/AN8UM
U*&N8 gINA1QP*'/ag P:P*'/aM
U*&N8 gINA1Q1'31g P:1'31M
U*&N8 gINA1Q/AN$1g P:/AN$1M
U*&N8 gB$#:I#$Eg g\3g.
> proBrama *APMF32$ Q tela 123
PE1F1M F:B$#:*#1EEN 'AB/E* ':B$#
U*&N8 g*APMF32$g g3123g.
PE1F1M F:B$#:F&E/$ 'AB/E* ':B$#=
U*&N8 gINA1Q/&FN1g P:/&FN1M
U*&N8 gB$#:I#$Eg g\3g.
> proBrama *APMF32$ Q tela 1-3
PE1F1M F:B$#:*#1EEN 'AB/E* ':B$#
U*&N8 g*APMF32$g g31-3g.
PE1F1M F:B$#:F&E/$ 'AB/E* ':B$#=
U*&N8 gB$#:I#$Eg g\3g.
> proBrama *APMF32$ Q tela 213
PE1F1M F:B$#:*#1EEN 'AB/E* ':B$#
U*&N8 g*APMF32$g g3213g.
PE1F1M F:B$#:F&E/$ 'AB/E* ':B$#=
U*&N8 gINB1QAIN'g P:AIN'M
U*&N8 gINB1QF$81]g P:F$81]M
U*&N8 gINB1Q]a*Iag P:]a*IaM
U*&N8 gB$#:I#$Eg g\3g.
> proBrama *APMF32$ Q tela 216
PE1F1M F:B$#:*#1EEN 'AB/E* ':B$#
U*&N8 g*APMF32$g g3216g.
PE1F1M F:B$#:F&E/$ 'AB/E* ':B$#=
U*&N8 gINB1Qa'E1Mg P:a'E1MM
U*&N8 gINB1Q'81Ug P:'81UM
U*&N8 gINB1Q.a]E1g P:.a]E1M
U*&N8 gINB1Q.]E11g P:.]E11M
U*&N8 gB$#:I#$Eg g\11g.
EN$F1M.
Manual ABAP -Z
F1M F:*UBM&':B$#.
> ]eri7ica(,o do tipo de processamento
&F P:BA'#@ EG g.g.
> lAbre a pasta de BatcU &nput
#A// FUN#'&N gB$#:PEN:81UPg
E.P1'&N8
#/&EN' A *NQMAN$'
81UP A gF$31QE.31g
IEEP A g.g
U*E1 A *NQUNAME.
> &nsere a tabela de B$# na pasta
#A// FUN#'&N gB$#:&N*E1'g
E.P1'&N8
'#$E A gF$31g
'AB/E*
$NNP1'AB A ':B$#.
&F *NQ*UB1# NE 3.
ME**A8E E333 ?&'@ gErro na 7un(,o B$#:&N*E1'g.
EN$&F.
> FecUa a pasta de batcU &nput
#A// FUN#'&N gB$#:#/*E:81UPg.
E/*E.
> #Uama o mtodo #A// '1AN*A#'&N para inserir os dados
#A// '1AN*A#'&N gF$31g U*&N8 ':B$#
M$E P:M$E
UP$A'E g*g.
&F *NQ*UB1# NE 3.
&F P:M$E NE gNg.
#A// FUN#'&N gB$#:PEN:81UPg
E.P1'&N8
#/&EN' A *NQMAN$'
81UP A gF$31QE1131g
IEEP A g.g
U*E1 A *NQUNAME.
> &nsere a tabela de B$# na pasta
#A// FUN#'&N gB$#:&N*E1'g
E.P1'&N8
'#$E A gF$31g
'AB/E*
$NNP1'AB A ':B$#.
> FecUa a pasta de batcU &nput
#A// FUN#'&N gB$#:#/*E:81UPg.
EN$&F.
ME**A8E E333 ?&'@ gErro no #A// '1AN*A#'&Ng.
EN$&F.
EN$&F.
EN$F1M.
Manual ABAP -[
F1M F:B$#:*#1EEN 'AB/E* P:B$# *'1U#'U1E B$#$A'A
U*&N8 P:P181AM P:*#1EEN.
#/EA1 P:B$#.
M]E= P:P181AM ' P:B$#QP181AMM
P:*#1EEN ' P:B$#Q$NNP1M
g.g ' P:B$#Q$NNBE8&N.

APPEN$ P:B$#.
EN$F1M.
F1M F:B$#:F&E/$ 'AB/E* P:B$# *'1U#'U1E B$#$A'A
U*&N8 P:NAME P:]A/UE.
#A*E P:]A/UE.
?@EN *PA#E.
?@EN '@E1*.
#/EA1 P:B$#.
M]E= P:NAME ' P:B$#QFNAMM
P:]A/UE ' P:B$#QF]A/.
APPEN$ P:B$#.
EN$#A*E.
EN$F1M.
F1M F:?1&'E:/8.
U/&NE.
?1&'E= \31 gk ProBram k $Vnpro k $VnbeBin k Field Name k ]aluegM
266 gkg.
U/&NE.
/P A' ':B$#.
?1&'E= \31 gkgM ':B$#QP181AMM gkg.
&F ':B$#Q$NNP1 NE g3333g.
?1&'E= 16 ':B$#Q$NNP1M g kg.
E/*E.
?1&'E= 16 g gM g kg.
EN$&F.

?1&'E= 2Z ':B$#Q$NNBE8&NM
-2 gkgM ':B$#QFNAMM
90 gkgM ':B$#QF]A/M
266 gkg.
EN$/P.
&F *NQ*UB1# NE 3.
ME**A8E E333 ?&'@ gNenUum reBistro 7oi Bra+ado na tabela de B$#g.
EN$&F.
U/&NE.
EN$F1M.
Manual ABAP 93
EXERCCIOS BDC SESSION
> E;erc<cio proposto=
> $esen+ol+er um proBrama em ABAP Xue en+ie dados para a transa(,o F*31
> atra+s de #A// '1AN*A#'&N ou BA'#@ &NPU' de acordo com o dese!ado
> pelo usurio seBuinto o seBuinte mapeamento da transa(,o=
>
> ProBrama 'ela &n<cio #ampo ]alor
> *APMF32@ 3932 .
> 1F32@Q*AIN1 g91..##g
> 1F32@QBUI1* gA#26g
> B$#:I#$E g\3g
> *APMF32@ 3-13 .
> *IA'Q'.'23 g91..## Q 'E*'E ##g
> *IA1Q8]'NP g. g
> *IA1QI'I* g39g
> B$#:I#$E g\3g
> *APMF32@ 3113 .
> *IB1Q?AE1* gB1/ g
> *IB1QM?*Ia gA3g
> *IB1QF*'A8 gA#26g
> B$#:I#$E g\11g
>
> nde= .. o nHmero de sua esta(,o
> ## o contador da Xuantidade de contas inclu<das
>
> Ao 7inal do processamento de+e ser 7eito um relat^rio de auditoria
> com o nome dos campos e respecti+os +alores
>
> #omo op(,oM podeQse criar um bot,o para 7aYer um doOnload deste
> relat^rio para o @$ /ocal ou para o diret^rio \tmp\ do ser+idor
> UN&.
>
> 2a. parte=
> 1odar o proBrama em modo #A// '1AN*A#'&N e se alBum erro ocorrer
> com a transa(,o\dadosM colocar os reBistros errados um uma pasta
> de batcU input para Xue possa rodar o processo no+amente sem perder
> os dados. For(ar o erro.
> 1esolu(,o=
P181AM aaB$#..2 /&NEQ*&aE 266
ME**A8EQ&$ aa.
$A'A= BE8&N F ':B$# ##U1* 3.
&N#/U$E *'1U#'U1E B$#$A'A.
$A'A= EN$ F ':B$#.
*E/E#'&NQ*#1EEN BE8&N F B/#I B1 ?&'@ F1AME '&'/E '1.
PA1AME'E1*= P:BUI1* /&IE 1F32@QBUI1*M
P:*AIN1 /&IE 1F32@Q*AIN1M
P:'.'23 /&IE *IA'Q'.'23M
P:8]'NP /&IE *IA1Q8]'NPM
P:I'I* /&IE *IA1QI'I*M
P:?AE1* /&IE *IB1Q?AE1*M
P:M?*Ia /&IE *IB1QM?*IaM
P:F*'A8 /&IE *IB1QF*'A8.
*E/E#'&NQ*#1EEN EN$ F B/#I B1.
*E/E#'&NQ*#1EEN BE8&N F B/#I B2 ?&'@ F1AME '&'/E '2.
PA1AME'E1*= P:BA'#@ 1A$&BU''N 81UP 11M l+ia BatcU input
P:#A// 1A$&BU''N 81UP 11. l+ia #all 'ransaction
*E/E#'&NQ*#1EEN EN$ F B/#I B2.
Manual ABAP 91
&N&'&A/&aA'&N.
'1 A g$ados para a sess,o B$#g.
'2 A g'ipo processamento da sess,o B$#g.
*'A1'QFQ*E/E#'&N.
> #ria os reBistros na tabela de B$#
PE1F1M F:?1&'E:1E#1$*.
> En+ia a sess,o B$#
PE1F1M F:*UBM&':B$#.
> 8era um relat^rio de auditoria
PE1F1M F:?1&'E:/8.
EN$QFQ*E/E#'&N.
F1M F:?1&'E:1E#1$*.
> proBrama *APMF32@ Q tela 932
PE1F1M F:B$#:*#1EEN 'AB/E* ':B$#
U*&N8 g*APMF32@g g3932g.
PE1F1M F:B$#:F&E/$ 'AB/E* ':B$#=
U*&N8 g1F32@QBUI1*g P:BUI1*M
U*&N8 g1F32@Q*AIN1g P:*AIN1M
U*&N8 gB$#:I#$Eg g\3g.
> proBrama *APMF32@ Q tela -13
PE1F1M F:B$#:*#1EEN 'AB/E* ':B$#
U*&N8 g*APMF32@g g3-13g.
PE1F1M F:B$#:F&E/$ 'AB/E* ':B$#=
U*&N8 g*IA'Q'.'23g P:'.'23M
U*&N8 g*IA1Q8]'NPg P:8]'NPM
U*&N8 g*IA1QI'I*g P:I'I*M
U*&N8 gB$#:I#$Eg g\3g.
> proBrama *APMF32@ Q tela 113
PE1F1M F:B$#:*#1EEN 'AB/E* ':B$#
U*&N8 g*APMF32@g g3113g.
PE1F1M F:B$#:F&E/$ 'AB/E* ':B$#=
U*&N8 g*IB1Q?AE1*g P:?AE1*M
U*&N8 g*IB1QM?*Iag P:M?*IaM
U*&N8 g*IB1QF*'A8g P:F*'A8M
U*&N8 gB$#:I#$Eg g\11g.
EN$F1M.
Manual ABAP 92
F1M F:*UBM&':B$#.
> ]eri7ica(,o do tipo de processamento
&F P:BA'#@ EG g.g.
> lAbre a pasta de BatcU &nput
#A// FUN#'&N gB$#:PEN:81UPg
E.P1'&N8
#/&EN' A *NQMAN$'
81UP A gF*31Q1E*/g
IEEP A g.g
U*E1 A *NQUNAME.
> &nsere a tabela de B$# na pasta
#A// FUN#'&N gB$#:&N*E1'g
E.P1'&N8
'#$E A gF*31g
'AB/E*
$NNP1'AB A ':B$#.
&F *NQ*UB1# NE 3.
ME**A8E E333 ?&'@ gErro na 7un(,o B$#:&N*E1'g.
EN$&F.
> FecUa a pasta de batcU &nput
#A// FUN#'&N gB$#:#/*E:81UPg.
E/*E.
> #Uama o mtodo #A// '1AN*A#'&N para inserir os dados
#A// '1AN*A#'&N gF*31g U*&N8 ':B$#
M$E gAg
UP$A'E g*g.
&F *NQ*UB1# NE 3.
ME**A8E E333 ?&'@ gErro no #A// '1AN*A#'&Ng.
EN$&F.
EN$&F.
EN$F1M.
F1M F:B$#:*#1EEN 'AB/E* P:B$# *'1U#'U1E B$#$A'A
U*&N8 P:P181AM P:*#1EEN.
#/EA1 P:B$#.
M]E= P:P181AM ' P:B$#QP181AMM
P:*#1EEN ' P:B$#Q$NNP1M
g.g ' P:B$#Q$NNBE8&N.
APPEN$ P:B$#.
EN$F1M.
F1M F:B$#:F&E/$ 'AB/E* P:B$# *'1U#'U1E B$#$A'A
U*&N8 P:NAME P:]A/UE.
#A*E P:]A/UE.
?@EN *PA#E.
?@EN '@E1*.
#/EA1 P:B$#.
Manual ABAP 9-
M]E= P:NAME ' P:B$#QFNAMM
P:]A/UE ' P:B$#QF]A/.
APPEN$ P:B$#.
EN$#A*E.
EN$F1M.
F1M F:?1&'E:/8.
U/&NE.
?1&'E= \31 gk ProBram k $Vnpro k $VnbeBin k Field Name k ]aluegM
266 gkg.
U/&NE.
/P A' ':B$#.
?1&'E= \31 gkgM ':B$#QP181AMM gkg.
&F ':B$#Q$NNP1 NE g3333g.
?1&'E= 16 ':B$#Q$NNP1M g kg.
E/*E.
?1&'E= 16 g gM g kg.
EN$&F.
?1&'E= 2Z ':B$#Q$NNBE8&NM
-2 gkgM ':B$#QFNAMM
90 gkgM ':B$#QF]A/M
266 gkg.
EN$/P.
&F *NQ*UB1# NE 3.
ME**A8E E333 ?&'@ gNenUum reBistro 7oi Bra+ado na tabela de B$#g.
EN$&F.
U/&NE.
EN$F1M.
Manual ABAP 99
EG&63O3$4 BDC
#riar um proBrama Xue leia um arXui+o e crie ordens de +enda para os clientes de acordo com as
especi7ica()es no arXui+o.
A transa(,o para cria(,o de ordem de +enda a ]A31.
P#6# %& 36$#6 08# 467&8 7& E&57#P 7&E&Q%& %&H0$6 4 %&H0$5'& J(0G4?
#Uamar a transa(,o ]A31.
Na primeira tela=
preencUer 'ipo da rdem
EEN'E1F
Na seBunda tela=
preencUer Emissor da rdem
preencUer 1ecebedor da Mercadoria
preencUer $ata do documento do Faturamento
preencUer Material
preencUer Guantidade Pre+ista
E*A/]A1F
E]/'A1F
O #6R0$E4 &%': 54 %&H0$5'& J468#'4?
'ipo da rdem
Emissor da rdem
1ecebedor da Mercadoria
Material
Guantidade Pre+ista
OBS? s campos est,o separados por pontoQeQ+<rBula (c)
PreencUer a data do documento com a data de U!.
ARSUIVO
]EFc16c16c13313c1
]EFc19c19c13311c1
]EFc1-c1-c13331c-
]EFc16c19c13331c6
Manual ABAP 96
R&%4(0BF4?
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >
> > #on7idencial e Proprietrio > >
> > #opVriBUt 2331M Accenture > >
> > 'odos os direitos reser+ados > >
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >
> >
> Nome do *Uell= a:'EMP/A'E:1EP1' ]ers,o do *Uell= +1.3- >
> >
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> Nome do ProBrama = a:'EMP/A'E:1EP1' >
> '<tulo do ProBrama = a:E.#:B$#31:A/19:$ >
> ProBramador = Aluno do curso de ABAP >
> $ata = 32\39\2331 >
> mltima atualiYa(,o = 32\39\2331 >
> >
> $escri(,o = Este um proBrama para importar dados de um arXui+o >
> e criar ordens de +enda no *APM atra+s da transa(,o >
> ]A31 >
> &nclude = >
> >
> #alls = ]A31 >
> >
> M^dulos de Fun()es= >
> >
>QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ>
> /ista de Modi7ica()es= >
> $ata Autor #orr. j $escri(,o >
> 32\39\2331 ABAP$E]1 AF&I[3331- $esen+ol+imento inicial do prB >
> >
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
report a:E.#:B$#31:A/19:$
no standard paBe UeadinB lN,o mostra o cabe(alUo padr,o *AP
lineQsiYe 1T3 l/arBura do report de 1T3 caracteres
lineQcount 6Z l#omprimento do report de 6Z caracteres
messaBeQid Yabap. l#lasse de mensaBens aABAP
>EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFl
> l *E**b $E $E#/A1A4b $E $A$* l
>EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFl
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> &ncludes >
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> 'abelas >
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> $ados= >
> #onstantes (#:...) >
> ]aria+eis (]:...) >
> 'abelas &nternas (&:...) >
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>Q #onstantes QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ>
>$A'A=
> #:..
>Q ]ari+eis QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ>
>$A'A=
> +:..
Manual ABAP 90
>> ]aria+el #om $ata do *istema #oncatenada
data= +:data(Z) tVpe n.
> atribui a data do sistema W +ari+el no 7ormato ddmmaaaa
concatenate sVQdatumD0(2) sVQdatumD9(2) sVQdatumD(9) into +:data.
>Q 'abela &nterna QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ>
>> 'abela com unico campo para receber arXui+o com delimitador gcg
$A'A= BE8&N F i:reB ##U1* 133M
lreB(233) tVpe c .
$A'A= EN$ F &:reB.
>> 'abela com campos pro+enientes do arXui+o te;to .
data= beBin o7 i:parm ##U1* 133M
auart liPe +baPQauart M
Punnr liPe +baPQPunnr M
Punnra liPe PuOe+QPunnr M
mabnr liPe r+96aQmabnr M
YmenB(10) tVpe c.
data= end o7 i:parm.
> 'abela com os dados do B$#
data= bdcdata liPe bdcdata occurs 133 OitU Ueader line.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> Pardmetros de entrada = >
> *elect ptions (*:...) >
> Parameters (P:...) >
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
selectionQscreen beBin o7 blocP b1 OitU 7rame title t1.
parameter= p:arX1 liPe rlBrapQ7ilename . l>> Nome do ArXui+o
selectionQscreen end o7 blocP b1.
lEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFl
l *E**b $E P1#E**AMEN' l
lEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFl
>QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ>
initialiYation. l/oBica para de7aults linteliBentesl
>QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ>
>QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ>
t1 A g&nter7ace rdem ]endasg.
>QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ>
at selectionQscreen. l'ratamento de Erros e l^Bica para tela de sele(,o
>QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ>
at selectionQscreen on +alueQreXuest 7or p:arX1.
per7orm 7:selec:arXdos usinB p:arX1.
>QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ>
startQo7Qselection. lProcessamento principal
>QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ>
per7orm 7:select:data.
per7orm 7:Berabdc.
>QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ>
endQo7Qselection. lFim do processamento principal
>QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ>
>QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ>
topQo7QpaBe. l#abe(alUo (Aparece sempre no topo da tela.)
>QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ>
Manual ABAP 9T
>QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ>
endQo7QpaBe. l1odap
>QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ>
lEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFl
l *E**b $E F1M* l
lEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFl
>fQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ>
>f Form F:*E/E#':$A'A
>fQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ>
> *eleciona dados e armaYenaQos na tabela interna >
>QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ>
7orm 7:select:data.
> Upload do arXui+o te;to .
#A// FUN#'&N g?*:UP/A$g
E.P1'&N8
F&/ENAME A p:arX1
F&/E'NPE A gA*#g
'AB/E*
$A'A:'AB A i:reB
E.#EP'&N*
#N]E1*&N:E111 A 1
F&/E:PEN:E111 A 2
F&/E:1EA$:E111 A -
&N]A/&$:'NPE A 9
N:BA'#@ A 6
UNIN?N:E111 A 0
&N]A/&$:'AB/E:?&$'@ A T
8U&:1EFU*E:F&/E'1AN*FE1 A Z
#U*'ME1:E111 A [
'@E1* A 13.
&F *NQ*UB1# EF 3.
ME**A8E e336.
EN$&F.
>> #ria tabela interna com campos separados .
loop at i:reB.
split i:reB at gcg into i:parmQauart
i:parmQPunnr
i:parmQPunnra
i:parmQmabnr
i:parmQYmenB.
append i:parm.
endloop.
end7orm. l F:*E/E#':$A'A
>fQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ>
>f Form F:BeraB$#
>fQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ>
> 8era 1eBistros no B$# >
>QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ>
7orm 7:Berabdc.
>> AtualiYa tabela $B#$A'A com dados da tabela interna
loop at i:parm .
Manual ABAP 9Z
per7orm bdc:dVnpro usinB g*APM]96Ag g3131g.
per7orm bdc:7ield usinB gB$#:#U1*1g
g]BAIQAUA1'g.
per7orm bdc:7ield usinB gB$#:I#$Eg
gAEN'2g.
per7orm bdc:7ield usinB g]BAIQAUA1'g
i:parmQAUA1'.
per7orm bdc:dVnpro usinB g*APM]96Ag g9331g.
per7orm bdc:7ield usinB gB$#:I#$Eg
g*&#@g.
per7orm bdc:7ield usinB gIUA8]QIUNN1g
i:parmQIUNN1.
per7orm bdc:7ield usinB gIU?E]QIUNN1g
i:parmQIUNN1a.
per7orm bdc:7ield usinB g1]96AQMABN1(31)g
i:parmQMABN1.
per7orm bdc:7ield usinB g]BAPQaMEN8(31)g
i:parmQaMEN8.
per7orm bdc:7ield usinB g]BI$QFI$A'g
+:data.
>> #Uama Funcao para Berar ordem de +endas
call transaction c:transacao usinB bdcdata
mode c:mode
update c:update.
>> /impa dados da ordem Berada
clear bdcdata.
re7resU bdcdata.
endloop .
end7orm. l F:8E1AB$#
>QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ>
> *tart neO screen >
>QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ>
7orm bdc:dVnpro usinB proBram dVnpro.
clear bdcdata.
bdcdataQproBram A proBram.
bdcdataQdVnpro A dVnpro.
bdcdataQdVnbeBin A g.g.
append bdcdata.
end7orm.
>QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ>
> &nsert 7ield >
>QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ>
7orm bdc:7ield usinB 7nam 7+al.
i7 7+al EF gg.
clear bdcdata.
bdcdataQ7nam A 7nam.
bdcdataQ7+al A 7+al.
append bdcdata.
endi7.
end7orm.
>QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ>
> F1M F:*E/E#:A1G$* >
>QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ>
> Permite sele(,o de arXui+o no $*. >
>QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ>
Manual ABAP 9[
7orm 7:selec:arXdos usinB p:arX1 liPe rlBrapQ7ilename.
> #aptura o arXui+o de entrada +ia $*.
call 7unction g?*:F&/ENAME:8E'g
e;portinB
de7:7ilename A g g
de7:patU A g#=ig
masP A gM'e;tosM>.t;tMdocM>.docM'odosM>.>.g
importinB
7ilename A p:arX1
e;ceptions
in+:OinsVs A 1
no:batcU A 2
selection:cancel A -
selection:error A 9
otUers A 6
.
end7orm. lFim do gForm 7:selec:arXdosg
Manual ABAP 63
COMANDO SELECT
C48#574 SELECT
comando select usado para acessar e selecionar dados de tabelas internas do *AP. Por e;istirem di+ersas
+aria()es do mesmo comandoM 7undamental Xue o proBramador saiba o mecanismo de 7uncionamento de cada uma
delas pois s^ assim poder dar ao proBrama uma per7ormance satis7at^ria.
]aria()es=
SELECT T +ROM 71'#1.
C
EN$*E/E#'.
*eleciona dados de uma tabela *AP num processo de "loop% Xue come(a no select e termina no endselect. A
cada passaBem pelo "loop% temos um elemento lido e selecionado.
e necessrio Xue se coloXue ap^s o EN$E*E/#' uma condi(,o de cUecaBem de dados selecionados=
&7 sVQsubrc ne 3.
?rite= JNenUum dado 7oi selecionadoL.
Endi7.
*e sVQsubrc A 3 = pelo menos um dado 7oi selecionado
*e sVQsubrc A 9 = nenUum dados 7oi lido
E;emplo=
*E/E#' > F1M B*E8.
C
EN$*E/E#'.
&7 sVQsubrc ne 3.
?rite= JN,o tem dado na tabela B*E8L.
Endi7.
A7$BC&% ?
... UVERE C457$'$45
*eleciona apenas os dados Xue satis7aYem a condi(,o especi7icada.
E;emplo=
*E/E#' > F1M '331 ?@E1E BUI1* EG J3331L.
C
EN$*E/E#'.
W ORDER B JX1WJ5W ORDER B PRIMAR YE
rBaniYa os dados em ordem ascendente de acordo com os campos especi7icados (71C7n).
E;emplo=
*E/E#' > F1M '331 1$E1 BN M*8N1 $E*#EN$&N8 A1B8B A*#EN$&N8.
C
EN$*E/E#'.
... UP TO 5 ROUS.
*eleciona um nHmero m;imo de dados.
E;emplo=
*E/E#' > UP ' 133 1?* F1M '331 ?@E1E...
C
EN$*E/E#'.
Manual ABAP 61
SELECT T +ROM 71'#1 INTO TABEL $'#1.
s dados s,o selecionados e colocados na tabela interna itab de uma s^ +eY. N,o U mais o processo de loop e
portanto n,o U mais EN$*E/E#'. s dados no+os da tabela interna s,o Bra+ados por cima dos antiBos.
e importante ressaltar Xue o > pode ser substitu<do pelos nomes dos campos da tabelaM aBiliYando assim o
processo e melUorando a per7ormance.
E;emplo=
*E/E#' > F1M '331 &N' 'AB/E 'AU..
Adi()es=
a) ?@E1E
b) 1$E1 BN
c) UP ' n 1?*
SELECT T +ROM 71'#1 APPENDINK TABLE $'#1.
Mesmo processo do item 2M s^ Xue os dados no+os s,o inseridos sem apaBar os antiBos.
E;emplo=
*E/E#' > F1M '133 APPEN$&N8 'AB/E 'AU. .
Adi()es=
a) ?@E1E
b) 1$E1 BN
c) UP ' n 1?*
SELECT SINKLE T +ROM 71'#1 UVERE J1 Z H1 ANDW AND J5 [
*eleciona apenas um Hnico dado Xue satis7a(as condi()es do OUere.
B*.= Neste caso todas as cUa+es (<ndices da tabela) de+em ser satis7eitos.
E;emplo=
*E/E#' *&N8/E > F1M '133 ?@E1E BUI1* A J32L.
SELECT T +ROM 71'#1 APPENDINK CORRESPONDINK +ILEDS O+ TABLE $'#1.
Mecanismo semelUante ao item 2M e de+e ser usado Xuando a sinta;e do item 2 n,o puder ser usada.
@ di7eren(as de per7ormance.
E;emplo=
*E/E#' > F1M '133 APPEN$&N8 #11E*PN$&N8 F&E/$* F 'AB/E 'AU. .
nde 'AU. recebeu a estrutura da tabela '133 (commando &N#/U$E *'1U#'U1E).
SELECT T +ROM 71'#1 +OR ALL ENTRIES $5 $'#1 UVERE...
Usado Xuando selecionamos dados de uma tabela e precisamos de dados de outra tabela para compor as
condi()es do OUere.
E;emplo=
*E/E#' > F1M B*E8 F1 A// EN'1&E* &N ':BIPF
?@E1E BUI1* A ':BIPFQBUI1* AN$
BE/N1 A ':BIPFQBE/N1 .
nde ':BIPF uma tabela interna Xue recebeu a tabela BIPF.
Este tipo de comando utiliYado entre tabelas internas.
Manual ABAP 62
TIPOS DE SELECT EXISTENTES E MAIS UTILIZADOS
SELECT T +ROM ... \'#1&(#]
Guando n,o se imp)e nenUum tipo de restri(,oM ocorre uma +arredura seXnencial dos reBistros da tabela.
Guando se utiliYa Brandes tabelasM isso ob+iamente a7eta o runtime.
Per7ormance= *elect > seleciona todas as colunas de uma tabela. e melUor sempre especi7icar as colunasM
pois em caso de tabelas com muitas colunasM pre!udicar a per7ormance.
SELECT T +ROM \'#1&(#] UVERE \3#894] ES \345'&^74].
/R todos os reBistros da tabela especi7icada onde o campo iBual ao conteHdo especi7icado.
Per7ormance= *elect > ?Uere seleciona todas as colunas de uma tabela de acordo com a condi(,o de OUere.
e melUor sempre especi7icar as colunasM pois em caso de tabelas com muitas colunasM pre!udicar a per7ormance.
SELECT T +ROM \'#1&(#] UVERE \'#1(& J$&(7] BETUEEN \J$&(71] AND \J$&(72].
E;emplo= 7ield1 A 133 e 7ield2 A 633. peBa inclusi+e 133 e 633. ]ocR trabalUa com o ranBe.
SELECT T +ROM \'#1&(#] UVERE \'#1(& J$&(7] LIYE W _NR`X.
: A a primeira letra n,o imprta o Xue +ir.
1 a seBunda de+er ser 1 (eu de7ini)
o n,o importa a seXnRncia de caracteres Xue +ir
SELECT T +ROM \'#1&(#] UVERE \'#1(& J$&(7] IN <WW P WW.=.
E;emplo= select > 7rom EtableF OUere campo1 in (12-M1333) _ podem ser +alores ou literais.
e como perBuntar se campo1 12- ou 1333.
SELECT T +ROM \'#1&(#] UVERE \'#1(& J$&(7] IN \$5'&65#( '#1(&].
E;emplo=
$A'A= beBin o7 &'AB occurs 13M
*iBn(1)M options(2)M loO liPe s7liBUtQpriceM UiBU liPe s7liBUtQproceM
End o7 &'AB.
> 1anBes= &'AB 7or s7liBUtQtable
Mo+e= J&L to itabQsiBnM JbtL to itabQoptionM J633L to itabQloOM J1333L to itabQUiBU.
Append itab.
Mo+e= J&L to itabQsiBnM JbtL to itabQoptionM J993L to itabQloO.
Append itab.
SELECT T +ROM \'#1&(#] ORDER B \J$&(71] \J$&(72] W PRIM AR YE.
bs.= #lassi7ica a tabela interna numa rea au;iliarM sem a7etar a tabela oriBinal. E+itar o uso de sorts dentro
de um select. #onsome mais tempo Xue descarreBar os dados em uma tabela interna e classi7icQlos.
SELECT T +ROM \'#1&(#] BPASSINK BU++ER.
Usado para ler diretamente da tabela oriBinal e n,o do bu77er.
B*.= *elect sinBle > sempre com cUa+e completa especi7icada. Particularmente do ABAP\9
*elect > Q procurar e+itar. &n7ormar as colunas Xue ser,o necessriasM apenas.
Uso do comando e;tract (insert UeaderM details) _ para relat^rios.
SELECT T +ROM \'#1&(#] APPENDINK TABLE \$5'&65#( '#1(&].
/R os reBistros e os &nclui _ n,o sobrep)e _ em uma tabela interna.
SELECT T +ROM \'#1&(#] INTO TABLE \$5'&65#( '#1(&].
A estrutura da tabela interna de+e corresponder W estrutura da tabela Xue est sendo acessada. sistema lR os
reBistros em con!untoM n,o indi+idualmente atra+s de um /P e ir Bra+ando os reBistrosM uma a um.
SELECT W INTO CORRESPONDINK +IELDS O+ TABLE \$5'&65#( '#1(&].
Neste caso a estrutura da tabela interna n,o precisa corresponder W estrutura da tabela Xue est sendo acessada.
Mo+imentar os reBistros para as colunas de7inidas na tabela interna Xue possuam nome iBual ao da tabela acessada.
bs.= #orrespondinB ou appendinB n,o e;isBem o endselect.
Manual ABAP 6-
SELECT T APPENDINK COREESPONDINK +IELDS O+ TABLE \$5'&65#( '#1(&].
/R e Bra+a (n,o sobrep)e) os dados em uma tabela interna Xue possua nomes idRnticos aos nomes da tabela Xue
est sendo lida.
SELECT SINKLE T +ROM \'#1&(#] UVERE \3#894] ES \345'&^74].
'oda +eY Xue se usa select sinBle > a cUa+e primria completa de+e ser especi7icada. *e a cUa+e especi7icada
n,o Xuali7icadaM +ocR receber uma mensaBem de OarninB e a per7ormance 7icar pre!udicada.
No caso de Ua+er a necessidade de acessar um Hnico reBistro +ia selectM as op()es s,o=
*elect > ... seBuido do comando E.&'
ou
select > ... UP ' 1 1?.
Neste caso n,o necessrio especi7icar a cUa+e completa.
SELECT \#1] \#2] ... INTO < \J1]P \J2]P W= +ROM W \'#1&(#] UVERE W .
/R as colunas especi7icadas (a1M a2). Ap^s &N' de+er,o ser especi7icadas as reas de trabalUo au;iliares (71M
72). nHmero de colunas lidas de+er ser iBual ao nHmero de OorPQaeras especi7icadas.
SELECT MAX <3#894=
M&N (campo)
A]8 (campo)
#UN' (>) F1M EtabelaF &N' (... M C M C M C)
?@E1E C .
A]8 e *UM somente para campos numricos.
N,o se usa endselect.
Mais rpido 7aYer uma rotina "a m,o% Xue utiliYar esse comando.
SELECT T +ROM S+LIKVT UVERE PRICE IN ITAB.
SELECT T +ROM <\'#1&(#]= INTO \a46b #6&#].
E;emplo=
$ata= beBin o7 ?AM
/ine(1333M
end o7 ?A.
Parameters= tabname(13) de7ault J*PF/&L.
>>> especi7icando o nome da tabela em tempo dinamicamente no comando select sempre consome mais
tempo de #PU Xue especi7icando estatiamente no proBrama.
*elect > 7rom (tabname) into ?A.
?rite= C.
Endselect.
SELECT T +ROM \'#1&(#] +OR ALL ENTRIES IN \'#1&(# $5'&65#]
?@E1E campo1 A conteHdo AN$
?@E1E campo2 A conteHdo .
$e7ino uma tabela interna. Alimento os campos desta tabela interna. (mo+e e append).
No meu select campo1 e campo2 ser,o os campos de7inidos e ealimentados na tabela interna.
SELECT 3#66$7 MIN< 96$3& = MAX< 96$3& = INTO <3#6$7P 8$5$808P 8#G$808=
F1M s7liBUt
81UP BN carrid.
'odos os campos Xue eu Xuero Xue apare(am na minUa lista eu preciso especi7icar ap^s a clusula 81UP
BN.
(carridM ma;imum e minimum s,o campos au;iliares.
*e o nome do databease n,o conUecido at o runtimeM n,o se pode especi7icar a clusula 81UP BN.
Manual ABAP 69
COMANDOS MAIS UTILIZADOS EM ABAP
U6$'&= para escre+er.
U($5&? aciona um linUa UoriYontal.
Sb$9? saltar linUa.
U57&6? em bai;o la bai;ol
O3306%= controle de reBistro na tabela. $elimita as linUas da tabelaM para melUorar a per7ormance do proBrama.
E000= esta e;press,o usada para mensaBem de erro.
S000= esta e;press,o usada para mensaBem de rodap.
I000= esta e;press,o usada para mensaBem de in7orma(,o.
U000= esta e;press,o usada para mensaBem de a+isoM conBela a imaBemM aBuarda retorno do usurio.
V($5&= +ertical l insere uma linUa +erticall.
c d c? iBual ao ]:line.
C(&#6 VNV#61? l/impal Yera uma +aria+el.
L M? compara o conteHdo total da tabela.
S&(&3'= *elecionar. l ]arre o banco de dadosl
N&aQP#H&? abrir um no+a paBina.
S'#57#67 P#H& V&#7$5H? desabilita cabe(alUo padr,o.
T49 Q OJ " P#H&?para desen+ol+er um no+o cabe(alUo.
E57Q4JQ9#H&? Encerra a pBina l1odapl.
+468#' C4(46 1?&nsere uma no+a cor Xue selecionada pelo numero.
+468#' I5'&5%$J$&7 4JJ= desabilita o 7ormato padr,o da letra.
+468#' I5'&5%$J$&( 45? ati+a o 7ormato padr,o.
D#'#? $ados.
L$b&? como.
M4E&= mo+er.
M4E& C466&%9457? Mo+e apenas os dados Xue correspondam a sele(,o.
I% I5$'$#(? compara(,o do +aYio.... testa se a tabela interna esta +aYia...no &F
R&J6&%)= /impa todo o conteHdo da tabela interna.
C(&#6= apaBa o cabe(alUo (limpa) de uma tabela interna.. E;= clear i:tapp .
P#6#8&'&6? ls,o os te;ts bo;esl QQF entrada de dados.
D&J#0('= Padr,o.
A' +$6%'? Primeiro reBistro da tabela.
A' N&a=Primeiro reBistro da Xuebrar.
A' L#%'=Ultimo reBistro da Xuebrar.
A' A57 OJ? Ultimo reBistro da Xuebra.
O67&6? rdenar.
A99&57= 8ra+ar um reBistro ap^s a e;ecu(,o l *elect > Froml. l Nunca dei;andoQo subescre+erl.
>>>> 8ra+ar o cabe(abelUo de uma tabela interna >>>
ON CVANKE?
D&%36$1&? mostra o total do reBistro na tabela.
C457&5%&? #omando Xue ser+e para !untar as pala+ras de 7orma ordenada. E;= &mpress,o.
U%$5H= usar.
ObC47&= #omo se 7osse Enter Q l&sto um codiBo interno do abapl.
U% " D4a5(4#7=En+ia lArXui+ol.
U9(4#7? &mporta lArXui+ol.
L449? comando e;ecu(,o. l ]arre o banco de dadosl utiliYado para +arre a tabela interna.
EG3&9'$45%?
V&#7(&5?
T6053(&5?
A' %&(&3'$45 %36&&5?
A' ($5& %&(&3'$45=#omando utiliYado no relat^rioM Xuando uma linUa selecionada.
Guando +ocR cria o at line selection ele cria o bot,o com o nome de P&#I
A' 0%&6 3488#57? #ontrola os bot)es Xue 7orem adicionados ao c^diBo. No+o
%&' 9JQ%'#0'0%=
+468= *ubrotinas ...
P&6J468? #om o comando per7orm e;ecutamos uma rotina Xue esta 7ora do 7lu;o normal do proBrama.
> e um comando Xue 7aY um acesso na tabela e retorna.
C#(( T6#5%#3'$45= possibilita o processamento de uma tabela B$#M
> BacU &nput QQF mtodo de entrada de dados.
I5$'$#($e#'$45? lAntes da sele(,o. No+o
#' %&(&3'$45Q%36&&5? %$urante a tela No+o
%'#6'Q4JQ%&(&3'$45= E+ento Xue 7inaliYa a inicialiYation ou cUama outro inicialiYation.#ome(o
do c^diBo ABAPM onde +ocR come(a a sele(,o de dados.
Manual ABAP 66
&57Q4JQ%&(&3'$45? pcional. encerrado Xuando +c cUama outra tela ou mensaBem. No+o
'49Q4JQ9#H&? %#abe(alUo do relat^rio. No+o
A' ($5&Q%&(&3'$45= lprocessos ap^s sele(,o de linUa. (cria o bot,o P&#I) No+o
Manual ABAP 60
DATA DICTIONAR
O12&'$E4%
Apresentar conceitos de Bancos de $ados 1elacionais
*AP +s Modelo 1elacional
#onUecer as 7erramentas bsicas do $icionrio de $ados do 1\-
#riar ob!eti+os atra+s do $icionrio de $ados
C453&$'4% 7& B#534% 7& D#74% R&(#3$45#$%
M47&(4 E5'$7#7&QR&(#3$45#8&5'4
Modelo desen+ol+ido para 7acilitar o pro!eto de banco de dadosM permitindo a especi7ica(,o de um esXuema
Xue represente a estrutura l^Bica Blobal de um banco de dados.
E5'$7#7&= e um ob!eto Xue e;iste e distinBu<+el de outros ob!etosM ou se!aM identi7ica o aBrupamento de
ob!etos do mesmo tipo. E;.= #lientesM BancosM ABRnciasM #ontasQcorrente.
A'6$10'4%= *,o os Xuali7icadores de uma entidadeM isto M representam no modelo o Xue uma entidade
pretende ser. E;.= NomeM 18M #PFM Endere(oM Nro #ontaM Nro ABRnciaM Nro Banco.
D48O5$4= #on!unto de +alores permiss<+eis para um atributo. E;.= Estado #i+ilM *ecoM #orM Meses do Ano.
R&(#3$45#8&'4= e a associa(,o entre duas entidadesM ou se!aM representa a maneira como duas entidades
s,o relacionadas ou liBadas. E;.= #ontaQcorrente de um #lienteM ABRncia de um BancoM #ontasQcorrente de
uma ABRncia.
R&%'6$BC&% 7& M#9&#8&5'4
1epresentam o modo como as di7erentes entidades de um modelo se relacionam. $eterminadas pela
cardinalidade dos relacionamentos entre as entidades.
U8Q9#6#QU8= Uma ocorrRncia da Entidade A est relacionada com uma e apenas uma ocorrRncia da Entidade B.
U8Q9#6#QN= Uma ocorrRncia da Entidade A est relacionada com uma ou +rias ocorrRncias da Entidade B.
NQ9#6#QU8= ]rias ocorrRncias da Entidade A est,o relacionadas com apenas uma ocorrRncia da Entidade B.
NQ9#6#QN= ]rias ocorrRncias da Entidade A est relacionada com +rias ocorrRncias da Entidade B.
M47&(4 R&(#3$45#(
Um banco de dados relacional a implementa(,o 7<sica do Modelo EntidadeQ1elacionamento e traduY
concretamente o Xue o modelo conceitual procura representar. #onsiste em uma cole(,o de tabelas cada uma das Xuais
associada a um nome Hnico e Xue possuem relacionamentos entre si. 'abelas representam 7isicamente as Entidades.
#ada tabela possui uma estrutura similar WXuilo Xue pretende a representarM isto M tabelas s,o 7ormadas de
linUas Xue por sua +eY s,o 7ormadas por colunas. #olunas representam 7isicamente os Atributos.
A cada linUa da tabela cUamamos de corrRncia e o con!unto de ocorrRncias pode ou n,o estar relacionado
com ocorrRncias de outras tabelas.
C484 7$%'$5H0$6 #% 43466f53$#% 08#% 7#% 40'6#%g
UtiliYando o conceito de #Ua+e Primriappp
C)#E& P6$8:6$#? C45205'4 7& #'6$10'4% R0& H#6#5'& # 05$3$7#7& 7& 3#7# 43466f53$# 7# '#1&(#.
EG&89(4%? RKP CP+P N64 C)#%%$%.
NormaliYa(,o= processo de reconUecimento da cUa+e primria.
C484 6&96&%&5'#6 4% 6&(#3$45#8&5'4% &5'6& '#1&(#%g
'rans7erindo a cUa+e primria de uma tabela para outrappp
C)#E& E%'6#5H&$6#? S0#574 # 3)#E& 96$8:6$# 7& 08# '#1&(# ; 08 #'6$10'4 &8 40'6#<%= '#1&(#<%=.
Manual ABAP 6T
C484 7&J$5$6 '474% &%%&% &(&8&5'4% 508 BDg
UtiliYando linBuaBens especiais para cada *istema 8erenciador de B$ppp
SSL= *tructured GuerV /anBuaBe _ /inBuaBem desen+ol+ida nos anos T3 para de7ini(,o e
manipula(,o de dados em sistemas de bancos de dados relacionais. #on!unto reduYido de comandosM
sem recursos de l^BicaM Hnica e e;clusi+amente para criar ob!etos no banco de dados e permitir Xue os
dados possam ser mantidosM de acordo com as necessidades 7uncionais. Nos Berenciadores de B$M
7erramentas espec<7icas de cada 7abricante o7erecem recursos adicionais para a constru(,o de l^Bica.
utras linBuaBens 7oram adaptadas para trabalUarem em con!unto com o *G/M como o #B/M # e
ABAP\9. *G/ utiliYado no 1\- proprietrio e seBue um m<nimo da reBulamenta(,o internacional
para estaM estando lonBe de possuir os mesmos mecanismos de 7uncionamento. *eus comandos podem
ser di+ididos em=
DDL= $ata $e7inition lanBuaBe _ #omandos espec<7icos para de7ini(,o de ob!etos do banco de
dados. E;.= #reate 'ableM #reate ]ieOM #reate 'able*paceM $rop 'ableM etc.
DML= $ata Manipulation /anBuaBe _ #omandos espec<7icos para tratamento dos dados
armaYenados nos ob!etos do banco. E;.= *electM &nsertM $eleteM UpdateM etc.
R/3 DATA DICTIONAR
I5'6470BF4
dicionrio de dados do ABAP\9 ($$) uma 7onte central de in7orma()es pro+enientes do sistema
Berenciador de dados do *AP. *ua principal 7un(,o suportar a cria(,o e o Berenciamento das de7ini()es de dadosM
tambm conUecidas como "metadados%.
Neste cursoM o $$ ser utiliYado em e;erc<cios prticos com o seBuinte ob!eti+o=
]isualiYar ob!etos do *AP (tabelasM estruturasM elementos de dadosM dom<nios)
bser+ar a estrutura e atributos dos dados armaYenados na base de dados
Elaborar consultas (Xueries simples) de dados
$escobrir os relacionamentos entre di7erentes ob!etos
#riar ob!etos
$ata $ictionarV parte inteBrante do ABAP\9 ?orPbencU e est numa camada intermediria entre o sistema
aplicati+o e o Berenciador de banco de dados.
+05BC&% 7&%&89&5)#7#% 9&(4 D#'# D$3'$45#6h
K&6&53$#8&5'4 7#% D&J$5$BC&% 7& D#74%
#ria(,o e manuten(,o das de7ini()es de dados num reposit^rio central
P64E$%F4 7& $5J468#BC&% 9#6# #E#($#BC&%
Permite obter in7orma()es sobre o modo como os ob!etos est,o relacionados
S0946'& #4 7&%&5E4(E$8&5'4
$i7erentemente de outros dicionrios de dadosM est inteBrado ao ambiente de desen+ol+imento de modo Xue
altera()es ou cria(,o de no+os ob!etos promo+em automaticamente a Bera(,o dos outros ob!etos dependentesM se!am
eles parte do dicionrio ou proBramas aplicati+os.
S0946'& i 74308&5'#BF4
Permite obter documenta(,o atualiYada
K#6#5'$# 7& R0& #% 7&J$5$BC&% 7& 7#74% %&2#8 J(&GOE&$% & #'0#($e#7#%
8era(,o de ob!etos de runtime Barantindo per7ormance
Manual ABAP 6Z
E(&8&5'4% 7& D#74%
R&R0$%$'4% 74 SAP R/3
s nomes dos Elementos de $ados de+em iniciar com a ou NM podem ter um m;imo de 13 caracteres de
comprimento e de+em ser Hnicos na instdncia da base de dados.
P#76F4 <%'#57#67=
s Elementos de $ados precisam ser ati+ados pelo Administrador do $icionrio de $ados para melUor
controle. Guando poss<+elM use o mesmo nome como dom<nio associado a esse Elemento de $ados. *e Uou+er um
con7litoM o nome do Elemento de $ados o principal moti+o. A *AP n,o cria Elemento de $ados Xue come(am com
um aM como UbitoM Elementos de $ados poderiam come(ar com aa.
s nomes de $ata Elementos poderiam ter um m;imo de Z caracteres. A *AP Berou proBramas ou 7un()es
Xue podem utiliYar essas de7ini()es de ob!etos para *E/E#'QP'&N* e PA1AME'E1*M o Xual podem ter no
m;imo Z caracteres de comprimento.
E;emplo= aaBh'NM
aa *empre aa
Bh'NM Um nome siBni7icati+o Xue descre+a o elemento de dados.
D48O5$4%
R&R0$%$'4% 74 SAP R/3
s nomes dos $om<nios de+em iniciar com a ou NM podem ter um m;imo de 13 caracteres de comprimento e
de+em ser Hnicos na instdncia da base de dados.
P#76F4 <%'#57#67=
s $om<nios precisam ser ati+ados pelo Administrador do $icionrio de $ados para melUor controle. Guando
poss<+elM use um $om<nio e;istente. *e n,o 7or poss<+elM nomeie o $om<nio com um nome siBni7icati+o. A *AP n,o
cria $om<nios Xue come(am com um aM como UbitoM $om<nios poderiam come(ar com aa.
s nomes de $om<nios poderiam ter um m;imo de Z caracteres. A *AP Berou proBramas ou 7un()es Xue
podem utiliYar essas de7ini()es de ob!etos para *E/E#'QP'&N* e PA1AME'E1* e o tamanUo permitido para as
+ari+eis de Z caracteres de comprimento.
E;emplo= aaBh'NM
aa *empre aa
Bh'NM Um nome siBni7icati+o Xue descre+a o elemento de dados.
O12&'4 7& B(4R0&$4
R&R0$%$'4% 74 SAP R/3
Guando criar um ob!eto de bloXueioM o nome do arXui+o de+e come(ar com EN ou Ea e pode ter um m;imo
de 13 caracteres de comprimento.
+468#'4 P#76F4 <%'#57#67=
Ea:aA133
Ea *empre Ea ou Na
:aA1333 nome da tabela primria entrada no primeiro campo da tabela da tela de cria(,o de b!eto de
BloXueio
M#3') C47&% ID
Manual ABAP 6[
#^diBos de MatcU #odes e b!etos de+em ser +eri7icados e ati+ados pelo Administrador do $icionrio de
$ados.
R&R0$%$'4% 74 SAP R/3
e Ubito Xue os c^diBos de MatcU #odes tenUam 1 caracter e n,o tRm con+en(,o de nomes.
+468#'4 P#76F4 <%'#57#67=
AtualmenteM a *AP n,o usa matcU codes 3Q[ para seus ob!etos matcU code. Ultimamente c^diBos de MatcU
#odes de7inidos para ob!etos *AP de+eriam restrinBir eles mesmos de 3Q[. #^diBos de MatcU #odes Xue s,o de7inidos
para no+os ob!etos podem ser XualXuer caracter al7anumrico (3Qa).
E;emplo= 1
MatcU #ode 1
O12&'4% M#'3) C47&
R&R0$%$'4% 74 SAP R/3
e Ubito Xue os ob!etos MatcU #odes de+am come(ar com um a ou N e podem ter 9 caracteres.
+468#'4 P#76F4 <%'#57#67=
Use o b!eto *AP MatcU #ode Xuando poss<+elM caso contrrio crie um ob!eto de acordo com suas
necessidades. &niciando o b!eto de MatcU #ode com um a o di7erencia de outros ob!etos e ent,o incluindo uma
descri(,o seBura Xue o MatcU #ode ser Hnico e n,o inter7erir com um MatcU #ode e;istente.
E;emplo= a331
MatcU #ode para #entro de #usto
Posi
o
Descrio Valores Significado
1 Tpo Z Desenvovmento
2 Funcona A Asset Management
B Bass
F Fnanca Accountng
G Speca Leadger
H Human Resources Pannng
I Mantenance
K Cost Accountng
L Warehouse Management
M Materas Management
P Producton Pannng
R Payro
S Saes and Dstrbuton
U Genera System / Utty programs
3-4 Identfcad
or nco
00-ZZ nca dentfcao de ob|eto Match
Code
P44(% / C(0%'&6%
R&R0$%$'4% 74 SAP R/3
Um nome Pool ou #luster de+e come(ar com a ou N e pode ter um m;imo de 13 caracteres de comprimento.
+468#'4 P#76F4 <%'#57#67=
Manual ABAP 03
nome padr,o Barante Xue o pool \ cluster ser Hnico e n,o inter7erir com nenUum pool \ cluester de7inido
pela *AP.
E;emplo= aI&'
Pool customiYado para o ob!eto matcUcode aI&'
T#1&(#% T6#5%9#6&5'&% & C(0%'&6
R&R0$%$'4% 74 SAP R/3
Precisam iniciar com aM N ou '[ e podem ter um m;imo de 13 caracteres de comprimento.
+468#'4 P#76F4 <%'#57#67=
#ada tabela customiYada poderia come(ar com um a seBuido pelo c^diBo da aplica(,o para ela da principal
7inalidade.
Nomes de tabela n,o de+eria e;ceder T caracteres. *e todos os 13 caracteres s,o usadosM proBramas *AP
Berados ter,o di7iculdades de+ido a Bera(,o de campos e <ndices. Necessitando usar da transa(,o *M-1 s^ podem ser
utiliYados 6 caracteres de comprimento.
E;emplo= aF133
'abela customiYada Xue pode ser +isualiYada onQline.
Posi
o
Descrio Valores Significado
1 Tpo Z Desenvovmento
2 Funcona A Asset Management
B Bass
F Fnanca Accountng
G Speca Leadger
H Human Resources Pannng
I Mantenance
K Cost Accountng
L Warehouse Management
M Materas Management
P Producton Pannng
R Payro
S Saes and Dstrbuton
U Genera System / Utty programs
3-10 Identfcad
or nco
Descro afanumrca
N48&% 7& T#1&(#% Q ATAB
R&R0$%$'4% 74 SAP R/3
Precisam iniciar com aM N ou '[ e podem ter um m;imo de 13 caracteres de comprimento.
+468#'4 P#76F4 <%'#57#67=
#ada tabela customiYada para A'AB poderia come(ar com um '[ seBuido pelo identi7icador Hnico .
'abelas Xue necessitam usar a transa(,o *M-1 s,o limitadas num m;imo de 6 caracteres de comprimento.
E;emplo= a[133
'abela customiYada de7inida para A'AB.
Manual ABAP 01
C#894% 7& T#1&(#%
R&R0$%$'4% 74 SAP R/3
#ampos de usurios podem ter at 13 caracteres de comprimento e de+em ser Hnicos na de7ini(,o da tabela.
+468#'4 P#76F4 <%'#57#67=
Guando poss<+elM use o mesmo nome do elemento de dados associado com este campo. *e di+ersos campos na
tabela usam o mesmo elemento de dadosM nomeie estes campos de maneira siBni7icati+a.
Guando poss<+elM use um elemento de dados e;istente do *AP.
N,o use espa(os e caracteres especiais no nome do campo da tabela.
E;emplo= .(13) /ANNUM
Este poderia marcar um campo de nHmero de emprstimo.
T#1&(# 7& 57$3&
+468#'4 P#76F4 <%'#57#67=
#ome(a com um a e tem um m;imo de - caracteres de comprimento.
E;emplo= a31
T#1&(# 7& K6094
+468#'4 P#76F4 <%'#57#67=
Uma tabela de Brupo de+e come(ar com um a e pode ter um m;imo de Z caracteres de comprimento.
K6094 7& T$94
R&R0$%$'4% 74 SAP R/3
'Vpe de7inido pelo usurio pode ter at 6 caracteres de comprimento e de+e come(ar com um a.
+468#'4 P#76F4 <%'#57#67=
'Vpe Pools s,o de7inidos com a transa(,o *E11M come(ando com um a e um m;imo de 6 caracteres. 'NPEQ
P/ poderia ser associado com uma rea 7uncional em particular.
E;emplo= aF331
'ipo de7inido para 'NPEs 7inanceiros
Posi
o
Descrio Valores Significado
1 Tpo Z Desenvovmento
2 Funcona A Asset Management
B Bass
F Fnanca Accountng
G Speca Leadger
H Human Resources Pannng
I Mantenance
K Cost Accountng
L Warehouse Management
M Materas Management
P Producton Pannng
R Payro
Manual ABAP 02
S Saes and Dstrbuton
U Genera System / Utty programs
3-4 Identfcad
or nco
0-Z nco Identfcador
E%'60'06#
R&R0$%$'4% 74 SAP R/3
Um nome de estrutura pode ter at 13 caracteres e de+e iniciar com a ou N.
+468#'4 P#76F4 <%'#57#67=
E;emplo= aEA$1
Estrutura customiYada para endere(o e;pandido do escrit^rio principal
V$&a%
R&R0$%$'4% 74 SAP R/3
Uma +ieO de+e come(ar com a ou N e pode ter no m;imo 13 caracteres.
+468#'4 P#76F4 <%'#57#67=
]ieOs customiYadas poderia come(ar com a seBuido pelo tipo da +ieO e um separador. restante do campo
poderia ser usado para identi7icar o tabela primria da +ieO.
Manual ABAP 0-
ALV
I5'6470BF4
$esen+ol+er relat^rios em ABAP (Ad+anced Business Application ProBraminB) com um bom +isual e recursos
a+an(ados n,o nada tri+ial.
&maBine desen+ol+er um relat^rio com coresM cabe(alUoM linUa de totaisM label de colunas e separadores de
colunas. Para piorar um poucoM Xue permita classi7icar por XualXuer campoM aumentar ou diminuir o tamanUo de
colunasM Bostaria tambm de poder trocar a posi(,o das colunasM omitir ou e;ibir camposM totaliYarM aBruparM e;portar
para E;celM etc.
'otalmente poss<+el e iBualmente in+i+el sem o uso de 7un()es A/].
A/] padroniYa e simpli7ica a e;ibi(,o e opera(,o de listas e relat^rios no sistema 1\-. Fornece inter7aces e
7ormatos padroniYados para todas as listas e relat^rios.
Na apostila +amos +er como criar proBramas utiliYando uma 7un(,o A/]. Parece poucoM mas todas trabalUam
de maneira similar.
R&(#'j6$4% '6#7$3$45#$%
Um relat^rio tradicional em ABAP n,o tem nenUum recurso ou 7ormata(,o padr,o. 'udo de+e ser proBramado
+ia c^diBo.
Um proBrama para listar um relat^rio como no e;emplo acimaM ! e;iBe muita codi7ica(,o. ]e!a Xue n,o tem
nada de comple;o.
$epois de prontoM uma simples altera(,o no posicionamento dos campos ou no tamanUo do papelM ! demanda
um no+o processo de modi7ica(,o. usurio n,o tem os recursos necessrios para resol+er o problema.
GualXuer a(,o no relat^rio apresentadoM di7erente das op()es do menu standard do 1\- para esse tipo de
listaBemM de+er ser proBramado. Uma tare7a nada simplesM +isto Xue o proBramador de+er 7aYer o processo de <da e
+oltaM ou se!aM o relat^rio de+e 7icar dindmico ao ponto do usurio +oltar na situa(,o inicialM ap^s alBuma modi7ica(,o.
Manual ABAP 09
R&(#'j6$4% ALV
/istaBens A/] s,o dindmicas por de7ini(,o. proBramador +ai escolUer Xual ou Xuais recursos ir
disponibiliYar em seu relat^rio.
Muito similar a uma planilUa do Microso7t E;celM cada coluna per7eitamente a!ust+elM podem ser
trocadas entre siM as linUas da Brade e cores s,o automticas. 1ecursos simples Xue ! eliminam um Brande es7or(o de
proBrama(,oM principalmente em altera()es.
Manual ABAP 06
B#66# 7& J&66#8&5'#%
'odos os demais recursos est,o concentrados em uma barra de 7erramentas Xue a 7un(,o disponiliYa !unto a
barra standard do 1\- (Na parte superior do relat^rio). AlBuns <cones s,o bem comuns e com 7un()es simplesM mas est
tudo pronto para o usoM sem diBita(,o de uma linUa de c^diBo a mais no proBrama.
PrimeiramenteM +amos apenas +er uma bre+e descri(,o de suas 7un()es=
*elecione uma linUa e cliXue nesse bot,o. A linUa ser
destacada em 7orma de coluna.
1eapresenta do relat^rio.
Marca todas as linUas.
$esmarca todas as linUas.
*elecionando uma coluna e clicando nesse bot,oM todo o
relat^rio 7icar classi7icado na ordem crescente por essa
coluna.
&dem ao anteriorM mas a classi7ica(,o na ordem decrescente.
]ocR poder 7iltrar o seu relat^rio baseandoQse em +alores de
campos.
'otaliYa a coluna selecionada. A coluna de+e conter um +alor.
#olunas de caracteres n,o podem ser totaliYadas.
Apresenta subtotais de um total BeralM para a coluna
selecionada. AlBuma coluna ! de+e estar totaliYadaM sen,o n,o
Ua+er mudan(a.
Mostra como ir 7icar a impress,o do relat^rio.
E;porta o relat^rio para o Microso7t E;cel.
E;porta o relat^rio para o Microso7t ?ord.
8ra+a o relat^rio em arXui+o.
En+ia o relat^rio +ia eQmail atra+s do *AP 77ice.
1anPinB em cur+a AB#. e obriBat^rio selecionar uma coluna
de +alores. 1\- solicita alBumas in7orma()es e ! apresenta o
resultado
Mostra o resultado em um Br7ico.
Permite alterar o modo de apresenta(,o do relat^rio.
1ecupera alBum laVout alterado e o aplica no relat^rio.
Permite Bra+ar um laVout alterado.
&n7orma()es como nHmero de reBistros retornadosM 7iltros
sendo utiliYadosM campos sumariYadosM etc. e apresentado por
esse bot,o.

Manual ABAP 00
O9BC&% %'#57#67
Essa barra de 7erramentas pode ser con7iBuradaM para Xue o proBramador tenUa possibilidade de criar ou retirar
bot)es. Para tanto basta copiarM por e;emploM o *tatusQ8U& (Gue a barra de 7erramentas)
*'AN$A1$:FU//*#1EEN do Brupo de 7un(,o */]#:FU//*#1EEN para o seu proBrama e alterar a +ontade.
N,o altere os c^diBos de retorno (oPQcode) dos bot)es Xue +ocR n,o ir modi7icarM dei;e como estM pois
atra+s desses c^diBos Xue a 7un(,o A/] sabe o Xue o usurio escolUeu.
UtiliYe para c^pia a transa(,o *EZ3M +e!a na 7iBura abai;o os c^diBos de retorno standard=
Nem todas as 7un()es utiliYam o mesmo *tatusQ8U&. A 7iBura est bem completa. ]ocR pode at criar sua
pr^pria barra de 7erramentasM mas XualXuer c^diBo di7erente dos apresentados acima de+er,o ser tratados no proBrama.
]eremos como tratar uma op(,o criada\alterada no e;emplo de proBrama em ane;o.
7uncionamento para alBuns dos recursos da barra de 7erramentas o Xue +eremos a seBuir. 'elasM
procedimentos e sa<das para alBuns dos bot)es.
O 14'F4 7& D&'#()&%
Primeiro selecione a linUa dese!ada atra+s do seletor de camposM e depois cliXue no <cone.
]e!a na 7iBura abai;o Xue a linUa 7oi destacada em coluna. &sso muito utiliYado Xuando permitido a edi(,o
dos campos no relat^rio.
Manual ABAP 0T
O% 14'C&% 7& T4'#( & S01'4'#(
*elecione a coluna com +alor numricoM e escolUa 'otal. Para subtotalM escolUa uma coluna XualXuer.
*empre primeiro necessrio totaliYar uma coluna com o bot,o de somat^ria e s^ ent,o de7inir os subtotais.
No e;emploM o relat^rio possui os totais dos campos "]alor /<Xuido% e "Montante do &mposto%. Foi escolUido
o campo "8rupo de cliente% para Xue o relat^rio apresentasse os subtotais.
Por de7aultM o relat^rio 7ica na ordem crescente do campo Xue 7oi escolUido como subtotal. e poss<+el totaliYar
e subtotalliYar +rios campos.
#licando nos <cones em destaXueM +ocR pode apresentar apenas as linUas de totaisM as linUas de subtotaisM
apenas o total Beral ou ainda mostrar as linUas de detalUe de alBum "8rupo de cliente% e de outro n,o.
O 14'F4 P6;QE$%0#(e.$896&%%F4
1elat^rio A/] n,o impresso como se +R na tela do computador. #liXue nesse bot,o para +isualiYar a
impress,o no modo Xue ir ser a sa<da realmente.
Manual ABAP 0Z
No e;emplo acima n,o temos os totais ou subtotais. Mas essas linUas s,o mantidas. Xue perdemos apenas o
7ormato de Brid (Microso7t E;cel). Passamos a +er um relat^rio tradicional.
O 14'F4 M$364%4J' EG3&(
Ao e;portarmos para o E;celM alBumas particularidades n,o ser,o en+iadas=
AssimM se a intens,o e Berar o relat^rio para en+iaQlo ao E;celM n,o perca tempo com 7ormata()es. Apenas o
bsico trans7erido.
'emos trRs op()es para e;portar a listaBem para o Microso7t E;celM +amos +er a sa<da de cada uma delas.
O 14'F4 M$364%4J' EG3&( " O9BF4 EG3&( M#364% SAP
#om essa op(,oM o 1\- en+ia o relat^rio para o E;cel e ! apresenta +rias barras de 7erramentas pr^prias para
Xue +ocR tenUa as mesmas 7acilidades. 1epare na 7iBuraM Xue as op()es de 7erramentas do pr^prio E;cel n,o aparecem.
Para +oltar utiliYe a op(,o do menu 1eport e depois E;it.
Manual ABAP 0[
O 14'F4 M$364%4J' EG3&( " O9BF4 T#1&(#
e a 7orma mais simples de e;porta(,o. ]e!a Xue o 1\- mantem as barras de 7erramentas do E;cel e
apenas inclui o relat^rio na planilUa.
O 14'F4 M$364%4J' EG3&( " O9BF4 T#1&(# P$E4'
Nessa op(,o o 1\- abre o E;cel e monta o relat^rio Xue permanece com alBumas 7un()es.
Mesmo Xue o seu E;cel n,o este!a e;ibindo a barra de 7erramentas "'abela $indmica%M a comunica(,o 1\- _
E;cel +ai passar a e;ibiQlaM para o acesso aos recursos do relat^rio.
Manual ABAP T3
O 14'F4 P643&%%#8&5'4 7& T&G'4
Na e;porta(,o do relat^rio para o Microso7t ?ord n,o temos tantas op()esM bastante simples. ]ocR pode
utiliYar um modelo do ?ord ou criar um documento no+o.
O 14'F4 +$(& L43#(
Ao sal+ar o relat^rio em arXui+o localM temos alBumas op()es. EscolUa e loBo em seBuida o sistema ir
solicitar o caminUo e nome do arXui+o.
Manual ABAP T1
O 14'F4 D&%'$5#':6$4 7& 3466&$4 &(&'6k5$34
Atra+s do *AP 77ice poss<+el en+iar o relat^rio +ia eQmail. A tela para o preencUimento a seBuinte=
O 14'F4 M47$J$3#6 (#h40'
Essa op(,o enBloba as 7un()es do FiltroM 'otaliYarM *ubtotaliYarM rdenarM *elecionar colunasM cultar colunasM
etc. ]e!amos cada Buia de op(,o.
Na 7iBura abai;oM na parte da esXuerdaM temos as colunas Xue est,o +is<+eis no relat^rio. Na parte direitaM temos
todas as dispon<+eis. ]e!a Xue ! temos aXuiM a possibilidade de in7ormar Xuais campos pretendemos totaliYar.
Manual ABAP T2
Na Buia ordena(,oM in7ormamos Xuais campos Xueremos classi7icarM em Xual ordem e aindaM se dese!amos um
subtotal por esse campo.
Na Buia 7iltro de7inimos por Xual campo (ou Xuais) Bostar<amos de delimitar o resultado. No caso abai;oM 7oi
escolUido o nHmero do documento de 7aturamento e sua cateBoria. A 7un(,o solicita essa ranBe de +alores para Berar o
relat^rio.
A op(,o ]is,o raramente utiliYada. N,o se cria +is)es do relat^rio. e muito mais utiliYado e simples as
op()es de laVout. Na Buia ]is,o +ocR pode utiliYar templates do E;cel ou do #rVstal 1eports. 'ambm U pouca
documenta(,o sobre o assunto.
s laVouts Xue +ocR criaM n,o dei;am de ser +is)es di7erentes de um mesmo relat^rio.
Manual ABAP T-
Na Buia de 1epresenta(,o +ocR pode alterar alBumas op()es no 7ormato de seu relat^rio. MarXue ou
desmarXue os cUecPbo;es.
O 14'F4 K6#E#6 L#h40'
7ormato Xue seu relat^rio esti+er no momento (Gue 7oi con7iBurado) pode ser sal+o. ]rios laVouts
di7erentes para um mesmo relat^rio. 7laB "#on7iB.prelim% +ai indicar Xual o laVout de7aultM ou se!aM ao e;ecutar o
proBrama no+amenteM de Xue 7orma o relat^rio ser apresentado de in<cio.
O 14'F4 S&(&3$45#6 L#h40'
$a mesma 7orma poss<+el mudar o 7ormato de seu relat^rio a XualXuer momento. Basta selecionar outro
laVout sal+o. Na 7iBura abai;oM temos apenas um.
Manual ABAP T9
No c^diBo em ane;oM +ocR +er Xue poss<+elM na tela de sele(,o do proBrama permitir ao usurio selecionar
um laVoutM antes do relat^rio ser apresentado com o laVout de7ault (#aso e;ista alBum).
*em nenUum laVoutM o relat^rio apresentado con7orme 7oi codi7icado no proBrama.
I5%&6$574 08# J$H06# 54 3#1&B#()4
Gue tal o cabe(alUo do seu relat^rio no 7ormato da 7iBura abiai;o (por e;emplo)M e loBo depois as linUas de
detalUe=
&sso melUora bem a aparRncia dos relat^rios. ]e!a Xue temos at a possibilidade de inserir 7iBura em
bacPBroundM como na ?eb. te;to tambm con7iBur+elM +ocR pode inserir +rias linUas e alterar o tamanUo da 7onte.
No e;emplo acima 7oi utiliYado como bacPBround a imaBem A/]:BA#I81UN$ e o nome do loBotipo
ENhN*AP:/8.
A tabela com todas as 7iBuras dispon<+eis a B$*:#NN36M #/A** A P&#'U1E.
I8946'#574 08# $8#H&8 9#6# 4 R/3
1\- permite Xue +ocR importe 7iBurasM assim n,o 7icamos limitados apenasM as Xue s,o standard. Por e;emplo
importar o loBotipo da empresa e inserir no cabe(alUo do relat^rio A/]. ]e!amos como se 7aY.
Manual ABAP T6
Ap^s criar a imaBem (.8&FM .BMPM .hP8M etc) em alBum aplicati+o (M* PaintM PUotosUopM Paint *Uop ProM etc)
o Xue precisamosM utiliYar a transa(,o 3FPM332 (&mport /oBo 7or 1eportinB) e importar a imaBem para o 1\-. Nem
todas as +ers)es do 1\- possuem essa transa(,o.
PreencUa as in7orma()es necessrias e diBite FZ para e;ecutar.
Na pr^;ima tela +ocR ir in7ormar onde est a 7iBuraM clicando em 'E/A. ]e!a a imaBem abai;o=
#om duplo cliXue no item 'E/AM a transa(,o apresenta a tela padr,o para abrir um arXui+o. /ocaliYe a 7iBura e
pronto.
EG&89(4 7& 964H6#8#
*-----------------------------------------------------------------------
* ProcWork Informtca - ASPEN - Undade de Negcos SAP
Manual ABAP T0
* Descro : Programa de exempo para crao de reatro ALV
* Dezembro, 2002
*-----------------------------------------------------------------------
report zexempo_av.
*-----------------------------------------------------------------------
* Tabeas transparentes
*-----------------------------------------------------------------------
tabes:
vbrk. "Documentos de faturamento
*-----------------------------------------------------------------------
* Tpos standard
*
* O con|unto de tpos VRM e SLIS so utzados por funes ALV. Defna
* sempre no nco. O mas mportante mesmo o SLIS.
*-----------------------------------------------------------------------
type-poos:
vrm, "Necessro para uso de ALV
ss. "Tpos gobas para ALV
*-----------------------------------------------------------------------
* Tpos do usuro
*-----------------------------------------------------------------------
types:
begn of y_vbrk,
vben ke vbrk-vben, "Nmero documento
kdgrp ke vbrk-kdgrp, "Grupo de centes
netwr ke vbrk-netwr, "Vaor qudo
mwsbk ke vbrk-mwsbk, "Montante do mposto
fkart ke vbrk-fkart, "Tpo documento faturamento
vtweg ke vbrk-vtweg, "Cana de dstrbuo
kunag ke vbrk-kunrg, "Emssor da ordem
xbnr ke vbrk-xbnr, "Nota fsca
mark type c, "Marcar ateraes
end of y_vbrk.
*-----------------------------------------------------------------------
* Tabeas nternas ALV
*
* As estruturas aqu utzadas (SLIS) esto expcadas com as opes
* mas mportantes no fna da aposta
*-----------------------------------------------------------------------
data:
t_necoor type ss_specaco_av occurs 0 wth header ne,
t_stheader type ss_t_stheader,
t_fedcat type ss_t_fedcat_av wth header ne,
t_sort type ss_sortnfo_av occurs 0 wth header ne.
data:
v_stheader type ss_stheader, "Cabeaho
v_ayout type ss_ayout_av, "ayout para sada
v_prnt type ss_prnt_av, "Ctr de mpresso
v_varante ke dsvarant. "Varante de exbo
*-----------------------------------------------------------------------
* Tabeas nternas
*-----------------------------------------------------------------------
data:
t_vbrk type y_vbrk occurs 0 wth header ne.
* A prxma tabea necessro porque no possve um seect em
* tabeas que possuem campos como outras tabeas.
* No caso fo necessro ncur a SLIS_T_SPECIALCOL_ALV
data: begn of t_av occurs 0.
ncude structure t_vbrk.
Manual ABAP TT
data:
coor type ss_t_specaco_av. "Defnr a cor
data: end of t_av.
*-----------------------------------------------------------------------
* Varves de uso gera
*-----------------------------------------------------------------------
data:
v_tabx ke sy-tabx,
v_repd ke sy-repd,
v_fag.
*-----------------------------------------------------------------------
* Tea de seeo
*-----------------------------------------------------------------------
seecton-screen begn of bock one.
seect-optons:
s_vben for vbrk-vben. "Documento de faturamento
seecton-screen skp.
parameters:
p_vara ke dsvarant-varant. "Varante de exbo
*-----------------------------------------------------------------------
* O usuro ter a opo de ncar a apresentao do reatro com
* agum ayout savo anterormente.
* Essa escoha ser armazenada em P_VARIA. Utzamos uma funo que
* retorna todos os ayout possves.
*-----------------------------------------------------------------------
seecton-screen end of bock one.
*-----------------------------------------------------------------------
* Eventos
*-----------------------------------------------------------------------
ntazaton.
perform zf_nt_av.
at seecton-screen on vaue-request for p_vara.
perform zf_recupera_ayouts_savos.
*-----------------------------------------------------------------------
* Prncpa
*-----------------------------------------------------------------------
start-of-seecton.
perform:
zf_seecao_dados, "Seecona a VBRK
zf_atera_cores, "Aterando as cores dos campos
zf_monta_tabea_av, "Preenche o catogo
zf_sort_subtota, "Ordenao dos campos e subtotas
zf_executa_funcao_av. "Gera o reatro
end-of-seecton.
*-----------------------------------------------------------------------
* Rotnas
*-----------------------------------------------------------------------
*-----------------------------------------------------------------------
* Form zf_nt_av
*-----------------------------------------------------------------------
Manual ABAP TZ
* Busca ayout de exbo defaut para o reatro. Se houver
* agum formato padro para o reatro, essa funo busca e |
* apresenta o reatro nesse formato.
* Um ayout fca como defaut quando marcamos "Confg.Prem." Um
* fag que pode ser marcado na opo "Gravar ayout" na barra de
* ferramentas do ALV
*-----------------------------------------------------------------------
form zf_nt_av.
v_repd = sy-repd.
cear v_varante.
v_varante-report = v_repd.
ca functon 'REUSE_ALV_VARIANT_DEFAULT_GET'
EXPORTING
_save = 'A'
CHANGING
cs_varant = v_varante
EXCEPTIONS
not_found = 2.
f sy-subrc = 0.
p_vara = v_varante.
endf.
endform.
*-----------------------------------------------------------------------
* Form zf_recupera_ayouts_savos
*-----------------------------------------------------------------------
* Abre um search hep com os ayouts | gravados. Se o usuro
* escoher agum aqu, o programa va ncar a apresentao do
* reatro com esse ayout, e no o que defaut, retornado na
* funo REUSE_ALV_VARIANT_DEFAULT_GET em ZF_INIT_ALV (Acma)
*-----------------------------------------------------------------------
form zf_recupera_ayouts_savos.
v_varante-report = v_repd.
ca functon 'REUSE_ALV_VARIANT_F4'
EXPORTING
s_varant = v_varante
_save = 'A'
IMPORTING
es_varant = v_varante
EXCEPTIONS
not_found = 2.
f sy-subrc = 2.
message d sy-msgd type 'S' number sy-msgno
wth sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ese.
p_vara = v_varante-varant.
endf.
endform.
*-----------------------------------------------------------------------
* Form zf_seecao_dados
*-----------------------------------------------------------------------
* Seeo dos dados
*-----------------------------------------------------------------------
form zf_seecao_dados.
seect vben kdgrp netwr mwsbk
fkart vtweg kunag xbnr
Manual ABAP T[
from vbrk
nto tabe t_vbrk
where vben n s_vben.
oop at t_vbrk.
move-correspondng t_vbrk to t_av.
append t_av.
endoop.
endform.
*----------------------------------------------------------------------*
* Form zf_atera_cores
*----------------------------------------------------------------------*
* Permte nformar a cor que vc dese|a para a couna, ncusve
* peo vaor da varve
*----------------------------------------------------------------------*
FORM zf_atera_cores.
* Ve|a agumas cores
* Azu = 1
* Verde = 5
* Norma = 2
* Vermeha = 6
* Mas va depender de como esto as cores do seu SAP-Gu
oop at t_av.
refresh t_necoor.
refresh t_av-coor.
t_necoor-fedname = 'VBELN'.
t_necoor-coor-co = '6'.
t_necoor-coor-nv = '1'. "Inverso, 1 ga e 0 desga
append t_necoor.
* Temos a opo INV, que nvertdo, mesmo esquema do INT
* 1 ga e 0 desga
f t_vbrk-netwr > 10000.
t_necoor-fedname = 'NETWR'.
t_necoor-coor-co = '1'.
t_necoor-coor-nt = '1'. "Negrto (1-gado, 0-Desgado)
ese.
t_necoor-fedname = 'NETWR'.
t_necoor-coor-co = '6'.
t_necoor-coor-nt = '1'. "Negrgo (1-gado, 0-Desgado)
endf.
append t_necoor.
t_av-coor|| = t_necoor||.
modfy t_av.
endoop.
ENDFORM.
*-----------------------------------------------------------------------
* Form zf_monta_tabea_av
Manual ABAP Z3
*-----------------------------------------------------------------------
* Monta tabea para apresentao do reatro. Aqu montamos um
* catogo com as nformaes dos campos.
* Ve|a que no estamos preenchendo todas as opes do catogo,
* no necessro. No anexo voc poder encontrar os prncpas
*-----------------------------------------------------------------------
form zf_monta_tabea_av.
cear t_fedcat.
t_fedcat-fedname = 'MARK'.
t_fedcat-tabname = 'T_ALV'.
t_fedcat-reptext_ddc = 'S'.
t_fedcat-nttype = 'C'.
t_fedcat-outputen = 1.
t_fedcat-checkbox = 'X'.
append t_fedcat.
cear t_fedcat.
t_fedcat-fedname = 'VBELN'.
t_fedcat-tabname = 'T_ALV'.
t_fedcat-reptext_ddc = 'Doc. Fatura'.
t_fedcat-nttype = 'C'.
t_fedcat-outputen = 10.
append t_fedcat.
cear t_fedcat.
t_fedcat-fedname = 'KDGRP'.
t_fedcat-tabname = 'T_ALV'.
t_fedcat-reptext_ddc = 'Grupo de Centes'.
t_fedcat-nttype = 'C'.
t_fedcat-outputen = 2.
append t_fedcat.
* Para o campo NETWR, o reatro | va mostrar nha de tota
cear t_fedcat.
t_fedcat-fedname = 'NETWR'.
t_fedcat-tabname = 'T_ALV'.
t_fedcat-reptext_ddc = 'Vaor qudo'.
t_fedcat-nttype = 'P'.
t_fedcat-outputen = 15.
t_fedcat-do_sum = 'X'.
append t_fedcat.
cear t_fedcat.
t_fedcat-fedname = 'MWSBK'.
t_fedcat-tabname = 'T_ALV'.
t_fedcat-reptext_ddc = 'Montante do Imposto'.
t_fedcat-nttype = 'P'.
t_fedcat-outputen = 15.
append t_fedcat.
* Os campos abaxo no ro aparecer no reatro, apenas quando
* o usuro modfcar o ayout e nserr esses campos nas counas
* a serem apresentadas
cear t_fedcat.
t_fedcat-fedname = 'FKART'.
t_fedcat-tabname = 'T_ALV'.
t_fedcat-reptext_ddc = 'Tpo do documento'.
t_fedcat-nttype = 'C'.
t_fedcat-outputen = 4.
Manual ABAP Z1
t_fedcat-no_out = 'X'.
append t_fedcat.
cear t_fedcat.
t_fedcat-fedname = 'VTWEG'.
t_fedcat-tabname = 'T_ALV'.
t_fedcat-reptext_ddc = 'Cana de Dstrbuo'.
t_fedcat-nttype = 'C'.
t_fedcat-outputen = 2.
t_fedcat-no_out = 'X'.
append t_fedcat.
cear t_fedcat.
t_fedcat-fedname = 'KUNAG'.
t_fedcat-tabname = 'T_ALV'.
t_fedcat-reptext_ddc = 'Emssor da Ordem'.
t_fedcat-nttype = 'C'.
t_fedcat-outputen = 10.
t_fedcat-no_out = 'X'.
append t_fedcat.
* Para o campo XBLNR, no vamos preencher nada. Nem dsponve
* na modfcao do ayout ee va estar.
* No necessro atrbur todos os campos, no ocorre
* nenhum erro.
endform.
*-----------------------------------------------------------------------
* Form zf_sort_subtota
*-----------------------------------------------------------------------
* Cassfcao e tem de subtotazao
*-----------------------------------------------------------------------
form zf_sort_subtota.
cear t_sort||.
t_sort-spos = 1.
t_sort-fedname = 'KDGRP'.
t_sort-tabname = 'T_ALV'.
t_sort-up = 'X'.
t_sort-subtot = 'X'.
append t_sort.
* Com sso o reatro va sar cassfcado em ordem crescente de Grupo
* de cente e anda r aparecer um subtota por esse campo.
endform.
*-----------------------------------------------------------------------
* Form zf_executa_funcao_av
*-----------------------------------------------------------------------
* Apresenta reatro
*-----------------------------------------------------------------------
form zf_executa_funcao_av.
* Preenchendo agumas opes de mpresso (No obrgatro)
v_ayout-expand_a = 'X'. "Abrr subtens
v_ayout-cowdth_optmze = 'X'. "Largura mehor possve da couna
v_ayout-edt = 'X'. "Permtr a edo
* Indcando para funo qua o ayout que deve ser apresentado
* prmero
Manual ABAP Z2
v_varante-varant = p_vara.
v_prnt-no_prnt_stnfos = 'X'.
ca functon 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
_caback_program = v_repd
_background_d = 'ALV_BACKGROUND'
_caback_top_of_page = 'ZF_TOP_OF_PAGE'
* _caback_pf_status_set = 'ZF_STATUS'
_caback_user_command = 'ZF_USER_COMMAND'
t_fedcat = t_fedcat||
s_ayout = v_ayout
t_sort = t_sort||
_defaut = 'X'
_save = 'A'
s_varant = v_varante
s_prnt = v_prnt
TABLES
t_outtab = t_av
EXCEPTIONS
program_error = 1
others = 2.
* As funes que geram reatros ALV possuem vros parmetros de
* I_CALLBACK. Os que mas so utzados, so os que esto
* na chamada acma. Para ver os demas use a transao SE37. Esses
* parmetros so preenchdos com nomes de FORMS do programa
* _caback_program = Oua programa que executou a funo
* _caback_top_of_page = Rotna de cabeaho
* _caback_pf_status_set = Oua barra de tarefas a funo va usar
* _caback_user_command = Tratamento dos botes aterados ou crados
endform.
*-----------------------------------------------------------------------
* Form zf_user_command
*-----------------------------------------------------------------------
* Tratamento das opes do usuro. Por exempo um Dr-down ou
* agum boto que voc nseru ou aterou. O mportante conhecer
* os parmetros que o form recebe
*-----------------------------------------------------------------------
form zf_user_command usng ucomm ke sy-ucomm
sefed type ss_sefed.
* UCOMM: o sy-ucomm (Ok-code)
* SELFIELD: uma estrutura com dados que ns permte dentfcar
* o que fo seeconado. Essa estrutura tambm est
* expcada no anexo ao fna da aposta
* Sava a poso do reatro (Lnha escohda)
sefed-row_stabe = 'X'.
Manual ABAP Z-
* Uma das questes fo como aterar o contedo de uma tabea
* transparente com as ateraes fetas no reatro ALV
* Segue um exempo de como pode ser feto:
* Em nossa barra de ferramentas cramos o boto com cdgo
* ZATU
f ucomm = 'ZATU'.
* Vamos er a tabea T_VBRK onde mark = X. A da que
* o usuro mark com X os regstros aterados
oop at t_vbrk where mark = 'X'.
v_tabx = sy-tabx.
* Atuaza a tabea transparente
" update ztabea ....
* Ento votamos a T_VBRK sem marcao aguma
cear t_vbrk-mark.
modfy t_vbrk ndex v_tabx.
* Ve|a que esse tpo de esquema pode ser feto para
* excur regstros tambm
endoop.
endf.
* Para testar o cdgo do boto
f ucomm = 'ZLOG'.
" perform ...
" ca transacton...
endf.
* Para um dr down a partr de um regstro
f not sefed-tabndex = 0.
read tabe t_vbrk ndex sefed-tabndex.
"perform ...
"ca transacton ...
ese.
* Ccou em nha nvda, nha de tota, cabeaho, etc
endf.
endform.
*-----------------------------------------------------------------------
* Form zf_top_of_page
*-----------------------------------------------------------------------
* Cabeaho do reatro
*-----------------------------------------------------------------------
form zf_top_of_page.
* Uma dca, em reatros ALV com utzao de dr down, na vota ao
* reatro prncpa ee va executar novamente o cabeaho. Isso faz
* com que ee fque dupcado. Utze um fag que aps apresentar o
* cabeaho uma vez, fque marcado com um 'X', por exempo.
* V_FLAG na prmera vez branco.
check v_fag s nta.
* Monta as nhas de cabeaho
Manual ABAP Z9
cear t_stheader||.
cear v_stheader.
v_stheader-typ = 'H'.
* TYP = H, faz com que a fonte fque maor
v_stheader-nfo = 'Apenas um Exempo em ALV'.
append v_stheader to t_stheader.
* Defno do Pro|eto
cear v_stheader.
v_stheader-typ = 'A'.
* TYP = S, outro tpo de fonte
v_stheader-nfo = 'Segunda nha do cabeaho'.
append v_stheader to t_stheader.
* O campo INFO, pode ter no mxmo 60 caracteres
* Apresenta o cabeaho.
* Ve|a que | uma outra funo, essa apresenta a fgura, |
* a funo REUSE_ALV_GRID_DISPLAY (Prncpa) tem o parmetro
* que voc ndca a magem que ser apresentada em background,
* como na WEB.
ca functon 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
_ogo = 'EN|OYSAP_LOGO'
t_st_commentary = t_stheader.
* Para no apresentar mas o cabeaho no refresh
v_fag = 'X'.
endform.
*----------------------------------------------------------------------
* Form zf_status
*----------------------------------------------------------------------
* Status com boto de og (Item a mas na barra ALV)
*----------------------------------------------------------------------
form zf_status usng rt_extab type ss_t_extab.
* Aqu estamos nformando a funo que ea dever utzar a barra de
* ferramentas ZALV_BOTOES.
"set pf-status 'ZALV_BOTOES'.
* Tambm possve excur funes
"f sy-uname = ...
"EXCLUDING ...
"endf.
endform.
E%'60'06#% SLIS
SLIS_FIELDCAT_ALV - Tabea que o catogo de campos. Va conter toda nformao
necessra sobre cada campo do reatro. formada por um grupo de tpos, aqu
descrevemos os mas utzados. Obrgatro (Ou no mnmo) preencha os campos que
esto subnhados.
FIELDNAME Tam. 30, tpo
caracter
Nome do campo, que va ser uma couna do seu
reatro.
TABNAME Tam. 30, tpo Nome da tabea que possu o campo defndo
Manual ABAP Z6
caracter acma. Essa tabea deve os regstros (nhas) do
seu reatro.
ICON Tam. 1, tpo
caracter
Preencha com X, caso o campo represente um
cone.
SYMBOL Tam. 1, tpo
caracter
Preencha com X, caso o campo represente um
smboo.
CHECKBOX Tam. 1, tpo
caracter
Preencha com X, caso dese|e apresentar um
checkbox na couna. Utzado para campos do
tpo fag.
|UST Tam. 1, tpo
caracter
|ustfcar a texto do campo. Use R, C ou L
(Dreta, Esquerda ou Centro).
LZERO Tam. 1, tpo
caracter
Preencher com X, para emnar zeros
esquerda.
NO_SIGN Tam. 1, tpo
caracter
Preencher com X, para no apresentar sna em
vaores.
NO_ZERO Tam. 1, tpo
caracter
Preencher com X, para no exbr vaores
zerados.
DO_SUM Tam. 1, tpo
caracter
Se a couna um vaor, preencha com X, caso
quera a sumarzao | na apresentao do
reatro.
NO_OUT Tam. 1, tpo
caracter
Preencher com X, se dese|a que a couna no
aparea.
OUTPUTLEN Tam. 6, tpo
numrco
Aqu voc ndca o tamanho do seu campo.
INTTYPE Tam. 1, tpo
caracter
Tpo do campo, ve|a os tpos prncpas:
C-Cadea de caracteres
N-Cadea de caracteres (S nmero)
D-Data (data: AAAAMMDD)
T-Momento (hora:HHMMSS)
X-Seqnca de byte (hexadecma)
I-N ntero (4 byte c/sna)
P-Compactado
F-Ponto futuante
REPTEXT_DDI
C
Tam. 30, tpo
caracter
Labe da couna do reatro.
HOTSPOT Tam. 1, tpo
caracter
Preencher com X, caso dese|e que ao passar o
mouse por cma do campo, aparea o cone de
uma "mo". Indcando que exste aguma ao
ao ccar sobre esse campo.
SLIS_T_LISTHEADER - Tabea para crao do cabeaho de seu reatro. O
preenchmento de todos os campos, ncusve a prpra utzao dessa tabea no
obrgatra.
TYP H = Header, S = Seecton, A =
Acton
Dependendo do tpo (H,S ou A) o tpo de etra
modfca.
KEY Tam. 20, tpo caracter No precsa preencher.
INFO Tam. 60, tpo caracter o texto que voc quer que aparea no
cabeaho. Voc pode utzar n nhas. Ve|a no
programa exempo.
SLIS_SORTINFO_ALV - Tabea que va ndcar para funo como a cassfcao dos
campos do reatro. O preenchmento de todos os campos, ncusve a prpra utzao
dessa tabea no obrgatra.
FIELDNAME Tam. 30, tpo
caracter
Nome do campo, que va ser uma couna do seu
reatro
TABNAME Tam. 30, tpo
caracter
Nome da tabea que possu o campo defndo acma.
UP Tam. 1, tpo
caracter
Marque esse campo com X para cassfcar em ordem
crescente.
DOWN Tam. 1, tpo Marque esse campo com X para cassfcar em ordem
Manual ABAP Z0
caracter decrescente.
SUBTOT Tam. 1, tpo
caracter
Marque com X para que no reatro aparea um
subtota por esse campo.
SPOS Tam. 2, tpo
numrco
Seqnca de ordenao dos campos
DISVARIANT - Varant.Exbo (Layouts savos)
REPORT Nome do programa ABAP Preencher com o nome do programa.
Utze a varve do sstema SY-REPID
HANDLE ID controe p/chamadas
mtpas a partr do mesmo
programa
Uso nterno
LOG_GROUP Conceto gco de grupo Uso nterno
USERNAME Nome do usuro para
gravao especfca do usuro
Uso nterno
VARIANT Layout Uso nterno. Aqu va retornar o nome do
ayout que voc savou
TEXT Denomnao ayout Uso nterno. Aqu retorna a descro que
voc deu para o seu ayout
DEPENDVAR
S
Vetor para entradas de
varante dependentes
Uso nterno
SLIS_LAYOUT_ALV - Defne o formato de sada do reatro. O preenchmento de todos os
campos, ncusve a prpra utzao dessa estrutura no obrgatra.
NO_COLHEAD Tam. 1, tpo
caracter
Preencha com X para que o seu reatro
no tenha abe das counas.
ZEBRA Tam. 1, tpo
caracter
Preencher com X para que sua stagem
aparea zebrada.
NO_VLINE Tam. 1, tpo
caracter
Preencher com X para que as counas do
reatro no tenham dvses.
NUMC_SUM Tam. 1, tpo
caracter
Preencher com X, para que o reatro
permta totazao de campos to tpo N
(Caracteres numrcos).
EDIT Tam. 1, tpo
caracter
Preencher com X para que o usuro possa
edtar o vaor do campo no reatro.
NO_INPUT Tam. 1, tpo
caracter
Preencher com X se o campo for apenas de
sada.
COLWIDTH_OPTIMIZE Tam. 1, tpo
caracter
Marcar com X para que a argura da couna
fque de acordo com o maor tamanho: Labe
ou Detahe
NO_TOTALLINE Tam. 1, tpo
caracter
Preenchendo esse campo com X, em seu
reatro no r aparecer nha de tota.
TOTALS_BEFORE_ITEM
S
Tam. 1, tpo
caracter
Preencher com X para que os totas
apaream antes das nhas de detahe.
TOTALS_ONLY Tam. 1, tpo
caracter
Preencher com X para que em seu reatro
apaream apenas os totas.
TOTALS_TEXT Tam. 60, tpo
caracter
Texto para as nhas de tota
SUBTOTALS_TEXT Tam. 60, tpo
caracter
Texto para as nhas de subtota
SLIS_PRINT_ALV - Informao para a mpresso. O preenchmento de todos os campos,
ncusve a prpra utzao dessa estrutura no obrgatra.
PRINT Tam. 1, tpo
caracter
Preencher com X para permtr a mpresso.
PRNT_TITLE Tam. 1, tpo
caracter
Preencher com X para permtr a mpresso do
ttuo do reatro.
NO_PRINT_LISTINFOS Tam. 1, tpo
caracter
Preencher com X para que na mpresso no
apaream as nformaes da stagem.
SLIS_SELFIELD - Informao sobre o regstro seeconado. As nformaes so retradas do
catogo.
Manual ABAP ZT
TABNAME Tam. 30, tpo
caracter
Nome da tabea que d orgem aos dados.
TABINDEX Sy-tabx Va ndcar a poso do regstro dentro da tabea. Se
precsar recuperar os vaores utze esse ndce em
um comando read tabe ... ndex ss_sefed-tabndex.
COL_STABLE Tam. 1, tpo
caracter
Marque com X, para manter o reatro na couna em
que estava antes do dr down.
ROW_STABL
E
Tam. 1, tpo
caracter
Marque com X, para manter o reatro na nha
seeconada antes do dr down.
REFRESH Tam. 1, tpo
caracter
Para atuazar o reatro, preencher com X.
Problemas e corre()es por 7a+or en+iar para= marcelo.buenoqprocOorP.com.br
ALV " M#$% D&'#()&%
Manual ABAP ZZ
A/] 8rid uma 7erramenta 7le;<+el para e;ibi(,o de relat^rios ou r+ore.
*,o disponibiliYados bot)es Xue permitem ao usurio manipular os dados (classi7icarM 7iltrarM somar).
Alm dos bot)es standards do sistemaM poss<+el criar no+os bot)es con7orme a necessidade do usurio. &sto
pode eliminar certas etapas no processo de Berenciamento de e+entos para controles.
ATEN,-O= A/] n,o permite processamento em BacPBround
UTILIZA,-O
Abap /ist ]ieOer padroniYa e simpli7ica o uso de listas e relat^rios no sistema 1\-.
PodeQse especi7icar os campos a serem e;ibidos no relat^rio e modi7icar a seXnRncia em Xue esses campos s,o
e;ibidos. Alm dissoM podeQse a!ustar a larBura das colunas indi+iduais para atender a reXuisitos espec<7icos.
A/] permite =
Usar +ariantes de e;ibi(,o standard prede7inidas pela *AP
Modi7icar laVout
*elecionar /aVout
8ra+ar laVout
O67&5#6 4% 7#74%= rdenar as linUas de acordo com os +alores das colunasM em seXnRncia crescente e
decrescente
rdenar #rescente
rdenar $ecrescente
D&J$5$6 08 J$('64 = E;ibir somente os campos dese!ados
$e7inir *ele(,o de dados
+468#6 '4'#$% & %01'4'#$% = Em uma listaM poss<+el calcular totais e subtotais de uma ou mais colunas
selecionadas.
'otal
*ubQ'otal
EG$1$BF4 7& $5J468#BC&% 7&'#()#7#% = PodeQse acessar in7orma()es detalUada de linUas indi+iduais da lista
$etalUe
P&%R0$%# = e poss<+el pesXuisar in7orma()es espec<7icas
PesXuisar
I896&%%F4 7& L$%'# & 96;QE$%0#($e#BF4 = PodeQse imprimir as listas e cUamar uma prQe;ibi(,o antes de
imprimir
&mpress,o
PrQ]isualiYa(,o
EG946'#BF4 7& 7#74% = PodeQse copiar as listasM por e;emploM para uma planilUa ou Bra+aQlas como arXui+o
local
Manual ABAP Z[
ArXui+o /ocal
E;cel
Processamento de 'e;to
$estinatrio de #orreio Eletr`nico _ En+iar relat^rio +ia correio *AP
D&%(43#6 34(05#%= Mudar coluna de luBar
A/] 8rid 7ormado basicamente por =
Uma barra de 7erramenta
Um t<tulo
Uma lista de sa<da
C453&$'4 7& V#6$#5'& 7& EG$1$BF4
A +ariante de e;ibi(,o utiliYada para e;ibir o relat^rio em +rios 7ormatos di7erente. #ada usurio pode criar
a sua pr^pria +ariante e utiliYaQla para +isualiYar o relat^rio.
Por e;emplo = Um relat^rio Xue tenUa 23 campos e;ibidos na tela. ]ocR pode eliminar os campos Xue n,o ir
utiliYarM acrescentar totaliYadoresM ordena(,oM mudar os campos de posi(,oM etc.
EXEMPLO?
T&(# N468#( 74 6&(#'j6$4
Barra de Ferramenta
Relatrio ou
Lista
Manual ABAP [3
E($8$5#574 C#894%P O67&5#574 9&(# D#'# D4308&5'4 & C6$#574 T4'#($e#746&%
Manual ABAP [1
T&(# 7& S&(&BF4 R&(#'j6$4
EVENTO " INITIALIZATION
Neste e+ento +ocR +eri7icar se e;iste uma +ariante de7inida como de7ault para o relat^rio atra+s da 7un(,o
1EU*E:A/]:]A1&AN':$EFAU/':8E'
V#6$:E&( ?
de7:+ariante /&IE dis+ariant.
P#6>8&'64 7# '&(# 7& %&(&BF4 ?
PA1AME'E1* = p:+ari /&IE dis+ariantQ+ariant.
+05BF4 ?
#A// FUN#'&N g1EU*E:A/]:]A1&AN':$EFAU/':8E'g
E.P1'&N8
i:sa+e A JAL
#@AN8&N8
cs:+ariant A de7:+ariante
E.#EP'&N*
not:7ound A 2.
&F sVQsubrc A 3.
p:+ari A de7:+arianteQ+ariant.
EN$&F.
EVENTO " AT SELECTIONQSCREEN ON VALUEQRESUEST .....
Neste e+ento +ocR de+er criar uma rotina para e;ibir as +ariantes ! e;istentes para o relat^rio em Xuest,o.
A' *E/E#'&NQ*#1EEN N ]A/UEQ1EGUE*' F1 p:+ari.
PE1F1M 7:79:+ariant.
P_VARI
Manual ABAP [2
V#6$:E&$% ?
+ariant:e;it(31) 'NPE cM
+ariante /&IE dis+ariantM
+05BF4 ?
#A// FUN#'&N g1EU*E:A/]:]A1&AN':F9g
E.P1'&N8
is:+ariant A +ariante
i:sa+e A JAL
&MP1'&N8
e:e;it A +ariant:e;it
es:+ariant A de7:+ariante
E.#EP'&N*
not:7ound A 2.
&F sVQsubrc A 2.
ME**A8E &$ sVQmsBid 'NPE g*g NUMBE1 sVQmsBno
?&'@ sVQmsB+1 sVQmsB+2 sVQmsB+- sVQmsB+9.
E/*E.
&F +ariant:e;it A space.
p:+ari A de7:+arianteQ+ariant.
EN$&F.
EN$&F.
EVENTO " AT SELECTIONQSCREEN
Neste e+ento +ocR ir tratar a +ariante in7ormadaM ou se!aM +eri7icar a sua e;istRnciaM pois o usurio pode ter
diBitado um nome XualXuer ao in+s de utiliYar o F9.
A' *E/E#'&NQ*#1EEN.
PE1F1M 7:+ariante.
]eri7icar se e;iste +alor no pardmetro da tela
&F N' p:+ari &* &N&'&A/.
Mo+er +alor em branco para a estrutura de7:+ariante e o nome da +ariante para o campo de7:+arianteQ+ariant
M]E +ariante ' de7:+ariante.
M]E p:+ari ' de7:+arianteQ+ariant.
EG&30'#6 # J05BF4
#A// FUN#'&N g1EU*E:A/]:]A1&AN':E.&*'EN#Eg
Manual ABAP [-
E.P1'&N8
i:sa+e A JAL
#@AN8&N8
cs:+ariant A de7:+ariante.
M4E&6 &%'60'06# 7&JNE#6$#5'& 9#6# E#6$#5'&
+ariante A de7:+ariante.
E/*E.
S& 5F4 &G$%'$6 E#(46 54 9#6>8&'64 $5$3$#($e#6 # &%'60'06# V#6$#5'&
#/EA1 +ariante.
+arianteQreport A +:repid.
EN$&F.
+ORMATA,-O DO RELAT.RIO EM ALV
Neste t^pico iremos mostrar as rotinas necessrias para 7ormata(,o de um relat^rio em A/]. Formata(,o
BeralM de camposM bot)es e etc.
D&J$5$BC&% 7& 7#74% 9#6# 4 (#h40' ALV
D&J$5$3#4 7& T$94%
K6094% 7& '$94
'NPEQP/*= slis.
'NPEQP/*= PPblo.
U46b#6&#%
$A'A= O:laVout 'NPE slis:laVout:al+M
O:print 'NPE slis:print:al+
O:e+ent 'NPE slis:al+:e+entM
O:line 'NPE slis:listUeader.
$A'A= colin7o 'NPE PPblo:specialcol.
T#1&(# I5'&65#
$A'A= l:sort 'NPE slis:t:sortin7o:al+M
l:e+ent 'NPE slis:t:e+entM
l:top:o7:paBe 'NPE slis:t:listUeaderM
t:campos 'NPE slis:t:7ieldcat:al+ ?&'@ @EA$E1 /&NE.
T#1&(# I5'&65# 9#6# I896&%%F4 74 R&(#'j6$4
$A'A = BE8&N F t:relat ##U1* 3M
#ampo1
#ampo2
#ampo-
.........
.........
.........
bo;(1) 'NPE cM l #ampo *elecao /inUa
colin7o 'NPE PPblo:t:specialcolM " Formata(,o de #olunas
EN$ F t:relat.
Manual ABAP [9
R4'$5#% 9#6# +468#'#BF4 74 L#h40'
PER+ORM JN&E&5'4N($%'#. c EE&5'4% 7# L$%'#
e+ento mais comum a ser de7inido o 'P:F:PA8E para impress,o do cabe(alUo na lista
EG&30'#6 # J05BF4 9#6# %&(&3$45#6 '474% 4% &E&5'4% 94%%OE&$% 7& %&6&8 '6#'#74%
#A// FUN#'&N g1EU*E:A/]:E]EN'*:8E'g
E.P1'&N8
&:/&*':'NPE A 3
&MP1'&N8
E':E]EN'* A t:e+ent.
L&6 # '#1&(# 9#6# 4 &E&5'4 TOPNO+NPAKE
1EA$ 'AB/E t:e+ent ?&'@ IEN NAME A */&*:E]:'P:F:PA8E
&N' O:e+ent.
*e o e+ento 7oi encontrado ent,o cadastrar o nome do 7orm do seu proBrama (Xue trata o cabe(alUo) no campo F1M
&F *NQ*UB1# A 3.
M]E gF:#ABE#A/@g ' O:e+entQ7orm.
APPEN$ O:e+ent ' t:e+ent.
EN$&F.
C6$#6 4 +ORM +NCABECALVO
#riar o F1M 7:cabe(alUo e inserir o c^diBo abai;o.
#A// FUN#'&N g1EU*E:A/]:#MMEN'A1N:?1&'Eg
E.P1'&N8
it:list:commentarV A l:top:o7:paBe.
O0'64% &E&5'4% R0& 6&'465#6F4 7# J05BF4 & 947&8 %&6 '6#'#74% ?
#A//E1:E.&'
U*E1:#MMAN$
'P:F:PA8E
'P:F:#]E1PA8E
EN$:F:#]E1PA8E
F1E&8N:'P:F:PA8E
F1E&8N:EN$:F:PA8E
PF:*'A'U*:*E'
/&*':M$&FN
'P:F:/&*'
EN$:F:PA8E
EN$:F:/&*'
AF'E1:/&NE:U'PU'
BEF1E:/&NE:U'PU'
1EP1EP:*E/:M$&FN
*UB''A/:'E.'
Estes e+entos est,o Bra+ados dentro do 'ipo */&*
PER+ORM JN3#1&3N($%'#. c C#1&3#()4 7# L$%'#
Neste F1M iremos criar os te;tos Xue de+er,o sair no cabe(alUo do relat^rio
> 'e;to Principal Q @eader
#/EA1 O:line.
O:lineQtVp A g@g.
O:lineQin7o A te;tQU31.
APPEN$ O:line ' t:top:o7:paBe.
No campo 'NP de+er ser in7ormado =
@ _ @eader
* _ *election
A _ Action
Manual ABAP [6
Estes tipos ir,o colocar os te;tos em 7ormatos di7erentes (letraM neBrito ou itlico). Estas in7orma()es ser,o
Bra+adas na tabela interna ':'P:F:PA8E
PER+ORM JN(#h40'. c L#h40' K&6#( 7# L$%'#
Neste F1M iremos 7ormatar o relat^rio nos pardmetros BeraisM ou se!aM a aparrncia do relat^rio.
]e!a abai;o os campos Xue podem ser 7ormatados =
C#894 D&%36$BF4
P#6>8&'64% K&6#$%
no:colUead *em '<tulos (#abe(alUo)
no:Uotspot '<tulos sem @otspot
no:+line #olunas separadas por espa(os
aebra /istrado (Uma linUa clara outra escura)
cell:merBe N,o suprimir a replica(,o de campo
Edit Edi(,o somente para o Brid todo
edit:mode Edi(,o somente para o Brid todo
numc:sum 'otal para campos numricos
no:input *omente e;ibi(,o de campos
72code
1eprep
no:PeV7i; N,o 7i;ar coluna cUa+e
e;pand:all E;pandir todas as posi()es
no:autUor NenUuma +eri7ica(,o padr,o da autoridade
P+Q%'#'0%
de7:status *tatus $e7ault
item:te;t
O9BC&% 7& D$%9(#h
colOidtU:optimiYe
no:min:linesiYe 'amanUo da linUa A tamanUo da lista
min:linesiYe $e7ault Z3
ma;:linesiYe $e7ault 263
?indoO:titlebar
no:uline:Us
EG3&BC&%
liBUts:7ieldname Nome do campo para e;ce(,o
liBUts:tabname Nome da tabela para e;ce(,o
liBUts:rollname
liBUts:condense
S48#'j6$4%
no:sumcUoice *em escolUa para *omar para cima
no:totalline *em 'otal /inUa
no:subcUoice
no:subtotals *em *ubQ'otal
no:unit:splittinB
totals:be7ore:items Mostrar total antes dos itens
totals:onlV Mostrar somente os totais
totals:te;t 'e;to para a 1
a
. coluna na linUa de total
subtotals:te;t 'e;to para a 1
a
. coluna na linUa de *ubQtotal
I5'&6#BC&%
bo;:7ieldname Nome do #ampo para #UecPbo;
bo;:tabname
bo;:rollname
e;pand:7ieldname
Header
Subject
Logotipo
Action
Manual ABAP [0
Uotspot:7ieldname Nome do #ampo para @otspot
con7irmation:prompt #on7irmar *a<da da lista
PeV:Uotspot PeVs as Uotspot l I:IEN@'
7le;ible:PeV Mo+er as colunas cUa+es
Broup:buttons 8rupo de Bot)es
Bet:selin7os /er tela de sele(,o
Broup:cUanBe:edit *ettinBs bV user 7or neO Broup
no:scrollinB *em mo+imentar tela
D&'#()&% T&(#
detail:popup Mostrar detalUes em no+a !anela
detail:initial:lines Mostrar somente as linUas iniciais
detail:titlebar '<tulo para tela de detalUes
M4%'#6 V#6$#5'&%
Ueader:te;t 'e;to para o bot,o
de7ault:item
C46&%
in7o:7ieldname
#oltab:7ieldname Nome do campo Xue conter as cores das colunas
O0'64%
list:append *em cUamada de tela
;i7uncPeV E;tended interaction(*APGuerV)
;idirect E;tended &N'eraction(*APGuerV)
dtc:laVout #on7iBura(,o de laVout para 'abstrip
Bo;:7ieldname
Coluna Chave
Manual ABAP [T
TELA DE DETALVE
PER+ORM JN%46'. c O67&5#BF4/S01T4'#(
Neste F1M +ocR de+e in7ormar os campos pelos Xuais a lista de+e ser ordenada inicialmenteM bem como se
de+eQse Berar subQtotal ou total para esta Xuebra.
#ampo #entro
t:sortQspos A g1g.
t:sortQ7ieldname A g?E1I*g.
t:sortQtabname A g':1E/A'g.
t:sortQup A g.g.
t:sortQsubtot A g.g.
APPEN$ t:sort.
#/EA1 t:sort.
*eBue abai;o os campos Xue podem ser 7ormatados para cada campo de ordena(,o.
C#894 D&%36$BF4
*pos *eXnRncia de rdena(,o
7ieldname Nome do campo
'abname Nome da tabela a Xual pertence o campo
Up rdena(,o Menor para Maior
$oOn rdena(,o Maior para Menor
8roup
*ubtot 8erar *ub 'otal
#omp
E;pa
bliBatorV
'itulo
$etalUe
Popup do detalhe
Manual ABAP [Z
PER+ORM JN$5J4N3#894%.
Neste F1M +ocR ir de7inir o laVout de cada coluna do relat^rio.
]e!a abai;o os campos Xue podem ser 7ormatados =
C#894 D&%36$BF4
roO:pos *a<da na linUa (1M2M-M...)
col:pos Posi(,o da coluna
7ieldname Nome do campo
tabname Nome da tabela interna
currencV Moeda
c7ieldname #ampo com Unidade de Moeda
ctabname 'abela re7erRncia para Unidade Moeda
i7ieldname initial column
XuantitV Unidade de Medida
X7ieldname #ampo com Unidade Medida
Xtabname 'abela com Unidade Medida
round Arredondar #ampo
e;ponent E;poente para 7loats
PeV #ampo como #Ua+e
icon #ampo como 2cone
sVmbol #ampo como *<mbolo
cUecPbo; #ampo como #UecPbo;
!ust AlinUamento _ 1 ($ireita) / (EsXuerda) # (#entraliYado)
lYero leadinB Yero
no:siBn *em sinal
no:Yero N,o imprimir campos Yerados
no:con+e;t
edit:masP Mscara de Edi(,o
empUasiYe #ampo em destaXue
7i;:column Fi;ar #oluna
do:sum 'otaliYar #oluna
no:out N,o e;ibir o campo
tecU
outputlen 'amanUo do campo para sa<da dos dados
77set
selte;t:l $escri(,o /onBa do #ampo
selte;t:m $escri(,o Mdia do #ampo
selte;t:s $escri(,o #urta do #ampo
$dict;t &ndica(,o de Gual descri(,o utiliYar Q (*)Uort (M)iddle (/)onB
rollname
datatVpe 'ipo do #ampo
inttVpe 'ipo do #ampo
intlen 'amanUo do #ampo
loOercase /etra MinHscula
re7:7ieldname #ampo re7erRncia
re7:tabname 'abela re7erRncia
round7ieldname Nome campo para Arredondamento
roundtabname Nome tabela
decimals7ieldname Nome campo para $ecimais
decimalstabname Nome tabela
decimals:out NHmero de decimais para escre+er um nHmero
te;t:7ieldname
repte;t:ddic 'e;to para a coluna
ddic:outputlen 'amanUo do #ampo
PeV:sel 7ield not obliBatorV
no:sum N,o totaliYar o campo
sp:Broup 8rupo
1eprep
&nput #ampo como input de dados
Edit Uso interno
Manual ABAP [[
@otspot #ampo como Uotspot
PER+ORM JN96$5'.
Neste F1M +ocR ir de7inir dados de impress,o.
C#894 D&%36$BF4
prnt:in7o &n7orma()es de &mpress,o
print
prnt:title
no:co+erpaBe
no:neO:paBe
reser+e:lines /inUas reser+adas para o 7inal da pBina
no:print:listin7os N,o imprimir pBina com nHmero de reBistros selecionados
no:cUanBe:print:params N,o alterar tamanUo de linUa
EG$1$6 R&(#'j6$4
Neste F1M +ocR ir e;ibir o relat^rio.
+:repid A sVQrepid.
#A// FUN#'&N gI:IIB:*A]E:M$E:8E'g
&MP1'&N8
e:sa+e A +:sa+e.
#A// FUN#'&N g1EU*E:A/]:81&$:$&*P/ANg
E.P1'&N8
&:#A//BA#I:P181AM A +:repid
&:#A//BA#I:PF:*'A'U*:*E' A gF:*E':*'A'U*g
&:#A//BA#I:U*E1:#MMAN$ A gF:U*E1:#MMAN$g
&*:/ANU' A O:laVout
&*:/ANU' A O:print
&':F&E/$#A' A t:camposst
&':*1' A t:sortst
&:$EFAU/' A g.g
&:*A]E A +:sa+e
&*:]A1&AN' A +ariante
&':E]EN'* A t:e+entst
'AB/E*
t:outtab A t:relat
E.#EP'&N*
P181AM:E111 A 1
'@E1* A 2.
&F sVQsubrc EF 3.
ME**A8E &$ sVQmsBid 'NPE g&g NUMBE1 sVQmsBno
?&'@ sVQmsB+1 sVQmsB+2 sVQmsB+- sVQmsB+9.
*'P.
EN$&F.
Manual ABAP 133
C484 807#6 346 7& 08# 34(05#
Para mudar a cor de uma colunaM +ocR de+e de7inir na sua tabela interna 7inal (Xue ser utiliYada na 7un(,o de
e;ibi(,o do relat^rio) o campo #/&NF (ou o nome Xue +ocR dese!ar) Xue se!a do tipo PPblo:t:specialcol.
Este campo ser uma tabela interna onde +ocR de7inir para cada linUa do relat^rio a cor de cada coluna. &sso
de+e ser 7eito no momento em Xue +ocR esti+er Berando a tabela 7inal para a impress,o.
D&J$5$6 4 3#894 5# '#1&(# $5'&65# J$5#(
$A'A = BE8&N F t:relat ##U1* 3M
#ampo1
#ampo2
#ampo-
......
......
#/&NF 'NPE PPblo:t:specialcol
EN$ F t:relat.
$e7inir uma OorParea au;iliar = $A'A= colin7o 'NPE PPblo:specialcol.
#/EA1 colin7o.
N48& 7# 34(05# # %&6 34(46$7#
colin7oQ7ieldname A gA'1E.Pg.
D& #34674 348 4 E#(46 74 3#894 # 346 %&6: 7$J&6&5'&
&F t:relatQatre;p E 3.
colin7oQcolorQcol A g-g. l Amarelo
E/*E&F t:relatQatre;p A 3.
colin7oQcolorQcol A g6g. l ]erde
E/*E.
colin7oQcolorQcol A g0g. l ]ermelUo
EN$&F.
colin7oQcolorQint A g1g. l &ntenso
APPEN$ colin7o ' t:relatQcolin7o.
s campos Xue de+em ser 7ormatados s,o =
F&E/$NAME A Nome do campo na tabela interna
#/1Q#1 A NHmero da cor
#/1Q&N' A &ntensidade da cor
1 = &ntenso
Branco = cor normal
Manual ABAP 131
C484 807#6 # 346 7& 08# ($5)#
Para mudar a cor da linUa toda e n,o somente de uma coluna +ocR de+e seBuir o mesmo procedimento da
coluna porm 7aYer para todas as colunas do relat^rio.
Por e;emplo sua tabela tem 6 campos ent,o =
D&J$5$6 # '#1&(# $5'&65# J$5#(
$A'A = BE8&N F t:relat ##U1* 3M
#ampo1
#ampo2
#ampo-
#ampo9
#ampo6
#/&NF 'NPE PPblo:t:specialcol
EN$ F t:relat.
$e7inir uma OorParea au;iliar = $A'A= colin7o 'NPE PPblo:specialcol.
#/EA1 colin7o.
T47#% #% 34(05#% 7&E&6F4 '&6 # 8&%8# 346 & $5'&5%$7#7&
colin7oQcolorQcol A g-g. l Amarelo
colin7oQcolorQint A g1g. l &ntenso
1#. C4(05#
colin7oQ7ieldname A g#AMP1g.
APPEN$ colin7o ' t:relatQcolin7o.
2
#
. C4(05#
colin7oQ7ieldname A g#AMP2g.
APPEN$ colin7o ' t:relatQcolin7o.
3
#
. C4(05#
colin7oQ7ieldname A g#AMP-.
APPEN$ colin7o ' t:relatQcolin7o.
4
#
. C4(05#
colin7oQ7ieldname A g#AMP9.
APPEN$ colin7o ' t:relatQcolin7o.
5
#
. C4(05#
colin7oQ7ieldname A g#AMP6.
APPEN$ colin7o ' t:relatQcolin7o.
Manual ABAP 132
C484 0'$($e#6 40'64% 14'C&% 5# '&(#
Para inserir no+os bot)es na telaM +ocR de+e copiar o *tatus 8ui *tandard *'AN$A1$:FU//*#1EEN para
outro a ser utiliYado no seu relat^rio. Ap^s a c^pia +ocR de+e retirar bot)es Xue n,o ser,o utiliYados e inserir os seus
no+os bot)es =
tratamento destes no+os bot)es de+er ser no F1M F:U*E1:#MMAN$ especi7icado na cUamada da
7un(,o de e;ibi(,o do relat^rio =
#A// FUN#'&N g1EU*E:A/]:81&$:$&*P/ANg
7orm 7:user:command U*&N8 p:ucomm /&IE sVQucomm
p:sel7ield 'NPE slis:sel7ield.
#A*E p:ucomm.
T M47$J$3#6 D4308&5'4
?@EN ga]A32g.
#@E#I p:sel7ieldQ7ieldname A g]BE/Ng.
*E' PA1AME'E1 &$ gAUNg F&E/$ p:sel7ieldQ+alue.
#A// '1AN*A#'&N g]A32g AN$ *I&P F&1*' *#1EEN.
T EG$1$6 D4308&5'4
?@EN ga]A3-g.
#@E#I p:sel7ieldQ7ieldname A g]BE/Ng.
*E' PA1AME'E1 &$ gAUNg F&E/$ p:sel7ieldQ+alue.
#A// '1AN*A#'&N g]A3-g AN$ *I&P F&1*' *#1EEN.
T EG$1$6 R&8&%%#
?@EN ga]/31g.
#@E#I p:sel7ieldQ7ieldname A g]BE/Ng.
1EA$ 'AB/E t:relat &N$E. p:sel7ieldQtabinde;.
&F sVQsubrc EG 3.
*E' PA1AME'E1 &$ gAUFg F&E/$ t:relatQ+beln.
*E' PA1AME'E1 &$ g]*'g F&E/$ t:relatQ+stel.
*E' PA1AME'E1 &$ g/E$A'g F&E/$ t:relatQmbdat.
#A// '1AN*A#'&N g]/31Ng AN$ *I&P F&1*' *#1EEN.
EN$&F.
?@EN '@E1*.
EN$#A*E.
end7orm. l 7:user:command
Botes Inseridos
Manual ABAP 13-
P64H6#8#% S'#57#67 Q M47&(4
BA/]*'32:81&$ _ ProBrama teste +isor de listas ABAP= lista simples modelo +`o.
BA/]*'3-:81&$ Q ProBrama teste +isor de listas ABAP= lista simples modelo +`o.
BA/]@'31 Q ProBrama de teste A/]= lista seXnencial UierrXuica modelo de +`o.
Na +ers,o 9.0 todos os proBramas B#A/]>

Você também pode gostar