You are on page 1of 386

KEN GRtENWPOD e o'president" da ernpresa de .

\
co nsulto riaern ,SAP Novt.l::; ty1o~us ~ Inc, sediada em \
Ontario, .~~nada. Ele tam~e~'e instrutor de ' . . .... I
Certificacao em SAP da America's ABAP/4 Academy: . ': -
Boston; no Lambton Collegeem Ontario ~ e . ....
.recenternente lecionou curso~ <!eABf\P/4naSAP .
Americaem Foster City.· -
j -'7

.~ :erie tabelas transparentes u~an~o' ~iemerilos~>


. ,: dados e dorntn ios . . t...... ". ..' . '. :" ?~; ~
!il,
~ . . .,~.. ; .~. . ., - : :: ' ~~~
. , .~, UtilJ7e.o Data Di~ioriary p-;;';a-exibir tabelas, .~' . 6/'
chaves estrangeir~:e'indiCes secundarios . .';',i . ~ .
," , ~:.~

_~" . De~e!J'vol~ e. uti U~~~fetjvap:!·~ote··rel.atqrio~ 'J

, .. . iru:luiiidG a sua fo'rlnata<;ao"com 'sfmbolos . ~ ...."


:." ' . . , '
"....;' ~......
,; .,
~,
·.grMicos e .fc_oneS':~ .:
..
".-:'.'"

• Crie telas de selecao bern-projetadas e eflclente-

contem: ' . .. ,

'}a Mais de '50' st;~eric~s "erh 'Y1~~S' tbj~ sess6~:¥i-e- . .


trelnamento Individuals a que "QCe~pode assiWf e
re\::isar a qualquer rnornento, ilus.t;and9:passq a passo
as p rQcedim,,~ntos cont idos no liv re .' •. .. . l
:: ~. ~ ~~( ." . . . \. ' _. I,

i! C6digo·fonteli>m ABAP/4 testado para os prog~as de

exemplo, e~:~.t~ibS e solucoes lnciuldos ~o Iiv o. I


• Utillta rfos originai s,
'-

\IV\IV\N. ..
....cC
. ' . .... . -'-~__1__:;_--'

.
c .ampu,<;.car.-: ' " "' -'--k"",
:
..J
)
)
)
·1,,;~}·;i:.;D ·~~~ :>,;;·l~l·:{~ ·.',.,~.\t\'i;:1 · "'_~ ~ ~i~r~).f ,~ it.':~W ·';i ;~~ .:~.~.{.~~1:; ;i;f.{~:: :,:~,., "; "".;'ill )
::, \1:.'~;,, ·.f/. . ,13 2 ; .'I,,! I·~n " .it-."\ ;o;.;~, pla .3:q:,:~r' ~ ~ ,JI,~~,~:, Dia 4:\:!11_" ~'1~' . ,.;);".;,Dla 6.
•. -, "" 1\"0 , ;- .:·,'. . .I< L ~'. ·.. . ... ··III!,I'. ~ ", ' ..,-' ,·'.-,. ,-,' 1" , .1 .<..iM·.-: ....';'. ,,,,,.... "' .(, ~".
Enlellda a que' um Cliee modillque programas Descreva asdlIerent;aS Crle cha'o'lls ntemas;erie B Coo e utilI Indices Apllqul 0 ulW1aria de banco Enlendaos eLemenlOi de
slslema de RI'J. sua ASAPI. sinples;exibaI.WI18 8l'ltrt labelas transparentes, u~!Ilelabelasdtt laxlo; seQ.Jrxlar!os ee dados para newtar I $lntaxe do ABAPI":
"
aparllnda e lunciollamenlo tabela e !lC1J CMlelldo labolat de poole de du slp. r, deSCf&va a djrerll~a entre apropriedamenle;configure vorUlcllt;ao decoerl!nd:l; cescreva0 conce~o de
para0 U5udrio; apreAda ulilizando 0 Dala Dictionary; erie domlnlos. elementos de uma esm nsa I UITl/Illl.bela; osalriltJlos16cnlcos para atesteInlorma¢es de obielosde lidos . sua
sobfe larqu~e lurl do adldone comenl4rio1e dadose \abelas ctIeestruluras no Data labolas Iransparenles: banco dedades espadlicas visibilidade; ulihe Il!lBis e
slslema emque programas documen t~o. eeus transparentesno Data Diclbnaryde FV3. configure 0 usadebuller de labela; Insira a recra entendacomo codi~ce r
A8AP/41unclonam, progllmas. O!cllonary. para tabelas, labelas nobanco dedados. cada lipo; delifUI e utilize ')
constantes,
')

I'
"

':'·i D!~.;~ ,~ ;:',~~~i:,,:i:I,~E~,': ':_-~'?Rf~ ',~,~~,fi~,:·~}:~ J'j ; .Pt ".;·!" :~}.1 '·,,'; , ;') ~ :':;':'~'-:~, :
l1:t~~~:" ~.'~~~ 9, ~ >"' !~ ; ~ ,J.l'!i..,:i.:P(~ 1~.:~\\;t:, .', !0:tt~·" ~,i~\2.(: ~ ~ ;~ ~( v,
Dla13 Dla14
UIiIlzoa nstM;Aotab 1e s Ulillze VlIIilI.velsde sistema Cod~e ISlnSIru¢es Defina umalabE IaIntema • Reconh~ 0 opefalb de Pre&flCha umalabela Enlerda0 ele~o do! \IpOs
para dellnlf strings de comuns8 se]o CIlPaz de comunsdlt conlrole i f. com ousom umallnhade corpo delabltla It umze-e Jnlama apar1ir deuma de dados nasalda: utlllza
campo; ontenda a InstnJ;fto exibir oukx:aIiZOf qualquer case. do ewhtl e: cabSl;alho;preencl\a essa para tester a oxlstllnclade labela debanco dedado. as oP95es de)Ofma la~o
types eutilize-ap8fa vari<lvel de lllslem.; pl'eveja cootrol& I seqiillnclado labelautilzaooo append dados emuma labela u~lizando aseSlruturas da ~o i,fr 1te; )
delinlr seIlSPJ6prios tipes e exeaJle convolS6es de progrlmau!iIIzando ehaves uma irmade Inlemae compauuo (consll1lcl ~ matserlcienles; utilze seeasdecoovorstio
dedados. oaocs utilizenda InSllUl(6es ex i t , conti nuee cab~lt1o Otl um e dreade . conteudo deduas labelas relllillt processamento de e deiecteSOlI preseo",
deatribulrrllo; codillque chec k: codi£que Ifabalho explidla; . Intemas quanta! Iguaklade. ln lll"u~1o decontmleem dentrodedomlnios.
ellpl'ossOes malematk:as, especficllt;ees simples dlt c:lasslnque labeln! kltltmas ' labelas Inlernes utI~zando
at e cn c hange of.
pos~o 0 decomprmento
nl InstrOlfAo wri te o
autilize a ad~!o as
text.
,
!
, D"la..' 15. If,'1.''.," '. '::':'!Dla. 1 ~/·:!;',;·I:: j~;:;~. ol;{1E\ "
• ••\.'1; :l . ~ • ,{, ,~ :
': .~ ".; . :. '":' , -,':\-\,"ii; .1 ; ..
I: !;;: ' Cia18:~ :'{:'~:~:
',\ ':'
,Dla 19 .f·
,:. "
Dla 20
:t"
Dia21
U~Vze as ~¢es do UtilizeasInslru¢es Ulllize asavenlos Passe paffimetros dlgiledo! Entonda e utilizea Instr~o Entenda 05componenles I Codlfiquelela. dnselel;lo
Iormata9io grallca da comuns delormala¢o init 1a1 1zat i on , II nAo lIigilados para in c 1ude; crIo grupes de a eslrulull de urn grupo de que interagem com 0
lnstrur;io wr i t e (as ne w- l 1ne, s t ar t - o f - sub-rolinas; passa funyao e I'llOOJos de tunr;l o;definadados osuarb; utilize elementos
sy mbo l , a s icon, ne w-page, ski p, se lec ti o n, parilmetros 116lr ~S fun ~D; dannapa!llmellos glDbals 0 sUb-rotinas denlro de !orma!a~o para crlar
as 11 ne): lmprma back. pas i t 1o n e end-of -se 1ecti on; Il'lllIleltas: pol' re'orAnda, deimponaljio, eXpDrla¢o de umgrupo de Iunc?o. lelas deseleiO!o bem
salde de Isla a manlpure I set b lan k lines; donn.$Ub-fo1lnas eklemas parvalore porvaklrIt e alle ~o . pl'ojeladas eellcienles:
, aidanospool. envle salda pala0 spool e Inlerna$; conflguro rosullado; pas~6 slrlngs de utilize lelesde snl~o para
IIlil/zando ne w-page variaveis locals, global! e campo e labelas tnlemas manter aintagrk1ade dos
print. eslali:as,alllm deareas de para umasuIHotlnl. d_.
lraba tlode labela.

~--- ~_-... ...... ,,~ " .''''Ko>i>i -.-<;1: rI:!'~~""",.~",,",""-:;" '''~';' _ _ 'n'_.,.... ~·.- .,.. .• .••••. h
~ '· ·

lido
\ I I ~c
r--: h
~ CJ
-n ..
f~j ~' !<o
~. " ~
P" ~ §<
fT1
;U

·;lfl l; •it·hr -
I
Jl Z
J>
CJ

i ~
~~
o J>
<1l ()
I J>
;U

"Ho ~
OJ
J>
CJ
J>
:s

I I I I
I I , \S

- " • • : . . . - - -. ._ .1'. v_ ,....... ~ _ _ -:....---.1-.........:.... :-;...............-::.:.. ~: .. J.. "-- . .. ,,;. A_ : 4I'4a. ~ ...... ~. ...:·· ..- -_ •. - - -- ._-----~ -_ ..,- - - -- - .--/
~~ -
... r
~Y
,
Ken Greenwood
Consultor Editorial
Ferna ndo Barcellos Ximenes
KPMG Pea t Morw;c;k

Tradu'iao
Edson Furma nkiewicz
"Docware Trodu~6es recnrcos

'lle"o Site et"


o
;:;-~
ACELERE
~
:s,f; SEU CONHECIMENTO '"tfl
C
Aprenda
o
~<".

N OVIDAOE S. CAOA ST IIIO ,

i!b
I.A Nlf'AM ENTOS .
C.OMI"ItAS

Comp leto e
,<>"
ef!'
¢
~
---=
e.. =.m
.: . .: . 21 dias.

SAMS

(2
C'AM'PUS
;
00"""'
sams "Tead'I Yourwlt ABA P/4 k'l 21 Days
Tradul<Jo .lIlofIz8da do idioma ilglts da edIlWAO publlca da ~ s.ns Dedicatoria
CopyrightCo' 1999 by Sarns

C 1999 , EdilQIlI Camp llS uea.


lodes os dlrello, reseIVedos e protegid05 pilla Lei 5.988 de 14/12/73, Este liuro ededicado a meus pais.
NlInhuma parte dUI II IJVro, Sllfll 8utoriz ao;Jo pn~via por 8 $eritD da e dlto ra, pod e ra Marian e Vern Greenw ood
SIr reproduzidaou transmitida sejamquals rOtem os meles emprllgado5:
. eilltr6nicos. meclrleos, lotogri llcos, grava9!o au quaisque r Quiros.
Tode 0 esfon;a filllelte para romecer . ma is compl ela I al1equlIGa irllom'I.a,.ao.
Obrigado por tudo.
COnk/do. l(!Ito,... o{.} aul or{lIs) nAo U$Uffi8m responsabilldade
pelos resultados . US(! da. Inronna~ Iomecida. Reeomendamo. aos
~Ionts Inlar. 'I11ormat;:4o antn de sua "d".
UIiIIZa<,;:iO.

"""
Paoo Vrtmlel10
ee.-_
MatiziII
E_ df, AnO'adl
_ Flores

Rio TBXtQ
Reyjsa o G~b
Adriana Kramer
Deborah AOdIger
Pro/elaGraffeo
Edito ra Camp us uce.
A Qualid.dll da Inlormat;llo.
Rua Sell d. Slllembra. 111 - 16' andar
~AlodIlJ_iro RJ Bl1Isil
Tel_lone: (021) 509-5340 FAA{0211507·t99,
E-maU: ....'o .~oom.br
1S8N 85-352-0396-8
(Edil<io orignt ISBN 0-&2-312 17-4).

CIP-Bra$LC.~.forIte.
SlndicaIO N~ ees &litore. de Uvros. RJ

G831 &

Gre_ood, Ken
Aprellda em 21 dias ASAP' .. I Ken Greenwood; tra~lo
Ed, Of1 Futmankiewicz..- RID de Jenllro : Cempus, 1999.
•" (Apr&nda)

Tradul<'ade: Sam's teach )'DUFSell A6AP/41o21 deys


ISBN a5-3S2..Q3;6.6

1. ABA P/4 (Ur.llu~lIfTl d. provamr.,iQ de c:omputador).


2. SAP PJ'J.3. Sislem. clentlllllswttdof.l TftUo. II S~ne.

98-1991 COO-COS.l
COU - SOO.92(ABAPr4)

99 00 01 02 5 4 3 2 o

;IBLIOTECAS OA PUCMINAS
~ELO HORIZONTE ,
r
f GlSTRO 22~.f2-~ Q'
IATA:2 / . / ?'L ,£3.....;
ICERVO;Z3 0 2 9 /
• 'p , l .. .. __
I
Dia 20 M odu larizacao: m 6dulos de fun,ao, P arte 2 619
D ia 21 T elas de selecao 653
Sumario geral
SEMA NA 3 Revisao Introducao . ....... 1
. 68 7
Convencoes utilizadas neste livro 2
Apen dice A Convencoes de atribuicao de nome . 689
Apen dice B Re sposta s as per guntas dos testes e exercfcios 697 SEMANA 1 Visao geral. . . . . . . . 5
i
Ind ice . . . . . .. . . . . .. . . .• . . . . . . l Dia 1 0 ambiente de desenvolvimento 7
719
Objetivos do capitulo . 7
o e
que R!3 ? . 7
Qual ea fun<;ao do R!3? . 8
Por que voce precis a saber isso? 9
Descobrindo 0 R/ 3 . 10
Utilizando as areas conceituais do sistema R13 10
Descobrindo a interface com 0 usuario do RJ3 15
Enrendendo 0 Basis . 20
Entendendo 0 clienre/servidor . 22
Arquitetura do sistema RJ3 . . . 24
o serv idor de apresentacao . 24
o servidor de aplicativo . . . 24
Descobrindo 0 servidor de banco de dad os 25
Configurando os servid ores . 25
Definindo urn sistema R/3 . 26
Definindo uma instdncia R/3 . 26
Arquiterura do servidor de aplicativo . 27
Enrendendo urn contexto do usuario 27
Enre ndendo uma area de rolagem .. 28
Entendendo os passos de dialogo .. 28
Entendendo 0 processarnento roll in/roll ou t . 30
Descobrindo como os dados sao enviados ao servidor de
apresentacao . . . . . . . . . . . . . . . . . . . . . . . 31
Entendendo as cornponentes de urn pro cesso de tra balho 31
Enrendendo os tipos de processo de trabalho . . . . . . . 32
Entendendo 0 cliente de logon . . . . . . . . . . . . . . . 32
Entendendo tabelas dependentes e independent es de cliente 32
U cilizando 0 Open SQL da SAP . . . . . . . . . . . . . . 36
Pcnabilidade . . . . . . . . . . . . . . . . . . . . . . . 36
Ucilizando buffer de dados no servidor de aplicativc . 36
Tratamento automdtico de cliente 37
Resurno . . 37
P&R . . . 38
Workshop 38
Teste . 39
Exercfcio 1 39
.. , ..
XII "RENDA EM 21 DI AS ABAp/'
SU"'''DGERAl XIII
Dia2 Seu primeiro programa em ABAP/4 . . . . . . . 43 . Explorando componentes de tabela . · 102
Antes de prosseguir . 43 Mantendo as caractertsticas tecnicas de s campos . · 104
Explorando 0 ambienee de desenvolvimento 44 Determinando quando crier ou reu rilizar dominie s e elementos
Descobrindo tipos de prog rama . 45 de dados _. . . 104
Definindo relatorios . 45 C onvencoes de atribuicac de nome para tab elas e seus componentes · 105
Definindo programas de dialogo . . 46 C rian do uma rabela transparence e seus componentes · 105
Descobrindo componen res de rela ta rio . 46 Abordagens para criar tabelas . · 106
D escobrindo a ob jeco de tempo de execucac de prograrna . 47 A tiva<;ao de objetos DDIC . . 107
Inrroduzindc as conven co es de atribui'):ao de nome de programa 47 Desccbrindo dominies . .107
Criando seu primeiro programa . . . 48 Descob rind c elemento s de clade s · 112
Exp lorando 0 editor de codigo-fome . 50 Descobrindc tabelas transparentes . .116
Utilizando a Editor: Initial Screen . 51 M odificand o tabelas . . . . 124
Explora ndo a funcionalidade do editor de codigo-fo nr e 51 C opiando uma tabela . 124
Obten do ajuda . . . . . . . . . . . . . . . . . . . . . . . . . 64 Excluindo uma tabela · 125
Obtendo a ajuda F1 . 64 Adicionando campos · 126
O bt endc a ajuda R/3 Libr ary . 65 Excluindo campos . . · 127
Localizando seus ob jeto s de desenvolvimento . 66 Aleerando 0 ripe de dado ou comprimento de urn campo · 127
Introduzindo 0 R/3 Data Dictionary . 67 Trabalhando com dados . · 128
Explo rando as tabelas e as esrrururas . 68 Acessando a funcionalidade do navegador de dados de dentro
Exibind o uma ta bela ou definicao de estrutura 70 doODle . · 128
Exibindo 05 dados na tabela . . . 70 Utilinrios gerais de navegador de dados . . 131
De termin andc campos exibidos . 71 Exibindo os dados utilizandc seu proprio programa de ABAP/4 . 135
Entendendo a sintaxe do ABAP/4 . . 72 Utilizando a ajuda Fl . 135
Introduzindo a instruci c se 1ect . . . . . 72 Resume .. . 139
Entende ndo as areas de t rabalhos de tabela 76 P&R . . 139
"In trc duzindo a clausul a where . 78 W orkshop . . 140
Trabalhando com variaveis de sistema . 79 Quescionario . . 140
Utilizando 0 ope rado r de encadeamenro . 82 Exercfcio 1 . . · 141
Utilizando a instrucio se l ect singl e . . . 83 Exerdcio 2 . . · 141
Comentando 0 c6digo e a documen tacao formal 85
Resumo . 85
Dia4 a Data Dictionary, Parte 2 . . . . . . . . . . . 143
P&R . Objetivos do capitulo . . . . . . . . .143
86
Workshop .. . D escobrindo as chaves estrangeiras . . 143
87
Teste . . . 87 Acionando a verifica<;ao de chave estran geira . 144
Exercfcios do edito r . . 88 Requisites tecnicos para cria r uma chave estran geira .145
Exercfcios de prcgramacac 93 Criando uma chave est rangeira . . 146
Des cobrindo a coluna CheckTable . .149
Dia3 o Data Dictionary, Parte 1 .. . •• . • • .• • 95 Dererminacio automdtica de campos de chave esr rangeira . . 149
O bjetivos do capitulo . 95 Relacionando as chaves esrrangeiras com a seta
Descobrindo nfveis de versac do R/3 . 95 parabaixo e a ajuda F4 . .150
Aprofundando-se no R/3 D ata Dictionary 96 Chaves estrangeiras e programas em lore · 151
Explorando os tipo s de tabelas em R/3 . . 97 Chaves esrrangeiras cornpostas . .. . 152
Tabelas transparen tes . . . . . . . . . . . 97 Entenda a cardinal;dade . . . . . . . · 154
Pools de eabela e tabelas de pool . 98 Tipo de campo de chave estrangeira . 156
Clusters de tabela e rabelas de cluster . 99 Chaves esrrange iras constantes e genericas · 161
Restri<;6es nas tabelas de pool e de cluster. . 101 Chaves estrangeiras adaptadas . . . . . . . . 163
XIV I APRENDA EM 21 DIAS ABAP" SUMARIO GERAl XV

Definindo uma tabela de valor · 164 U cilizando 0 utilicirio de banco de dad os .. 225
Campos especiais de T abela . . · 168 Verificacoes de coerencia . .226
Os campos monetarios . · 168 Exibindo 0 log de ativacao . .230
as campos de qua nridade . . 170 Exibindo e mcdificando parametres de armazenamento . 231
As esrruturas no D ata Di ctionary · 171 Excluindo e recriando as tabelas no ban co de dados .232
Enrendendo Includes . . . . . .1 72 Resumo . , .233
Incluindo a mesma estrutura diversas vezes · 174 P&R . . . .233
Resumo . . . 175 Workshop .234
P&R . . . . 176 Te ste . . 234
Workshop . 177 Exercfcios 1 .\ . .234
Teste . . 177 235
Exercfcio 1 Dia 7 Definindo dados no ABAP/ 4, Parte 1 . . . . .
.177
Exerclcio 2 Objetivos do capitulo . . 235
· 178
Exercfcio 3 . 178 o buffer de programa e a area de rolage m . 236
Exercfcio 4 Elementos de sintaxe do ABAP /4 . 236
· 178
Exercicio 5 Definindo ob jeto s de dados . . 237
· 179
Exercicio 6 .180 Definindo literais . .238
Exercicic 7 . .180 Definindo variaveis . 241
Resumo .. .254
Dia5 o Data Dictionary, Parte 3 . • • ..• • •... 183 P&R . . . . 255
O bjetivcs do capftulc . . 183 Workshop .255
Entendendo as Indices de tabela . . 183 Teste . .256
Exibindo indices . · 186 Exerctcio 1 . 256
Consider acbes ao cria r urn Iodice · 187
Criando urn Indi ce secundario . . · 189 SEMANA 1 Revisao . 2 57
Excluin do urn Indice secun dsrio . .190
D etermin ando qu al Indice esu sendo uti lizado · 191 SEMANA 2 Visao geral • ... ..•.. .. • .259
'Exibindo configuracoes tecnicas · 193
Dia 8 Definindo dados no ABAP/4, Parte 2 . .• 261
Classe de dados '. . ': . 193
Ca tegoria de taman hc . · 195 Objetivcs do capitulo . . 261
Exib indo 0 nu mero de extens6es alocadas para uma tabela . . 195 Definindo constantes . . 261
Utilizacic de buffer em um a tabe1a . 196 Sintaxe da instrucao CONSTANTS .262
Res umo . . .213 Definindo strings de campo . . . . , .263
P&R . . . . 214 Urilizando a instrucao DATA para definir uma string de camp o . .263
Workshop .214 Utilizando uma string de campo como uma varidvel do tipo char . .267
Teste . .215 Utilizando a instrucao TABLES para definir uma st ring de camp o .268
. Exerd cio 1 .2 15 String de campo defi nida u tilizando TABLES in teragindo com
SELECT . . 269
Dia 6 o Data Dictionary, Parte 4.. . . 217 Visibil idade de uma string de camp o definida uril izand o TABLES .270
Objetivos do capi tulo . . 217 Definindo ripos . .270
H ist6r ico auto mati co de tabela e documentos alterados .217 Sintaxe para a inserucao TYPES .270
D ocumen tos alterados . . 218 Tipos estruturados . .272
Sabendo quand o ut ilizar hist 6rico automdtico de tabela .221 Grupos de ripe . . 273
Resumindo as configuracoes tecnicas . 221 Criando urn grope de ripe .274
versees ativas e revisadas . .222 Resume. .275
Vers6es adicion ais . .223 P&R . .276
D escartando uma verssc revisada .223
XVI I 'PIE NO' EM2101'S "'PI' SUMARID GERAl I XV"

Workshop . . r . 277 Especificacoes simples de comprimento e posici c cia instrucdo wri te . 341
Teste . . . . 277 Sintaxe para especificacoes simples de co rnprimemo e posica c
Exercfcic 1 . 277 na instrucfo wri te . . 341
Exercfcic 2 . 277 Resumo . . . 344
P&R .. . . 345
Dia 9 At ribuicg es, conversoes e calculos . 279 Workshop . 346
Objetivcs do capitulo . .279 Teste . . 347
Antes de prosseguir . . 279 Exercfcio 1 . 347
T rabalhando com variaveis de sistema .280
Localizando varidveis de sis tema .283 Dia 11 Tabelas in ternas . . . . . .. . . 349
Instru coes de atrib uicio . . . . . .286 Obierivos do capitulo . .349
U tilizando a insrrucao cl ear .286 Princfpios da tabela interna . .349
Utilizando a instrucao move . 291 Definicao de urna tabela interna .350
Utilizando a instrucdc move -correspondi ng . 303 Adicionando dad os em uma rabela interns util izando a instrucac
Executando cilculos . . 304 append . .353
Atribuis;ao dinamica .309 Lendo 'dados a partir de uma tabela interna . . 359
Resumo . . . 310 C lassificandc 0 ccnteodo de uma tabela intem a . 376
P&R .. . . 311 Resumo . . . 382
Workshop . 312 P&R .. . . 383
Teste . .312 Workshop .385
Exercfcio 1 . 312 Teste . . 385
Exercfcic 1 .385
Dia 10 Ins trucoes de controle comuns .. 31 5
Objetivos do capitulo .. . .315 Dia 12 Tabe1as internas avancadas, Parte 1 . 387
Utilizando a instrucao if . . 315 Objetivos de capitulo . . 387
Sintaxecia instrucao if .316 Testando e modificando 0 conreudo da tabela inrerna . 388
Conversao de dados de literais durante comparacdes . .317 Obtendo informacoes sobre uma tabela interna .. .. .388
Exibindo convers6es . .319 Determinando se uma tabela interna esta vazia .. .389
Utilizando el se t f . . 320 Deterrninando 0 numero de linhas ern uma tabela interne . 389
Utilizandc operadores de string de caractere .32 1 Prograrna de exemplo que obtem as informacoes so bre uma
Utilizando a instrucao cas e . .326 tabela intema . .390
Sineaxe cia instrucao cas e .326 Copiando clades de uma tabela inrem a par.1 um a a utra . . _ . -: . . 391
Utilizando a instrucao exi t . . 327 Copiando uma parte de uma tabela int ema . .392
Sintaxe cia instructo exi t .327 P rograma de exemplo que copia os dado s ~n tr e as tabelas internas .393
Utilizando a instrucio do . . . 328 Cornparando 0 conreudo de duas tahelas internas . 395
Sintaxe cia instrucdo do . . 328 U tilizando a instrucl c edi tor-ca11 .. .395
Terminando urn loop sem fim .330 Sintaxe da instru~i o edi tor-ca 11 . ; 395
Utilizando a adic;ao varying . .332 Inserindo linhas em uma tabela interna . 397
Madificando valores dentro de do ... varyi ng/enddo . 334 Sintaxe da instruc;ao insert ... . .398
Urilizando a instruc;2.o whi 1e . . . 336 Modificando as linha s em uma tabela intema . 400
Sintaxe da inspucac whil e . . . 336 Sintaxe da instru ci o modify . . 400
Utilizando a instruc;ao cont i nue . .337 Excluindo 0 conteudo da tabela interna . . 403
Sineaxe da instrucac conti nue .338 Utilizando free para excluir 0 conreudo da tabela interna . . 403
Utilizando a insrrucdc check . .339 Utilizando r ef r esh-para excluir conteudo da tabela interna .
0 . 405
Sintaxe da insrru cdc check . .340 Uriliaando c1 ear corn uma tabela interna . . 406
Camparando as instrucoes exit , continue e check .341 Utiliaando a instruljao de1ete para excluir as linhas de uma
tabela interna , . . 408
{VIII , APREHD A EM 21 DIAS ABAP / ~
SUMARlOGERAl t k.IX
C riando Iist as dos 10 melho res uti lizando append so rt ed by . . . 412 Esp ecificando decimals e arr edondamento . 482
Sintaxe da instrucio append sorted by . . . . . . . 413 Mudando 0 alinhame nto . " 490
Preenchend o um a tabe la intema utilizandc co11ect . 417 Resu mo . . .491
Sintaxe da ins tru cjio co 11 ect . . 417 P&R .".. . 493
Resume . . . 422 Workshop . 493
P&R . . 423 Teste . .493
Workshop . . . 424 E xer clcio 1 .494
Teste . . . . . 424
Exercic io 1 . .424 SEMANA 2 Revisao ". . 4 95
Dia 13 Tabelas internas avancadas, Parte 2 . . . . . 425
SEMANA 3 Visao geral .497
Objetivc s do capitulo . . 425
Preen ch end o uma tabe1a in terna a partir de uma tabela de banco D ia 15 T ecnicas de Iormaracao, Parte 1 499
de dados . . 425 Objetivos do capitulo . . 499
Selecionando rmiltiplas linhas diretam ente para uma tabela intern a . 426 Fo rmatacic grafica com a inscructo write .
.434 .499
Adicionando Iinhas, uma por uma , utilizando se1ect Sint axe paraas adiljoes graficas para a inscrucao write .500
Resumindo se 1ect, tabelas in temas e eficiencia .. . .437 Utilizando a adic;ao as symbol . . .500
U rilizandc as tabelas de exemplo 1fal , 1fbi , 1f el e 1fe3 . 438 Utilizando a adic;ao as i con . . 501
Process amento de interrupcao de con trole . . . . .439 Utilizando a adifjao as 1; ne .
". 440 . 503
Utilizando as in struc oes at fi r st eat l ast . Exibindo os sfmbclos, leones e caracreres 1i ne-drawdisp onjveis . . 506
Utilizando as instru co es at new e at end of . . 444 Formatando e imprimindo relatorios . . 507
Ut ilizando a instrucdc sum . .449 Contro lando 0 tamanho de pfgina . . 508
Llrilizand o a ins trucio on change of .451 Criando cabecalhos e rodap es de p agina . .513
Resumo . .45 8 Res umo . .
. 459 . 525
P&R . P&R . . .
. 460 .525
Workshop . Workshop . 526
Teste . . . 460 Teste . .526
Exercfcio 1 .460 Exe rdcio 1 . . .526
Exercfcio 2 .460
D ia 16 Tecnicas de formatacao, Parte 2 . 527
Dia 14 A instrucao write . . . . . . . . . . . . . . . . . . 461
O bje tivos do capitulo . .527
Objetivos do capitulo . .461 Ins rrucoes de fcrmaracio de lista .. .527
Porrnatacao e comprimentos padra o . 461 U tilizando a instrucao new-l ·; ne . . . . 528
Co mprim enros padrao . 461 Utilizando a instrufjao new·page . . 529
Campos compactados . . 462 Utilizan do new-page pr i nt . 530
Eormatacao padrao . .463 U tilizando a inserucic s ki p .. . . 534
P ro grama de exemplo dem on st rand o a formatacao padrdo . .465 Utilizando a instrucao back .536
Adiljoes para a instrucao writ e . .467 Utilizando a ins rruefo posi t; on . . 538
Ccmpreendendo a especificacdo de posicao . . 468 Utilizando a insrrucio se t blank 1i nes .540
Compreendendo a especificacao de comprimento . 470 Resu mo . . . 541
Trabalhanclo com subcampos . . .471 P&R . .. .542
Ucilizando a adifjao under . . .472 Workshop . 542
Utilizando a adi~ao 'noMgap . . . . 473 Teste . .542
Utilizando mascara s de edicac . . 474 Exercfcic 1 . . . . 542
Utiliza..ndo as safdas de conv ersao . 476
Trabalhand o com a formatacf c de data . 479
Utiliza..ndo as adifjoes no-zero e no-sign . 481
9
.622
... .623
.. 559 ng ng .
. . . 561 Definindo as sub-retinas em U1U gropo de
Deixando uma sub-retina .
.563 Liberando um modulo de . . . . . . .628
Dermmdo variaveis
.568 Testando um modulo de . .629
Resumo .. .568
P&R . . . Localizando modules de funcao existentes 1
.570 Explorandoos cornponentes do seu grupe de Iuncao . .638
Workshop .570 Localizando e corrigindo erros em modules de fun~ao .640
Teste . .570
Exercicio 1 . Configurando 0 valor de sy-subrc no retorno . .641
571 Utilizando a instrucao rai se . .641
18 Mc)duLlaI'lzalGajO: nassanuo oal~anletroS para Utilizando a instrucao message. '0 rai si ng .644
.571
Passando parametros . . . . . . , . . . . Definindo excecoes na interface . . . . , .. .648
.573
Criando parametros digitados . . . . Inserindo automaticamente a instrucao ca 11 funct ion ,649
.576
Controlando como os pararnetros sao passados .. Resumo . .650
.578
U tilizando as metodos de passagem de parametros P&R . .650
.583 Workshop .
Passando tabelas intern as como parametros . .651
.592
Definindo e chamando sub-retinas externas · Teste .. ,651
.595
. Resumo . . · . Exercicio 1 .651
.595
P&R . . . . .
.596 Dia 21
Workshop .596
Teste .
Objetivos do capitulo . . . ' . . . .653
Exerclcio 1 Programacao baseada em evento .653
597 U tilizando 0 evento i ni t i ali zat ion . .654
Utilizando 0 evento at sel ect i on-screen .. .655
.597
U tilizando a instrucao include . . . · Utilizando 0 evento at user-command ... . 6~5
.598
Sintaxe para a instru<sao include Validacao de dados utilizando chaves estrangeiras ,657
.600
Introduzindo modules de Iuncao . Validacao de dados utilizando matchcodes .659
.601
Entendende gropos de fun~ao . Sintaxe para utilizar um matchcode . .666
.602
Acessando a biblioteca de fun~ao Formatando telas de selecao . .666
.604
Ativando urn modulo de fun<sao . . · · . . · · . U tilizando se1ect i on-screen .. .667
.605 Sintaxe para sel ecti on-screen block com frame.
Definindo dados dentro de urn .667
.605 Parametres de tela de selecao . . . . . . . . . . ... . . . ,668
Definindo a interface de modulo de
.607 A tela de selecao checkbox . . . . . . . . . . . .670
Passando parametres ., ·
.608
U tilizando parametros dizi tacos e nao dizitaacs Sintaxe para se1ecti on-screen checkbox .671
.. 609 A tela de selecao select -opt ion s .
Chamando modules de fun<$ao . . · . . · . .
610
para a instro~ao ca11 functi on . · · · A sintaxe para se1set-opt i ens . ,672
.611 Botoes de tela de sele~io . .672
Executando um modulo de fun<sao de exemplo eo' • 0 •

.613 A sintaxe para urn radi obutton group .673


Criando urn m6dulo de
Resumo. .. · . . . Exernplo de programa de tela de .673
-.,.,
,~t..

IXXII ~A P R E N D A EM 21 DIAS ABA P/ ~


;il~\ '------ - - -----'-- - -- - -- - -- - - - - -- - -- - - -- - - ----1
v
Utilizando a insrrucac message . . . . . .681
Sinraxe para a inst ruci o message-i d
Resumo ' .'
.682
.684
Introdu~ao
P&R ... . 685 Tendo ministrado 0 curso de certif icacao em ABAP/4 para centenas de
Workshop . 685 novatos e desenvolvedores experientes, tanto na SAP como em outras insritui-
Teste . . 685
Exercfcio 1 <;oes, conbecc a ripe de prob lemas e perguntas que voce ted. quando aprender
.686
essa linguagem poderosa. Incorporando neste livre todas as m elh ores tecnicas
SEMANA 3 Revisao que enconrrei, espero compartilhar essa mesma expe rien cia de aprendizagem
687
com voce tambem. Para esse [im, este Iivro e repleto de diagramas detalhados,
Apendi ce A Convencoes de atribu i<;iio de nome .. 689 imagens de tela in reira, programas func ionais de exemplo, ap resentacoes (sere-
Convencoes de arribuicao de D.ome de programas . . 689 encams) narradas em ingles e procedimenros passo a passo . Toclos os prcgra-
Co nvencoes para arribuic do de nomes a relat6rios . . 690 mas de exemplc tambem sao forne cidos no CD-ROM de modo que voce possa
Convencoes para atribuicao de nomes a p rogramas de dialogo .691 earregar e executa-los em seu pr6prio sistema. Alem disso, as utilirarios que
Inrervalos de nomes de dientes : . . . 691 Iorn eco para todas as minhas classes eseao incluidos no CD -RO M, mais alguns
Apend ice B Resp ostas as perguntas dos teste s e exer cfcios 697 novos que desenvolvi especificamente para as leitores deste livro.
o ABAP/4. apesar de toda sua simpiicidade na supe rflcie, euma comple- .
Indice . 719 xa lingua gem. Par causa disso, 0 iniciante frequenremente fica desnorteado
com seu comportamento. Entendendo 0 [un cionamen to subliminarmente,
voce sed. capaz de dominar essa linguagem. Entendend o a como e 0 porque,
voce ira adquirir urn conhecimento que poucos tern nesse empolgante campo .
Este livre 0 guiara ao longo das ccmplexidades da linguagem e do
ambiente do ABA P/ 4 urn passo de cada vez. Depois de comp letar cadacapitulo ;
voce praticara atraves de exercrcios para reforcar seu aprendizado. As so lucoes
funcionais sao ofereeida s para todos os exercfcics no C D -ROM.
Como programador es experientes sabem, e as iniciantes logo saberao,
criar programas ABA P/4 freqUentemente significa de senvolver mais que ape-
nas urn programa. Esse trabalho frequentemen te envolve a criacao de ob jeros
de desenvolvime nto para supo na- lo. Os procedimentos para criar esses objetos
sao todos explicados em detalhes ut ilizando uma Iista de passos numerados.
Cada passo contem a titulo das telas que voce encontra e as respostas esperadas
para cada coma ndo. Todos os procedimentos sao acompanhados po r uma
screencam que mostra exatamente como eles sao feito s. Agora. voce nao 56
pode aprender observando-me, como tambem pede adiantar e retroceder.
o enorme volume de informacces necessario para dominar 0 ABAP e
uma tare'[a desanimadora para a maioria das pessoa s, mas selecionei as infor-
maco es mais vitais de que voce precisa e as dividi em 21 part es gerenciaveis.
Com 0 conhecimento que voce adquire utilizando este livre, voce sera capaz
" de ramificar as tarefas complexas do ABAP/4 tendo urn entendimento solido
por base.
Se tiver problemas ou perguntas ao esrudar a assume, visite a site da
Internet http ://www.abap4.net. N esse site. po starei respostas a perguntas
[requentes (FAQ s) e pro blemas com que voce pode se deparar que nao foram
abordados aqui.
IIIll<OOU(AC 3

Espero que voce ache 0 esrud o deste livre tao agrsdfvel quanto achei
escreve-Io. Boa sorte! Eis 0 seu A BA P/4 em 21 dias!
-Z
UI 0 leon e Sintaxe alerta para a usa adequado da sintaxe de urn codigo.

k oove n<;6 e s ut ilizadas oeste lJeiVu[-"o'- _ ~m


o texro que voce digita e a texto qu e voce ve na tela aparecem em fon te
monoespacada V
o kane Entrada destoco 0 c6digo a ser digifod o .
parect da com est a
ENlllOI~
para sirnular a forma que 0 texto assume na sua tela.
a leone Soido destoco a SOldo produzido pe lo execucoo do ccdiqo.
Variaveis e placeholders (palavras que espelham 0 que voc e realmente Iliol ~
digitara ) aparecem em fonre monoespacoda e em ttouco.
Cada capit ulo econcluldo com perguntas relativas ao assunto do dia, co m o leone Analise de signo 0 an alise do oute r, linha por linho.
respostas do autor. A maioria do s capftulos tambem inclui u ma se~ao de INAtIIE~
exerc fcios e urn quesrionaric pr ojetados para refo rcar as conceit os do dia. (A s
respo stas aparecem no Apsndice B.)

Umo nota op resentc tnformccoe s i~teressontes relacion odos com 0


disccssco.

Uma dico cfere ce ccnselh cs ou mostro umo moneira mois f6cilde fozer
olgumo coisa .

~o
Um oviso de cvldodc clertc poro urn possfvel problema e oferece
conselbos sobre como evlto-lo.
"-- - - - - - -- - - -- ------'
I Fa~a
Esses quodros-de FO/iolN eo fOlio
oferecem dices perc a que fozer e 0 que
nco fozer com 0 ASAP/ 4.

scmNUMlIltr...
Muitos dos proced imentos neste Ilvro sao demonstrodo s vtilizondo screencoms .
,.. As screencoms s60 como filrn es; mostrom umo sene de telcs, induindo pres- .,
sionomentos de teclo e movimentos de mouse, com umo ncrrocdo "descrifivo em ingles.

NOYO ... Termos novas s60 introduzidos utilizcndo a kane Novo Terma .
milo ,.
'.

Sumcirio
Inrroducao .. . . . . . . . . 1

SEMANA 1 Visco geral . . . . . . .. 5


Dia 1 0 ambiente de desenvolvimento .. . 7
D ia2 Seu primeiro programa em ABAP/4 43
Dia 3 o Data Dictionary, Parte 1 . 95
Dia4 o Data Dictionary, Parte 2 . 143
Dia5 o Data Dictionary, Parte 3 . 183
Dia 6 o Data Dictionary, Parte 4 . 217
Dia 7 Definindo dados no ABAP/4, Parte 1 . 235

SEMANA 1 Reviseo .257

SEMANA 2 Visco geral .259


Dia 8 Definindo dados no ABAP/4, Parte 2 . 261
Dia 9 Atribuicoes, conversoes e cilculos 279
Dia 10 Instrucoes de controle comuns 315
Dia 11 Tabelas internas . 349
Dia 12 Tabelas internas avancadas, Parte 1 387
Dia 13 Tabelas internas avancadas , Parte 2 425
Dia 14 A instrucao write . .. . 461

SEMANA 2 Reviseo . 495

SEMANA 3 Visco geral . .499


Di a 15 Tecnicas de formatacao, Parte 1 499
D ia 16 Tecnicas de Iormatacao, Parte 2 527
D ia 17 Modularizacao: everitos e sub-rotinas . 545
Di a 18 Modularizacao: passando pariimetros para sub-rotinas 571
Dia 19 Modularizacao: modules de fun,ao, Parte 1 . . . . . . 597
SEMANA 1

Visao geral
Voce comeca a Semana 1 aprendendo sabre 0 ambiente do R/3,
incluindo 0 Basis, clienees de logon, 0 ABA P/4 Development Work-
bench e 0 Data Dictionary. Dentro do dicionario, voce cria tabelas
transparentes utilizando elementos de dados e dominios, adiciona chaves
extemas para validar entrada e prepara indice s secunddrios ou usa de
buffer para acelerar a acesso aos dad os. Voce tamb em aprende a criar
ajuda Fl e F4 para 0 usuario, corne ca a escr ever programas ABAP/4
simples e familiariza-se com 0 editor do ABAP/4 .
• 0 Dia 1, "0 amb ience de desenvolvimenro", explica 0 que e urn
sistema R/3 e sua interface com 0 usuario. Voce aprende sabre
a arqu irerura do sistema em que fun cio nam prograrnas no
ABAP/4.
• . 0 Dia 2, "Seu primeiro programa ABAP/4", ensina a criar e
modificar programas ABAP/4 simples. Voce tambem exibe uma
tabela e seu conreudo utilizando 0 D ata Di cti onary, assim como
adiciona com entarios e documentacao aos seus programas.
• 0 Dia 3, ...0 Data Dictionary, Parte 1", descreve as diferencas
entre tab elas de poo l, tabela s tran sparentes e de cluster. Voce
tambem aprende a criar dominies, elem entos de dados e tabelas
transparentes no Data Dictionary.
• No Dia 4, " 0 Data D icti onary, Parte 2", voce cria 'chaves
externas, cria e uriliza tabelas de text c , des creve a diferenca entre
uma estrutura e uma tabela e erie estrur uras no R/3 Data
Dictionary.
• Durante 0 Dia 5, "0 Data Dictionary, Parte J", voce cria e
utiliza indic es secundarios apropriadamente, configura os
arributcs tecnico s para tabel as tran sparen tes e ajusra 0 uso de
buffer para tabelas,
6 I APRENDA EM 21 DIAS AiAP,.

• No Di a 6. "0 Data Dic tionary, Parte 4". voce rrabalha com 0 utilitario
~e banco _de dados para execurar verifica~ao de coe renc ia, acess o de
mform a!Soes de tabelas especfficas de banco de dad . . d
. d b as, m serm 0 e
recnan 0 ta elas no banco de dados.
• Depoi s do Dia 7, "De finindo dados no ABAP/ 4 Part I" ,
ente d I d . , e , VOce
n e as e ementos a smtaxe do ABAP/ 4 d .
bi d d • escreve 0 concerto de
o ~~;~s e dad~s e SU~ : isibilidade, utiliza Iiterais e entende como
co 1 lear ca a np o, definin do e utilizando constantes.

o ambiente de desenvolvimento
Qbjetjvos do capitul....
o'-- _
D epois de conduir este capitulo, voce devers ser capaz de responder as
seguintes perguntas:

II
8 0 que e u rn sistema R/3?
• 0 que e uma inst dncia R/3?
• 0 que e 0 Basis?
• Que plataformas 0 R/3 suporra?
• Q uais sao as possfveis configuracces do sist ema R/3?
• 0 que e a arq uitetura de servidor do R/3 ?
• 0 que e clienre d,elogon ?
o que e R/3?
o e
R/3 urn conjunto inregrado de aplicativos projetado para tratar 0 proces-
samento de dado s em grandes corporacoes. Ele foi desenvolvido na Alemanha
pela empres a denominada SAP {uma sigla de Systems Applications and Pro-
duc ts for data processing - aplicativos e produrcs de sistemas para proces-
•1
samento de dados). .
'" lA, .NT. .Dl VOl EN'
8 APRENDA EM21 DIAl ABAP/4

• WF r:w orkflow - [luxe de trabalho)


Quando voce ve a pclovro SAP por si mesma, ela e pronunciodo • IS (Industry Solutions - solucoes de industria)
"es -ei-pl". Quando e combinodo com Dutro pclovro, e pronunciodo
sop, como em "teclo sap" . Voce nunce deve dizer "sop" quando se • HR (Human Resources - recursos humanos) .
referlr o empreso SAP. Sempre 0 pronuncie como "es-el-pl". Dlzer "sop" • PM (Plant Maintenance - rnanutencao das insta~a~6es).
eo mesmo que dizer lieu n60 sei node sabre SAP".
• QM (Quality Management - gereneiamento da qualidade)
Demro do R/3 , hi urn ambience de tempo de execucao e urn conjunto Estes aplicativos sao chamados areas [uncionais, areas de aplicativo ou, as
integrado de programas aplicativos escritos em 4GLdo SAP -ABAP/4. Esses vezes, modulesfuncionais do R/3. Todos Esses termos sao sinonimos .
programas aplicarivos foram projetados para atender ao processamento de Tradicionalmente , as estruturas empresariais desenvolvern urn conjunro
clades necessaries para negocios muito grandes. R/3 e seu predecessor Rf2 sao de apjicativos de processamentc de dado s avaliendo produ tos individuais e .
particularmente populares no setor industrial. cornprando Essesprodutos separadamente de diversos fabri cantes de software.
o RJ3 e 0 sist ema em que seus programas ABAP/4 serao executados. A Interfaces entre eles sao entsc necessarias . Por exemplo, 0 sistema de geren -
Figura 1.1 oferece uma representacfo 16gica disso. ciamemo de materiais precisara ser vinculado com as vendas e a dist ribuicao e
com as sistemas financeiros, e 0 sistema de £luxo de trabalho precisari de uma
Fig ur a 1 1 alimentacao a partir do sistema de HR. Uma quantidade.significativa de tempo
Todos os m6dulos de pp e dinheiro de IS e gasta na implementacao e manutencao dessas interfaces.
oplicotivo s60 escritos a BJ3 vern predefinido com os aplicativos empresariais basicos ne -
em ABNJ/4, que e
inlerpretodo por cessarios a maioria des grandes corporacoes, Esses aplicativo s coexistern em
executovets Basis, que urn ambiente homcgeneo. Eles sao projetados para funcionar uti lizando desde
por suo vez, s60 urn unico banco de dados e urn conjunto (muito grande) de tabelas. Os
execurcccs no sistema
tamanhos de banco de dados de producao atuais variam de 12 gigabytes a
operocionol.
aproximadamente 3 terabytes. Cerca de 8.000 tabelas de banco de dados SaO
BAS IS distribuidas com 0 produto R/3 pad rdo.

por que voce, preCIse


. b
S al.l:He '
~rU:IS 2
:ilS'-lO= _
SISTEMA OPERACIONAl
E importante para VOCe, como urn programador de ABAP / 4, saber p.or que
esses aplicativos sao todos escritos inteiramente em ABAP/ 4. Esses saO os
aplicativos que voce deve entender para ser urn born deserivolvedor de R/3.
QU ai e a fLJo \;oO do R/3? Por exemplo, suponha que voce conhece ABAP/4 e tenha recebido a
A unica utilidade de urn sistema RJ3 e of~recer urn conjunto im egrado com- incumbencia de escrever urn relat6rio financeiro que resum e debitos e crediccs
pacto, de aplicativc s empresariais de grande escala. Alguns desses podem ser de cada ano fisc·al para cada fabricante na empresa. Talvez voce saiba escrever
vistas na parte superior da Figura 1.1. a conjuntc padrao de aplicativos c6digo em ABAP. mas voce saberia como comecar a resolver essa tarefa?
integrados com ceda sistema R;3 e 0 seguinte: au talvez seu trabalho exija urn novo desenvolvimemo em ABAP/4.
Voce e incumbido de projetar urn sistema que ofereca inf ormacoes de estoque
• PP (Production Plan ning - planejamento da producao)
II para potenciais compradores. Se voce njio conhece os sist emas de vendas e
• MM (Materia ls Management - gerenciamentc de materiais) financeiro e de disrribuicao, voce nac sabere se esta criando algo que ja. existe
• SD (Sales and Distribution - vendas e disrr ibuicao) em Rl3. Tampouco voce pode saber se ha tabelas do R/3 que ja contem dados
sernelhantes ou identicos aos ripos de dados que voce que r recuperar. Esses
• FI (Financial Accounting - comabilidade financeira)
aplicativos sao altamente integrados. Urn desenvolvedor que assume a aborda-
• CO (Controlling - controladoria) gem "eu construirei minhas pr6prias tabelas e manterei minh as pr6prias capias
• AM (Fixed Assets Management - gerenciamento de ativos fixos) dos dados", pode logo descobrir que seus dados sao redu ndant es e devem ser
rotineiramente sincronizados com 0 resto do banco de dados. Ele construiu
• PS (Projec t System - sistema de projetc)
fjguro 1 2
urn aplicativo que nao tira proveito da natureza altam ente inte grad a do ambi- o kane do R/3 no
= ~ M. . 6reo de trcbcfbc-
M encionei isso apenas porque muitos d esenv olvedores qu e des ejam
tomar-se consultores independent es pensam que aprender ABAP/4 erud o de
que eles precisam para se aperfeicoar no sisterna-RJ3. Ecertamente urn grande
infcio, mas e apenas 0 come co. A impcrrancia de treinarnento em uma are a
funcicnal pede ser supervisionada ou desc onhecida par esses interessadcs em
se tomar consultores p rofi cientes d e ABAP/ 4. Obviamente, muito de sse
ap rendizado pede e sera Ieiro na p ratica do rrabalho, En tretanto, espero ilustrar
o fate de que aprendera Iinguagem ABAP/4 esomente 0 comecc de uma longa
viagem dentro do SAP . Se deseja sec bern-sucedido co m o urn cons ul tor
independente, voce acabara precisand o adquirir urn con hecim en to funciona l
da "area. lce ne
do R/3

Voce pode cprender sa bre as 6reos funcio nois lende 0 referencia o nline
do R/3 (cominho de menu do R/3 Help-> R/3 libra ry). Ela cc ntem
tutoriois e Inicrmccoes de todo s os areas funclc ncls . 5e voce ti ve r EJgurp 1 3
ocesso 0 um sistema com dodos do IDES (Internat io na l Demo and A lela de logon do
Education Sysfem), voce tcrnbem pcderc troba lhor co m as exerdcios R/3 solicifa 0 voce
do R/3 library. Perc lnformocces sebre-e dispcn'btlidcde de cu rsos de urnc senho.
trelncm entc, co ntofe a SAP (ht tp ://www . s ap. com) o u la mbto n Col-
lege (http: / /www .1ambton.on .ca ).

Descobrind"'o!..Co"'-'R>L/.3..'-- _
Em urn amb ient e do Windows, voce eferua logon no R/3 escolhendo urn
caminho a partir do men u Iniciar, ou dando urn clique duple ern urn Icone R/3,
como 0 mosr rado a segu ir na Figura 1.2.
o sistema R/3 solic itara a voc e urn ID de usuario e senha. A tela de logon
apa rece na Figura 1.3. Voce pr eench era esses dois campos eentao pre ssionaci
\
i
Enter. I
o sistema R/3 entao exibire uma tela de direitos autorais e, quando voce I!
pressionar Enter, exibira 0 men u principal do R/3 como mos trado na F igura 1.4.
I
j
lltiliza ndo as areas conceitlJa is do sistema R/3 J
A partir do menu principal, vo ce pode ir para tres areas conceituais no sistema -j
RJ3: I
• a area Applications
! .~.
,
• a area Basis
• 0 Development Workbench

._ - -'--
,.. r
~1 .lit ,EI ESE LV ITC
12 APIENDA EM21 DIAS ASAP,.

Fig ura J 4 1~ R' 9 It 1,1,,1 -'e'.. .1


. . . .lcVo'c< - - - ., _ - . , _ _ 1_ ~·tIolJ · :..,., .i ~ ').; ;: _. -~r_ ....•. '. " '. ........- ~ Figura] 5
o menu princi pal :" 1 ~.::r~-:+- ~ ~ iHl;ri n ~ ~i~ :: ";::-.'_~ ;. ~ ·t -'•• .,;.; .'- ; " ' ". a cominho de menu
do R/3. otuolizo urn
registro-mestre do
fobriconte (porte i ).

o Development Workbench e utilizadc para criar e testar progremas


ABAP/4. Como urn programador em ABAP / 4, voce gastara a maior parte do
Figur a] A...--
seu tempo dentro do Workbench. Para acessar 0 Development Wo rkbench,
escolha 0 caminho de menu Tcols-c-Developrnent Workbench. Entretanto,
o cominho de me:nlJ
otuolizoo
seu c6dig o devers ler ou atua lizar as clados de aplicativo e, portant o, sera registro-mestre de um
des tinado a to mar-se parte cia area de aplicativos. Com isso em mente, vamos fobriconle (p orte 2).
olhar cleona de uma area Applications prim eiro.
Para n osso exemp lo, imagine que voce' e urn atendente que trabalha em
urn departamento de ccntas a pOl gar. Urn fabricanre Iiga para dizer que 0
endereco dele mudou. Voce coloca urn marcador no artigo de revista que estav a
lendo (Visao criminologista dos problemas relacionados com a contabilidade
criatiua} e precede a atualizacao de endereco no sistema R/3. Primei ro, voce
alcanca 0 men u Accou nt s Payable escolhendo 0 caminho de menu Ac count-
ing->Financial Accounring- S-Acccunts Payable [veja a Figura 1.5).
Voce entao cria a rransacic de manutencao de registro-mest re de urn
fabricante escolhendo 0 caminho de menu Master Records->Change (veja a
Fi gura 1.6). Voce vera a tela Change Vendor: Initial.
Na tela Init ial mostrada na Fi gura 1.7, digite 0 rrdmero do fabricante, fafSa
. uma marca de selecao na caixa de selecao Address e pressione a tecla Enter.
Voce entao veri a tela Address (veja a Figura 1.8).
Vo ce altera seu endereco e pressiona 0 botao Save {veja a Fi gura 1.9).
Ao salvar, 0 sistema retorna a voce Change Vendo r: Initial Screen. Ele
tambem exibe um a mensagem de exito dentro da barra de status posicionada
na part e inferior da t ela (veja a Figura 1.1 0).
14 APREHDA EM21 DIAS ABAPI4

F igura 1 7 Fig ura 1 9


@'.: sr
;_ [Ill
f! -'
G.- ' _- ~ .s,.o..: llifIl · : .· , · -, :' .• -" . -.- -' ~' -' ... - .,::,. _.',.
.1.".. ,1
.. ' .. "
A lela Vendor Mosler Solvondo oltero~6e s I
II" __._ d o:" . D, x -~ M : i:l ~ o ~ ,:rq . . '. , '.-~','~ - .~ ':-'-
Update Trcnsocti on: no eneJerer;o do ~~·;i.;i;;'I~I~"ld·l lio~;t ,_'\1 ~" " ;~.;-' f':'~'~/~" ... " .> _. ",: .-.~ ~i.--<'•• ; :. " l"'::-
Initial. fobriconte.

[~;?:;;r~;t~:, '~ . ~I; ~'~~:: .:


.-c{t,~&t~~jTft ~.ft t. i ~·I~li~~;,d;_:: :j~ '5116' , -.·f·.': ,.-
.

~¥f;~61t;~%~;E~~::!:~;;;'~; ~' ' I . . .


;~~Z~{~~,i~~:$:~J ,. ~ -. :. "1 :, ~ :.'
TI1"h.... I"] ~, ..ht.. Io/fIlI·';1 .- .-,' ~.

·tf~~~~~}~~~~~~f~;·;{t:~}tii~~
.1<,, ' >< '
E..i..Q..ura 1 8 figur " 1 10 , ," ~£': ' ~ ,.,.. ...

A tela Vendor Moster A Initiol Screen


Update Tronsodion;' con ~rmo q ue 0
Address . o/leroljoo de e ndere'i0
fei feito.

Essa t ran sacao e urn exernplo de muitas das rransacoes no sistema Rl3.
A maioria das rransacoes de dados-mes tres tern aparencia e significado seme-
lhan res.

Desco b rio do a interlace com Q usu6rio do R/3


A Figura 1.11 mostra 0 men u principal novamente com as areas importantes
de tela iden tificadas.
16 APRENDA EM 21 DIAS ABAPi4

Cada t ela do R/3 contem estes elementos : Quando voce ccloco a pante iro do mouse sab re quoiquer batao par
alguns segundos , 0 R/3 exlbe ume dice de ferromenta descrevendo
• A barra de titulo: contern 0 titulo cia tela atua]. suo fun<;ao. No R/ 3 , isso se chama info rma<;ao rcptdo (quick info). Elo
• A barr~ de menu: a conteudo ciabarra de menu altera-se com cada tela. contern uma breve descricoc do batao e a teclo de f un<;aootribuldo a

P esquisando as menus dentro dele, vo ce pode descobrir todas ' as ele.


fun~6es qu e sao p ossfveis na tela atua]. Os menus System e Help estao
presentes em cada tela e as itens de menu que eles contem nunca se • Menu de interface: permite que voce pers onalize as caracterfsticas da
alte ram. . interface com 0 usudrio, acesse a area de rrans fer encia do Windows e
• 0 campo Command: aqui voce digita comandos a serem executados. gere imagens. A seC;ao a seguir abordara mais profundamente os
Por ex~mplo, voce po de efetuar 0 logoff digitando { nex nesse campo recursos do menu de in terface.
e pressionando a teela Enter. A se<,;ao "Utilizando 0 campo Com- • Area Screen: esta e a area grande no mei o da t ela que exibe os dados de
mand" descreve esse campo em mais detalhe. relat6rio ou a tela de urn programa de dialogo .
• A, ~arra de ferramentas Standard: contem a campo Command e uma • A barra de status: exibe mensagens, 0 ID de sistema, 0 numero de
sen e_de ~ot6e~, Eles nunca se alterariio na aparencia, posicao 0'; sessj.o, 0 numero de cliente, 0 indicador do modo inserirl sob rescrever
fun<,;ao, e estarao presentes em cada tela . Algumas podem estar acin- e a hora! data atua].
zen radas por fora se sua funcionalidade estiver atualmente indis - Voce pode ativar e desativer a maioria dos elemento s da tela. Se sua tela
p onfvel.. nao se parecer au se comportar como descrito neste capit u lo, siga as instrucoes
• A b~rra de ferramentas Application: altera -se com cada tela. Ex ibe as na proxima sec;ao para corrigi-la.
botoes que dec a voce acesso rap ido a irens de me nu des sa tela . .
Traba lhando com 0 menu de interface
Figura "] 1 1 Barra de titulo Compo Command o leone corn tres cfrculos coloridos no canto superi or direit o da janela do R/3
Elementos imporfon tes e chamado menu de interface. Com ele, voce pode pe rsonalizar a interface com
de emu tela do R/3.
o usudrio configurando cores de tela, tamanhos de Fonte e a co mportarnento
do cursor. Para realizar isso, de urn clique no le on e no canto superior direito
da janela do R/3 (veja a Figura 1.12) . Urn menu aparec era; de urn clique no
item de menu Options.

Figura 1 12
o menu de interface
com 0 item de menu
Options destocado.

Barra de status
01. JA Jll :Dr VD' IEN- .J ~ ..-
18 AI/EHDA EM 21 DIAl ABAP/.

De urn cliqu e na guia Ge neral e altere suas configuracoes para coinc idir Figura 1 14
.

~!i~i~J,
corn . as mcstradas na Figura 1.13. Pazendo isso, voce assegura que a sua Calocondo marcas de
selelOoo no caixa de
interfa ce com 0 usuririo ficard par ecida e se comportara como descrito ne ste selelOoa Co lors In
livre. Lists.
A tive todas as barras de [erramentas (fa~a um a mar ca de selecso em codas
elas) e configure Quick Info como Quick. Fac;a um a marea de selecao na .~"",~ ~~ •..• ,,, . ~?,
p rimeira e na ultima das caixas de selecao de mensagem como mosrr ado. De
urn clique em Apply.

Voce deve dar urn clique no batao Apply ou OK ant es de escother ovtrc
g uio. Se voce nc o fizer issc, sues clterc coes noo tenSa efe ito.

tt.'tk~...:;:f;;(e~J",? J '"-,,,- ..
. De urn clique na guia Col ors In Lists e fac;a uma marea de selecao na caixa
de selecac Lines In Lists como m ostrado na Fi gura 1.14. De urn clique em OK
para reto rna r.
Exiba tod es as con figurac;6e s de tecto de func;ao (ou teclo ~ do ndo um
F ig u ra 1 13
°
cliq ue com botc o dtreito do mouse em quolque r lugor do 6rea de
tela. lsso fundona e m todcs as telas. As tedos de func;ao 1 a 12 estoo
As op¢es de Gen eral
no linho supe rior dos tedos em seu tecla do. As teclcs de fum;ao 13 0
Inte rfa ce .
2 4 sa o essos mesmos tedos com a tedo Shiftpressionoda . Por exemp lo,
f13 e Shift+ F1. Pora as teclcs f de 25 a 36 , utilize Or! em vez de Shift.
Para 3 7 a 48 , utilize Alt. Pa ro a s teclos f maiores que 48, mo ntenha
pressionoda Or! e digite 0 nc mero do teclo no teclado nume rlco. Po r
exemplc , po ra F50 , monle nho pressio na do Ctrl e digile 50 no tedodo
num erico.

Utiliza ndo 0 Comma nd Field


N a barra de [erramentas Standard est auma ar ea de entrada chamada Com mand
Field. Aqui voce pede inserir comandos de sistema. Para uma lists do s coman-
dos que voce pede inserir aqui, coloqu e seu cursor no camp o de comand o e
pr essione a tecl a FI.
Este ca~po e mars frequentemente utili~do para uuciar uma nova
rran sacao.
A opcac Lines In List s ativa ou desativa a exibicao de linh as verticals e
horizontais em seu relarorio de saida. Essa opr;ao deve estar selecionada para
Por enqucnto, pense em um progromo como ume trcnsc ce o. O s do is
que voce veja 0 efeito das insrrucoes graficas de linha que voce codificard mais
sa o grosseiromente eq uivole ntes. Quando voce inicic umo trc nsocc o,
tarde neste livre .
voce est6 inician do urn progr oma .

NOYO .... Em vez de escolher urn co minho _de menu pora inicior uma tronsac;o~, voce
milo" pe de inserir 0 c6d iga de tronsa c;oo no eampo de eam a ndo. Um c6d!go de
trc nsocoo e um c6digo de 3 ou 4 cc rocteres associodo o ume nc nsocc c - voce pad e
utiliz6. 1o para lnlcic r 0 tronsccoc sem unlucr um ca minho de men u. Ca do trc nsc coo te m
um c6 digo de tronsOf; do (tam bem den orninodo tcode).
20 AP' ENDA EM 21 DIAS ABAPI4
- - --~-

Para localizar 0 c6digo pa ra qualqu er transacac , voce invoca a tr ansacl o o e


Basis «para prograrnas ABAP/4, enquanto a Windows para programas
e enrao escolhe 0 caminh o de menu Sysrem- c-Status. A tela System:_Status Windows. a Basis oferece 0 ambiente de tempo de execucao para programas
sera exibida. a codigo de transacao aparecera no campo Transaction. ABAP /4 . Sem de, programas ABAP/4 nao pod em ser executados. Quando 0
Por exemplo, a partir do menu principal R/ 3, escolha 0 caminho de menu operador inicia 0 R/3, voce pode cons iderar que ele est a iniciando 0 Basis. Ele e
A ccounting-c- Financial Accounting->Accoun ts Payab le. Vo ce vera a tela uma colecsc de programas de sistema R/3 que apresen ta uma interlace a voce.
Accounts Payable. A partir daqui, escolha 0 caminho de menu Ma ste r Utilizando essa interface a usuario pode iniciar programas ABAP /4.
Records- >Display. Voce vera a tela Syste m:_Status . Escolha 0 caminho de Para instalar 0 Basis, urn instalador exe cut a 0 pro grama r3 in st no nfvel
menu Systern -c-Srarus . Aparecerf a tela System: _Status. N o campo T ransac- do pr ompt de comando do sistem a operaeional. C om o na maio ria das in stala-
tion esti 0 codigo de transacio para essa tela: FK 03. . ~6es, essa operacio erie uma esrrurura de diret6rios e copia urn conjumo de
Agora que voce tern 0 c6digo de transaca o, pede iniciar essa transacao de executaveis para ela. Esses executaveis torn ado s juntos com o uma unidade
qualquer tela digitando 0 camp o de com ando I n seguido pelo codigo de fo rm am 0 Basis.
transacao. Para inieiar 0 sistema R/3, 0 oper ador digita 0 comando starts ap. Os
Por exem plo, re tome ao men u principal (de urn clique no bo ta o Cancel executaveis d o Basis iniciam e permanecern sendo executado s, aceit ando soli-
duas vezes e emac de u rn clique no bono Back). No campo de cornando digite citacoes do usuario para execur ar p rogramas ABAP/4.
/ nfk 03, enrac de urn clique na tecla Enter. Voce imediatamenre vera a Display Programas ABAP/ 4 sao executados dentro do ambienc e protetcr do
Vendor: Ini tial Screen. Basis; eles nao sao executaveis que fun ciona m no sistema operacional. Em ve z
disso, 0 Basis Ie 0 c6digo do ABAP/ 4 e os inte rp re ta com o instrucoes do
sistem a operacional.
Em qua lquer tela, voce pode encontrar 0 c6diga de trcnsocco do as programas ABAP/4 nfo acessam fun~6e s de sistema operacional
troosccec etuel. Pera fozer isso, escolho 0 cominho de menu
System- >Stotus. diretamente. Eles u tiiizam fuDc;oes do Basis para execu rar E/S de arquivo e
exibem dados em janelas . Esse nfvel de iscla m entc do sistema operacional
permite que p rogramas AB AP/4 sejam adaptado s sem modificarao de qualquer
Enten d en d o 0 Basis sistem a que suporte R;3 . Esse us o de buffer e. construldo diretamente na
pr6pria linguagem de ABAP/4 e etotalrnente transpar ente para 0 programador.
NOVO ~ Basis e como um sistemo operocional para R/3. Ele fico entre 0 c6digoABAP/4 o Basis torna os programas ABAP/4 portateis. As plataformas em que
lUMO " eo sistema cperoooncl da computodcr. ASAPgosta de chcmc-lo middlewore o R;3 po d e ser executado sao mostradas na Tabela 1.1.
porque ele fico no mete, entre 0 ABAP/4 e 0 sistema operacionel.
Ta b el a 1.1 Plotoformas e bancos de dodos suporto dos pa r R/3

o antecessor do R/3 e RI2 . 0 R/2 e baseodo em mainframe e 0 SAP Sistema Hardwa re Fro ntaEnd s Ban cos d e dados
cdcptou-o para 0 ombientecliente/servidor_Para fczerisso, 0 SAP criou operational suportado suportados suportados
o Basis. Suo criol;oo permitiu que 0 c6digo em ABAP/4 existente DB2 for AIX
AIX SINIX IBMSNISUN W;n 3.1 /95 / NT
funcionosse em outros plctoformos.
SOLARIS HP·UX Di gital HP OSF/ Mol;f Inform lx-Online
D ;g~ol .UN IX Bull OS/ 2 O rccle 7.1
Se voltar para a Fi gura 1.1, voce podera ver 0 Basis co locado entre 0 ADABAS D
Macintosh
ABAP/4 e 0 sist ema operacional. 0 ABAP/ 4 DaO pode funcionar diretamenre
Windows NT AT&TCompoq W;n 3. 1/ 95/NT Orode 7.1
em urn sistema operacional. Ele exige urn conjunto de programa s (coleti-
BulllZen;lh OSF/ Mot;f SQl Server 6.0
vam ente .chamad e Basis) pa ra carre gar, inrerprecar e usar buffer em sua entrada
e safda . HP (Inlel) SNI OS/2 ADABAS D
o Basis, sob certo aspecto, e como 0 ambience Windows. En quanro 0 IBM(Intel) Macintosh
Windows estive r sendo executado , ele ofereee urn amb ience em que os pro- Diqltcl (Intel)
gram as Windows po dem fu ncionar. Sem 0 Windows, 0 programa escrito para Dcto-Geoerc l
o amb iente Windows nao pede ser executado. OS/400 AS/400 W;n95 OS/2 DB2/4 00

a
...• <
22 "R END A EM 2\ DIA l ABIP/4 DlH.O....BIEHlE DEDESENVDLVIMENTD 23

Por exemplo , se voce escrevesse urn programs ABAP/ 4 n o Digital UNIX chama uma sub -retina transfere 0 controle para a sub-r otina e nao pode ser
com urn banco de dados Info rmix e uma interface OSF/Motif, esse mesmo executado em qualquer processamento at e a sub-retina retoma r 0 controle.
programa deveria sec executado sem modificartio em uma mdquina Windows Os programas cliente e servidor sao processos independen tes. Se 0 cliente
NT com urn banc o de dados Oracle e uma inte rface Windows 95. Ou, ele pode envia uma soliciracao ao servidor, ele eSta livre para executar outre trabaiho
sec executado em urn AS/400 com urn banco de dados DB2 utilizandc OS /2 enquanto espera a respcsta.
com o front -end . A Figura 1.16 mostra as rres configuracoes cliente/servidor padrao . 0
A SAP tambem oferece urn co njun to de [erramentas para adm inistrar 0 R/ 3 pod e ser modelado para trabalhar em qualqu er uma dessas configuracoes.
sistema do Basis. Essas ferramentas executam tarefas como monitoracao do Quando 0 programa cliente e 0 servid or sao execu tados no rnesmo
desempenho do sistema, alem d a con figuracso e manutencio de sistema. Para cornpu tador, a cccfiguracao e referida como cliente/servido r em urna camada.
acessar as [erramentas de administracf c do Basis a part ir do menu principal, [Uma camada (tier) e 0 limite entre dois computadores.] Quando des sao
escolha 0 caminho To ols-> Adm inistration. execurados em cornputadores diferentes, a configuracao e referida como eli-
Eis alguns exemplos de [erramentas de adminis n-aci o do Basis: ente/ servidor em duas camadas .
Urn programa pode func ionar como urn cliente e como urn servidor, se
• Para ver urn a lista dos servidores atualme nt e sendo executados em seu ele tanto solicita informacoes como responde as solicitac oes. Quando voce tern
sistema R/ 3, escolha 0 caminh o de menu Tools->Administration, treS programas em comunicaclo, como e mo strado na Figu ra 1.16. a configu-
Monito ring-> Syst em Moniroring-> Servers . raliaO e chamada client e/ servidor em tres cam adas.
• Para visualizar 0 log de sistema atual, escolha Tools-> Administration. A configuracao cliente/ servidor permite que 0 sistema R/3 divida sua
Monitoring->System Log. c.arga com mul tiple s computadores. 1 550 oferece ao cliente a capacidade de
• Para ver a esratisti ca de desempenho de sist ema, execu te a transacao ajustar a escala ao poder de processamento do sist ema para cima ou para baixo
,,03 (digite 105103 em Co mmand Field), escolha This Application simplesmente adicionando Dutro computador a u ma configuracio existence ,
em vez de substiruir urn {mica computador que executa todo 0 processamento,
Server, Last Minute Load e analise os ultimos 15 minutes. Pressione
o boeao Dialog na par te inferior da tela e voce vera 0 tempo medic de como ocorre no mundo des mainframe s.
resposta de usuario para os ultim os 15 minutes (veja em A v , Response
F igmn 1 16
Time). ConfjgLlro~6es dienle/servidor em Limo. dLios e Ires comodos.
o Basis foi p rcj etado para ser executadc em uma configuracac clien- ~ ... _e-acIo s..:.dot ... d.... CI>IftC>do>
DDis , ompvIOllo,u
te/servido r.

Entenderidc.c.cliente/serxidcr _
NOVO ....
llRIIOr
C1iente/servidor soo dai s progremo s que conversam um com
Figure 1.15).
0 outre [ve]o 0

_
....... .....
flgu rg 1 1 5
AeSSEmOo do sistema
c1iente/servidor.
Progromo 1
Solicitocc c de
inform oc;60

Progro mo 2
._.
"""-
......-
..f=f-l-I-- -} •- ,
Resposto

Progrom o Progromo
die nte servidor

Aqui vemos 0 Programa 1 solicitando algumas informacoes ao Programa


2. 0 Pro grama 1 e 0 ciiente e 0 Programa 2 e 0 seruidor. 0 Programa 2 oferece
ao Programa 1 as inf ormacoes que ele solicitou. I sso e diferen re de urn
pre grarna prin cipal que chama uma sub -retina e retorna. Urn pr ograma que
24 APlEHOA EM 21 DiAl ABA'" D1A1:0 AMBI'tHTE lit DEStft10lVI/IIl::NTL 1..

Arqu itetura dQ sistema R/3 • 0 mimero de process os e seus tipos


A SAP baseou a arquitetura do R/ 3 em urn modele de cliente/servidor em tres • A quanridade de memoria que cada processo pe de utilizar
camadas. A'arquiterura de sistema R/3 aparece na Figura 1.17. • 0 perfodo de tempo em qu e urn usuario pode ficar inativo antes de
ser automaticamente desconectado
~rvidor de opresentoc;60 oservidor de aplicarivo existe para interpretar programas ABAP/4, e eles
somente 5[0 executados nesse servidor - os programas nao fun cionam no
NOVO ... o servidor de opresento~ oo e reo lmente um progroma identificodo como servidor de apresentacso. Urn programa ABAP/4 pede iniciar urn executive!
TEmO " sapgui . exe. Normolmente, elee insto lodoem umoestccsc de trobolhode uscorio.
no servidor de apresentacao, mas urn prograrna AB AP/4 nao p ode ser execu-
Para inicc-lo, a usu6rio d6 urn d ique duple em urnleone no area de trobalho ou escolhe um
caminho de menu. Quando lnkio do, a servidor de opresenfoc;cio exibe a s me nus do R/3 rado nele.
dentro de ume janela. Esso jonelo e comumente coohecidc como SAPGUI, ou como interface Se seu prograrna ABAP/4 solicirar inf ormacce s do banco de dados, °
com a usu6rio (au simplesmenfe, interface). A interfoce oceifo entrada do usvoric no forma servidor de aplicarivo forma tara a solicitacsc e a enviard ~o servidor de banco
de pressionomentos de tecla, cliques de mouse e teclos de func;oo e envlo esscs sclicltccoes
de dados.
00 servidor de aplicotivopare serem processados. 0 servidorde oplicotivo envio as resultados
de volta 0 SAPGUI que entoc fonnata a soido a fim de exibi-Ia para 0 usu6rio.
Descobrindo 0 servido r d e ponco de dodos
F i g u ra] 17
A orquiteturo do' KOVO.... 0 servidor de banco de dodos e um con junto de execvtovels que oceitc
sistema R/3. Serwdor de
mwo ,. solicltocoes de banco de dodos do servldor de op licotivo. Essos scllcttccces soo
gptl!5 entg¢O passodos pora 0 RDBMS (Relation Database Management System). 0 RDBMS envlc os
dodos de volta 00 servidor de banco de do dos , que ente o posse as iniormccces
nova mente 00 servidor de c pllcotivc. 0 servidor de c piiccttvo pa r suo vez transfere essos
inform e~ 6e s pore se u progromo ABAP/4.

Hoinormalmente urn computador especjfico dedicadc a abri gar 0 servidor


de banco de dados; e 0 RDBMS pode ser executado nesse computador tam bem,
ServiOor de beeee de dodc» ou pode ser instalado em seu proprio computador.

Configu rand o os servj do re s


Durante a instalacao, os servido res podem ser configurados de qu atro maneiras
(veja a Figura 1.18) .
DB
Figura] ] 8
Passlve;s
o servidor de oplicotjvo configurot;6es do
sistema R/3.

NOYO '" e
Urn servidor de aplicativo urn conjunto de executoveis que interpreta ccleti-
milD r vomente os progrom os ABM/4 e gerendo a entrada e 0 sc fdo para eles.
Qua ndo urn servidor de cplicctivc e inicioda, todos esses execvtovels inicicrn 00 mesrno
tempo. Quando um servidor de cplicctivo e interrompido, tadas eles porarn juntos. 0
ncrnerc de precesses que sao inidodos quando voce exlbe 0 servidor de ap licotivo e
definido em urn vnico orquivo de confjg urc~ao chomodo perfil do servidor de ap!icofivo.

Cada servidor de aplicativo tern urn perfil que especifica suas caractertsti-
cas quando ele inicia e enquantc esta sendo executado. Por exernplc, urn perfil
de aplicativo servidor especifica:
- - -- -- - -
DIAL 0 AMBIENTt DEDESEHVOlVIMENTO I 27
26 I "RENDA EM 21 nus ABAP/4

I
Em uma configuracao clienre/servidor em tres cam adas, todos a s servi- Em te rm os mais gerai s, uma instdncia eurn seruidor. UIDa in stan cia eurn
dores de apresenracio, de aplicativos e de banc o de clados sao executados em con junto de process os do R/3 que oferecem servic e s ao sist ema R/3.
mdqu inas separadas. Essa e a configuracao mais comum para sistemas grand es
e e comum na ar ea de pro ducao. Arquitetura do servidor de.npllcntiza.; _
Na dist ribuicao cia configu raclo de apresentacao, 0 aplicativo e a s servi - a s componentes de urn serv idor de aplicativo saO mostrados na Fi gura 1.19.
dores de banco de clados sao combinadas em urn co mp utado r e os servidores Ela con sisce em urn dispatcher e multiples p roc essos de trab alho.
de apresenracao sao executados separadam ente. 1550 e utilizado para sistema s T odas as solicitacoes provenientes de servidores de apresen taci o sao
men ores e {requentemente e visro em urn sistem a de desenvolvimento. dir igidas prim eiro eo di spatcher. 0 dispatc her grava-as prim eiro na camada do
Na configuracac cliente/servidor em duas camadas, as servidores de disp atc her. 0 dispatcher extrai as soliciracces cia camadautilizando 0 algoritmo
apresentacao e de aplicativo sao com binada s e 0 servido r de banco de dados e primeiro a entrar, primeiro a sair . Cada solicicacao e entao alocada para 0
separado. Essa configuracac e uti lizad a em conjuncao com outros servidores primeiro pr oces so de trabalho disponivel. Urn proc esso de trabalho trata uma
de aplicativo. Ela eaplicada para urn servidor em lote quando este esta separado solicitacao por vez.
dos servidores online. Uma SAPGUI e instalada nele para oferecer controle
local. Figura 1 19
Do servidor de cplicotivo
~e~d~ ~e ~l!::a~vo_ _ _ _
Quando todo s as servidores sao combinadas em uma unica maquina, A ofquiteturo do
voce tern um a configuracao central. Isso raramente evisto porque des creve urn servidorde opJicotivo. I

sistema R/3 independent e com apenas urn unicc usuario .


1
I
I

Definindo um sistema R/3 I
I
A definicjo mais simples de urn sistema R/3 e <Cum banco de dedos", Em urn I
sistem a R/ 3, ha somente urn banco de dados. Para expandir a definicao, 0 R/3 I
e considerado como sen do to dos as cornponentes anexados a esse primeiro I

banco de dedos. Urn sistema RJ3 e compos to de urn banco de dados servidor I
I
qu e acessa urn unico banco de dados, urn au mais serv idores de aplicativo e urn I
ou rnais servidores de apresentacao. P or definicao, urn sistema R/3 consiste em I Area de rolagem
tcdos os com ponentes ane xados a urn banco de dados . T en do urn banco de I Mem6rio estel'1dido
1 _
clados , voce tern urn sist ema. Se tern urn sistema, voce tern urn banco de dados. -- ---- - -- - - -
Durante uma imp lementacao, ha normalm ente urn sistema (ou urn ban co de
Perc a servldor de banco de dodos
dados) atr ibufdo para 0 desenvolvimento, urn ou mais sistemas designados para
t estes e urn at ribuido para a producao.
P ara executar qualquer processamento para uma solicitacio do usuario,
NOVO.... 0 fermo poisogem do sistema R/3 signific o uma descrtcec do ncme rc de
urn processo de trabalho precise enderecar duas areas espe ciais da memoria: 0
URMO r sistemas dentro de umo Instclccoo de SAPe a forma como eles s60 designados, con texte do usuario e a area de rolagem do pro grama . 0 contexte do usuario
euma area da memoria que contem as inforrnaco es sobre 0 usue rio, e a area de
tois como desenvclvirnentc, teste ou prodocec.
ro lagem e uma area de memoria que conc ern as infor rnacoes sobre a execucjo
Definlndc uma instfmcia R/3 des program as. .

NOYO ~ Quendo voce ovvir o!guem utlllzcr 0 po lovro insfdncia , no maio rio de vexes Entendendo um contexto do \lSl!orio
TtRMO ~ essa pessoo estero se referinda 0 um servldor de ap Jicotivo. 0 le rma instdnci o
e sin6nima de servidor de apficatiYo . NOYO r... e
Um contexto do usu6rio memo ria alo ca do que co ntem as corcctertstlccs de
URMO ~ urn usucrtc que estc con ecto do 00 sistema R/3. Ele ormozeno as lnformccoes
o termo instdnciacentral refere-se ao servidor de banco de dados. Se urn necessa ries para 0 R/3 sobre a usu6rio, co mo :
servidor de aplicarivo e servidor de banco de dado~ residem na mesma maquina,
o termo instdncia central refere-se ao computado r em que os dois residem.
~r
,.., r-=--~~~~~------- --~~
- - --- __
- --- ~~ ~~ ... ~-- ~~~

I,
, DIA I: 0AMBIflffi. DE OEStNVOlYIMENTO 29
28 I APIEHDA EM 21 DIAS ABAP/4 J------.-:-----~==:::=.-
Fjgurg 1 20 Um posse de di61ogo
• As configuracoes atuais do usudrio I
Pcsscr do Initiol I FK02 Address Screen
• As autorizacces do usu aric Screen parc 0 Address
lnif.o IScree n
Screen pode ser .
• 0 no me dos programas que 0 usuario esti atualmente utilizando con siderodo um posso Enderecc

=
Foboccnte 0 ADO

=
de die/ogo.
Quando urn usuario eferu a lo go n, u rn contexte do usuario ealocado para
esse logon. Q uando esse u suario efet ua a logoff, 0 contexte e liberaclo. Ele e
uti lizado durante 0 processamento de urn programa e sua importancia edescrita
c1 Endereco • = ==
c:::l
em mais detalhes nas secoes a seguir.
\ lnklo do
Entendendo uma area de rolagem -, po sso de
, di6lo go
~yo .... Urno orec de rolcgem e 0 mem6rio que e c locodo po r um pro cesso de trobolho ,
ftRl!O ~ pora umc instc ncio de um progromo. Elo ormozeno informoc;6es necessc rics
pare 0 R/3 sabre 0 execvcco do prog romo , como; Dispatcher

• O s valor es das varieveis


Processo de Iroholho -+--+~ I
• As alocacoes de m emoria dina-mica I
• 0 pon teiro d o programa arual \..
\ '
T o da vez que urn usuari o inicia urn programa, urna area de ro lagem e '1..0»5 I
criada para essa instancia do p rograma . Se doi s usuaries utilizarem 0 mesmc
programa simultaneamente, existirao duas areas de rolagem - uma para cada
usuario . A area de rolagem e lib erada quando 0 programa e encerrado. Urn passo de didlcgo e 0 proces sarnento nec essario para sair de uma ~e.la
, pan a proxima. Ele inclui rode 0 processamento que ocorre de: d.equ e 0 us~a.no
faz uma soliciracao ate . e incluindo, 0 processarnento n.ecessano para exibir a
05 consultores de Basis costuma m vscr 0 termc 6reo de rolcq em .p r6xima tela. Por exemplo, quando 0 usuario dol. urn ch~ue DOl tecla Enter n o
referindo -se a todcs a s 6rea s de rologem pa ra um usu6rio ou oinda Change Vendor: I nitial Scre en, ele in icia urn passe de dialogo e a amp~lheta
todos os 6reas de rologem em um servidcr de cpllcof ivc. Normalm ente, \ apa rece , impedindo out ra entrada . 0 p rograrna sapmf02k recupera as infer-
voce pode de duzir 0 significad o prete ndido a po rtirdo cont exte em qu e i
tel utlllzodo.
! macoes do fabricante e as exib e na t ela C hange Vendor: Addr.ess, e.a ~mpulheta
desaparece . 1 550 marca 0 fim do passe de dialogo e agora 0 usuano e capaz de
faz.er o utra solicitacao .
Tanto a area de ro lage m como 0 contexte do usuario representam urn Ha quatro maneiras de 0 usuario poder iniciar urn passo de d ialcgo. A
papel importance no processamento de passos de urn dialogo.
partir do SAPGUI:
Entendendo os passos de dialogo • Pressionar Enter.
• Pressionar uma te cla de funr;ao .
NOVO .. Um posso de die /ogo e quolque r clterocc o de tela [vejc 0 Figura 1.20) .
• Dar urn clique em urn bono na te la.
lEma r
• Escolher urn item de m enu.
e
Um posse de di610ga utilizodc pelcs ccnsultores de Basis como umo
Eim port ante para 0 prog ramador de ABAP/4 conhecer sa bre pass os de
vnidode de medida pa ra 0 tempo de respcstc do sistema. dialcgo porque eles formam uma un idade discrera de processamento para um
programa ABAP/4. .
f
II
'-T'..{ ' . .r: --- - - OIA 1: 0AMBIEHTE DE DESENVOLVIMENTO 31
I 30 I 'PREND' EM 21 DIAS 'UPI'

I
Entendendo 0 processamento roll in/roll out Os progro ma s ABM'/ 4 noo tern a copoddode de intercept or mu itos
eventcs com uns no Windows . Os eventos que gerom rnuitos me nsagens
co mo pressiono mento de urno teclc , chero cees de Ieee e movime ntos
NOYO Ilrrr.. Urn programa ABAP/4 ocupo openos urn process o de trobolho pora urn passo
lERMO r de di6!ogo. No ccmeco do posso, a 6rea de rologem e 0 contexte do usu6rio de mo use, noo sao pc ssodcs para prog romos AW/4. Com o um
resultodo, n60 no como executo rolguma s func;6es que sao encontro da s
safrern roll in pora 0 processo de trobolho. No lim do posse de di6logo, eles sofrem roll
, out. Isso e i1ustrado no Figura 1.2 1. em o utros prog romos Windows. Pe r exernplo, no ABM/4 , voce n60
pode volidor a ccnteudo de urn co mpo quan do 0 usu6rio pressiono a
tedo Tab . Em vez disso, voce de ve espe ror 0 usu6 rio lnicicr outre posso
1 Fi g u r a 1 21
o processo menlo roll d o di6logo.
in/roll out.

Descobrindo co mo os do do s sco enviados


ao servidor de aprese nto ~o o
As mensagens trocadas entre 0 servidor de apr esentacjio e 0 servid~r de
aplicativo estao em urn [ormato SAP proprietdrio. 0 SAPGUI acena ~s
informacoes de tela enviadas do servidor de aplicativo e [ormatadas a~ropn­
.,.
~~
-
adamente para a plataforma em que esta send o executado. Isso permlte ~ue
diferenees plataformas de hardware do usu ario final conectem~se a urn unic o
Durante 0 roll in, as ponteiros para a area de rolagem e 0 contexte do servidor de aplicativo. Par exemplo, urn PC OS/2 e urn PC Wmdows p odem
usuario sao ocupados no processo de trabalho. 1550 permite ao processo de cc nectar-se ao m esm o servidor de aplicarivo ao mesmo tempo.
trabalho acessar os dados nessas areas e entao executar processamento para esse
usuario e tal programa. 0 processamento continua ate 0 programa enviar uma Entendendo os com po ne ntes de urn processo
tela ao usuario. Nesse memento, as duas areas sofrem roll out. 0 roll out de trqbolho
invalida as pocteircs e desassocia essas areas do processo de trabalho. Esse
Cada processo de trabalho tern quatro componen tes (veja a Figura 1.22).
p rocesso de trabalbo agora esta livre para execurar processamento para ourra
solicitacio. 0 programa esta no memento apenas ocupando memoria e nac
FigurA 1 22
consome nada da C PU. 0 usudrio ve a tela que foi enviada e logo enviara ourra Interprefodor do ABAP/4
Os componentes de
solicieacsc. um proceno de Handler
Quando a proxima soliciracjo e enviada do usuario para con tinuar 0 trabo/ho. de to refo Interpretodor de telo
processamento, 0 dispatc her aloca essa solicitacao para 0 primeiro processo de
trabalho disponivel. Este pode ser 0 mesmo ou urn processo de trabalho Interface de bonco de dodos
diferente. 0 contexte do ususrio e a area de rolagem para esse programa
novamente sofrem roll in para 0 pro cesso de trabalho e 0 processamento
reassume do ponto em que foi deixado. 0 processamento continua at~ a Cada processo de trabalho e composto do seguinte:
proxima tela ser moserada, ou ate 0 programa term iner. Se outra tela for enviada, • Um handler de tarefa
as areas novamente sofrem roll out. Quando 0 programa termina, a area de
• U rn interpretado r de ABAP/4
rolagem e liberada. 0 contexte do usudrio permanece alocad o ate 0 usuari o
efetuar logoff. • Urn interpretador de tela
Num sistema com muitos usudrios utilizando mu ito s prcgramas, apenas • U rna interface de banco de dado s
alguns desses programas estarao ativos nos pro cessos de trabalho de cada vez , Todas as soliciracces passam pelc handler de tarefa , que entao afunila a
Quando eles nso estiverem ocupando urn processo de tra balh o, des sofrem solicieacio para a parte apropriada do proce sso de tr abalho.
roll OUt para a mem6ria estendida e apenas ocupam a RAM. Isso poupa a CPU as interpretadores interprerarn 0 codig o do ABAP / 4. Note que hi dois
e permite ao sistema R/3 alcancar urn alto throughput de transacio. interpretadores: 0 inrerpretador do ABAP/4 e 0 int erpr etador de tela'. Hi
r------------~-- __.. . .__.. ._.. -__.. ._........_. .-. _. _.. ._.... _ 'W .....-- ~ ~ ~.., _
....- -_ ......_-.~--~------- -- ....1
I.
32 APRENDA EM 71 DIAS ABAP/4

g-"
D~ h 0U BiEIffi DEDESENVDl~M£", O 33
l
realmente d uas varialjoes de ABAP/4. Urna e a linguage m de p rocessamento Fjgura 1 23 b"!P
l' -' ~ _ ,", - . ~ ,: ~. ~ _~ , .... _
de dados do ABAP/4 completamente desenvolvida e a out ra e u ma lingu agem a usu6ria digifo a
d iente de logon no
muito especializada de processamemo de tela. Cada uma delas e processada tela de logon no
pelo seu pro prio interpretador. compo Client.
A inter face de banco de clades trata 0 trabalha de comunicacdo com 0
banco de dado s.

Entendendo os tipos de processo de trabalbo


Hoi sere tipos de processo de trabalbo. Cada urn deles trata urn tipo de
solic iracao especlfica. aripe de processo de trabalho e 0 5 tip os de soliciracso
que ele trar a sao mostrados na Tabela 1.2.

Tabela 1.2 Tlpos de processos de trobolho e as tipos de schcnccees que eles


trotom

Tipo de processo Tipo de solicito§oo de trabalho


o IDio log) Scllcltccoes de di6!ogo
V (Update) Sclicltccoes para ctuclucr dados no ban co de dodos
B (Background) Trobolho s de segundo plano
Fjg ura 1 2 4
S (Spool) Imprime so licitac;ees de spool
Esto lobelo ~
E (Enqueue) Solicitoc;5es de bloqueio 16gico depen dente de
M (Message) Roteio as men sagens entre os servidores de op licotivo den tro di ente porque 0
de urn sistema R/3 primejro ccmpc ~
do tipo COO.
G (Ga teway) Afunila a s me nsagens dentro e fora do sistema R/3

Entendendo 0 c1iente de logon


o termo cliente de logon DaO tern nada a ver com Cliente/Servidor - e
com plet amente diferente. 0 clients delogon se refere ao mimerc que 0 usuario
digita no camp o C lient na tela de logon (veja a Figura 1.23).
o mimero digitado aqui pelo usuario corresponde a urn conjunto de
linhas dentro de cada tabela dep endente de clienre dentro do banco de dados .

Entendendo tobelos dependentes e independentes


de diente
H i da is tipos de tabelas em urn banco de dados do R/3: dependentet de cliente
e independentes de cliente. Um a rabeh e dependente se 0 primeiro campo fo r
do tip o Cl NT. 0 comp rimen tc sempre sera 3 e por convencao, esse cam po
sempre e identi ficadc como ma ndt . Se 0 primeiro campo nao for do tipo ClNT,
a ta bela eindependen te de cliente. Urn exemplo de uma tabela dependente de
cliente e. mos trada na Figura 1.24. A Figura 1.25 e urn exemplo de uma tabela
independente de clien te.
/ - ·"'-'~'-r --·-·-" .-r- _.."..... ":"\ r> -r> r~·-;-,-...,.---~~- --- _ -- ;W _ -w .,.... __ ..

34 APRENOA EM 21 DIAl ABAP" OIA1:0 AMBJENTE DEDESENVOlVIMHHO 35


£laura 1 25
Esto tobe/o e
a mecan ismo de clience de logon divide as linh as dentro de uma tabe1a
independ ente de de dep endenc ia de clien te em grupos distintos. Pa ra acessar urn conjunto
elien/e, porque 0 diferenre de da do s, 0 usuerio efet ua lo gon e especifica urn nume ro diferente de'
prime iro compo n60
cliente.
e do tipo CLNT.

Os registros-mestres de usu6rio (co ntendo IDs de usu6rio do R/3) sao


de pendentes de cliente. Portonto , pa ra go nhor oce sso a um c1iente, 0
ad minisirodo r de seg uron<;o deve crie r um novo ID de vsvcrio para
voce de ntro desse cllente .

Os de senvolvedores e a s testers u tiliz am 0 mec anismo de cliente de logon


para criar e acessa r multiples conjunros in dependentes de dados dentro de uma
unica tabela .
Por exempl o, suponh a que da is tfp icos programadores anti-sociais estao
trabalhan do em urn aprimorament o do sistema de cob ranca. Romeu esta
modificando a rransacao de atualizacao e J ul ieta est a criando urn novo re latorio
para acompanhar as mcdificacoes de Romeu .
A Figura 1.26 mostra como este camp o afeta 0 usuario. Jul ieta co nfigu ra a s clados para seu tes te, executa 0 re latorio e obtem uma
Na Figura 1.26, 0 usuari o efetua lo gon para 0 cliente 800 e executa 0 sarde. Romeu trabalh a na sala ao lade, mas deviclo a suas tendencias anti-sociais
programa mostrado. Este programa seleciona linha s de tabela Hal e emite esti feliz ignorando que sua tr ansac ao utiliza as mesmas tabe las que 0 relat6rio
1fal -l; f nr. Quando esse programa e executado, so men te dua s linhas sao de Jul ieta. El e execut a sua tra nsa cac e atuaiiza os dados . Romeu obteve 0 que
selecionadas: apenas nos casas onde mandt e igual a 800. 1550 acontece auto- ele que ria, ma s Julieta entao modifica seu c6digo e executa seu programa
m aticam ente porqu e 0 primeiro campo na tabela ede tipo CLNT. Hoi cinco linhas novam en te. Sua safda difere da ultima e m uitas diferencas nao resultam de suas
na tabela, mas 0 programa apenas emi te essas linhas onde mandt e igual a 800. alteracoes, ma s das aheracoes de Romeu. 0 que tem os aqui e uma falha de
Se 0 usuario est iver para efetuar logon para 0 cliente 700 e executar 0 mesmo comunicac t o .
programs, tr es linhas de dados seriam localizadas e seriam emitidas. Se 0 usuario Se as tabelas u tilizadas p or Rom eu e os programas de Julieta fossem
estiver para efet uar logon para 0 eIiente 900, apena s uma linh a de dado s seria depend ent es de cliente , eles poderiam con ecrer-se a clientes separados, con-
localizada.
figurar conj untos independentes de dado s e testar seus programas sem jamais
conv ersare m urn com 0 outro. Eles p oderi am execut ar to do seu "teste no
Figura 1 26 l ela Rl3 log on o ulv6rio
o efeito do elelllO logon e conforto de sua sala e isolado s de seu companheiro de tr abalho.
dependencio de Clienle []QQ] f---...,.-~ ~ e;:~:e Par a torn ar suas rabelas dependences de clien te, eles apenas precis am ter
cliente. Jcbe lc lFAt ma ndt co m o 0 primeir o cam po e 0 sist em a R/3 cuid ara do restc. Quando
MANDT lIFNR registros sao adi cionado s a tabela, 0 siste ma automaticamente move 0 cliente
I
700 11 de logo n at ual no campo ma ndt quand o 0 re gisrro for enviado ao banco de dados .
700 12 Suas instrucoes se l ect em Open SQL somente retornarao as Iinhas em que 0
80 100
800 1 1 numerc de clience na tabela for igual ao seu num ero do client e de logon atual.
o As ins trucoes i nse rt, update, modi fy e del et e de ban co de clados Open SQL
tambem ofere cern tratamentc automatico de clienre .
Se todas as tabelas envolvidas forem dep endentes de cliente, poderd haver

'
@]
:
:
Sardo

100 :
101 :
mais de urn grupo de restad ores trabalhando ao mesmo t empo ern urn sistema
de teste, D ua s equipes de resr ador es poderao obrer resulta dos de funcionali-
, , dade divergences com 0 m esm o con jun to de programas simultaneam ente se
r -r- r r --- -,.-.;- r . t">: ~"

36 I 'PRE"" EM 2\ DI'S 'BAP/~ DIA 1:0AMB\Uffi DE DESEHVOlVIMENTO 37

efetuarem logon 'com diferentes clientes de logon. As atualizacoes feitas pa r de buffer reduz a carga no servidor de banco de dados e no vfnculo de rede
uma equipe nao alterarac as dados que pertencem aoutra equipe. entr e 0 banco de dados e os servidores de aplicativo e pede acelerar 0 acesso
Tambem poderia existir no sistem a de teste urn treinamento de cliente. ao banco de dados de 10 a 100 vezes mais.
Os alunos poderiarn conectar-se a urn cliente e as tesradore "s poderiam conec-
tar-se a outre. Os dois teriam executad o 0 mesmo conjunto de programas, mas F; gllrg 1 27 Servidor de ccltccnvo
a s programas acessariam conjuntos de dados independentes. o ccmponenle de Processo de frobolho
interfac e d e bonco de ..2
dodos do processo de
trobe/he"
••
E
-0

( Nota
A instcloccc mais com um do R/3 tem tres sistema s: deseovolvimento,
teste e producoo . Pa r podroo , cod a sistem a vern co m tres clientes
instolodos: ODD, 001 e 066" Eco mum ter de tres 0 se is c1ient es nos

'U
c
Ope n SQl
IIF
sistemas de desenvolvlmento e de teste, ma s roromente voce vera mois 1=\ ~D B
de um cliente no producdo.
1
SQL native
Uti Iizoad 0 0 Open SQuL....,d...,o.........S""A:\LP _
o c6digo do ABAP/4 po de ser portado de urn banco de dados para outro. Para
acessar 0 banco de dados ern urn program a ABAP/4 voce codificara a Open Buffer de dodos
SQL da SAP. 0 Open SQ L e um subconjunt o e uma variaclo do ANSI SQL.
o interpretador do ABAP/4 passa tod as as instrucoes ern Open SQL para parte
da interface de banco de dados do processo de trabalho (veja a Figura 1.27).
Ai" e1as sao convertidas em SQL que e nativo para 0 RDMS inscalado. Por
exemplo, sevoce esriver execurando urn banco de dados Oracle, seu Open SQ L
ABAP/4 seria convertido pela interfac e de banco de dados em instrucoes de
I Servrdor de
bcncc de
dcdo5
Oracle SQL.
Se voce utiliza Open SQL, suas instrucces de SQL serao passadas para a
interface de banco de dados. Utilizar Open SQL tern tres vantagens principais.
Todas elas sao implementadas por rneio da interface de banco de dados .

f-OJiahilidad=-----
e
8
- -- - - - - - -- - Troto me nto o!ltom6tico de c1i ente
A primeira vantagem e 0 face de que suas insrrucces de SQL serao portaveis
entre bancos de dados. Por exemplo, se por alguma razao sua empresa quisesse A terceira vantagem de utilizar Open SQL eo"tratan:zento automdtico de cliente.
alternar de urn banco de dados Oracle para urn Informix, 0 banco de dados Com Open SQL, 0 campo de cliente automaticamente e ocupado pela interface
poderia ser alrerado e seu c6digo ABAP/4 cont inuaria a ser executado sem de banco de dados. Isso ofereee as suas equipes de desenvolvimento e de teste
nenhuma alteracao. muitas vantagens, como a capacidade de executar multiples testes e treinamencos
simultsn eos em urn unico banco de dados sem incerferencia de urn em outro.
Util izo ndo buffe r de dadQS.JJ o servidor de aplicatjvo
A segunda vantagem e que a interface de banco de dados usa buffer nas Resu m o
informacoes do banco de dados no servidor de aplicativo. Quando as dados • 0 R/3 sup~rtamultiplas platafo rmas de hardware, sistema operac ional
sao lidos do banco de dados, eles podem ser armazenados em buffers no e bancos de dados .
servidor de aplicativo. Se entao for feita um a solicitacao para acessar os mesm os • Alem de permitir SQL native, 0 ABAP/4 oferece Open SQL. Utilizar
registros, estes ja estarao no servidor de aplicativo e a solicitacao sen satisfeita O pen SQL torna seu codigo por tavel, mais rapido e oferece tratamento
a part ir do buffer sem necessidade de ir ao banco de dados. Essa tecnica de use autom":itico de cliente.
--- - _ W' 'W" _

- .w

38 APIl:ENDA fM 21 ens ABA P/4


DIA 1, DAMBIEHTIDE DEIENYDlYIMENTD 39

• 0 cliente de logon perm ite que mulriplos grupo s de dados inde- Teste
pendentes sejam armazenados ria rnesma tabela. Os dados que voce 1. Eseolha 0 caminho d e menu T ool s-> Ad ministr ation, Monitor-
acessa dependem do numero de c1ientes que voce digitou quando ing ->System monircring-> User overview. Qual eo c6digo de tr an-
efetuou lo gon.
sa!S3.o para essa transacio?
2. Qual e 0 codigo de transacio par a 0 menu principal R/3 ? (0 menu
P&R principal e 0 primeiro menu exibido ape s 0 logon.)
3. Qual e 0 codigo de transacjlo par a 0 caminho de menu To ols-o-De-
o Po sse copiar urn clienr e existente para um novo cliente?
velopment Workbench?
4. Se hi treS sistemas R/3 na sua paisagem de siste ma atua], quantos
o o consulto r do Basis pode fazer isso pa ra v oce utilizando urn
utilit ario de c6p ia de clien te. Cada sistema de desenvclvimento
bancos de dados existem ?
normalmente tern p elo menos urn clienre de refer en cia e urn 5. Se urn sistema R!3 tern dais servidores de aplicativo, quan tas inst an-
clience de trabalho. Seus clados "validos" sao man tides no eli- cias ele tern?
en te de refe rencia. Eles sao copiados para eriar 0 cliente de 6. 0 que e Open SQU
trabalho. Se voce COHamper 0 clien te de trabal ho, 0 consultor 7. Quais as van tagens que 0 Open SQL of erece sob re 0 SQ L native ?
do Basis pode restaurar seu estado original copiando 0 cliente 8. Qual e a parte do processo de t rabalho ut ilizada para implementar
de referencia novam en re. OpenSQU
9. Quando um a area de rolagern e alocada, quando edesaloc ada e 0 que
o Po sso escrever urn p rograrna que Ie dados de u rn outro cliente
que nolo 0 clien t e a que estou atualmente conectado?
ela contem?
10. Quando urn contexte do usuario e alocado, quando e desalocad o e 0

o Sim . Voce pede adicionar as palavras-chave clientspecified em


qualquer inst ruc ao de Open SQL. Por exemplo, pa ra ler os dados
que ele contem?
11. Quando ocorre roll out e por que isso oeorre?
no cliente 900, voce escreverie 0 seguinte codigc:
sele ct * from tb l cl ient specified whe re mandt = '900' . Exerd cio 1
As tabelas na figuras de 1.28 a 1.31 sao depe ndentes OU indepe nden tes de
Entretanro, voce deve saber que voce apenas faria isso se estivesse
clienre?
escrevendo urn p rograma de sistema. Isso nunca e feito em urn
programa aplicativo; eles sempre devem ser independentes de
client e. Se voce precisa rransmitir clados entre dois cliente s de
producao, deve imp lernen rar a tran sferencia de dados via ALE .

Workshop
o Wo rkshop oferece duas mane iras de voce verificar 0 que aprendeu neste
capjrulo. A Se!1aO T este oferece perguntas para ajudar a solidificar seu ente n di-
mente do cont eudo aborclado e a selSao Exercfcio permi re que voce pratique 0
que aprendeu. Vo ce pe de encon trar as respostas as perguntas do teste"e dos
'exerc fcios no Ape ndice B, "Resposras as perg untas e aos exercfcios".
"""""-~----
- ... ~

0\,1. 1: 0 AMBI£NTE DE DE5£HVOLVIMENTO 41


40 'PREHD' E." DiAl AB "/4
': , . l , • t Sf P J,ftj fIf
Figura 1 30 :l""".[ill-1i"' -~ '~'tro ...... ~M " ' , ;; -
Estc lobe/a e ~"., 1. g, ,:.i;"'4o .Ii x"'-Q Mn"c -0 "0 e li ":~. < •
dependente o u
independente de
d iente?

Figura 1 31
Fig ura 1 29
, Estctobe/o e
Esto lobe/a e
dependente ou
dependentt! au
independente de
independente de
clienle?
cliente?

I
I
~ -- - -.- _ .. . -._. - -_ .
~~~-----------

Seu primeiro programa


emABAP/4
Depois de completar este capitulo, voce deverd ser capaz de:
e Crier e modificar programas ABAP/4 simples.
• Utilizar funlioes padcio n o edito r ABAP/4.
• Utilizar fun,6es de ajuda FI e R/3 Library.
• Encontrar seus programas utilizando 0 Object Browser eo editor.
• Exibir uma tabela e seus conreados utili zando 0 Data Dictionary.
• Utilizar as instrucoes t ables e select.
• Encadear instrucoes urilizando 0 opera dor de encadeamento.
• Adic ionar com entarios e documentacdo a seus programas.

Antes de-Prosseg"uLli.Lr _
Antes de prosseguir, voce dev e:
• Senti r-se a vontade com uma linguagem de programacao como C,
COBOL ou Visual Basic. Para aproveitar ao maximo este e rodos as
capitulos seguinr es, voce deve tambem ret dais anos au mais de
experiencia em desenvo lvimenro.

hllp:/Iwww.comput.eom. bt

·· .... ~· s_~
_. ~-
- ~ - _ .......... W 'W _ .....--....,.. -....- ............. ""W" -~~' --.r -- -- - - - - - -

44 ! APRENDA EM 2.1 DIAS AB APH DIA 2: Sl:U PRUWROPROGWlAEM ABAP/4 I 45


• Configurar sua interface como recomendado no Dia I, na Se~ao "0 • uma [erramenta de teste auxiliada por comp utador para regressgo de
Inte rface Menu", se voce nao river feit o isso ate agora. teste
• Execurar 0 p roced imen ro de instalacao para as ScreenCams no • uma ferramenta de pesquisa de repositorio p ara encontrar objeros de
CD-ROM. Esse procedimento esta descrito no arquivo rea dme . txt desenvolvimento
localizado no diret6 rio raiz do CD-ROM. • 0 Workbench Organi zer para registrar alteracoes em obj ecc s e pro-
move -las na produclo
HOVO ... Muitos dos procedimentos neste [ivrcs60 demonstrodos vtilecndc ScreenComs .
ltiMO r" ScreenComs s60 como filmes; elos mostram vmo sene de telcs . ind uinclo Todos os objeros de desenvolvimemo sao portateis, 0 que signifiea que
pressionomentos de tedo e movimenios de mouse, com umo norro~60 des critivo. Elos voce pod e copia -los de urn sistema do R/3 para outro. Is50 norrna lmenre efeico
pcdem ser enccntrcdcs no CD·ROM que vern com este llvro . Vejo 0 orquivo readme. txt p ;;fa mover seus objeros do sistema de desenvolvimento para 0 sistema de
loca lizodo no diret6rio rulz do CO-ROM para mois Infcrrn ocoes. producio. Se os sistemas de origem e de des tino es-se em sistemas operacionais

I
diferentes ou utilizam sistemas de ban co de dados diferentes, seus objetos de
fxplora ndo 0 ombiente de desenvolvimento desenvolvimemo executarao na Integra e sem qualqu er modificacao. Isso e
verdadeiro para todas as plataformas suportadas pelo R/3. (p ara uma Iista de
MOYO lit.. Um ob jeto de desenvofvimento e qualquer cclsc criodc por urn desenvclvedor.
,/ H~O r Exem plos de objetos de dese nvo!vimento s50 programos, telcs, tcbelos, visuo-
hardware e sist emas operacionais suportados, veja a Tabela 1.1.)
1i ZQ ~6eS, estrvlvrcs, modelos de dod os, mensoge ns e includes .
Desco b rindo tipos de progJ:QLLmI..lJ.l
O _
NOYO.... 0 sistema do R/3 ccntem ferromentos para crier e testar objetos dedesenvcl- Hi. dais tipos de programas ABAP/4 principais:
TIR.\IO ~ .vimento. Essos ferromentos estoo locolizodos no R/3 Development Workbench.
Perc ccesscr quolqu er ferromento de deseovclvlmentc , voce ir6 para workbench. • relat6rios
• programas de dialogo
oworkbench contem as seguintes ferramentas para ajuda -lo a criar
objetcs de desenvolvimemo:
Definind o relat6rios
• 0 editor de programa ABAP/4 code voce pode criar e modiflcar
o prop6sito de urn relat6rio eler dados a partir do ban co de dados e escreve -los.
I ce digo -fonre do ABAP/ 4 e outros componenres de prcgrama
Ele consisre apenas em duas telas {veja a Figura 2.1) .

I • 0 D ata D ict ionary onde voc e pede criar tabelas, est ruturas e visuali-
za~6 e s NOVO lrl.r..
TE~O "
echomo da tela de se/e~60 (seledion screen). Ela con tem campos
A prime ira tela
de entrada que permitem 00 usu6rio inserir critertcs para 0 relot6rio. Po r
• 0 mod elador D ata on de voce pode documentar os relacionamentos exemplo, 0 relctoric pede pradu zir ume listo de vendee para urn dodo interva lo de dotes,
entre tabelas entec as compos de entrada de intervale de dote opareceri om no tela de sele~oo do
• A biblioteca Function onde voce pode criar m6dulos de fun~ao globais relot6 rio.
doABAP/4
NOVO h.. A segundo tela e a tela de soldo. Elo co nte m a listo. A Hstc e a scldo do relctcrro
• A tela e menu pintores onde voce pode criar uma interface com 0 TER»O" e no rmal menfe nee tern nenhum campo de entra da. Em nosso exemplc, elo
usus ric para seus programas cc ntenc urne listo des vendee que occrrercm de ntro do intervalo de doto especficodo.
As seguin res [erramentas de test e e pesquisa tambem eseac disponfveis: A tela de selecsc e opcional. Nem todos as relat 6r ios tern uma. Entre-
• 0 ABAP/4 Debugger tanto. todos os relat6rios geram uma Iista.
• a [erramenra de rastreio de SQL utilizada par a refina r instru~6es de Neste livro, voce aprende ra a criar programas de relat orio.
SQL
• 0 analisado r de tempo de execu~ao para otimiza~ao de desempenho
do seu programa
• uma ferramenta circunstancial para analise de impacto
.... - r-

DlA 2,SEUPRIMEIRO PROGRAMA EM AMP/. 47


46 AP"NDA EM21 DIAl ABAP/4

liste
EW=>..-2L..Ll_ _ Tela de selecee
[soldo do re lot6 rio)
Descobrindo 0 obj eto de tem po de execucoo
(pcnimetros de e ntra da )
A tela de setecoc e a
lela de soldo .
de-programo
Soles Per Period ' ·
251 .25"Edna Everedge .. MOVO.... Os progromos ABAP/4 s60 interpretodos : eles noDsao compilodo s. A primeiro
131 .50 Wendy Rose.: .. . ' TIRMO~ vez que voce execute um progroma , a siste ma outomotica mente gera um objero
de tempo de execococ. 0 objeto de tempo de execvccc e um formu\6rio pre-processodo
do c6digo-fo nte . Entretonlo, ele noo e um execotovel q ue voce pode utilize r no nlvel do
e J,d.ui"
I1efin.inrlu..p.rrnlim.l.\aJ-'sLd...... q '-'lo~gl"oL-_-------­ sistema operacionol. Em vez disso, ele pede para 0 sistema do R/3 lnterpreto-]c . 0 objeto
de tempo de execuccc tcrnbem e ccnhe ctdo co mo formu/6rio gerodo do programo.
Os programas de dialo go sao mais flexlveis do que os relat6rios e, portanro,
sao rnais complexes no nfvel de programa. Eles podem conter qual quer numero Se voce alterar 0 codigo-Ionre, 0 objero de tempo de execucao sera
de telas e a sequencia de telas pede ser alterad a dinamicamente em tempo de autom aticamente gerado novamente, na pr6xima vez que voce executar 0
execucio. Em cada tela, voce pode ter campo s de entrada, campos de saida, programa .
boroes (pushbutton) e mais de u ma area rolavel.
Introduzindo as convencoes de orrlbulcco
D~-SCQbrim:lQ~ornpon.entes de relat6rio de Dome de programa
Os relat6rios do ABAP/4 con sisrem em cinco componentes (mostrados na
A ernpresa em que voce trobo lha e cliente do SAP . Portonto, os progromo s que
Figura 2.2) ; NOYOl.. voce crtc em :iUO ernprc50 s50 chomodo s progromos-dienfe .
• 0 codlgc-Ionee nmO,.
• Os atributo s NOVO lrrrrr... O s objetos de desenvolvirnento de di ente de ve rn segujr as cc nve nca es de
n~o ~ at ri bui ~oo de nome que sao predefinidns pelo SAP, Esses convencees SOO
• as elementos de texto chomod a s intervalo de nome de elienfe. Pa ro os proqrc rnos. 0 Intervolo de nome de diente
• A documentacao °
tem de dots a oilo corccteres de co mprime nto e nome do prog rarna de ve lnlcicr com
a letro y ou z. A SAPreserve a s letros de a a x para sevs pr6prios progra mas.
• As variantes

Fi gu r a 2 2
Os componentesde
urnprogromo ,4BI>Pj4. Atributos
-
Um progromo ABAPj4 consiste em NOVO....
URMO'-
Dedique urn memento para esco lher urn identificador de tres co roderes es-
pecffico pa ro seus progromos. Deotro deste livre, farei refere ncio 0 esse
iden tificodor como sev handle . Ele deve comeccr com urn y ou z. Por exemplo, voce pode
uftliaor 0 letro z seguido por sues duos iniciois. A notc ccc •• • indicor6 o nd e voce deve
utilizer seu hand le. Por exemplo, se voce escolhev zkg e viu 0 direr:;oo HDigite 0 nome de
progrom o ••• abc" voce digitar io zkgabc . Recomendo que, a medida que ovcnccr oeste
I

livre, voce utilize seu hand le como os primeiros tres corode res de todos objetos de
desenvo lvimento que voce criar . Se voce fleer isso, eles sereo f6ceis de reca nhecer ma is
ta rde e mois f6ceis de lc coluor.

As convencces de atribuicao de nome de programa adctadas para este


livre sao as seguintes:
• Programas de exemplo do texto de capirulos seguem a convencao
ztxccnn , onde cc e 0 mimero de capfrulo e nn eurn numero sequencia]
de 01 a 99.
Somenre 0 c6digo-fonte e os componentes de atributo de programa sao • Nomes de p rograma ut ilizados em exercfcios seguem a convencao
exigidos. Os demais componentes sao opciona is. zt ycc nn,on de cc e0 mim ero de capftulo e nn eurn numero sequencial.
Todos os objetos de desenvolviment o e seus componentes sao armaze -
nados no banco de dado s do R/3 . Por exemplo, 0 codigo-fonte para urn
o nom e de programa para a solu;ao sera. zt zccnn.

reldtorio e armazenado na tabela dd010s do banco de dados.


'** -
,
,c-
48 APiEN DA EM 21 Dl AS ABAP/ . 01" 2: SEUPRlMEIRO PROGRAMA EMABAPj4 49

• Programas utilirarios oferecidos no C D -ROM seguem a convencao 7. Di gire urn asterisco (*) no campo Application. 0 valor no campo
de atribuicgo de nome y -xxxxxx, onde xn:xxx e 0 nome do utilitario. Ap plication indic a a area do aplicarivo a que esse programs penence.
a programa de in stalacao que cria objetos d e desenvolv imento e os A lista compleca de valores pod e ser obtida posicionando 0 cursor
carregacom dad os pa ra a s exercfcios echamado y-s etup. Se necessaria, ele pode ness e campo e en tao danclo u rn clique na seta para baixo adireita dele.
sec executado de n ovo a qualqu er mem ento para rest aurar a cond icao orizinal Po r exempl o, se esse pr ogram a perr encesse ao gerenciamento Inven-
dos dados do exercfcio. Para remover [OdDS as objeros de desenvolvimenro e tory, voce colocaria urn L no campo App lication . C omo e urn pro -
dadcs criados pelo program a de inst alacj o do siste ma, execute y- uninst. Veja grama simples de test e, uti lizei urn asteri sco para indi car que d e nao
o arquivo readme. txt no CD·ROM para mais informacoes. pertence a qualquer area especlfica do aplicativo.
8. Faca uma marca de selecf o na caixa de selecfc Editor Lock. Ativendo
Cria ndo seu primeiro pro-Q.LCra.........mJ.JO
........ ----'- _ o Editor Lock, voce evitara alteracoes no programa per qualquer ou tra
a e
que vern abaix c urria descricao d o processo que voce seguirf p ara criar urn pessoa alem do criador . Para seus exercfcios, fa<,ia uma marca de
programa. selecac nessa caixa para proteger seus programas de modificacsc
. Quando voce efetua logo n no R/ 3 para criar seu primeiro pr ograma em acidemal por ou tros. Enrretan to, voce ndo deve uti lizar isso para
ABAP /4, a primeira tela que voce ve e 0 menu p rincipal da SAP. A partir dar, blo quear programas de desenvolvim en to reais. Esse recurso impedira
voce i.r.i para a Development Workbench e depois para a editor. Voce ira digitar que outros p rogramad ores facam a manu rencao depois .
urn nome de programa e cria-lo. A prim eira tela que voce vera sera a tela 9. Para salvar os atr ibutos de programa, pr essione 0 bo tac Save na barn
Program Attributes. Af voce deve inser ir os arributos de pro grama e salvd-los. de ferrame ntas Standard. A tela Create Object Catal og Entry e
Voce enuc teci permissdo para pros seguir para 0 editor de codi go-fcnte . N o exibida.
editor de codigo -fonte, voce ici inserir o codigo-fonte, salvs-lo e entdo execurar 10. Pressione 0 borao Local Obj ect. A tela de atributos do programa e
o programa. reexib ida. Na barra de status na parte inferior da tela, a mensag em
"Attribut es for pr ogram saved" aparece. (Nota: a mensagem que voce
SCRHNW ~ lnicie a ScreenCom " Hew To Crea te Your First Proqrc m" ag ora. ve con tern 0 nom e do programa tamb ern, mas como esse nome varia
para cada usuari o, ele foi deixado fora do texro deste livre. Essa
Siga este procedimento para criar seu prim eiro programa. A ajuda para con v en<.iac de deixar 0 nom e de obieto de desenvolviment o for a cia
problemas comuns e oferecida no D iagn6 stico e Solu~ao de Problem as que se mensagem sera mantida ao longo de todo esre livrc.)
segue a ele. Se voce tiver problemas com qualquer urn dos passos , njio es que ~a 11. Pressione 0 batao Source Ccdena barra de [erramentas do aplicarivo.
de consultar esse procedim en to. A tel. ABAP/4 Editor : Edit Program e exibida.
12. Escolha 0 caminho de menu Serrings- > Editor Mode . A tela Edito r:
I. Do menu principal do R/3, sele cione cami nho de m en u
Settin gs e exibida.
0
Tools->ABAP/4 Workb ench. Urn. tel. com 0 titulo ABAP/4 De -
velopment Workbench eexibida. 13, Escolha 0 borao de 0P<,i3.0 PC Mode With Line Numbering.
2. Press ione botao do ABAP/4 Editor na barr a de ferrame ntas do
0
14. Escolha 0 bota o de 0P<,iaOLower Case .
aplicativo. 0 ABAP/4 Edi tor: Initial Screen e exibido. 15. P ressioo e 0 bot ao C opy (a marca de selecso verde). Voce agora salvou
3. No campo Program, digite 0 nome do pro grarna •• · 0201. suas configuracoes de edit or. (As configuracoes do edit or precisam
'ser configu raclas apenas uma vez.)
4. Pressione 0 boreo Create. A tela ABAP/4: Program Attributes e
16, O llie na linha 1. Se ela nac contiver a mstru<,iao report •• · 0201. ,
exibida. a s campos que contem pontes de inre rrog acio sao exigidos .
digite -a agora, com o mostrado na Listagem 2,1.
S. Digite My First ABAP/4 Progr am no camp o Tide. Po r padrao. 0
conr eudo desse campo apareceni no topo da lista, 17.Nalinha2,digitewrite ' Hello SAP worl d '. Utilize aspas simples e
coloque urn po nto no final da lin ha,
6. Digite 1 no campo Type, a mimer o 1 in dica que 0 programa eurn
I 18. Pressione 0 botao Save na barra da ferram entas Stand ard.
relat 6rio .

j
I
I
--r"- --~~_;. .
- ---

50 APREND' EM21 DIAl AS AP" DIA 2:SEU PRIMHROPROGRAlIA EM ARAP/~ 51

19. Para exe cu ta r seu programa, escolha 0 caminho de menu Utiliza ndo a Editor' Initial Scree n
Program- c-Execure. Urna tela com 0 titulo My First ABAP/4 Pro -
A ABAF/4 Editor. InitialScreen emostrada na F igura 2.3. A partir dar,voce pode
gram e exibida e as palavras Hello SAP world serao escritas embaixo
exibir au alterar todos os componentes de programa. Par exemplo , para alterar 0
dela. Essa e a safda do relatorio, tambem conhecida como lista.
componente de ccdigo-font e, escolha a ba tao de op~ao Source Code e entac
pressione 0 bene Change. Ou, para exibir 0 componente de atributos, escolha 0
miAOA ~ Lislagem 2.1 Seu primeire pregrome em ABAP/4
batao de op~ao Attributes e entao pr essione 0 batao Display.
1 report z h 020l.
2 write ' Hell o SAP World' . NOVO ... Pressicncr 0 botao Change exlbe 0 componente se lecionado no modo de
olterc/iao, que cerm tte que voce c ltere 0 componente.
TflMO"
a c6digo na List agem 2.1 p roduz esta safda: Imprimir lPrinl) locolizor (find)
Canceler (ConO!Q locoFizor 0 pr6lcimo(find Null
SIIDI ~ Hello SAP World
Scir (Exit) Prtmelrc p6gino (fin.1 Page)
Parabens, voce acaba de escrever seu primeiro programa em ABAP/4! Vollar (Bode) P6gino onte rior (Previous Pagel
Para retomar 41.0 editor, pressione 0 batao de seta verde na bar ra de [erramentas Salvor (Sevel PrOximo p6gino (Next Pagel
Stan dard [ou a tecl a F3 ) . Compo de comclF'ldo Ultimo p6gino (lost Pose)
(Commond field)
lnserir (Enter)
Fjgu r a 2 3
0 Esses se c os prob lemas co mu ns e ncontrados no cricccc de urn
S A partir do N3AP/4
Cl prog ra ma e sue s respe ctivcs sc lucoes Editor: Initial Saeen
, z
o· Problema voce pode exibirau
I Sol u!;oo olterer os
I ~
n camponenles de
AD pressionor a batao Create, Voce digilou a nome e-rode de progromo . Seus progromo.
I 0
'"
voce cbtem umo coixo de di610ga
duende De Not Oecte Objects
names de progroma devem inicicr com y ou z.
Pressione 0 bcteo Ccncel {a X e m vermelbol para
i 0... SAP Nom e Ronge. retomc r e digitor um novo nome de progruma .
C

j .n
0
l>'
Quonda voce pressiono 0 botcc
C reol e, voce cbtem umo caixa de
Voce digitou a nome de progromo errcdc. Seus
names de progromo devem inicior com y au z.

1 .'"
0
'"
di610ga com urn ca mpo de
enfrada que pede uma teclo.
Presslcne c boteo Cancel (0 X em verrnelhc] para
retomor e digitar um novo nome de progromo.
1
I ....
0 Voce esto c btendo vmc tela
Change Request Query pedinda
No Tela Create Object Catalog Entry, noo digite
um vola r no compo de clcsse. Em vez dtsso ,
press ione 0 botoo local Object.
'" um Request Number.
~ No Figura 2.3, note que a ccbc de grupo Object Components envolve
'" °
"
bot6es de cpce c, a batao Display e botcc Change. Quando voce vir
umo coixo de grupo envolvendo bot6es de op;oo e bctces (pushbutto n),
os botoes de OPl;aO determincm a componenfe que ag iu sa bre os botces
e
. (pushbutton) erwolvldcs. 0 efeilo des bctces de op<;oo llmitodc pelc cc ixo
Explo ra odo 0 editor d.l:Lc.6dig,..
o-fonte... _ de grupe; eles 060 tem efeito em botces (pushbutto n) foro do ccbo.

Nesta se~ao, voce apre nders como subordinar 0 poder do edito r do ABAP/4
e aprendeni a ut ilizar duas telas nesra secao. Ex plora ndo a fllncionalidod e do ed itor de c6digo.fonte
• A ABAP/4 Ed itor: Initial Screen A partir da ABAP/4 Editor: Initial Screen, escolha 0 batao de opcao Source
Cede e pressione 0 botao C han ge. A tela ABAP/4 Editor: Edit Program e
• A tela ABA P/4 Editor: Edit Program
mosrrada, como na Figura 2.4.
52 APRE NOA EM 21 OIAS AS APj .
CIA 2,SEU PRIMEIRO PROGRAIM EMABAPj. 53 1,
' J
, '-
r,_l tit 'I h II !.. ~
Exibi, < -> Alterer (Display <. > C Figura 2 5 l olI r.oo ·_ ....
. --'~""- ,

Verificer (Check)
Llstc circunstonciol (Where-used lisI)
Estes s60 os conlrole s
no barre de
... --. .: _...
ferromentcs Standard
Pilhe (Stock)
dentro do editor do
Linhe de insen;oo (Insert line)
NW/4_
Cortor (CUi)

~'- porc o "~' " ' , " ,


Imerir do buffer pnsen From bvf{e ~
Os ccotrcles
do barre de
Selecioncr (Select) ferrcmentos
I Desfozer(Undo) Standard

EJgllra 2 4
Utilize a tela
ABAP/4 Editor:
Edit Progrom
.
'!.4.
.. - - , - Ajudo do ABAP/4 (ABAP/4 help)

- -: ..
'-_~r.llfJlx Q,1,a!:.
• "- ..---- . ......
....,.
'C C £l C
~
~ . ...

~
-- -- ,
it]:f" ." ;'" .....-::-:'~-:
-
""'
.'
..:: .~,'
.
"
· 1
• ••• • • • 0

para olterar
Ivncionolidade
de componenle. • Enter: Pression ar 0 bon o Enter tern 0 mesmo efeito que pre ssionar a
t ecla Enter. E tambem a funS-ao de divisao de lin ha. P ara dividir uma
linha de c6digo, posicione a cursor no ponto on devoce quer dividir a
- linha e pre ssione Enter.
• C om man d Fi eld: Esse campo aceita codigos de tr ansaci o e vari es
outros comandos .
~~. , .,~~',~~,.~:r"iJ~.'1., " ""-,-;c.,~l-y. • Back e Exit: Os dois levam 0 usuario de volta aABAP / 4 Editor: Initial
"!~-...
W~;;:;, . ~1~·-1;(~·· ~4i-" "."'~""~
......a:-.l"i) .- w.~~> ,i~~""". -·,-t";-"'-iff.£<'5,Y' Screen . Se-nao river salvo as alteracoe s, vo ce ser a solicitado a salvd-las.
~. -;;-.~;_::' '' :: ., ": .;;,< ,....~..:...::-:5.- , :.:;:'!-.- :i~~
• C anc el: Leva a usudrio de volta aABAP/4 Editor: Ini tial Screen' sem
salvar suas alteracoes. Se voce nao river salvo as alteracc es, voce sera
Mu ito s desenvclvedo res ochom a interface com 0 usu6 rio do R/3 solicitado a fazer isso.
cc mple xc e porton to dlfkl l de oprender. Sugiro que vo ce cdote uma • Print: Esse coman do imp rimirf a c6di go-fon te de seu programa. Quando
a
obordagem met6dica que Ihe permito fleer vontode com cede novo
voce 0 pressi ona, a tela Print P arameters eexibida. Para recebe r sua saida,
tela. Sempre que voce se deparar com uma novo te la. examine
minuciosomente os itens de men u e bot ees. Comece no estremidcde
cenifique-se de que a caixa de seles-ao Print Immed. esta ativada.
superior esquerda da te lo e sigo para ba ixo e perc a direita . Mantenho • Find: Proporciona pesquisa e subsrieui a funci ooalidade. Quando voce
o cursor sobre cod a ite m par tempo suficien te para ler a di ce de telo o pression a, a tela de Search/Replac e emo strada. Uma explicacio mais
que a oco mp onha . Gos tor olguns minutes em codo novo telo 0 ojudar6
a se fa milia rizar com as fun c;6e s dtspcofvets.
detalhada segu e abaixo.
• Find.Next: Esse eum atalhc amao pa ra localizar a proxima ocorrenci a
de uma string.
Explorondo a borra de ferro mentas Stand ard
• Firs t Page , Previous Page, N ext P age e Last P age: Esses comandos
smEHCAM ~ lrncie 0 ScreenCam · Exploring the Standard Tcolbor" ag ora .
permitem que voce role para cima e para baixo p elo c6digo-fome.
• H elp : Exibe uma caixa de diilogo a partir da qual voce pode obter ajuda
as co m ro les de barra de ferramentas Standard sao most rados na sabre 0 ed itor e a sintax e do ABAP/4, ent re outras ccis as. Posicion e
Figura 2.5. o cu rsor em uma palavra-chave do ABAP/ 4 ou em uma linha em
Os _cont roles de barre de ferrarnentas Standard (veja a Figura 2.3), na branco an tes de pressionar 0 botao H elp. Para mais informacoe s, veja
ordem, sao : a seS-ao intirulada "Obtendo ajuda" ma is adianre oeste capitulo.
54 "RENDA EM21 DI AS "API' OlA 2, 5EU PRIMEIROPROGRAMA EMABAP/4 55

IFa~a • Para executar uma pesquisa co m curingas, utilize os caracre res + e " ,
o sin al + corr esponderf com qualquer caractere unico e 0 sinal '"
Solve seu progro mo ante s de digitor urn Nee feche a ic nelo de edito r presslcnc odc corresponde d . com qualque r st rin g de caracteres. Ent retan to, '" so -
cc mc ndo /n no cam po de cc rncnd o. a bctcc X no extremidode superior direlto mente pode ser ut iliz adc como um curinga no comeco a u no fina l de
Coso cootrone , voce perc/ere sue s do jonelo. Voce perder6 as clte rccoes n60 uma string; dent ro do corpo d e uma string ele na c age como urn
clte rcco es. salvos.
curinga. Por exem plo, a string de pesquisa wo+d loc alizard word ou wood;
a st rin g j ++n corresp on dera co m joh n ou joan , mas njio jan. E van
localizara ia n, joan ou ate an. Uma ve z que " inc or porad c dentro de
Utilizando os recursos de locc lizc cco e substitu icdo uma str ing na o age como urn curinga, para localizar a string select '"
from, digire simplesmente sel ect'" f rom. Nore que uma string que
S(mNOM ~ Inicie a ScreenCom "Using Find a nd Replace.. . ogoro. tern * no corneco a u final produz as mesmos resul tad os que a mesma
String sem 0 *; 0 curinga '" portanto nae e particularmente {nil.

Pression e 0 botac F in d na barra de [erramenras Standard e 0 sistema • _. • : : sao caracteres esp eciais. Se sua string inicia corn quaisquer desses
exibira a tela Search/Replace (veja a Figura 2.6). Insira a string que voce quer carac teres, voce deve envc lve-los dentro de delimitadore s. Voce pode
lc caliza r no campo Fi nd. esc olher qual que r urn desses mesmos caracteres para urn delimirador
con tanto que ele nao apare~a dentro de sua strin g de pesquisa. Por
F igu ra 2 6 exemplo, : hh com eca com urn caractere espe cial. P ara localizar essa
Etta e a tela suing,di gite -:hh-ou .:hh. ou , : hh ou ; :hh; .
Seon:~/Reploce. Bo
permite que voc! • 0 caractere # tambem e especial. Para localizar uma strin g que contem
localize e altere slrings # em qual qu er lugar dentro dele . voce deve subs tituir II par cada urn
de coroctere em sec # que ocoere na string. Por exemplo , para localizar a string alb, utilize
progromo.
a string-de pesqui sa all b .

IIrrrrrr.. lnide 0 ScreenC om "Setting the Scope of a Search or Replace Functio n" ogora .
S(lEENWl JI""
Para configurar 0 esco po pa ra um a £Unc;ao de pesquis a ou substituicao,
siga est es passo s:
1. Na tela Sear ch/Replace, digite a string qu e voce qu er localizar no
Hi vfria s op cses n est a tela pa ra contr clar 0 processo de localizacjo: campo Find.
• A s a String fad. com que sua string seja localizada em qualquer lu gar 2. Escolha 0 botio de opc;ao In C urrent Source Code.
no program a. 3 . E scolha a bono de op~ao Fro Cursor para comecar a pesquisa na
• A s a Word [ocalizara ape nas casas em qu e espaccs em bran co ou posicic arual de cu rso r. Altemativam ente, voce pode escolher 0 botao
p onruacao envo lvem a pa lavra dentro do codigo-fonte . de opcao Fro m Line e digitar 05 ruim ero s de linha de infcio e de fim
• U pp er/Lower C ase fara a pesquisa dif erenciar letras mai usculas de pa ra a p esqm sa.
min usculas. 4. P ressione 0 bon o C o ntinu e. 0 cursor e co locado a esq ue rda da
primeira st ring de coincidencia.
o campo Find tern algu mas qualidades incomuns:
5. Pressione 0 pr6xim o botao Fi nd pa ra localizar a p roxim a string de
I • Para pes quisar uma strin g que con tern espacos em br anco inco rpora-
coincidencia.
! dos, sim plesmente digite a string junto co m as espacos em branco no
cam po Find. N ao cc loqu e a String entre aspas. Se fizer isso, as aspas
! serao con sideradas parte cia string de pesquisa. \CREENCAMJI""
IIrrrrrr.. Inide a Scree nCom "How to Find NI Occurrences of 0 String" ogora.

I
,I
i .
- 'W' _
- . -- .. • -
DIA 2:SEU PRIMEIROPROGRAMA EMABAP/~ I 57
56 APRENDA EM 21 DIAl ABAP/4

Para localizar todas as ocorrencias de uma string: 3. Escolha 0 boeao de opcao In Program.
1. Na tela Search/Replace, digite a string que voce quer localizar no 4. Pressione 0 botao Continue. A tela Global Replace In Program s e
campo Find. exibida com a cursor posicionado na primeira str ing coincidente.
T odas as linhas que contem strings coincidente s sao exibidas e as
2. Escolha 0 botao de opcao In Program.
strings coincidences sao destacadas.
3. Press ione a batao Continue. Urn resumo das ocorrencias localizadas
5. Para substituir a string na posicao de cursor, pressic ne 0 botao
eexibido na tela Global Search In Programs. Replace. A string na posicao de cursor e substituida e 0 cursor e
4. De urn clique duplo em uma linha para ve-la no contexte do codigo- posicionadc na proxima string coincidente.
fonte .
6. Para ir para a proxima posicao sem substituir, pres sione 0 batao Next
5. Pressione 0 bot ao Back para retornar a tela Global Search In Pro- Hit. 0 cursor eposic ionado na pr oxima string coin ciden te.
grams.
7. Para substircir codas as coincidencias restantes da posicao atual de cursor
6. P ression e 0 botao Back mais uma vez para retornar ao editor de para 0 fim do codigo-fonte, pressione a bono N o Confirmation.
codigo -fonte.
Se substituir quaisquer strings, voce devers salvar suas alter acoes antes
de retornar ac editor de codigo-fonre. Para [azer isso, pressione 0 botao Save
S(mHCAM~ lnkle a SereenCom "How to Search and Replace in the Source Code" ogara.
na barra de ferramentas Standard e entao pressione 0 bo-ac Back. Sevoce quiser
cancelar suas alreracees, pressione 0 bo-ac Cancel em vez do borso Save.
Para localiz ar e substituir no codigo-fonte.
1. Na tela Search/Replace, digite a string que voce quer localizar no Explorando a bo rra de fer romentas Application
campo F ind.
SCRHHCAM..... lnicie a ScreenCom "Exploring the Application Too lbor of the ABAP/4 Editor"
2. Paca uma marca de seleliao ern Replace By e digire uma string de ,.. oqoro. .
substituicao no campo Replace by.
3. Pressione 0 bouo Continue. A tela ABAP / 4 Editor: Edit Program e Antes de prosseguir, maximize sua janela (se ela ja nao esciver maximi-
exibida com 0 cursor pcsicionado a esquerda da proxima string zada). Voce nao .pode ver os botoes na extremidade direita da barra de
ferramentas Application se sua janela for menor que 0 tamanh o maximo.
coincidente.
Os con troles de berra de ferramentas Application sao m ostrados na
4. Para subsr itu i-la, pre ssione 0 botso Replace. A string n a posicao de
Figura 2.7.
curso r e subs titufda e 0 cursor e posicionado na p roxima string
coincidente. Figura 2 7
5. Para ir para a proxim a posicio sem substituir, pressiona 0 bone Next Os conlroles de
H it. 0 cursor e p osieionado na pr6xima string coincidente. bono de ferromenloS
At:Jplir::otion.
6. Para substituir todas as coincidencias restantes da posicao do cursor
atua] para 0 fim do cod igo-fonte, pressione 0 borso de No Confir-
mation.

S(mNCAM~ lnicie a ScreenCom "How to Seor ch and Replace Via a Summary Screen" agora .

Para pesq uisar e substituir via uma tela de resume:


1. Na tela Search/Replace. digite a string que voce quer localizar no
campo F ind.
2. Faca ~~a marca de selecsc em Replace By e digite uma string de
substituicac no campo Replace by.
~ ~ ---~www_ •••• _. • ........ ....- _ W ................. .... ....- ... ....,.---.-.- - - --- - - - - - - -

58 ! APRE NDA EM 21 DIA S AB AP/4 DIA 2:StuPRIMfiROPROGRAMA EM ABAP/4 I 59

as controles de barra de ferramentas Application. na ordem em que eles urna linha com a linha seguinte. Para dividir uma [inha, posicione 0
aparecem n a barra de ferrame ntas, sao as seguinres: cursor onde voce quer que a divisao ocorra e pressione a tecla Enter.

• D isplay < -> C han ge: Altera a tela de modo de exibicao para mudar • Duplicate Line: D uplic a uma unica linha au urn bloco in teiro de c6digo

I
o mo do . Pressio n e-a novamente para altera -la de volta ao modo de se urn est iver seleciona do {veja 0 botao Select, acima}.
exibicao. • Move Line: Move linhas a esquerda e a direi ra. P ara mover uma Iinha,
• Check: Verifiea a sintaxe do pr ograma atual. coloque a cursor na posicao de destine e pr essione 0 bcrao Move Line.
Para mover urn bloco inteiro de cc digc, marque 0 bloco e cola que 0
• Where-Used List : Q uando voce pressiona esse botao enq uamo 0
cursor na primeira Iinha do bloco na posicxo para a qual de deve ser
cursor esta em qualquer nome de varifvel, ele exibird rodas as linhas
mo vidc e entao pressione 0 botao Move Line. Para move-lo para a
de c6digo que a utilizam.
esquerda, coloque 0 curs or aesquerda no comecc cialinha e pressione
• Stack: Exibe 0 conteudo cia pilha de navegacao atual. a borao Move Line.
• Cut: Exclui a linha que contem 0 cursor e a coloca no buffer. • Mark Line: Co loque urn bookmark em uma Iinha . Voce po de exibir
• Co py To Buffer: Copia 0 conteudo cia linha que concern 0 cursor para todas as linh as marcadas com 0 cami nho de menu Goto -> Markers.
, o buffer.
;I
I
, I
• Ins er t From Buffer: Ins ere 0 conteudo do buffer ern uma nova linha
Para trozer uma linha para a tope do [onelu do ed itor,de urn clique duple
acima cia p osi<;ao de cu rsor atua]. entre as polcvrcs ov no final do linha . Mas n60 de um clique duplo em
I, • Insert Line: In sere uma linh a em branco acima da posi csc atual do umo polovrc, isso n60 funcio nor6. Um metcdo alternative e colocor c
curs or. cursor no fina l de umo linho e pressionor a teclo F2.

• Select: Selecion a um a unica linha ou urn bloco de Iinhas para mover,


conn e colar. Coloque a cursor na primeira linha do bloeo e pressione Utilizan do Cut e Pa ste
Select. C ola que 0 cursor na ultima linha do bloeo e pressione Select N~ mai oria dos aplicativos Windows, ha u ma area de transferencia para ope-
n ovamente. A s linh as contidas no bloeo se romarao ver m elhas. Voce racoes de cortar e colar . No RJ3 , h.1 cinco areas de t ransfere ncias. ATabela 2.1
po de agora cortar, co piar ou duplicar 0 bloco de codigo da mesma descreve codas elas.
maneira que voce fez para uma unic a linha. Para tirar a selecao das
Iinh as selecionadas, escolha 0 caminho de menu Edit- c-Deselect . Tabela 2.1 Buffers de Cut e Poste
• U n do: In verte sua ultima variavel. Somenre urn nfvel de desfazer este Utili:r:ado Como Copia r Como Colar
Chamado
disponfvel. pa ra pa ra ele a partir dele
Pressicne 0 batao Insert
• ABAP /4 He lp: Oferece ajuda sabre 0 editor e sobre 0 ABAP/4 em o Buffer Carta e colo Pressione as botc es
From Buffer
geral. de ntro de um Cut ou Co py no editor
progra mo
• P att ern : Pe rmire que voce digire uma instrucao ABAP/4 gerada Ccmi nho d e menu : Caminho de menu:
as Buffers X,Y,Z Corte e co la
automa ricam ente. P or exem plc, para inserir uma instrucfo write e ntre da is Block/Buffer- > Copy Block/Buffer-> Insert X
qu e escr eve do coneeu do de uma variavel identificada vt, pressione progromos to X Buffer Buffer
o bo tao P attern, escolha a botao de opcac W rite, pressione a batao Area de Carta e colo Cominh o de menu:
Continue, dig ite 0 nome de va riavel no campo Fld e enn c pressione trcnslerenoc en tre: Block/Buffer-> Copy
o batao Copy. Uma inst ru cao write sera inserida na posicao de - duos sess6e s to Clipboard
cursor atua l. R/3
• Concatenate: Une duas linhas . Para utilizd-lo, coloque 0 cursor no
final de uma linha e pressione 0 batao Concatenate para concatenar
-: _
- - '!=' - '!'!'
--
60 , AP RENDA EM 21 ClASAB AP/ 4 DIA2:SEU PRIMEIROPROGRAMA EM ABAi'/4 1 61

Tabela 2 .1 Confinuoc;60 ou para a esqu erda (voce apenas pede destacar uma linha par vel. utilizan do
esse metodo). Para dest acar mul tiplas linhas, de urn clique rnais um a vez na tela
Chama d o Como Copia r Como Colo r f
• com 0 mouse e entao pressio ne C trl + Y. 0 ponteiro mud ara para a forma de
para e re a partir de le
uma cruz . Arraste a cru z para desracar a secac que voce quer copier. Pre ssione
- R/3 e outro Ceminho de menu : Crrl + C para copiar 0 texto dest acado para a area de transferencia ou pressione
e
opllc oftvos Block/Buffer- > Insert
• Ctrl + X para cortaro Cole da area de rrans ferenc ia utilizando Cr rl + V.
Windows (p. ex., from Clipboard para 1-
Bloco de Notes) inserir as ccnteedcs do ,
area de trcnsjerenclc Utilizondo outros funco es co nvenientes do edito r
como linhos novas no A Tabela 2.2 contem urn resume das fun~6es do editor cornumente utilizadas. I
progromo no pos iCioO T odas as fun~6es sao acessadas a partir cia tela ABAP/4 Editor: Edit Program d
do cursor. Ou Orl+V a mencs qu e observado de outro mo do. I
perc color no topo dos
linhos exlstentes. Com I·
Tab el a 2.2 O utros prog romos convenienfes e fun~oes do ed itor
Ctrl+V, as dodos seroo
truncodos se tod os eles
Para•.. F o~a ..• I!
- coplc e c6d igo 1- De um clique
noo se o justc rem no tela
ofvcl. Obter cjodo no ed it,or
Obter ciu do de qualquer
Escolha a caminho de me nu Help- >Exte nde d He lp.
Coloqoe 0 cursor em umc pc lovro-chcve dentro da
I
do c jv dc F1
pora 0 ed itor
- copia mcls de
umo linho do
2 - Ctrl+Y
3- Arroste e
pclo vrc-chcve do AW/4
Salvor seu programo
Executor seu programa
c6digo e pressione Fl .
Presslone F11.
Presstone Fa.
I
I
s. De urn cliq ue com 0 bcfeo d jrelto do mou se em
Exibiras teclo s de fun ~oo

I
c6digo marque
quolquer lugor no 6reo de tela de urno [cnelo.
4- Ctrl+C
Mover a cu rsor perc" 0 Pressione Ctrl + Tab.
co mpo de comondo I

. N a primeira linha da T abela 2.2 esta 0 buffer especffico do programa, Troaer quolquer linha pore De um clique duplo nos espccc s em bronco (no om do
simplesmenre chamado buffer. Ele permite que voc e copie demro de urn a porte superior do tela linho) ou ccloque 0 cursor nos espcccs em bronco e
pressione F2.
pro gra~a. Para ut iliza-lo, coloqu e 0 cursor em um a linha au marq ue urn bloco
lnserir umo Hnhc Pressione a tec lo Enter com 0 cursor no cc mecc ou no
e preSSlOne as bot oes C ut, Copy ou Insert Fr om Buffer . 0 conteddc do buffer
fina l de umo linho .
e perdido quando voce deixa a editor. Ccloqve 0 cursor no linha e presslooe 0 bata o Cut.
Excluir umo linho
as bu ffe:~ X, Y e Z sao utilizados para copia r c6digo de urn pro grama
Marco r um blocc de c6digo Coloqu e 0 cursor no prime ira linho do bloco e pressione
pa ra DUtro . U tilize a menu Block/Buffer para acessa-lo s. Embora eles tenham
F9 (seleciona) . Entoo coloque -o na ultimo hnhc do
tres buffers separad os, tc dos eles sao utilizados da mesma mane ira. Seus bloco e pressione F9 no vornente.
cont ea dos sao retidos dep cis qu e voce deixa 0 editor, mas d es sao pe rdidos Seledone 0 bloco e press ione 0 bctc o Cut.
Excluir urn bloea de tlnhcs
quando voce efeeua 0 logoff .
Repetir umo ltnho c u blccc Pressicn e 0 botoo Duplicate line .
A area de tran sferen cia ea m esma que a area de transferenci a do Windows.
Dividir umn linha Posicione 0 cc rsc rno ponto de divisoo e presstcne a
Utilize-a para cort ar e colar em outros aplicarivos do Win dows como 0
tedo Ente r.
MSWord au 0 Bloco de Notas. Ela tamb em e utilizada para eop iar texto de Posicicne 0 cursor no tim do linho e presslone 0 botoc
Unir duas linha s
telas de ajuda Pt [veja a seguime sefSao int irulada "Obtendo ajuda") . Concat enate.
Alem dos bo tc es na barra de ferramentas Ap plication e as menus, voce Morque urn bloco . Pressicne 0 bctcc Copy To Buffer.
Cop ior os linha s de ntro do
pode urilizar func oes Windows padrac para execurar opera!;oes de cortar e
colar. Para destacar uma palavra ou linha, arcaste a cursor atraves dela ou
(,- programe otuol Entoa posicione 0 cursor no ponto o nde 0 c6d igo
devere se r inserido e p ressio ne 0 botoo Insert From
mamenha pressionada a tec1a Shift e pressione as tec1as de seta pa ra a direita r Buffer.

1
I:
i
I,
.' 7Z ··
:IrrrrrrY ••• t: _1' ww w w w.v • .. - -
62 "RENO' EM 21 OIAS ABAPH 011. 2:SEll PRJMElRO1'10GR.UlA. EM ABAPJ4 63

Tabela 2 .2 Ccnnnoccec Tabela 2.2 Continuo<;oo

Para... FOlj o ••• Para... FOlja...

Copter as Iinhas perc Marque um bloco . Escolha a cominha de menu Exduir urn progroma Do ABN'/4 Editor: lnifiol Screen , escclhc 0 cominho de
o utro programo BlockiBuffer->Copy to buffer X. Abro urn novo menu Prcqrcm-o-Delete.
progroma e escolhc 0 eom inho de me nu Salvor sues olteroc;6es com Enquonto ed itor urn programc, escolho a cominho de
Block/Buffer-> Insert Xbuffer. (Voce tcmbem pode um novo nom e de progro ma menu Proqrcrn-c-SoveAs.
utilizer os buffers Y e Z do mesma ma ne iro.) Iniciondo em quo lque r tela, cbro umo novo [cnelc que
Exibir dais progromas ao
C opier pora au do 6reo Marque urn blocc. Esco!ho a eom inho de menu mesmo te mpo utilizQ 0 com inho de men u Systern-c-Creote ne w session.
de trcnsferendo do Windows Block/Buffer- >Copy to the clipboard. Entao escolho 0 No novo jcnelc , ...6 para ABM/4 Ed itor: Initia l Screen,
cominho de men u Block/Buffer-> Insert clipboard. insirc 0 no me do segund o progromo e pressicne a
Feser um comentc rio Marque um bloco e escol ho 0 comi nho de menu bc tco Display or Chonge.
sabre um blccc de linhos BlocklBuffer->lnsert com me nt. Compara r dois progromos Do ABAP/4 Editor: lnitlol Scree n, escolhc 0 cc mlnho de
Remover 0 coment6rio Ma rque um bloc o e escolho 0 caminho de menu diferentes menu Utilities->Splitscreen ed itor. lnsiro dais names de
de um blccc de linhcs Block/Buffer->Delete comment. crcqrcrnc e pressione 0 bata o Display. Para exlblr a
primeirc dderencc , pressione a ba tao Next Diffe re nce .
Imprimir seu progromo Pressione 0 botco Print.
Para cltnhcr as dais prog ram as nc prOxima linho
Imprimir sua scldc do Enquonto visvcliac 0 soido , escol ha 0 cominho de me nu ldermcc, press ione 0 botcc Alig n.
progromo Systern-> Llst->Print.
Compa re r dais pro gro mos Da ABAP/4 Editor: Initial Scree n, escclh o 0 comj~ho de
lccchrcr e repetir a Presslcne as bo f6es Find e Find Next. em sistemas dderentes menu Utilities->Splits:::reen ed itor . Presslooe 0 botao
loeo lizo¢o Compore Dift Systems. Insira dois nomes de prog ro ma
Mudor 0 c6digo poro a Co loque 0 cursor no linho a ser rncvidc, no coluna que e urn id de sistema e presslone 0 bctoc Display.
esquerde e perc a direita voce quer mcve-lo. Entao press ione 0 bcteo Move line Salvor umo versec de urn De dentro do editor, escolha a caminho de menu
(F6). Para mover um blccc, pcsicicne 0 cursor no programa Progrom-> Generote ve rsion. 0 prog roma otuol e sclvc '
primeira linho e entcc presslcne 0 bo tec Move line. no ba nco de dodos do ve rseo .
Desfazer a ultimo vcricvel Pressione 0 bctcc Undo . He apenas um nlvel de Undo. Recupero r uma versoc Da tela Editor Initial, escolho 0 cami nho Utilities
Formotor automotieamente Escolha 0 caminho de me nu Progrom->Pre!ty Printer. do progromo ->Version management . A te la Versions Of Object Of
o c6d igo -fonte Type REPS ~ exlbldc . Tire 0 sele ce c do verseo ctivc e
Fazer download de um Escolha 0 co minho de men u Utilities->Download . Ieee umo marco de setecec no verseo 0 resta urar.
progromo poro urn arquivo Pressione 0 bctec Retrieve e e ntco pressicne 0 botoo
Bock. Clique em Yes e a versec atual tomo-se a
em seu PC
geroc;eo -1 e uma c6pia do ve rsec se lecionodo tomo-se
Fazer upload de urn Escolhc 0 eaminho de men u Utilities-> Upload . .
a versec at ual.
progromo de urn arquivo
em seu PC Comparar versoes do A partir do tela Initial Editor, escclh c 0 cominho de
progromo men u Utilities - c-Ve rslon monagement. A tela Versions
Solver umo e6pia ternpcrcric Escolho 0 co minho de menu Program->Sove Temp . A Of Object Of Type REPS e exibido. fo cc uma marco de
de seu programo c6pio te mpo r6ria e exd uido q uando voc e sa lvo a se'ecec nos vers6 es que voce q uer cc mpc rc r e
prog romo . pressione 0 batao Compare . A tela Com pe re Programs:
Recuperor 0 c6p ia Escolha 0 caminho de menu Prog rom->Get Temp . All e exlbidc . Role para ba ixo para visualizer as
tempor6rio de seu progroma Version. Voce pede recuperor a c6p io sclvc de quolquer diferenccs.
nume rc de vezes cte qu: voce solve 0 progromo. Escolho o cominho de menu Prog rom- > Print. No
lmprimir seu progroma
Puler diretomente paro 0 De qualquer tela , digite / nse38 no compo de eomando pr6ximo tela , especifique umo impressora e foc;o uma
editor e pressione Enter. marco de se le1;ao no coixo de se lec;ao Print lmmed.
Copiar um progroma Do ABAP/4 Editor: Initiol Screen, esc o lha 0 cominho de
menu Progrom->Copy.
Renomeor um programo Do ABAP/4 Editor: Initia l Scree n, esc olho 0 caminho de
men u Prog rom->Renome.
64 APIl:EHOA EM 21 OIAS ABAP/~
orA2:sru PRIMEIRO PROGRAMA EMABAf'/4 65

Qbie.ndo~--"
a4-'iu",-,d.....a",-- _ Dentro da ajuda ha frequentemen re exemplos de co digo. Para cortar e
cola-lo s em seu programs, pressione Cu-l + Y e entac marque urn bloco de
SmEHUJI ~ lnicie 0 ScreenCom "Obtendo ojudo" ogara. ccdigo, arrastando 0 cu rsor arraves dele a part ir da extrernidade superior
esqu erda para a ext remidade inferio r direita. Deixe 0 mouse e pressione Ctrl
Pa ra urn tu torial complete no editor:
+ C . Pressione 0 bo tao Back par a reromar ate1aABAP/4 Editor : Ed itPrograrn
e cole em seu programa utilizando Block/Buffer-> Insert Clipboard. au voce
I. v« para a tela ABAP/4 Editor: Edit Program . pode colar na parte superiorde seu c6digo utilizan do Crrl + V. (Ctrl + V nao
2. Escolha 0 caminho de menu Help-s-Extended Help. A tela SAP RJ3 cola na origem) mas na tela , encso isso nao colard na part e inferior da pdgina
Help e exibida. vislvel.}
3. D e urn clique no tex ro ABAP!4 Editor. A tela BC ABAP/4 D eve-
lopmentWo rkbench To ols e exibida. O btendo a o juda &/ 3 Library
4. De urn clique em qualquer rexto sublinhado para ob eer ajuda sobre A ajuda R/3 Library esu arrnazenada nos arquivos de ajud a do Windows. Para
esse t6p ico. visualiza-los:

NOYO ... He dots tipos b6sicos de c judo no editor, 0 oiudo Fl eo oiudo R/3 Ubrory. A 1. De qualquer tela, escolha 0 carninho de menu He lp- > R/3 Library. A
TERMO " civdo Fl tc mbem e conhecido como documenlo.:;60 de pelovros-chove do . tela R!3 System Online Help e exibida.
ABAP/4. 2. Para ajuda em ABAP/4, de urn cliqu e no rextc Basis Components. A
tela Basis e exibida.
. 'A a;.u.da F1 desc reve a sintaxe de palavras-chave do ABAP/4 e da exemplos
de sua utilizacao. Ela e baseada em texto e reside em tabelas dentro d o banco 3. De urn clique no texto ABA P/4 Development Wo rkb ench . A tela
de dados do R!3. ABAP/4 Development Workbench e exibida.
A ajuda R/3 Library e muito mais exrensa e contem visoes gerais e 4. Daqui voce pode ob eer ajuda detalhada em qua se qualquer aspecto de
procedim entos para criar objet os de desenvolvimento. Ela euma ajuda baseada programacic em ABAP/4. De urn clique no tema sobre 0 qual voce
no Windows e reside fora do banco de clados do R/3. normalmente em um qu er ajuda. .
CD-ROM.
Adicionalmente, a ajuda pode ser obtida do A BAP/ 4 Editor: Initial
Screen. Para visualiza-la:
Obtendo a a il/do El
A ajuda F I e u tiJ pa ra pes quisa r sintaxe e frequentern enre co ntem exemplos 1. va para a ABAP/4 Editor: Initial Screen.
uteis de c6digo. 2. Escolha 0 caminho de menu Utilities - >ABAP/ 4 key word doc. A
Para ob rer ajuda F I: tela Display Structure: ABAP/4_SAP's 4GL Pro gram Language e
exibida.
I. Va para a tela ABAP/4 Editor: Edit Program.
3. Pressione 0 batao Find na barre de ferramen tas Application. A tela .
2. Coloque 0 cursor na palavra-chave ABAP/4 que voce quer ajuda. Search Chapter Titles e exibida.
3. Pressione Fl. A tela Di splay Hypertext eexibida. 4. Digire 0 texto que voce quer localizar n o campo Find.
Den no .da ajuda FI, as palavras destacadas sao vfnculos de hipertexro. 5. P ressione 0 bouo Continue. A primeira linha que contem esse texto
Dando urn clique n elas, voce ob tem mais informacoes. e destacada.
6. De urn clique duplo na linha destacada para exibir mais informacoes
ou pressione 0 botao Continue Search na bar ra de [erramentas Stand-
Voce pede utilizer 0 utilit6rio Findlt no CD· RO M pore localizer ma is ard para localizar a proxima ocorrencia.
exemplos de c6d igo.
A ajuda tamb em pode ser obtida de denrro do editor enq uanto voce esta
editando 0 codigo-fonte. Escolha 0 caminho de menu U tilities->Help on.
Aqui, voce pode obter os seguintes tipos de ajuda:
66 APReHDA EM21 DIAS AS APH OIAtlEU P'I»EI' OP'OGRA.. EM ABAPi< 67

• Aj uda do editor Se voce estiver procurando urn programa e souber os primeiros caracreres de
• Visso geral do ABAP/4 seunome, poderalocalizs-lo a partirdeABAP/4 Editor. Initial Screen. Parafazer isso:

• Pa!avra-chave do ABAP/4 1. Va para a AJ3AP/4 Editor: Initial Screen.


• Novas recu rsos da linguagem ABAP/4 2. N o campo Program, digite os primeiros caracreres de seu nome de
• Exibir modules de funlSao pr ograma seguidos par urn asterisco. Por exemplo, para exibir eodos
os programas que comecam com z tx , digire ztx *.
• Exibir estruturas de rabela
3. De urn clique na seta para baixo a direita do campo Pr ogram. A tela
• Exibir bancos de clados logicos Programs e exlbida. Urna Iista de nom es de programas coinciden tes
• Exibir objetos de autorizacio aparece nesta tela:A direita de cada no me de programa esn a descricso
Shan dos atributos de programs.
• Exibir infotipos
4. D e urn clique du plo n o nome do prog rama que voce quer editar. A
ABAP/4 Editor: Initial Screen e exibida e 0 no me do programa em
Local iza ndo seus ob jeto s de desenvolvjmento que voce deu um clique duplo apar ece no campo P rogram.
S(RHN(AM~ Inide a ScreenCam "l ocalizondo seus c bjetc s de desenvclvimento" ogora.
Introduzind o 0 R/3 Data Dictiona ry
Para exibir todos as objero s de desenvolvimento que voce criou no NOYO"""" a RJ3 Doto Dictionary lou ODIC pera obrevcf eum utilitOrio para definirobjetos
sis tema RJ3 : mllo r .de dodos. Pore utilizer 0 ODIC, voce ped e crier e annozenor cb jetcs como tcbelcs .
estruturos e visuolizo<;6es. Pore chomor a Oato Dictionary, execute estes posses:
i, DOl tela ABAP/4 Development Workbench, pressione 0 bono Ob-
ject Browser. A Object Browser: Ini tial Screen e exibida. 1. Va para a tela do ABAP/4 Development Wo rkben ch.
2. Escolha 0 botao de op <;ao Local Priv. Objects. 2. Pressione 0 botao ABAP/ 4 Dicti onary na barra de [err am en ta s Stand-
3. Pressione 0 bon o Display. A tela Object Browser: Development ard . A Dictionary: InitialScreen eexibida, como mo strad o na Figura2.8.
Class $TMP e exibida. Aq~i voce veri uma lista de categorias de
HOYO lll... 0 ODIC estc dentro d o sistema Rl3 . Voce pe de pensa r nele como estondo
objero de desenvolvimento. A esquerda de cada categoria hi urn sinal
de adi!fao.
fiRMO r ocima de urn banco de dodos como Orocle ou lnformix e ogindo como um
co ntrcle remote, qu e gero e envin jnstrucces de SO Lpa ra ele. Por exernolc , voce pode
4. De urn clique em urn sinal de adi!fao para expandir 0 n6 . crier umo de fini¢o de fobelo no ODIC. Qua ndo voce ativa a definit;oo de to belc , as
instrut;6e s de SQl soc gerado s e enviodas pa ra 0 ROBMS, fozendo co m que ele erie 0
5. De urn clique duple em Urn nome de objeto para exibi-lo . Se o objero tobelo ree l no ba nco de dodos. Quondo quiser mcdficc r 0 ta bela, voce deve mcdificcr
em que voce deu urn clique duple era urn programa, uma visualizacao a defini<;6 0 de tobelo no ODIC. O ucndo ctivor a tobelo novcmente, mois SOL e gerodo,
em arvore do p rograma e de seus componentes e exibida. fozendo coni que 0 ROBMS modifique a tcbelc.
6. Para exibir 0 c6d ige-fonte de programa, de urn clique duple no nome
do prog rams na parte superior da more. A tela ABAP/4 Editor:
Display Program e exibida. Fa~a

Voce esta agora no modo de exibicio no obje to selecionado. Voce pede Utilize a ODIC para crier e modifkcr Noo rncdifiqve urno tcbelc ou quo lquer
press ionar 0 bone Displ ay < -> Change para alrernar no modo de edi~ao. todos os objete s de bonco de dodos. co iso no nlvel de ROBMS. A definit;oo Dote
Dicncnc ry nco pede atua lizor a si pr6prio e
elc este ro fo ra de sincronio com 0 banco
Esse metodc somente funciona com cb jetos que forom selves como de dodos. lssc pede cou sar erros de
cbjetos lcc cis. Eles seroc exlbidcs cq ul somente se voce tiver pres- c plkctivc e ate lever 0 urno perdo de
sionodo 0 bctoo locol Ob ject no telc Creote Object Cotolog Entry integrida de do s do dos.
quondo voce crlcu 0 c bjeto.
:w:o ... , . _
~~...~. ~ .~:...:.:.:.< ,~ .. ..;,.,.. ;,c'.·"-c·=_;;:;-""":---::::--:":---
....... "..- .,,,- "'- ... ~_..__.._ ..._ ...._ ...._ ..._ .......P'"..._ ...-~-----------------------------~-

68 APRE NDA EM 21 DIAS ABAPH DIA 2: SEUPRIMEIROPROGRAMA EM ABAPt. 69

fig ur e 2 8 I~ "· .':' 4' -rarn F i g ur a 2 9


~_1 .. · .i. l/lIIioo ~ · """" iflIl> ·-. _ ~ . ~'" • .• ..-'. ,,,.I'-· ·· ·r-."· .""
A Dictionary:Initiol i,.o -I . .::J '~ ¢.: A )( :. ~ 10U ~ 0 . .c,,,, : :<· : ~~;:d. " ":':;,. .' .> }. A defjnis:oo de ODIC
Screen. pore tabe/o Zfal .

Estritam en te falando, uma estrurura e algo que 56 existe dentro do R/3


Exp lorondo as tabelas e as estrutllros Data Dictionary. Se visse a palavra estrutura , voce imediatamenre pensaria na
"est ru rura de DDIC", Entretanro, a docum entacio da SAP ut iliza tambem a
No RJ3 umo tahe la e urno colecc c de ltnhos. Coda ltnho cc ntern compos ,
NOVO- lilt..
palavra estrutura"para referir-s e a u rn grup o de varidveis dentro de urn pro-
TiRMO,. tcmbem chama dos de co/unos. Ncrmclmente, dentro de umo tcbelc, coda linho
tem c mesmo numerc de colones, como as outros hnhos do tc belc. grama. A estrutura ema re emostrada na Figu ra 2.10 como urn exemplo de como
uma estrutura ap arece n o DDIC.
Uma tabela armazena dad os persist entes. Ern outras palavras, se voce
coloca dados em uma tabela, e1es permanecem ai depois que seu programa Fi g ur a 2 10
finalizar. Eles permanece rao ate serem ahera dos a u exclufdcs par seu pro grama A defjnit;dode ODIC
a u curro. 0 n ome de um a tabela eunico dentro do sistema R/3 inteiro. para 00 eslrvturo
emora.
Quando voce olha u ma tabe1a no DD IC , esta visualizando a descricto de
uma tabela no banco de dad os subja cen te. Voce nao esta olhando diretament e
a pr6p ria tabela de banco de dados. A Figura 2.9 mostra como u ma definicao
de tab ela aparece no R/3 DDIC.

NOYO .... No R/3 vmc estrutvro e urno descrit;60 de urn g ropo de compos. Elc descreve
lIiMO" os nomes de compo, suo seq uencia e sees tipos e comprimentos de dodos.
Ce do esmnurc fern urn nome q ue e c nicc dentro do sistema inteiro do R/3. Umo estrufuro
nCio pede ter 0 mesmo nome que umo tc belo.

Urn nom e de estrutu ra pede ser utilizado de du as maneiras:


• Em urn prog rams, urn n ome de estrutura pede ser utilizado par a alocar
mem oria pa.ra urn grop e de campos.
• Em uma tabela, urn nom e de estrurura pode ser utilizado p ara descre-
v et urn conjunto de campos.
4az::;: cc;:_~ _
."' -

70 APRENOA EM 21 DiAl ABAPH D1AU W PRIMEIRDPROGRAM> EM ABAPi< 71

No R/3, tabelas e estruturassao definidas no DDIC. Voce no tara entre- Nco deixe em bronco 0 cc rnpc Maximum No. Of Hitspara exibir todos
tanto, quando as visualiza, ha uma diferenca muito peguena entre elas. Isso e a s registros, 0 menos que voce reolmente pretendo procurar no listo
porgue, no RJ3, uma tabela esomente uma descripio de uma tabela real de banco Inteirc. Para tobelos grondes, isso pode conwrnir muito CPU nos dois
de dados. E a estruturada tabelano banco de dados. Entao, tanto tabelas como boncos de dodos e servidores de op licativo, clem de tombem ovme ntc r
significativamente 0 tr6fego no rede, fer nando ossim a sistema le oto.
estruturas dentro do DDIC defin em urn layout - uma serie de campos. A
Se um relotcrlo multo grande fo r necessaria, em gem ! ele deve se r
diferenca principal entre as duas eque uma tabela tern uma outra subjacente de executodo em lote. A obo rdoge m preferida e estreitc r suo pesq uisa ,
banco de dados associada a ela. VIDa estrutura rdo tern, digita ndo volores nos cam pos Doto Browser; Table: Selection Screen.
Algumas pessoas, as vezes, acham a documenrac ao do R/ 3 confuse, uma Isso sera a bordado em deto lhe em capitulos posteriores.
vez que a SAP ocasionalrnente utiliza esses dais termos int ercambiavelrnent e.

Exib inQQ umo to bela ou defin il¥i:io de estruturo


E.ig ll r g 2 1 1 r-ra II-!
1_ _
!
[ olt
§f tj it!'''PTJ£ 'tTm'' ''
1iolo . 5ol1jroo "lJ"Iiot £""' _ ~ .$""'" 1IftI· " , - .- <. -: :,;, .. . . .._I<!Oj"l"
'

A tela Data Browser:


Table Select Entries.
Para exibir uma tabela au definicao de estrutura n~ DnIC:

1. Va para a Dictionary: Initial Screen.


2. Insira a tabela ou nome de estrutura no campo Object N ame.
3. De urn clique em Tables ou no bono de opcao Structures. '.
,
4. De urn clique no botao Display. A tela Dictionary: Table/Structure:
.,l~
"
Display Fields e. exibida, como mostrado nas Figuras 2.9 e 2.10.
1~
o que voce ve na Figura 2.9 e a estrutura de tabela Hal no R/3 Data
Dictionary, nao a tabela real de banco de dados. No R/3 , apenas a estrutura da
tabela pode ser definid a, jun to com alguns atributos com o os campos de chave
primaria.

Exibindo o s dodos no tabel o


oR/3 tambern oferece urn utilitario para permitir que voce exiba os clados que
existem dentro de uma tabela . Para utiliza-lo:

1. Va para a tela Dictionary: Table/Structure: Display Fields. Determ in a n d o compos exibidos


2. Escolha a caminho de menu Utilitie s-s-Table contents . A Da ta Voce pode con trolar quais campos serao exibidos na D ata Browser: Tab le:
Browser: Table : Selection Screen eexibida. Selection Screen. Para fazer isso:
3. Para exibir todas as linhas na tabela, pressione 0 botao Execute sem 1. Va para Data Browser: Tabl e: Selection Screen.
inserir qualquer crirerio de pesquisa. A tela Da ta Browser : Tab le 2. Es colh a 0 caminho de menu Sertings-> Fields for selection. A tela
Select Entries e exibida (vejn a Figura 2.11). Choose Fields For Selection e. exibida.
o numerc de registros 'exibido eIirnitado peIo valor no campo Maximum 3. Faca uma marca de selecao nos campo s que voce quer incluidos na
No. Of H its na Data Browser: Tab le: Selection Screen. Data Browser: Table: Selection Screen. Desanve qualque r urn que
voce nac quer que aparelia.
4. Pr ession e 0 bo- ac Execute. A Data Brow ser: Tab le: Selection Screen
e exibida e con tem os campos que voce selecionou.
72 APR ~NOA ~M
I 21 DIAS ABAP/~
DIA7: seuPRIMflROPROGRAMA ~M ABAP/4 , 73

Enten dendo a sintaxe do ABAP/4 1060


1070
Ante~ ~e contin.uar, voce agora deve executar 0 utilitdrio de configuracao de 1080
exerctcm fornecido no CD-ROM. Ele criers as tabelas e os dedos necessaries 1090
para. as exercf~ios neste livro . Para instrucoes, veja 0 arqu ivo readme. txt 2000
V1
localizado DO diretcrio raiz de CD -ROM.
Vl0
Vll
lntrcduzindo a instru~ao s el e;_,cJt~ ---,---, _ V12
V2
A instrucao sel ect recupera registros do banco de dados. VJ
V4
Sintaxe para a instru,fio sel ect VI

-
tn
Z
a seguinre c6d igo mostra a sintaxe simplificada para a insrru cdo se l ect:
select .. from tl (i nt o 11'0] (where f l op vI and/or 12 op v2 .. .J [order by f l] .
YO
V7
va

~
(other abap/4 s t at ement s) V9
endselect.

m onde:
Lf a1 e 0 to belc-mestre do fa brico nte no R/3. Zt xl f al foi criodo pelc

" * indica que todo s os campos na rabela devem ser recuperados.


tl ~ 0 nome deuma tab ela previarnenre definida em uma instrucio tabl es.
wo e 0 nom e da area de trabalh o que coincide com a estrutura da tabela
11 e a nome de urn campo na rabela t l , .
rotina de configuro~60 de CD-ROM e e se me lha nte a 1fa l, mas e
utilizado poro as exercicios neste livre.
n c rnerc de fobriconte .
a e
com po 1i fnr 0 ccm po de

~p eurn dos seguin tes operadores logicos: = <> > >= < <=.
ANAlIS~ ~ Esse progr~mo Iefodos as reg isiros detobelo zt xl fa l e escreve a contecdc do
v1 e urn literal ou um a variavel.
and/or e uma palavra and a u uma palavra or.
r compo 1 i fnr (0 ncme ro do fob riconte ) em o rdem crescente.

• Na Iinha 1, a instrucao report esolicitada como a primeira linha de urn


relar6rio.
, ,
• N a linha 2, a instrucao tables faz a~ duas coisas. Primeiro, ela aIoca ;!
Crie urn novo p rograma e atribua a nome « • ·0202. Digite 0 c6diga como uma area de mem6ria (chamada area de t ra balho) ide nt ificada ztx l f al. ,,
mostrado na Listagem 2.2.

ENTRAOA~ Lista ge m 2. 2 Seu segundo prog roma

1- report ztx0202.
A area de trabalho tern a mesmo layout qu e a definicao de DDIC de
rabela ztxlfa l. Segundo, ela da acesso ao p rograms para a tabela de
banco de dados ztxlfal.
i!
I
I
• Na linha 3, a insrrucao sel ect comeca urn loop . A endsel ect na linha
2 tables ztxlfal.
5 marca 0 fim do loop. As linhas de c6digo entre se 1ect e endse1ect

I
3 set ect .. f rom ztxl fill into ztxl fal order by 1ifnr .
sao executadas uma vez para cada linha retornada do banco de dad os.
4 write / ztxlfal -lifnr .
5 endselect. • Na linha 4, a instrucfo write e executada uma vez para cada linh a que
elida da tabe la.A / (barra) depois de wri te corn e~a uma nova linha.

a codigo na Lisragem 2.2 deve produzir esta safda: N ote que em seu programa, voce tern duas co isas identificadas como E
ztx lfal: uma area de trabalbo e uma tabela. A du as te rri 0 mesmo nome - "
SAioA~
1000
1010 zt xl fa I. A pcsicao do name ztxl fal denrro de uma inst rucdo de termina aqual
1020 voce se refere. Na lin ha 3, a primeira ocorrencia de zt xlfal se refere a rabe1a
de banco de clados. A segunda ocorrencia refere-se a area de trabalho.
1030
1040
1050

,I
I
_ .J.;,
DlH lEU PRIMEIBDPBOGRAMA EM ASAP/' 75
74 APRENDA EM 21 DIAl ABAP/4

1. Pressionar Page Down [az com que uma soliciracfo seja enviada do
lVI ~ lnlcie a NAYI Select Statement Processing'" ogora .
SAPGUI para 0 dispatcher DO servidor de aplicacivo para obter a
proxima pdgina de saida a partir de ztx0202.
Prossiga os processamen tos como a seguir (veja a Figura 2.12) : 2. A soliciracac e despachada para 0 primeiro processo de trab alb o

1. P ressione F 8 para executar 0 programa que causa uma solicitacao a disponivel.


set enviada do SAPGUI para 0 dispatcher no servidor de aplicativo 3. 0 contexte de usuario e a area de rolagem para ztx0202 sao deslocados
para executar 0 programa ztx0202. para 0 processo de trabalho.
2. A solicicacao e despachada para 0 primeiro processo de trabalho 4. 0 processo de trabalho envia a pr6xima pagina para 0 servidor de

disponfvel. apresentacao.
3. a contexte de usuaric edeslocado no processo de trabalha. 5. A area de rolagem t: 0 contexte de usuario sao deslcca dc s para fora
do processo de trabalho .
4. 0 prog rama e recuperado do banco de clados.
5. 0 processo de trabalho aloca uma area de rolagem para armazenar as Figura 2 12
variaveis do program a, 0 ponteiro atua l de programa e as alocacoes SAPGUI (Servidor de cpresel1tol;oo)
Esto e 0 moneiro
privadas de mem oria. como a ins/rus:oo Mem6riaestendldo
se lect fundono.
6. 0 programa e int erpretadc pelc processo de trabalho no servidor de
aplicativo e corn elia execu tan do na linha 3. (As linhas 1 e 2 sao
declaracoes, Da O c6digo executavel .)
7. A linha 3 faz com que uma linha seja lida da tabela de banco de dados
zt xl fa l e colocada na area de trabalho identificada ztxl fa I.
8. A prim eira linh a de tempo 4 e executada, uma pagina vir tual ealocada
DBS
para a Iista. ~'4~~~.~{t~¥;:.;,~ , 17 _, .~ """ , . B
9. A Iinha 4 causa 0 campo 1; fnr a ser escrito da area de trabalho ztx l fal ':~~i ; . .. L ~ ' ~i.:~:';"~~ 7 ' .... ' r:ita~Ji'!'.
};
para a pegina virtual.
10. Alinha 5 faz urn loop novamente na linha 3.
11. A pr6xima linha e lida da tabela ztxl fal e e colocada na area de
trabalho zt xl te t, so brescrevendo a linha anterior..
12.0 campo 1; fnr e escrito na proxima linha da pagina virtual.
13. Os passos 9 a 11 sao rep etidcs para todas as linhas J?a tabela ztxlfal.
14.0 loop termina aut omaticamenre quando a ultima linha elida de Se 0 usuario entao pressionar Back, 0 processamento continua assim:
ztxl fa l.
1. 'P ression ar Back faz com que uma sclicitacao seja enviada do SAPGUI
15. 0 programa termina, mas a area de rolagem (contendo a pagina para 0 dispatcher no servidor de aplicativo para terminar 0 programa
virtual) perman ece alocada .
ztx0202.
16. 0 processo de traba lbo determina 0 numero de linhas que a tela do 2. A soliciracao e despachada para 0 primeiro processo de trabalho
usudrio ecapaz de exibi- e errvia essas muitas linhas cia pagina virtual
disponfvel.
como a pr imei ra pagina da lista para 0 servidor de apresentacao.
3. 0 contexte de usuario e a area de rolagem para ztx 0202sao deslocados
17.0 ccnrexro de usudrio e a area de rolagem sao deslocados para fora no processo de trabalho.
do processo de rrabalh o.
4. 0 sistema libera a area de rolagem para 0 programa.
Se 0 usuerio en rac pressionar Page Down, 0 processamento prossegue 5. 0 contexte de usuario edeslocado para fora da tela.
como a segu ir (veja a Figura 2.13):
-.;
-"".~--=-----=--=-=-,,,""""""'------------~---~~--~-------------~

76 APR EN OA EM 21 OIAS AB.lP/4


DIA 2, l EU P'W.EliU P' 06RAJI,A EM ABAP/~ 77
F jgura 2 13
Co mp arada a Listagem 2.2, apenas a linha 3 mu dou. Esse programa
Esso e 0 seqiiencia de
eveorcs ocionoda funci ona exatamente da mesma maneira e produz a mes ma saida que a anterior.
quando 0 usu6rio C omo a clausula i nt o nao foi especificada na instrucao se 1ect, 0 sistema utiliza
pressiona Poge Down. a drea de trabalho cia tabela padrsc ztxlfal.

Para cop iar urn p ragrama , esc o lhc 0 cominh o d e men u Pro-
qrcm -o-C cpy do telo iniciol do ed ito r. Alternotivo mente, enqoontc editc
um progroma , voce pede escolher c com inho de menu Proqrcm -c-Sove
As.

Uti lizando uma area de traba lho explfcita


A instrucao t abl es sempre cria uma area de trabalho da tabel a pa drao , entac
voce normalrnente nao tern de defin ir sua propria. Enrreeanto, em alguns casas
voce pode querer definiruma area de trabalho de tabela adicional. P Ol' exemplo,
se quiser manter a verssc original de uma linha e tern uma versao modificada
tambern, voce precisaria de duas areas de trabalho.
L- - - - - - - - ---I- - HI va
V9 -
.1..0 Voce pede definir areas de trabalh o da tabela adicional utilizando a
. _ de
:oglhO :"'irtUQl:.~._ . rologem in struc;ao data .

Sintaxe simplifica da para a instrucco data


~ Abaixo eSta a sintaxe simplificada para a insrrucio data .
Pare abrir umo novo ione lo do R/3 (cho modo sessec), de quo lque rt e la
escclho 0 com inho de menu Svstem-c-Cr ecte New Session. Voce pede
Z data ItO like tl.
c brir urn maximo de seis sessces. Se voce qctser chrlr mois de sels,
simples ment e efetue 0 logon umo segundo vez.
~ onde:
m • Ita e a n ome de um a area de trabalho de tabela qu e voce quer definir
Entendend o os areas d e tro bo lhos da tabela
'f • tl e a no m e de uma ta bela qu e voc e quer para padrjio em sua area de
trabalho de poi s .

NOVO il... No linho 3 do listog e m 2.2, as polovros ; nto zt xl f al sse opcion ois. Se voc e
TfRMO~ debe-los de foro, 0 crec de trobolho co m 0 mesmo nome do tcbelo e uftlizode. A Listagern 2.4 mostra como utilizar a in srrucao dat a para criar um a nova
Em outros polovros, 0 linho otuol outomo ticomenfe entre no crec de trobolho ztxl fal.
Per esse rcreo , ela e canhecido como 6reo de trobolho do tobe lo podrt50. Nesse coso , a area de trabalho.
c reo de trebo lho zt xl f al e 0 area padrOo pore a tobelc ztxlfal. Por isso, 0 c6d igo no
listogern 2.2 pode ser sirnplificodo como mostredo no listcgem 2.3. EKTWlA~ List a g em 2.4 Utilizando sua pr6pria a rea de trobolho de to bela

[NTiAOA~ Listagem 2.3 Seu segundo prog romo simplificodo 1 re port zb:0204 .
2 tables ztxlfal.
1 report ztx0203. 3 data Wi li ke ztxlfal.
2 t abl es ztx lfa l. 4 select" tree ztxlfal into wa order by l t fnt-,
3 sel ect > f rom zblfal order by ll fnr . 5 wr ite / ee - j tfnr,
4 write / ztxlfal- lifnr. 6 endsetect .
5 endset ect ,
--- -
78 APREN" EM 21 DIAS ABAP/4 DlA 2:SEU PRIMEIRO PROGRAMA EM ABAPf4 79

a
c6digo na Lisragern 2.4 deve produzir a me sma saida que as duas ANALISE.... Este programa Ie todcs as reqlstro s de tobelc ztxlfal onde 0 nc rnero do
listagens anteriores (veja a saida cia Listagem 2.3). Observe que nesse exemplo ,. fahrican te e menar que 2000 e escreve 0 contecdo do compo 1i f nr (a ncmerc
njio e necessaria defini r uma n ova area de trabalha - uma e utilizada apenas de fabriconte). No banco de dodos, 1; fn r e urn compo de ccroctere cc nte ndo vclcres
1 ;
; ..
nurr-ericos que estcc exa tcmente [ustificcdos e p reenchtdcs 6 esquerdo co m ze ros.
para ilusrrar 0 conceito .
Portanto, 0 vola r a ser comparedo com 1; f nr deve fer 0 mesmo formata e tipo de dodos

ANlus[ ~
pore evitor o converscc de dodos e osseguror que os resultados desejodos se jam obtido s.
• A 1inha 3 define uma nova area de trabalha chamada ~a como a
estrutura zt xl fal de DDIC. Note que codificar urn caractere literal em ABAP/4 (como '0000002000 I
~ A linha-lle uma linha de uma vez cia tabela ztxl fal na area de trabalho na linha 3), deve envolver a string de caractere dentro de aspas simples.
wa em vea cia area de trabalho cia tabela padrao.
• A linha 5 emi te a linha para wa em vel. de ztxl fal.
Ira bo Ib °ad Q co rn veri uxeis,-,d..,e"--,,s,;isut"'eJjrnLLO"'- _
o
NOVO....
rrRMO"
Quando voc e explicitcmente atribui names a umo 6rea de trobclho
se 1ect {como; nto wa no ltnhc 5j, esse crec de trobolho
no instru<;6a
e chomodo area de
HDVO ...
HRMO'-
sistema R/3 tome as vcriovels de sistema disponiveis dentro de sev pro groma .
Voce n60 tern de defioir quolquer coiso para ccessc-lcs, elas estcc s.::mpre I
disponive is e automaticomente sec ctucluodcs pe lo sistema como cltero coes sue s no
frobo/he explfdfo . ombiente do progroma. Todos os vcrioveis de sistema comeccrn co m 0 prefixo 5Y - . Par
exemplo, a dote otuol de sistema esto dlsponrvel no ccmpo de sistema sy - datum e a ho ra
latro d uzia do a c1ausulo where otuol em sy-uzeit. Em gerel, eles soo chomados obrevtcdcmente de com pos sy
[prc rw oclo -se "'sci'").
Para resrringir 0 n umero de linhas retornadas do banco de dados, uma clausula
where po de ser adicionada a insrrucao select. Par exemplo, para recuperar Todas as var iaveis de sistema sao definidas na estrutura sys t de DDIC.

I'
fabricantes que tern numeros de fabricante menores que 2000, utilize 0 c6digo . Mas nao def ina syst em seu programa; seus campos estao dispo niveis auto-
na Listagem 2.5. maticamente dentro de cada programa.

ENTRADA~ Lista gem 2.5 Restringindo os fabricantes selecionad05

I
as names de vcrtcveis de sistema podem ser codificodcs utilizando 0
1 report ztx0205. prefixo sy- ou syst -. Por exemplc, sy-datum tornbem pod e ser
2 tables ztx.lfa1. codiftcodo co mo sy st-datum; eles s60 funciono lmenle equlvclentes .
3 select * from ztxlfa1 where lifnr < ' 0000002000' order by lifnr. Sy- e 0 formvlcrtc preferido, embora voce occsionalmente veto sy st-
4 write / zt xlfal · l ifnr . em progremos mais a ntigo s. Syst eo unico estrutura que tem umo
5 endsetect . duolidade de prefixes . Para todos as outros, voce de ve utilizor 0 nome
complete de estruturo como 0 preflxo.
i
SAiDA ~
o
1000
1010
c6digo na Listagem 2.5 deve produzir esta saida:
Duas verieveis de sistema sao muito tite is para saber qu and o co dificar a
inscrucao se 1ect :
I
1020
1030
1040
1050

II
sy-subt-c
sy -dbcnt
![
of
1060 or
Deseobrindo sy-subre
1070
1080
d
1090 NOVO .... \ Pcro d~:e rmincr s.e a instru<;oo s e lect retor~ou qU~is~uer linhos: teste 0 volar
HRMO" do vcridve ] de slstemc sy-subrc fprcnunclo-se sol-sub-cre-st"] depois do :f
instru<;oo endsel ect. Se as ltnhos foram loeo lizodos, a vclor de sy -s ubr c se ra O. Se d
nenhuma linho [o! lccclizcdc, a valor sera 4. (Veic a listagem 2.6.)
.f
---~~~~~~~~~~~~~~----------'--~---------------~
DIA 2:StU PRIMEIROPROGAAMA EM ABAP/4 81
80 APRENDA EM 21 DlAS ABAP/4

Depois de endselect. elo reter6 seu volar e entcc ccnterc 0 ruimerc de linhos se-
ENTRADA'" lista gem ~ .6 Utilizando sy-subrc para determinar se quoisquer llnhos lecionodos. Por exemplo, pora irnprimir rujmercs seqcenclots 00 lado de coda fobriconte
,.. fora m selecionodos e imprimir um tolo l do nomero de llnhos selecionodos no po rle inferior do relot6rio, utilize
o c6d igo no listogem 2.7.
1report ztx0206.
2tables ztxlfal .
ENTRADAlItr.. Listagem 2.7 Utilizando 0 sy-dbcnt para co ntor lmhc s retomados do
3se lect .. from ztx'l f al where l f fnr > 'Z '.
4 write / ztx lfet-ltrnr ,
" instrucoo select
5 endselect.
1 re port ztx0207 .
6H sy-subrc < > O.
2 tables ztxlfaL
7 write / 'No records found' .
3 se lect 10" from ztxlfa1 order by lifnr.
B endif.
4 wri t e / sy- dbcnt ,
5 wr ite ztx lfa1-1ifnr.
a codigo na Listagern 2.6 produz esta safda: 6 endse tect .
7 write / sy-dbcnt .
SAiDA ~ No records found

ANALISE..... A instru<;oo se lecionodo no linha 3 estc restringido par umo cl6usu la where.
r
~epois do
Nesse coso, nenhumo linho coincide com a criteria no d6usulo where , entoo
endselect, 0 valor de sy -subrc e configurodo como 4.
B wri te ' r ecor ds fou nd'.

o codigo na Listagem 2.7 produz esta saida:


II
~
1 1000
SAiDA 2
3
1010
1020
I
Muitos pclovrcs-chove otribuem vclores a sy -subrc . Algumas po- 4 1030 I
lovrcs-chove slmplesmente nco 0 configurorn. Se urne pe lovra-chave 5 1040
configura sy -subre, as volores oossrvels 500 documentodos no ojuda 6 1050
7 1060
Fl para esse pclcvrc -chcve.
8 1070
9 1080
10 1090.
Se voce codificou u m a set ect e quiser testar 0 valor de sy-subr-c, seu teste 11 2000
deve vir depois de en dse 1ect. Por que? A resposta reside no fato de que 0 codigo 12 VI
entre select e end select e executado uma vez para cada linha retornada do 13 VlO
14 VlI
banco de dados .
15 VI2
Se nenhuma linha (zero) eretornada do banco de dados, 0 codigc entre 16 V2
select e endselect nunea e executado. Pcrtanto, voce deve codificar 0 teste 17 V3
para sy-subrc depois de endsel ect. 18 V4
19 V5
20 V6
21 V7
Sy-subt-c noo e outomot icomente inicializodo como zero quando seu 22 VB
progromo lntctc. Entretcntc, isso nunco deve ser umo preo cupoceo, 23 V9
porque voce nee deve venficc-lo ate q ue umo instruceo que oconfiguro 1-3 registros encontrados
tenhc exeeutado.

• A linha 4 escreve 0 valor de sy-docn t para ca d a linha que e retomada


ANAliSE~
Des cobrindo sy-dbc nt
pela sel ect . A barra (/) comeca em uma nova Iin h a, eneao cada
NOVO ~ Poro determinor a nume rc de Jinhos retornodo por umo instru<;60 sel ect, teste sy-dbcnt comeca em uma nova linha.
HRMO" a valor de sy-dbcnt decors de endsel ect . Voce tombern pode utilizo-lo como • A linha 5 escreve 0 valor de ztxlfal- l ifnr na mesma linha que
urn contodorde 100Pi entre sel ect e endsel ect , elcccntem uma soma do itera'ioo otuol.
sy-dbcnt.
Pore a prirneiro linho, sy -db cnt se ra 1, durante a segu ndo sera 2 e ossim por dionle .
-,;.;.:,

82 APRENDA EM 21 DIA l ABAP/' DIA 2:SEU PRIMEJRO PROGRAM.&. EM ABAP{4 83

Exi bindo 0 es trutura sys t Por exemplo, para definir duas tabelas, voce poderia codificar isro:
Hoi duas rnane iras de exibir os cornponentes de estrurura syst: tables ztxlfal.
• Da tela ABAP/4 Editor: Edit Program, de urn clique duplo no nome tables ztxlfbl.
de qualquer campo sy dentro de seu codigo au, voce poderia utilizar 0 operador de encadeament o, com o esse:
• Va para Data D ictionary , insira syst, se1ecione a bctao de 0pljao
0 tables: ztxlfal. ztxlfbl.
Structure e pressione a batao Display
Funcionalmente, os dais segmentos precedentes de c6digo sao identicos
Para localizar C'flmpos dentro cia estrutura, pressione a batao Find na e ern tempo de execucio nao hi nenhuma diferenca em desempenho. Durante
barra de ferramentas Standard e digire 0 nome do campo que voce quer a gerecac de c6digo, 0 segundo segmento de c6digo e expandido em duas
local izar. instrucces. Entao, de um ponto de vista funcional os dois prograrnas sao
Se voce nao sabe 0 nome do campo que quer localizar, mas antes deseja identicos.
localizar urn par descncao, voce tambem pode pesquisar as descricoes. as operadores de encadeamento devem ser ut ilizados p ara m elh orar a
legibilidade de seu programa. A utilizacao do operador de encad eamenro e
S(RHN(AM~ lnicie a Screeotlcm "How to Seorch Through Field Descriptions" ogora. ilustrada na Listagem 2.8.

Para pesquisar par descricoes de campo, utilize este procedimento: ENTRADA.... Listagem 2.8 Utilizondo a operador de encadeo mento pa ra reduzir a
r redundcnclc no instru<;:oo write
1. Comece na tela de campos Dictionary: Table/Structure: Display.
1 report ztx0208.
2. Escolha 0 caminho de menu Table->Print.. Uma caixa de dialogo
2 tables ztxlfal.
aparece ra perguntando quais compon-entes voce deseja imprimir. 3 select * from ztxlfal order bylifnr .
. 3. Faca uma marca em todas as caixas de selecao e pressione
0 batao 4 write: / sy-cbcnt , ztxlfal-lifnr.
Continue. Uma caixa de didlogo aparecera pergunrandc a voce as 5 endselect. .
6 write: / sy-dbcnt, 'records found'.
parametres de impressao.
4. P ressione 0 borao Print Preview. A caixa de dialogo se fechara e uma
lista contendo uma pequena fonte aparecerd. a c6digo na Lisragem 2.8 produz a mesma saida que 0 pro gram a anterior
5. Escolha 0 caminho de menu Goto-> List Display. A Iista mudara para (veja a saida da Listagem 2.7).
uma fonte maier de especc fixo.
ANAliSE ~
• A linha 4 combina as linhas 4 e 5 da Listagem 2.7 em uma unica linha
6. No campo de comando, digite %sc ~ pressione a tec1a Enter. A caixa
utilizando 0 op erador de encadeamento.
de dialogo Find aparecera.
• A linha 6 combina as linhas 7 e 8 da Listagem 2.7 em uma u nica linha
7. Digite 0 texto que voce quer localizar e pressione a tecla Enter. Uma
utilizando o· operador de encadeamento.
lista de coincidencias aparecera e cada ccincidencia sera desracada.
8. De urn clique em uma pa lavra desraceda para pular imediatamenre ate Utilizondo a jnst[lJ~ao sel eet si agl e
essa linha na lista. Se voce deseja localizar cutra ocorrencia do texto,
A instrucao select single recupera urn registro do banco de dadc s. Se voce
va para 0 passo 6 desse procedimenro.
conhece a cbave primaria inteira do registro que deseja recuperar, se 1ect s i ngl e

Utilizondo 0 ope rodor de encodeomento emuito rnais rapida e mais eficiente que select/endselect.

Nova... a e
sinal de dois-pontcs (: l chamado operodor de encodeomento. Uttllze-c
Sintaxe para a lnstrucco select single
HRMO"" para combiner linhas de c6digo que cornecom com e mesmo polcvro ou A seguir esta a sintaxe simplificada para a insrrucao se 1ect si ogl e.
seqvencio de polovrcs. Coloque a parte comum no comeco do i n stru ~a a seguida par
dois -ponios. Enta o, coloque as partes fmcls das instru<;6es depots dele, coda uma
seporoda par uma virgule.
.-';,.~ "",- ""~ :~--",
- - - ._- - - - - • - - - - - - -
;';;;:"'::-="",=:"'"":=:-=~~_""'!!!""'!!I"'"_""",,",,,
."""".
_ _......._ ...,....,..._ ........_ ....... _
........_ 'W
_...._
- - - - - - - - - - - - ..,
_........_ _..... .....r-"_ _.... ...._ _ .

DIA2: SEU PRIMEIROPROGRAMA EM A8AP/~ 85


84 APREH D" EM 21 DIAS AB AP/4

III s el ect * from tl [into wa] [where fl op vI and/or f2 op v2 . •. ]. Co me nta nd o 0 c6 d igo e a d ocumenta~ao fo rm al
Z onde: Ha duas maneiras de colocar comentarios em seu c6dig o:

~m
* indica que tcdos a s camp os na tabela devem ser recuperados . • Urn * (asterisco ) na primeira coluna indica que a linh a inteira e urn
tl eo nom e de um a tabela previamente definida em uma instrucao ta bl es . comentdrio. Ela ficare em vermelho dentro do edit or para indicar que
wa e0 no me: cia area de trabalha que coincide com a estrutura da tabela. eurn comentario de linha inteira.
T 11 e0 nome de urn campo n a tabela tl.
op e urn dos seguintes ope radores logicos: '" <> > > = -c <=,
• II . (aspas duplas) em qualquer luga r em uma linha indicam que a

res tante da linha e urn com entario. 0 com en rario nao ficar a em
e
vl um literal ou uma variavel.
vermelho como para urn comen tario de linha in teira.
and/or e uma palavra and ou uma palavra or .
P a r exemplo:
* Isto e um ccnentartc
as seguinte s pontos aplicam: ta b' es ztxlfal. " Isto t ambem e vm cement ar t 0

• select si ngle nao corn elia urn loop porque ela apenas retoma uma Nao ha caractere end- comnent (fim de co mentario). Em outras palavras,
linha. Po rtanto, nao co difique uma instrucio endsel ect , Se fiaer i550. quando voce comeca urn comentario, 0 res tante da linha sera apenas urn
voce obtera urn erro de sintaxe. comen tdric. Nenhum c6d igo adicional pode entrar nessa linha. 0 comentario
• Certifique -s e de que uma linha un ica foi retomada, voce deve espe- termina no final cialinha atual.
cificar todos os camp o s de chave prim aria na cldusula whe re. Se voce Independenremente dos comentarics, voce pode formalmente registra r
nao fize r isso, seu p ro grama ex ecu tara, mas obt era urn aviso. (Para seu c6d igo no componente de document aci o do progra ma. Para fazer isso, va
ex ibir os avis os , es c ol h a 0 caminho de menu Programa Pro- para a tela Editor I nitial, de urn clique no batao de opca o D ocumentation e
gram-c-Check -> Display Warnings.) pre ssione Change. Digite sua documentacio e pr essione Save.
A Listagem 2.9 ilustra a instrucao select s t ngl e. Para praticar, erie urn
novo program a e digite 0 c6 digo como mostrado na Listagem 2.9. Resum o
• O s programas do ABAP/4 sao compostos de compone ntes . Os corn-
fHTRADA~ Lisfa g em 2 .9 A instru;ao sel ect si ngle ponentes sao atriburos, codigo-fonte, vari ante s, elementos de tex to e
documenracao. No minimo, urn programa deve ter atributos e codi go-
I repor t zt x0209.
2 tables zt xl fa l .
fonte.
3 sel ect sing le * from ztxlfal where lifnr" 'VI ' . • Os rela t6rios do ABAP/ 4 devem comecar corn a instrucao re port.
4 if sy-subrc z o.
5 write : / ztxlfaI · l i fnr , zt xlfal - namel.
• A insrrucao tables aloca uma area de trabalho da tab ela p adrao e
6 el se . tambern da acesso ao programa para a tabela de banco de clade s do
7 wri t e 'record not found" . mesmo nome.
8 endif.
• A instrucao se 1ect recupera as linhas de uma tabe la de banco de dad os.
Utilize select si ngl e par a recuperar uma Iinha. Utilize select/e nd-
o c6d igo na Listagem 2.9 produz esta saida: se 1ect para recuperar multiplas linhas.

SAiD! ~ VI Quantity first Ltd . • select/endselect forma urn loop. 0 codigo no loop e execu tado uma
vez para cada linha de tabela que sati sfaz a clausul a where. 0 loop

!NjllSE~
A linho 31ocolizo 0 fobrkonte VI no to be lo zt xl fal. Como apenos umo linha rermina automaticamente quando todas as linh as forem processadas.
foi retornodo, order by noo e necessaria e nem e endsel ect . Se voce DaO esp ecificar uma clausula ; nto, cada [inha sera colocada na
area de trabalho da tabela padrao e sobrescreverd a linha anterior.
e
sy-subr-c configurado como 0 se quaisquer Jinhas fo rem selecion adas,
e con figura do como 4 se nen huma linha for selecionada. sy-d bcnt e
.,.. - ..... 'W' W W • _ -w

86 "RENDA EM 1\ DIAl ABAP/4 DIA 2: SEU PRIMEIRDPROGRAMA EMASAP!. 87

aumentado sempre uma vez p elo loop e dep ois do endsel ect ele edito r teria acabado. Hoi agora duas vers6es do seu pr ograma no
con tem 0 mimero de linh as recuperadas. banco de dados: a versao alterada (a que voce acabou de executar)
• 0 operador de encadeamento e dois-ponccs (:) . :E urilizado para e a original. (A versso alrerada e armazenada com urn nome
reduzir a redunddncia on de dua s ou mais insrrucoes comecam com a temporario que consisre em ! e os ultimos sere caracteres de seu
mesma pala vra ou sequencia de palavras. nome de programa.) Sevoc e agora retornar ao edicor e tent ar editar
seu programa no vamente, 0 sist ema detectara 3 presence de duas
vers6es no banco de dad os e exibira um a caixa de dialc go que
P&R solicita 3 voce qual versao voce qu er ed itar, a primeira (salva) ou 3
temporaria. Para exibir a copia rempor aria (3 prirneira que voce
o Se eu estiver edltando um programa, 0 que acontece com mi-
nhas alteracces se estiver desconectado do R/3 j por exemplo, se
executou) simple smen te pressio ne 0 bo-ac Continue.
meu PC trava e tenho de rei niciaIizar? Perderei m inhas al-
tera<;6es? o Quando copio urn programa in teiro, a inst ru cao report ain da
contem 0 nome antigo do relat6ri o. Mas se eu a executa, ele
roda sem erro . Ele nao dev eri a me dar u rn erro?
o Se voce efecuar logon novamente den tro de 5 ou 10 m in utes,
pod era recone ctar-se a sua sessao. Q uando voce efetuar logo n
novamente, digite seu ID de usuario e senha mas nsopressione
a tecla En ter na tela de logon; em vez disso, escolha 0 caminh o de
o o nome de p r ogram a n a instrucj.o r eport e~brigat~ri o, mas nao
tern de corresponder com 0 nome real do pro grama. E apenas para
documentaclo.
menu User-> Copy Session. Voce sera reconectado a sua sessdo
anterior e tude sera restaurado da maneira que estava quando voce
perdeu sua con exao. o Toda vez que efetuo 0 logoff do R/3 ob tenho uma caixa de
mensagern que diz "Unsaved data will b e lo st" - mesm o depois
que salv ei tude. POl' que~
H oi u rn r ecurso de AutoSave no editor como no MSWord?
0-
e Nso. Mas quando voc e quiser salvar basta pressionar a tecla El I. o Apesar de sua s p alavras , essa m en sagem njio signifies que ha
dados njio salvos qu e serao perdidos. Ela sign ifies "Se voce nao
salv ou seus dados, eles serdo p erdi dos" . A melhor coisa a fazer
o As vezes, quando edito urn p rograma, obtenho u rna caixa de
dial ogo com a me n sagem "Program was temporarily buffered
e ap ena s ignora-la. Todo mundo faz issc .

(pos sibly due to a system error/failure) Choose one of the


foll owing op tions" - 0 prograrna ternporariamente teve uso o Possa aninhar as in struco es sel ect dentr o de autra?
de bu ffer (possivelmente devido a urn erro/falha de sistema)
Escolh a u m a da s seguintes opcoes . Por que a vejo e 0 que devc
fazer ?
o Sim, pede, mas n a m aicria das vezes voce nao deve, p orque ela
po d e ser extremamen te ineficiente. Uma altern ativ e melhor e
u rilizar um a visualizapi o do banco de clade s.

o Isso signifies qu e ha duas copias de seu programa no sistema:


uma "rea l" e ou tra temp crdria. A remp oraria e criada quan do Wo rksho p
voce executa seu programa sem pri mei r o salvd-Io. N ormal- Os exercrcios a seguir oferecem uma prarica para utilizar 0 editor e escrever
mente e excluida qu ando voce ret crna ao editor e salva suas progra mas simples que utiliz am as instrucoes t abl es, sel ect e wr it e. As
alteracbes, mas se voce an ormalmen te sai do editor, ela p er- respostas estao n o Apendic e B, "Re spos ras as pergumas e aos exercfcios" .
manecera. Por exemplo, voce poderia modi ficar seu program a
e entdo executa-lo imedi atamente sem salva-Io. Se sen pr o-
grama produ zisse urn du mp p equ en o, v oce en tao precisaria
pressionar 0 botao Ex it e voltaria ao Wor kbench . Su a sessr c n o
..,
"::'!!!'-------------~--
",.

88 APREHDA EM 21 DIAS AWl' D1A 2,SEU PRIMEIRO PRDGRAMA EM AMP/4 89 L


Teste 5. Retorne da ajuda novamente para seu programa. (Pres sion e 0 bo rao
1. Quais as duas coisas que a instrucao tabl es faz? Back na barre de ferram entas Application.)
2. A que 0 termc area de trabalho da tabela padrao se refere? 6. Exiba as arribuicoes de tecla de funcio. (De urn clique com 0 bono .,
dire ito do mouse em qualquer lugar na area de tela da janela.)
3. Se a inscru cao sel ect esta faltando em urna clausula ; nto, onde
entrarao as linhas? 7. Traga a linha 3 para 0 tOPO da tela . (De urn clique duplo no espaco
em branco na linha 3, mas nao em uma palavra .)
4. Se uma inst rucao write nao contem uma barra, a safda e escrita na
mesm a linha que a saida para a instrucfo write an terior ou e escri ta 8. Exclua a Iinha 6. (Cologue 0 cursorna linha 6 e pres sione 0 batao Cut
em uma nova linha? na berra de ferramentas Application.)
5. Qual e 0 nome da varidvel de sistema que ind ica se quaisquer linhas 9. Abra uma nova sessao e exiba a programa zty0200b. (Escolha 0
for am localizadas pela instrucao select? caminho de menu Syst em-> Create session. Uma nova janela de SAP
R!3 e exibida. Escolha 0 caminho de menu Tools- >ABAP/4 Work-
6. Qual e0 nome da variavel de sistema que indica quantas linhas foram
bench. A telaABAP/4 Development Workbench eexibida. Pressione
localizadas pela insrrucao select?
o botac ABAP/4 Editor na barre de [erramentas Application. No
7. .Veja a Listag em 2.6. Se h a 30 linhas na rabe la ztxl fal, quanras vezes campo Program Name, digite zty0200b. Pressione a bocao Display.)
a linha 4 foi executada?
10. Marque as linhas 2 a 4 utilizando 0 botac Select. (Coloque 0 cursor
8. Veja a Listag em 2.6. Se a tabela ztxlfal esdver vazia (se contem 0 na linha 2. Pressione a borao Select na barra de ferramentas Applica-
linhas), guantas vez es.a linha 4 foi executada? tion . A linha 2 tom a-se azu l. Coloque 0 cursor na linh a 4. Pressione
o botao Select novamente. As linhas 2 a 4 sao rnarcadas em azul.)
Exe rcfcio s do ed itor 11. Copie 0 bloco marcado para 0 buffer X. (Escolha a caminho de menu
No exercfcio a seguir, voce copiara urn programa, corrigira erros no codigo, Block/Buffer-> Copy to X Buffer.)
mesclara novo c6d igo nele, executara, imprimira, carregara, criara uma versao
12. Alterne de volta para a jane la em que programs • • - 0200a e exibido.
e comparara versoes . Veja a Tab ela 2.3 quando necessaria.
13. Cole as linhas do buffer X depois da Iinha 5. (Cologue 0 cursor na
1. Copie a program a zty0200a para 0 programa ••• 0200a. Para executar linha 6. Escolha 0 caminho de menu Block/Buffer-> In sert X Buffer.)
a c6p ia, utilize 0 botao Copy localizado na barra de [erramentas 14. Marque 0 bloco de linhas 6 a g. (Coloque 0 curs or na linha 6.
Application do ABA P/4 Ed itor: Initial Screen. Pressione 0 botao Select na barra de [erramentas Applicati on . Colo-
report zty0200a. que 0 cursor na linha 8. Pressione 0 botac Select novamente .)
sel ect v from ztx lfal. IS. Mova 0 bloco quarro espacos para a esquerda, alinhe a inst rucao ; f
write / ztxl fe l-Hfnr .
endsel ect • com a inscrucao select. (Coloque 0 cursor na linha 6 na coluna 1.
endsel ect . ~ linha duplicada intencionalmente Pressione 0 batao Move Line na barra de ferramentas Application.)
r eport zty0200b. 16. Escolha 0 caminho de menu Program->Save As e salve seu programa
if sy-su brc <> o. modificado como > • - 0200b.
write : / ' no records fo und' .
endif. 17. Exiba 0 programa _ . -0200b utilizandc 0 caminho de menu Pro-
gram-> Other Program.
2 . Edite 0 programa • - • 0200a. Corrija 0 nome de relat6rio na insrrucao
18. Corrija 0 nome de programa na instruqao repo rt. (Altere _•• 0200a
report.
para·· ·0200b na linha 1.)
3. Insi ra uma nova linh a depois da linha 1. Digite a instrucao tables
19. Selecione as linhas 3 a 5. (Cologue 0 cursor na linha 3. Pression e 0
apropriada nessa linha.
batao Select na barra de [erramentas Application. Coloque a cursor
4. Obtenha ajuda para a instrucfo tables. (Coloque a cursor na ins- na linha 5. Pressione 0 batao Select novamente.)
tru~ ao tabl es e press ion e F1.)
20. Ccpie 0 bloeo selecionado para a buffer interne do pr ograma. (Pres-
sione 0 batao Copy To Buffer na barra de ferram entas Application.)
....~""r-"--....e-"="....,=-....",......,.....
i ,i'"
};."':£ ;-
-!'"""I-_......._.. . . .- . . ...--_.. . . . _.. . . . . . . . .
-~~~~---~ w . w ~ ~ _r -.
w .-...........-
w _ ..........
._ .. w ••• w •• _ _ . w_
_ ....,.......,..-.............---.,......,.......,......,.......,......,.................._ ........

, 90
or'
~- I APRENDA EM 21 OJAS ABAP/~ DIA UEUPRiMEIRDPRDGRAlIA EM ABAP/4 J 91
I
21. Cole 0 bloco que voce acabou de copiar no final do seu prcgrama. 34. Substitua todas as ocorrencias cia s tring zt xlfal nas linhas 10 e 11
(Coloque 0 cursor na Iinha 9 e pressione 0 borao Insert From Buffer com a string ztxlfbl utili zan do a fun~ao Search/ Replace. (Culo que
na barra de ferramentas App licarion.) o cursor na linha 10. Press ione 0 borso Select. C oloque 0 cursor na linha
22. Cole 0 mesma bloco novamenre no final de seu programa. (Ccloque 11. Press ioneo botao Select. As linha s IDe 11 agoraesno marca d as como
o cursor na linha 12 e pressione 0 borde Insert From Buffer na barra urn bloco em verrnelho. Pressione 0 botao Find.. A tela Search/Replace
de [erramentas Application.) eexibida. Digite ztxl fal no campo Find. Paca um a marca de selecao na
23. Des faca a ultima colagem. (Pressi one 0 bordo Undo na barra de caixa de selecao Replace By. Digire ztxl fbl no campo Rep lace By.
[erramentas Applicarion.) Pressione 0 botao Continue. A tela ABAP/ 4 Editor: Edit Program e
exibida . Pressione 0 botec No Confirmation . Tod as as ocorrencias
24. Digite 0 seguinte c6digo nas Iinhas 12 a 14. Comece cada Iinha na
cia string dentro do bloco marcado sao substitufdas.)
coluna 1.
35. Utilize urna teela de funcac para salvar seu p rograma e outra tecla de
if sy-dbcnt > O.
write : I sy-obcnt , ' records found' , funlJao para execun-la. (Pressione F I t. Pre ssion e F 8.)
endif. 36. Salve a saida de lista para urn arqu ivo em seu disco rigido esco lhendo
25. Automaricamente fixe a endentacao, escolhendo 0 caminho de menu o carninho de menu List - c-Save- > Fi le. Utilize formate nao conver-
P rogram- > Pretty Printer. tido.
26. Salve seu p rograma. (Pressione 0 botso Save.) 37. Exiba sua saida descarregada ut ilizando 0 Bloeo de N ota s.
27 . Retcme para 0 ABAP/4 Editor: Initial -Screen e documente seu 38. Retorne para editar seu codigo. (Pressione 0 b otao Back.)
programa. (P ressione 0 batao Back na barra de ferramentas Standard. 39. Faca download de seu prograrna para 0 arquivo c: \ temp\ · •• 0200b. tx t.
Escolh a 0 bo tao de opcao Documentation. Pressione 0 bouo (Escolha 0 caminho de menu Utilities- c-Download. A tela Transfer
Change.) to a Local File e exibida. Digite c: \ t emp\ •• · 0200b. tx t n o campo File
28. Salve sua documen tacao e retom e para editar 0 codigo-fonte. (Pres- Name. Pressione 0 botao OK. A mensagem "277 bytes tr ansferred"
sione 0 botao Save. Pressione 0 botao Back. Escolha 0 botao de op~ao aparece na barra de status na parte inferior da jane1a.)
Source Code. D igite • • • 0200b no campo P rogram. Pressione 0 40. Ed ite seu programa depois de fazer download ut ilizando 0 Bloco de
bo tao - p ushbutton - Change.) Notas. Adic ione urn comentario de linha inteira dep ois da in stru cao
29 . Exi ba as componentes cia estrutura SYST clando urn clique dup lo em de relat6rio com seu no me nele . (Insira uma n ova Iinha .depois cia
urn campo sy. (De urn clique duplo na palavra sy-subrc na linh a 6. A insrructo report: *Created by Seu nome.)
estrutu ra SYST e exibida .) 41. Digite 0 segu inte comentario no final da primeira ins truc io sel ect: II

30. Rerorne para .edirar seu programa. (Pressione 0 botac Back.) read all records from table ztxl fal.
31. Localize a primeira ocorrencia da string ztx lfal em seu programa. 42 . No Bloco de Netas, salve seu program a modificado em disco.
(Pressione 0 bon o Find. A tela Search/Replace e exibida . Dig ire 43. Carregue-o, substituindo 0 programa •• ·02QOb. (Alterne para sua
ztxlfal no camp o F ind . Pressione 0 bo tao de op~ao From Line. tela ABAP/4 Editor: Edit Program· •• 0200b. Escolha 0 caminh o de
Pressione 0 botao Continue.) menu Utilities-> Upload. A tela Import Local Fil e e exibida. No
32 . Repita a pesquisa, localizando cada ocorrencia sucessiva ate que voce campo File N ame, digite c: \ t emp\ · ·· 0200b. txt . Pressione 0 botao
encontre to das elas. (Pressione 0 batao Find Next repetidamente ate OK.)
a mensagem "Strin g wri te not found" aparecer na barra de status na 44 . Salve 0 programa carregado. (P ression e 0 batao Save.)
parte inferior da janela.) 45. Imprima seu programa. (Pressione 0 botao Print na barra de ferra-
33. Adicione a nome de tabela zt x'lfal a instrucfo tabl es. (Alterando a mentas Standard. A tela Print Paramet ers e exibida. Ce rt ifique-se de
instrucao de tabe las, de modo que e1a exiba tables: ztx'l tef , que a caixa de sel e~ao Print Immed. est a at ivada. Pressione 0 botao
zl xlfbJ.) , Print . Sua saida e enviada para a imp ressora e voc e e ret omado para a
tela ABAP/4 Edi tor: Edit Program.)
- - --
D1A 7:SEU PRIMEIRO PROGRAMA EM AIIAP/4 93
92 APRENOA EM21 DIAS ABA P/4

55. Remova os com entarios utilizando 0 caminh o de menu Block!


46. Execute seu programa e imprima a safda. (E scolha 0 caminho de menu
Buffer-c-Delete Comment ::-.
Program-> Execute. A safda de lista eexibida. Pressione 0 botjio Print
na barra de ferramentas Standard. A tela Print Screen e exibida.
Ce rt ifique -se de que a caixa de selecao Print Immed. esta ativada.
fxerdcios de pro-9
,j.rua.umLJ.lla.l.l~
...
6.l.1o",- _
Pressione 0 bene P rin t. Voce acaba voltando para a safda de Iista.) 1. Escreva urn programa que recupere todas as linhas da tabela ztxlfb i
47. Retome para editar programa •• ·0200b e salve uma versao dele no onde 0 codigo de empresa e igual ou maier que 300 0. Em cada linha
da safda deve aparecer 0 codigo de uma ernpresa e 0 numero de urn
banco de dados Ve rsions. (Pressione 0 botao Back para retornar para
Iabricante, com 0 primeiro c6digo de empresa. A safda deve ser
a tela ABAP/4 Editor: Edit Program. Escolha 0 cam in ho de menu
classificada primeiro pelo c6digo de empresa em ordem ascendente,
Program->Generate Version .)
depois pe lo mimero de fsbricante em ordem desce nden te. (Utilize a
48. Substirua todas as ocorrenc ias de ztxlfbl com ztxlfc3. (Pressione 0
ajuda Fl para localizar a sintaxe correta.) Atribua nome a seu pro-
boeo Find. A tela Search/Replace e exibida. Digire ztxl fbI no campo
grama •• ·e0201. Urn exemplo de como sua saida deve aparecer e
Find. Faca uma marca de selecao na caixa de selecso Replace By. Digite
mostrado a seguir.
ztx l fc3 no campo Replace By. Pressione a batao de opcao In Program.
SAioA~
Press ione 0 bon o Continue. A tela Global Replace In Programs e 1000 Y9
1000 YB
exibida. P ressione 0 botao No Confirmation . Todas as ocorrencias da 1000 Y6
string sao substituidas. Pressione 0 batao Save. Pressione a batao Back. 2000 V9
Voce e retornado para a tela ABA P/4 Editor: Edit Program.)
2. Copie 0 progl'ama zty0202 para·· ·e02D2 (a listagem aparece a
49 . Salve suas alreracoes. (Pressione 0 botao Save.) seguir). Ele nac produz qualquer saida. Localize 0 bu g n ele e corrija-o.
50 . Retorne ao edito r tela inicial e compare as duas vers6es. (Pressione 0 Depois de voce [azer isso, a safda correta deve ser no re cor ds found.
bo tao Back. A ABAP/ 4 Editor: Initial Screen e exibida. Escolha 0
1 report zty020Z.
cam inho de me nu U rilities -c-Version management. A te la Vers ions 2. tables 'ztx1fal.
Of O bject • • • 0200b Of Type REPS e exibida. Eaca uma marca de 3 select * from ztxlfal where lifnr l ik e 'W%'.
4 if sy -subrc <> O.
selecao na caixa de selecao Version 00001. Pressione 0 bor ao Com-
5 write / ' no records found '.
pa re na barra de ferramentas Application. A tela Compare Programs: 6 endt f.
All e exibid a. Role para baixo para visualizar as diferencas .) 7 write / ztxlfal-1ifnr.
5 1. Recu pere a vers ac original. (Pressione 0 botao Back. A tela Versions B endsel ect ,
Of O bject ' • · 0200b Of Type REPS i exibida. Remova a marca de 3. Copie 0 programa zty0203 para ••• e02Q3 (a listagem aparece a
selecso da caixa de selecao Act. Pressione 0 bono Re trieve na barra seguir) . E le contem urn erro de sintaxe e urn bug. C o rrija 0 erro de
de [err ame ntas Application (0 sistema nao oferece uma resposta). sintaxe e 0 bug. Quando corrigido, eIe deve exibir numeros de
Pressione 0 bon o Back. A tela Res tore Version e exibida . Pressione fabricante maiores que 1050 da tabela ztxlfal.
o botao Yes. A tela Versions Of Object e • • 0200b O f Type REPS i 1 report zt y0203.
exibida. Pressione 0 bo eso Back. A ABAP/4 Editor: Initial Screen e 2 tables ztxlfa1
exibida.) 3 setect > from ztxlfal where 11fnr > ' 1050' .
4 write / ztxlfa1~ 1i fnr .
52. Edite seu p rograma e m arque as ulrimas tres Iinhas como urn bloco. 5 endse1ect .
(Pressione 0 bono C hange. A tela ABAP/4 Editor: Edit Pro gram i
exibida . Colcque 0 cu rsor na linha 13. Pressione 0 botao Select. A 4. Copie 0 programa zty0204 para ••• e0204 (a listage m aparece a
lin ha 13 torna-se vermelha. Coloque 0 cursor na linha 15. Pressione seguir) . A safdaestd incorreta. Olhe a saida, descubra 0 que ha de
o botao Select. 0 bloco e marcado em vermelho.) errado e corrija 0 programa.

53. Comente 0 bloco utilizando 0 caminho de menu Block/Buffer-> In - 1 report zty020 4.


2 tables ztxlfal.
sert Comment ". 3 select'" from ztxlfal where 1ifnr > ' 0000001050'.
5 4. Marque as ultimas tres linhas como urn bloco (veja 0 passo 51) . 4 write I ztxlfal-1ifnr.
94 m END> EN 21 DIAS Am"

5 ends! 1ect •
6 if sy-dbcnt <:> O.
7 write I 'no reco rds f ound ' .
8 endH .

5. Copie 0 program a zt y020S para ••• e02 DS (a listagem apare ce a


seguir}. A safda esta incorreta. Examine a safda, desc ubra 0 que ha de
errado e co rrija 0 p rograma.
1 report zt y020S.
2 tab les zt xl fal .
3 setect ... from ztxlfal wh ere lHnr :> ' 0000001050' .
4 endselec t.
5 write / ztx lfal-l ifnr.
6 i f sy - subrc <> O.
7 writ e I ' no records found ' .
B endi f.

6. Copie a programa zty0206 para · · - e0206 (a listagem aparec! a


segu ir). Simpl ifiqu e 0 programs removendo 0 codigc desnecessario
e palavras inuteis.
1 report 2t y0206 .
2 tables : ztx 'lf al , ztx l f bl . ztxlfc3 .
3 data we l i ke zt xl f bl.
4 setect > f rom ztxlfal into ztx lfa1.
5 write I ztxlfal- lifnr .
oData Didionary, Parte 1
6 wri t e ztxlfal -namel.
7 enese1ect .
Objetivos do capitulo
8 if sy- subrc <> 0 or sy-dbcnt .. O. Depois de coinpletar esse capitulo. voc e devers set: capaz de:
9 write / ' no records f ound i n ztxl fa l" ,
10 endif . • D efin ir as diferencas ent re tabelas transparente, de pool e de cluster
11 ul t ne. • Criar dominies, elementos de dados e tabelas tra n sparen te s no Data
12 set ect ... f rom ztxl fbl int o ea .
13 write / ee- Itfnr- . D ictionary
14 write wa-bukr s .
• Crier aju da Fl para os campos de uma tabe la e criar vinculos de
15 encsete ct ,
16 if sy-subrc <> O. hipertexto dentr o ciaajuda F l
17 write I 'no record s found'.
• U tilizar os qua tro navegadores de clades fo rn eeidos pela SAP para
18 endi f .
visu alizar e m odificar dado s de ntro de tabelas
7. C opie 0 prog rama zty0207 para· · · e0207 (a Iisragem aparece a
seguir). Ele contem tanto urn erro de sintaxe como urn erro de Oe.scobriodo oiveis de versoo do R/3
prog ramacao. D esc ubra 0 que hi de errado e corrija 0 pro grama . A
safda deve exibir urn un ico registro (fabricance 1000) utili zan do a NOVO.... H6 muitas versees - tombern chemodas niveis de versec - do sistema R!3
est ru rura (co ns tru ct) de programacfo mais eficiente. TEUD '" em utiliza~6a nos die s de ho]e. A verscc 3.0 foi a primeira, mas desde suo
1 re port zty0207. introdu i)c o, a SAP tcmbem lc ncou as versoes 3 .0 a 3.Of, 3.1 g, 3.1 h e 4.00 0 4 .0c . Voce
2 ta bl es zt xlfal. pode de terminer a nlvel de versec de se v sistema utilizanda a caminha de menu
3 sele ct s ingle '" from ztxlfa l whe re lifnr > ' 0000001000 ' . System- > Status.
4 write I ztxlfal -l1fn r.
5 endsetect • Este livre foi tes tado em urn sistema 3.of. Seu siste ma pe de ser em Outre
6 if sv- suer c <> O. nivel de versao. Embora a maicria das difer encss deva ser menor com referencia
7 writ e I ' no records f ound' .
8 endi f.
I aos temas abord ad os aqui, algum as pod em causar confu seo au most rar infer-

L hllpJlwww.ccmpl1$.com.br
----~~--~ - - - ----------- -- - - - - - - - - ~
96 APRE MDA EM 21 DIAl ABAP/~
DlA3:0DATA DlaJONARY,PARTEI 97

macoes neste livre como incorretas. P or exemplo, caminhos de me nu po dem


ser alterados ent re os nfveis de versao. Sempre que possfvel, as di ferencas que Explorando os tipos de tabelas em R/3
pod em causar confusao foram observadas neste texto. Entretant o, se a fun cio- No R/3 ha tres tipos de tab ela: tab elas t ransparent es, de p ool e tabelas de
nalid ad e em seu sistema parec e diferir da descrit a aqui, voc e pode cons ultar as cluster, Elas sao mos t radas na Figura 3,1.
no tas de versao do R/3 , disponfveis online, para det erminar se a diferenca po de
ser atribulda ao nivel de versa-a. Para acessar as notas devcrsao, u tilize 0 segu inte Fig urQ 3 1

proc edimen to: as fr€!s tipos de tobelo


no Data Dictionary do
R/3. Tob./o ~'p<l,.ft"
S(RHH(AM ~ lnicie a ScreenCom "How to Display R/3 Release Notes" ogara .

P ara exibir as notas de versao do R/3:

1. Va pa ra 0 m enu p r i nci p al e es co l ha 0 ca m inho d e menu


T ools->Find->Search Interface. A tela Search Interface: Request
",b.le>T9 ",b."'T9
aparece.
2. Escolha
3. Pressione
0 borao de opca o RELN.
0 botao Choose na bar ra de ferramemas A pplic atio n. A tela A ", bolo <lcbonco d. dodo, ,.",.
ITlJ """"-A
Moo"", ..bel", "'belode bo",,"----
ITT] .o.q....... "'llelcl.> ""
''''' '''''''''''''''0 de c<l/'I'P<>1 "" R/3, m<>' "p'"'''' do dod<l. t,,,,' R/3. """.0 Iab.le> ""
Find Release Notes eexibida. • ",.""0 _
.o<""""",ltmo,"...".o ~o<nl!
u"'" '" be'a "" DOIC.
At. Ichb. "" IVJpode m
• """' . d;IG<. nl.
• nii me... d. C<lmp<>< d,I,,.,,,..
booc:"d. dod... .
At. ",bel", I'", pole>
~, 0 "' belc> DOICIVJ "" hila I., ",,"'pc" d. • a' <''''PG .lim .,.,.,.•• d,I.,•• ,.. """"" ..."'" e"""
4. Pressione 0 botso Complete List. A tela D isplay St ruc tu re: Complete e..... . p<imO';" <!G IO bela ODIC do IVJ ",;",oM ,m """''''''
" ' "'V"c1. <6<> .......
List of Release NOtes eexibida. .", 0GnI"",
..""' hon..........I.

5. D e urn clique em qualq uer + (sinal de adicec) pa ra expandir


0 no .
Modifications To ABAP aparecera sob 0 no de Basis, debaixo do Tobe los transporentes
subn6 ABAP/4 Development Workbench.
NOVO ~ Umo tobeio transporente no dlclcncrlo fern relocionomento um-poro-um com
Apro£undando-se no R/3 Data Dictionary TERMO '" umo tcbelc no ba nco de dod os. Sua estruturo no Dcto Dictionary do R/3
cor respond e a uma unicc fabelo de ba nco de dodos. Para coda defjnii;ao de tcbelo
Como uma revisao , por favor espere alguns minu tos e releia a sec;ao no Dia 2 fronspa rente no dlcloncrlo, he umo tobela ossociodo no banco de dodos. A tcbelc de
intirulada "Introduzindo o R/3 D ata Di ctionary" nesse mement o. ban co de dodos tem a mesmo nome, a mesmo num erc de co mpos e as compo s tern a s
Os objetcs Data Dictionary sao utili zados na mai or ia do s programas rnesmos na mes q ue a deflnlccc de fobe la do R/ 3. Quando examiner 0 de finiC;a o de umo
tobelo tronsporente d o R/3, voce po de oche r q ue estc olhando par a a proprio fabela de
ABAP/4. A natureza do entrosam entc dos pro gram as em A BA P/4 e objeto s
banco de dodo s.
DDIC tornam 0 conhecimento profu n da do D ata Di ctionary do R/3 uma
ha bilidade essencial de programacao. Portemo, comecand o co m esce capitulo, NOVO... As tab ela s trcn sporentes sec multo mois comuns do que as tobelos de pool cu
voce aprendera a criar objeros DDI C co mo tab elas, elem entos d e daclcs e Tn.MO ~ de duster. Elcs sao utilizad os pa ra a rmazenor dodos de oplicotivo. Os dodos
domfnios. de cplicctivc sao os dc dos-mestres o u c s dodos de frc nsc coo ufilizodos po rum cpllcotlvo.
Um exemplo de dod os-mestres e a tobelo de fobrico nfes (chomoda da dos-mestres de
fa briconfes) ou a tobe lo de clientes (cham oda dados-mestres de di entes). Um exemplo
de dodos de trcoscceo sec a s pedidos feito s pelcs cllentes ou as ped idos envia do s para
Muites cble tcs de dese nvclvlmento ufilizodos com o exemples 0 0 le ngo
as Icbricont es.
de fodo esfe livre (como tobelos, dominios e e lementos de dodos ) sao
bosec dos em oo jetcs reo's de desen volvlmen to no sfstemc R/3. O s
As tabe1as rran sparent es sao provavelmente 0 unico tip o de tabela que
objetos de exernplo te reo a mesmo nome que a s o bletos do R/3 reots,
voce criara.. As tabelas de pool e de cluster nao sao normalmente utilizadas para
mas eles serco prefixodos com ztx. Par exemplc, 1f al e umo tabe lo
real em R/3 e a fobela de exemplo neste livre e zt xlfal. armazenar dados de aplicativo mas, em vez dis SOl armazenam dado s de sistema,
como as informac oes de configu racao de sistema ou dado s esratlsticos e
historiccs . .
98 "RE NDA EM 21 DIAl ABAP/4 DIU DDATA DICTIDNARY, PAR" 1 99

Tanto as tabelas de pool como as de clus te r tern relacionamentos rnuieos- Alguns exemplos de dados contidos nas tabelas de pers onalizacao sao
para-urn com tabelas de banco de dad os . As duas podem aparecer como m uitas ccdigos de parses, c6d igos de regiao {esrado au provincia), numeros de conta
tabelas em R/3, m as elas sao arm azenadas como urna iinica tabela no banco de de reconciliacao, taxas de cambio, meeodcs de depreciacfo e condicces de
dados. A rabela de banco de dadc s tern urn nome diferente, numero de campos pre c;o. Cada fluxo de tela, validacao de campo e atributos individu ais de campo
diferente e nomes de campo diferentes dos cia tabela do R/3. A diferenca entre sao as vezes ~orientados por tabela via configuracces nas tab elas de personali-
as dais ti pos permaneee na carac terf srica dos dados que des armazenam e sersc zac;ao.
expli cadas nas se~6es a seguir.
Fig ur a 3 2
As lobe/os de pool
Poo ls de to bela e labelaLd",e,-,p""o",-o
",-,-
' _ femum
re/ocionome"to
lOYD Il.. Umo tobe/o de pool no R/3 tem um relociono mento muitos- poro- um com umo mvitos-poro-um com
illitO " tc belo no banco de dodos [vejo as Figuros 3.1 e 3.2). Pore ume tcbelc no pools d" tcbelo. .
bonco de dodos, ha muitos tabelos no Dota Oid ionory do R/3 . A tobelo no bonco de

-:
dodos tern um no me diferen te do dos tcbelcs no ODIC, tem um ncrnerc de campos .,
diferente e os compos tornb em tem nomes dlferentes. As tobelos de pool sao umo estruturo ri
(construct) pro priet6rio do SAP. I'

NOYO Il.. Quondo exomino umo tcbelc de poo l no R/3, voce ve umo descdccc de umo
TfUO" fobelo. Entretonto, no banco de dodos, elc e onnozenodo junto com o utros
tcbelcs de pool em umo cntcc tobelo chomodo pool de tobelos. Urn pool de tobe los e
umo tobelc de banco de dodos com umo estruturo especicl que perm ite qu e 05 dodos
de muitos tobelos do R/3 sejom ormozenod os dentro dele. Ele pode openos ormo zenor
tcbelcs de pool.

o R/3 utiliza poo ls de tabela paraarmazenar um grande numero (dez enas


a milhares} de tab elas muit o pequenas (ap roximadamenre de 10 a 100 linhas Durante a implemenracic inicial do sistema os dad os nas tabelas de
cada um a}. Os poo ls de tab ela reduzem a quantidade de recurs os de banco de personalizacao sao configurados par urn analista fun cional . Es se pro fissio nal
dados ne cessarie s quando mui ras tabelas pequenas tern de ser abertas ao mesmo nonnalmente tera experiencia relacionada co m a area de ne g6cio sendo imple-
tempo. A SAP as uriliza pa ra dados de sist ema. Voce pode criar urn p ool de rnentado e recebera treinarnen to ex tenso na configuracso de urn siste m a R/3.
tab elas se precisar criar cen renas de pe quenas tabelas que armaze na m , cad a uma,
apenas algum as linh as de dados. Para impl ernentar essas pequenas tabelas como Cluste rs de to bel a e tobe los de cluster
tabelas de pool, voce prim eiro cria a defini~o de urn pool de tabelas no R/3 para
arm azenar to das elas. Quando ativada, uma unica tabe1a associada (0 pool de HOYO .... Umo tobe /o de cluster e seme lhante a umo tcbelc de pool. Elo te m um
tabelas) sera criada n o banco de dados. Voce entdo pode definir as tabelas de pool mM.O " relocionomento muitos-porn-um com umo tc belc no banco de dodos. Muifos
tobelos de cluster 560 o rmozenodos em umc unico tobelo no ba nco de dodos chomodo
dent ro do R/3 e at ribuir t odas etas ac seu pool de tab elas (veja a Figura 3.2).
d uster de tobe /os.
As tab elas de po ol sao prin cipalmenre utilizadas pelo SAP para armazenar
dad os person alizados. Um cluster de tobe/os e semelhonte 0 um poo l de tcbelos. Ele ormozena muitos
tobelos den tro dele. Tcdos cs tobe los que ele o rmozeno 560 tobelos de cluster.
NOYD .... Quando umo empresa lnstclc quo lquer sistema grande, ele normo lmente e
JrutO ~ perso nolizodo de o lgumo moneirn perc encontror 05 necess idades c niccs do Como as tabelas de p ool , as de cluster sao out ra estrutura (co nstru ct)
empreso . No R/3, esso perscncluccec e feila via tobelos de personolizo¢o. As tcbelos proprietaria ciaSAP. Elas sao utilizadas para armazenar clados de algumas (aproxi-
de person olizoc;oo co ntem co digo$, volidoc;oes de compo, intervolos d e numero e madamente de 2 a 10) tabelas muito grandes. As tabelas de cluster s.eriamutilizadas
parametros que olterom a mon eiro como os op!icotivos do. R/3 se comportom.
quando essas tabelas tivessem uma parte de suas chaves prim arias em comum e se
as dados nessas tabelas fossem to dos acessados simultaneamente. as dados sao
; arm azenados logicamente como rnostrado na Figura 3.3.
I
I

j
I
100 APREIiDA EM 21 OIAS ABAP/4.
OIA 3:0DATA DlGlONARV, PARTE 1 101
Os clusters de tabela contem menos tabelas que as pools de tabela e, Fi g u r a 3 4
dif erenre dos pools de tabela, a chav e p rimaria de cada tabela dentra do cluster As fob e/os cdhdr e
I CDHDR Cluster !able I COpa s Cluster table

de tabelas ccrneca com a mesmo campo ou campos. As linhas das tabelas de cdpos fern os I Change document header I Change document Items
cluster sao combinadas em uma (mica linha no cluster de tabelas. As linhas sao primeiros quatro Field nama Field name Key Typa l engtll
campos de creve
combinadas com base na parte cia chav e primaria que elas tern em co mum. I 171 CLNT 13
As sim , quando uma linha elida de qualquer uma das t abelas no cluster, codas
primaria em comum
e sempre sao I
MANDANT

OBJECTCLAS [7 1 CHAR r-w-


as linhas relacionadas em todas as t abelas de clus ter t am bem sao recuperadas, ccesscoos iuntos e I OBJECTID 171 CHAR r--.w
mas apenas uma {mica E/S e necessaria .
enlao s60
I CHANGENR 171 CHAR r-w-
Urn cluster e vantajoso no caso em que as clados sao acessados a partir
ormozenodos no
cdcls de duslerde I TABNAME 171 CHAR r-w-
de multiples tabelas simultaneamente e essas tabelas tern pelo menos urn de lobe/os .
ITA'KEY 171 CHAR 170
seus campos de chave primaria em co mum . As t abelas de cluster reduzem 0 IFNAME 171 CHAR 110
numero de leituras do banco de dad os e assim melhoram 0 de sempenho. I CHNGIND 171 CHAR J1
IT EXT_CASE 171 CHAR 11"
Figurg 3 3
Os clusters de lobe/a
Detolhe do pedldo
do tobelc IUNIT.OLO 17 fUNiTrs
~:~;~~: ~ I~:~ R
Ccbeco lhc do pedido PK
orm ozenom dodos de ~
vc rtes lobe/os do tobelo 1000 01 ITEMl DATA
PK 1000 02 ITEM2DATA
bcseocos nos compos
de chove prim6rio que 1000 Header Data 2000 01 ITEM 1DATA ICUKY_NEW [71 CUKY 15
e/os fern em comum. 2000
3000
Hec er Data
Header Dolo
2
2000 03
ITEM20ATA
ITEM30ATA I VALUE..NEW 171 CHAR J2i4
0. c/adm0P'l"'''''''
no R{.!"""", so 3000
, 01 ITEM 1DATA I [II J2i4

.:
VALUE_OLD CHAR
,",I~ .... . ", .".. '- J
IObolo, .. ~,.do,.
j
I I

~~~,. - - --- - --~ - - - -- - - - -- ---- -- -- -~--- --_ . _----- - -- Tabla Cluster CDClS
O, do<Io> ..,.I o Change document header
I ~ -'- ~
0"""'.""'" o Variable lenght row....... r .... Fieldname.

:-:::~~ --~~ I
M"
1000 Order Heoder Dote 0 1 ITEM 1DATA 02 ITEM20ATA
2000 Order Heeeer Dote 0 1 ITEM10ATA 02 fTEM20ATA MANDANT
clII1lor: ~ 03
3000 Order Header Data 0 1 ITEM10ATA IOBJECTCLAS

IOBJECTlO

Per exemplo, como mostrado na Figura 3.4, os quatro primeiros campos ICHANGENR

de chave primaria em cdhdr e cdpos sao identicos. Eles rornam-se a chave IPAGENO
primaria para 9 cluster de tabelas com a adiliaOde urn cam po pad rao de sistema ITI MESTMP
pageno para assegurar que cada linha e(mica. IPAGElG
Como outro exemp lo, suponha qu e os dados de cabecalho d o pedido e IVARDATA
as tabelas de itens do pedido sejam sempre nece ssaries ao mesmo tempo e
ambos tenham uma chave primdria que cornelia com 0 mimerc do pedido.
Tanto 0 cabecalho como os itens poderiam ser armazenados em uma (mica
Restric;6e s no s tob.elo.s...de..p.ool e de cluste r
tabela de clus ter porque 0 primeiro campo de su as chaves prim arias e a m esm o.
Quando implementado como urn cluster, se uma linha de cabecalho for lid a, As tabelas de pool e de cluster sao n orm alm ente u tilizadas somente pela SAP
todas as linhas de item para de tambem serao lidas p orgue rodas elas sao e njio utilizadas p or clien tes, pr ovav elrnente p a r caus a do format o proprietario
armazenadas em uma unica linha no clust er de tabe1as. Se urn uni cc item for dessas tabe las den rro do banco de dado s e p or causa das resrricoes tecni cas
lido, a cabecalho e rodos os irens tam bern serac lid os, porque eles sao ar- colocadas scbre su a utilizacao dentro de progra mas ABAP/4. Em um a tabe la
mazenados em uma (mica Iinha. de pool au de clus-ter:

,i
I
~~J
••• -.v v •• v.v • w ••• w. w
-- w.tW. w:ww _ _ • _ 'W ' & _
-~- -
DlA 3:0 OATA OIITIONARY, PARTE1 103
102 " m DA EM 21 DlAS AWl'

F igura 3 5 HI
0"
• Os indic es secundarios Da D podem ser criad os.
As lobe /os 560
• Voce: DaD pede utilizar as estrururas (constructs) do ABA P/4 sel ect co mposlos de
dt sti net ou grou p by.
com pos, que 560
compostos de I Compo
I" Eo cc mcostc de um
• V oce DaD pede ut ilizar SQ L nativo. elementos de dodos,
que pa r suo vaz 560 " co ntem r6tulos de com po
• Voce nac pode especifi car no mes de campo depois cia cldus ula or der compostos de Elemento de dod os
e docum entocc o o nline {ejude Fl)
by. A unica variacao permitida e orde r by pr i mary key. dom inios. ,
-, preci ~e de urn
, des creve ccrcct ertsuccs
a usa de tobelcs de poo l e de cluster pode impedir que suo empreso tecnkc s. (p. ex.,

(Cuicfudo utilize plenomente a s fe rromentos de relat6 rios indep end entes se eic s
Do mlnio lipo e com primen!o
dos do dos)

'~
leem tabelas diretom ent e do bonco de dodo s, porque a s ta belos de
poo l e de closter-tern urn fo rmato prop riet6 rio do SAP. Se suo emp reso
q uer utilizer ferrome ntos indepe nde ntes desse ttpo, voce pe de querer F jgurg 3 6
buseor olternotlvos an les de crier tobelas de po ol au de du ster. Compos de Cu stom e r Tobie Ele me nto s d e do dos Domfn io :
Um exemplo de
praiela utilizondo
tobelos, ele mentos
~
Par causa dessas restricoes nas tabel as de pool e de cluster e par causa de de dodos e dom lnios. Zphonew
sua utilidade limitada, este livre concen tra-se na criacao e u tilizacao de tabel as
ROtu\o: numern comerci ol
transparentes. A criacao de tabelas de pool e de cluster na o e abordada .
phonew Zpho nel Zphon.
loxlipo: cnor
Explorando co mponentes de tabeloL- _ phonef
phoneh R6tulo: lo~ comp.: 12
I'
Voce ja sabe a que as tabe las transparentes sao e as dif erencas entre tabel as
Zphoneh
transparentes, tabe las de pool e de cluster. Agora, voc e apr enderd as co mpo -
nentes que sao necessaries para criar tab elas. RO fulo: telelone r••idenciol

NOVO.... Umo tobelo e compostc de campos . Para crier um compo voce precise de um
ifRMO" e leme nto de dodos . 0 eleme nta de dodos conte m os rctvlcs de ccmpo e a Par a crier urn campo, voce normalmente inicia criando urn dom inic para
docwnentccoc online [tcmbern chcmcdc ojuda FJ) para a ca mpo. Ele e purome nte ele. N este caso, voce pode criar urn dominic generico de numero de telefone, I
descritivo; co ntem as ccrccterlst'ccs sem enticcs para 0 compo , tcm bem co nhecidas como chamado zphone e dar a ele urn tipo de dado de CHAR e urn comprimento de 12. !
"co ntexte do neg6do"' . Os rotulos que voce oferece dent ro de um ele mento de dod os
Isso seria u rn dominic generic o de numero de relefone : a maioria de s ripos de
seroo exlbidos no tela 00 lodo de um compo de entrada . 0 ele mento de dodos tcmbern
contem docomentccec que e exlbidc quando a vsuc ric pede c judc nesse compo
mime ros de t elefone poderia ser armazenada ut ilizando-se esse dominie.
pressionand o a tedo Fl . Como esse, ele pede ser ut ilizado para definir tipos especrficos de num eros de
telefone, co mo fax ou nu meros de tel efone residencial.
NOYO ~ Umo defini'ioo do eleme nte de dodos eXi ~ e um dom;nio (veia a Figura 3.5). 0 Dep ois de criar 0 do mfnio pa ra armazenar a descricao puramen te tecnica
HRMO" dam inio co ntem a coraderfstico tecnco de um ca mpo, como 0 co mprimenta de urn cam po, voce entac cria urn elemento de dados para armazenar a s
do compo e 0 tipo de dado. atr ibutos descritivos do campo . N o elem en to de clades, voce deve digitar 0
O s domtnios e as elemen tos de da do s sao reutiliz ave is . U rn domfnio no me de u rn domini c par a dar-Ihe a caracterfst ica tecnica . Entao, voce insere
po de s er utilizado em mais de urn elemento de dados , e u rn elemento de os r6tulos e a documentacto (ajuda F1 ) para d escr ever as dado s que voce
armazenara. N esse exemp lo, voce provavelm en ce criaria nes elem en tos de
dado s pode ser utilizado em mais de urn campo e em mais de uma tabela.
Par exemplo, imagine que voce ' precise pr ojetar um a tab ela de infor- dudes, urn pa ra cada numero de telef one resid encial, comercial e fax. Em cada
elemento de dad os, voce di gitaria ro rulos de campo descrevendo 0 tipo de
macoes de cliente chamada zcust que deve canter os nti meros de te lefo ne
numero de te lefone que voce arma zen ara co m ele e a ajuda Fl pa ra a usuario
ccmerc ial, fax e residencial (veja a Figura 3.6) .
final.

t
----• • w_ -• ----- • w _
- -~ ----- - -- --- - ..., ~

104 APiENOA EM 21 OIAI ABAP" OIuoomOlmOHARY,PARTE l 105

Te ndo criado a s elem entos de dados, voce agora p ode criar a tabela, Voc e Po r exemplo, im agine que voce deseja cria r uma nova tabe la que co nrem
p od eria criar treS camp os de ndmero de telefone na tab ela {residencial, comer- informaco es adicion ais de fabri cante. Quando voce p rojeta a tabela, voce deve
cial e fax) e arribuir 0 elemento de dados corresp ond ence a cada campo. U rn associar as fab rican te s em sua tabel a com esses na tab eia de SAP .
eleme nto de dados eat ribufd o a cada campo. 1 550 oferece informacoe s descri- Em sua tab ela, erie um a chave primdria con tendo 0 mimero de fab ricante.
tivas do campo do elemento de da dos e informacoes te cnicas do do minic a que Utilize 0 elemen to de dad os exist ente para cria r seu campo. As dua s rabe las
e1e faz referencia. Quando 0 campo e utilizado em uma tela, ele obtem urn estjo agora ch aveadas no campo de numerc de fabricante de SAP urilizandc
rotulo e a documentacao de ajuda Fl do elemen to de dad os e seu com primento os mesmos elem entos de dados e do mlnios. Se a SAP alterar 0 tipo de dad o ou
e ripo de dado formam 0 domini c deruro do elemeneo de dadcs . o comprim en to do seu camp ?, 0 seu mudara au to rnaticamente.
Em outre exemplo, voce pode pre cisar armazenar urn no m e da pes soa em
tres tab elas diferentes: tab elas de clientes, [abricantes e empregados. Na tabela Convencoes d e ctribuicco d e nome para tabe las
de clientes, voce q uer arm azenar urn nome de cliente: na tabe1a de fabricante e seus compon entes
urn nome de fabrican te e na tabela de empregado urn nome de empregado. Par
As tabelas, elementos de dados e dominies cria dos no site de cliente devem
isso, e uma boa ideia dar 0 mes mo rip e de dado e comprimento para todos as
campos de nome de pessoa: voce pod e criar urn unico domlnio generico de seguir convenc oes de atribuicjo de nome da SAP para objetos de cliente. E stes
nome d e p essoa , par exemplo zper sname. En rao voce pode criar urn eleme nto estao delineado s na T abela 3.1.
de dados para carla urilizacfo de neg6ci o de urn nom e da pessoa: p ara 0 n om e
Tabela 3.1 Convencoes de otribu i~50 de nome para tobe los, compos, ele me ntos
de clienr e, 0 nome de fabricanre e 0 nom e de emprega do . D entro de cada
de dod os e do minios criodo s pelo cli ente
elemento de dados voce referencia seu dominic zpersname pa ra da r a todos eles
a m esma caracterf srica. Voce en tao pode urilizar esses eleme ntos de dad os para Tipo de objeto Comprimento Prlmeiro eereete re
criar camp os denero de cada tab ela. max. d e nome permitido
Tobelo 10 s, z
Ma nte n d o as caracterfsticas tecnicos d os ca m pos clemente de dodos 10 v, z
Se voce precisa alterar 0 comprimen to do camp o depois qu e crio u uma tabela, Domlnio 10 r, z
voce apenas precisa altera-lo no dominio. Se 0 dominic e utilizado em mais de Compo 10 Quolquer ccrcctere
urna rabela, a alteracao eautom aticam ente propagada para todos os campos que
utilizam esse dominio. " T odos os nomes tern urn m aximo de 10 caracte res de comp rimenro.
P a r exem plo, se os an alist as de neg6cio solicicassem que voce aumentasse Os nomes de todas as tabelas, dominios e elem ent os de dados que voce
a comprimento de seu camp o de nome de pessoa de 12 para 15 caracreres, voce cria devem iniciar com 0 caractere y ou z, Voce nao p od e utiliz ar qualquer outro
alteraria 0 comprimento no dominic zpersname. Quando vo-ce ativar sua al- caractere no comeco; todos as outros sao reservado s peia SAP . 0 sistema RJ3
reracio, a s cornp rimentos de rodc s as campos de nom e 'baseados nesse imp oe essa convencio: voce obterd uma mensagem de errc se tentar criar u rn
do min ic (nas tabelas de clienre, de fabricanre e de empregado) tambem c bjeto que tern urn nome qu e na c se adapte a essas convencoes.
mudarao. Os n om es de campo podem comecar co m qual quer caractere. Entretanto,
cert as palavras sao reservad as e njio podem ser u tilizadas com o names de
Determ ina ndo quando criar ou reul ilizar domini os campo. A tabela de DDIC t rese cc ntem a lis ra completa das palavras re s er~
e elementos de dodos vadas. 0 conteudo de t re se pode ser exib ido utilizando 0 procedim en ro do
Cada sistema R/3 vern co m mais de 13.000 dom inios preexist entes criados pe1a Dia 2 na seiSao intitul ada "Exib indo os clados na tabela" .
SAP. Q uand o voce cria urn novO camp o, voce deve de cidir se cria urn no vo
domini o o u reutiliza urn existente. Para tomar essa clecisao, detennine se a tipo Criando uma tabela transparente e seus
au co mprimem o de dados de seu campo deve ser dependeme de urn campo .c.omp.onlJ;;elLnutJ;;:
e.:.s _
existente da SAP . Se seu camp o precisa ser in depen dent e, erie urn novo
Nas sec;6es a seguir, voce cria ra dominio s, elemen tos de dado s e, por fim, sua
dominio. Se seu camp o cleve ser depend ente, reuti lize urn domin io de SAP
existente. De forma similar, voc e deve reutilizar elem entos de dados se seus primeira tabela transpa ren te - ela sera um a versao escalada para baixo da
rotulos de campo e docu m en ta~a o alt erarem quando a SAP alterar os de1a. tabela-mestre de fabricante fornecida pela SAP iden tificada Hal.

-_.
e¥¥.w w __ ._~_~_

-- ...
01' " ODATA DICTIONARY,PART£1 107
106 ",," OA EM 21 OIAS ABAp/'

Na abo rdagem bottom-up, voce primeiro cria as domini os, dep ois os
Para as prcpcsitos deste livre, porto do pressupostc qu e a siste ma R/3
elemento s de dados e per fim a tabela.
j6 noo armoze na quoisq uer Informocoes-mestres do fob riconte . Ima g-
N a abo rdagem top-down, voce cria primeiro a tabela e depois cria os
ine que a tobe lo Hal noo existe, nem sevs elementos de dodos, nem
seus dominios. Portonto, nestes exerdcios nos as crlcremos. eleme nto s de dados e os dominies a medida qu e vo ce avanca.
A abordagem bottom-up emais intuitiva para 0 alun o iniciante, mas rapida-
mente to rna-se incomoda. A abordagem top-down e muito mais facil de utilizar
Para armazenar informacoes-mesrres do fabricante voce criara a tabela
depois de voce se familiarizar urn pouco com a pr ocesso de cria~ao de tabela. P a r
•• -1fal. Ela contera campos para urn mimero de fabricante, urn nome, urn
essas razoes, demonstrarei as duas tecnicas, iniciando co m bo ttom-up.
c6digo de regiso e urn ccdigc de pais. Os nomes de campo e as caracterfsricas
Q uando ler as secoes a seguir , voc e primeiro ap rendera sob re urn objeto
tecnicas que voce utilizara sao mostrados na Tabela 3.2. Urn x na coluna de PK _ como um do min ic - e encao criara urn. Os ob jetos qu e voce cria ra sao
indica campos que formam a chave primaria . (0 procedimento de instalacao
descriros na Tabe1a 3.2.
criou uma tabela identificada zt xlfal em seu sistema R/3. Ele e muito seme-
lhante a tabela - - -Lfal . Utilize-a como uma referencia enquanto Ie esse

~o
capftulo.) Lernbre-se, quand o crier qua lque r dos objetos neste livro, utilize seu
hand le (•• -j como os primeiros tres cc rocteres do nome de c bjeto.
Tabela 3.2 Os compos e suos coroeteristicos para a tabela - - -Ha l [Os corocte res ••• represe ntam seu hand le. 0 handle foi desc rlto no
Ca pitulo 2, no secco intituloda "Introdu zindo convencces de otrtbuke c
Nome PK Nome Nome Tipo de nome de progroma".)
de ca mpo de DE de OM de dado Comprimen10 Nee utilizeat x como os primeiros tres ccrc cteres. Se voce utilizer ztx,
mandt sera muito difidl dete rminar quais 5 6 0 as se us cbjetcs.
mandt
1ifnr x • • - 1 i fnr " · lifnr CHAR 10
namel -- - namel • - -name CHAR 35 Atjyo<;oo de objetos ODIC
regio • •• regi 0 • • - reg i 0 CHAR 3
1andl • ··landl • ·-land! CHAR 3 Antes de oprender sabre objetos ODIC profunda me nte, voce deve sober sobre
MOVO ...
T,ijlO ,. otlvoceo de cbjetc. A otivccco cplico-se a todos a s cbjetos de dicion6 rio.

Esses names de campo e suas carac terlsticas tecnicas sao beseadcs em Depois de criar urn objero Data Dictionary, vo ce 0 ativara. Ativar urn
campos reais da tabela Hal. o bjeto e simples _ voce simp lesmente deve pres sio nar 0 botao Active. 1550
alrera 0 statu s do obj eto para ativo .
Urn objeto deve est ar ativo antes de pcder ser ud lizado. Por exernpl o, se
N60 altere as na mes mostrodos oclmo. Os exerclclcs mois adian te tent ar utilizar urn e1emento de dados inativo 01.0 criar urn campo, voc e obtera
neste livre contcrn com esses names de compo como mostrodo. Se uma mensagem dizendo qu e 0 elemento de dados na o exisce nem esra ativo.
voce n60 utiliza esses names exctcs, as exerclclos sobseoueroe s nco Sua respos ta seria ativar 0 elemento de dados.
podem funcionar. Se voc e altera urn o bjeto, deve ariva-lo n ovamente para as alreracoes
to rnare m -se efetivas. Se voce salvar as alteracoes mas n jio ativar 0 objero, os
Como essa tabela contem cladas de aplicativo, ela dev e ser dependenc e do o bjeros que se re ferem a ele nao "saberao" da altera~ao.
cliente. Portanto, 0 primeiro campo deve ser mandt. (C a nsult e 0 Capitulo 1 se
voce precisar revisar as tabelas dependentes de cliente.) De sco brind o dominios
Ant es de realrnente criar urn domlnio, descreverei a tela que voce ut iliz ara para
Ab..~pa ra cria r tobelas cris-lo .
Hi duas abordagens que voce pode utilizar quan do criar tabelas: Na Fi gura 3.7 esta a tela que voce utilizara para eriar urn dominio - a
tela Dict io nary: Maintain Domain. Nessa tela, voce especifica 0 texto curtO, 0
• bottom-up
tipo de dado, urn comprimento de camp o e opcionalmente urn comprimento
• top-down de saida. Estes iteus sao explicados naS se~6es segu intes.
~- TT w Wo w
o_ W • W Yo W Woo W w. W W WWW.WWWi
---
~ ~ ~ --- -
--
- --- - -
--------- - _ --..- -- --- -=- ""="'" ~,

108 ' ' ' EN D' EM 21 DIAl ,SAP/. DIU D"T' DiCTlONARY, PARm 109

f.i.g..u.r.a 3 7 Tabela 3.3 Tipos de dados comumente uflllzodos


A tela DidionOlY:
Maintain Doma in e Tipo Descr isa o
uti/Jzoda pora error
um domfnic. CHAR Strings de cc roctere (maximo de 255 ccroctere s]
DEC Vclores decimais (cornprtmento maximo de 31)
OATS Compo Dote
TIMS Compo Time
INTI, INT1 , INT4 Volores inteiros
NUMC Compo de coroctere que pa de canter epenes nurnencos

Voce cleve sempre pressionor a tecla Ente r depo is de preencher a


compo tipo de dodos. Pressionor Enter ceuso a cltercc oo do tela
bcsecdc no tipo de dodo que voce especificou. Se 0 tipo de dodo e
urn tipo numertco com sinal, uma coixo de seleceo Sign opcrecero.
Para compos que permilem decimais , urn campo Decimal Places
oporecerc . Pere campos de coroctere, uma ccixo de selece o Lowercase
Letters c pcrecero .

o campo Sho rt Text Os campos O utput Le ngth, Decimal Places e Lowercase


o campo Shor t Text contera uma descrlcac do dominic. 0 us uario final nunea
a ve j ela e exibida apenas par a os desenvo lvedores . Voce a vera quando abrir Letters
uma lista de do minies , com o em uma pesquisa. o campo Output Len gth indica 0 ntimero de bytes necessa rie s para dar saida
N esse campo , voce des crevera as tipcs de dados que voce quer que 0 ao campo para uma Iista ou para u ma tela, incluindo virgulas , p on to decimal,
dominic cont enha. Por exempl o, a descr icao de u rn domin ic de numero de sinal e quaisquer outros caracteres de for matacao. Por exemplo, na saida, os
telefone reutilizavel pode ler "Nemero de telefone generico" ou "Ncrnero de campos de data e de hora sao automaticamenre formatados com separadores.
telefo ne geral". Internamente, uma data earmazenada como oiro caracteres (sem pre YYYYMMDD),
mas a comprim ento de saida no dominic deve ser especificado como 10 para
permitir que dais separadorcs sejam ins eridos. Se 0 campo Output Length
Adicionor a pclc vrc "dcrnlnic" no finol do descrtce c de texto curto e estiver em branco, seu valor automaticamente sera calculado pelo sistema
red undonte e deve ser evltc do. Por exemplo, 0 texto curto "Ncmero de quando voce pressionar Enter.
telefone de dominic qenericc" devero ser evttodc. Em vet dtssc, digite Para campos decimais, voce pode especificar 0 nume ro de decimais
"Ncme rc de telefon e gene rico". cclocado no campo D ecimal Places.
Os campos de caractere sao normalmente convertidos em letras maius-
o campo Da ta Type culas antes de serem armazenado s no banco de dados. Voce pode desativar essa
o campo D ata Typ e especifica a repres entacao utilizada internamenre pelo conversao desmarcando a caixa de selecao Lowercase Letter s.
banco de clados par a arma zenar 0 valor desse campo. Para alguns ripos de dados, A maioria dos desenvo lvedores nao tern problemas em entender a repre-
e1e tambem dete rmin aa validacfc de formato de entrada e formate de saida do sentacio interna de caract ere ou campos im eiros. En tretanto, a pos icjic do
camp o. Po r exemplo, campos do tipo de dado OATS (data) e TlMS (hora) sao ponto decimal nos campos decim ais efrequentemente urn campo de confus6es,
automaticamente fo rmatados com separadores em uma de saida de lista ou por isso descrevemos esse assumo aqui.
quando sao exibidos na tela. Na entrada, e1 es rambern devem estar no formato Para campos de tipo DEC, 0 ponto decimal nao earmaze n ado no banco de
de data ou he ra ou um a mensagem de erro e emitida para 0 usu ario. dados. Sornente a parte numerica e armazenada; nao 0 decimal. Na saida, a
Os tipos de dados mais comumente utilizados sao iistados na Tabela 3.3. posicao do decimal edeterminada pelo valor que voce colocano camp o Decimal
Places do dominic.
·_,~~t2}~' 01.&. 3: 0 DATA OlalONARY, PARTE 1 111
~.~ll<~ O . APREND A E"~lf;:~:B~:~4 0 campo seja adequadamente exibido, voce deve especificar Problema Possivei s sint omas SolUliCO
urn comprimento de saida que in c1ua urn byte para 0 ponto decimal e outro Nee posso criar Qu and o voce pressiona 0 botco Olhe no barro de status no porte
para cada separador de milhar que pos sa ser exibido. Entretanto, 0 sistema o dominio Creole, nodo ocontece . inferior do janelo e pressione 0
calcu lara 0 comp rim ento de saida se voce simplesmente deixar em branco 0 balao novomente. Epr cvc vel
campo O utput Length e pressionar En ter. . que voce vera umo mensogem
cl. I,
Q uand o pressiana a ba tao Altere a name de dominio :~
Cria ndo um do minio
Creole, voce ve a me nsagem pa ra y au z.
Nesta seciio, voce aprendera a abo rdag em bottom-up para criar urn dominic .
"Syste m change o ption
do e s not allow cha nge s to SAP
S(mNCAM~ Inid e a ScreenCom "How to Crea te 0 Domain" ogoro . o bjects".
Q ua ndo pressiono 0 batao Altere 0 name de domrnlo
Execute esse pr ocedimento duas vezes para erial' os dominies •• '1; fnr Cre ate , voce ve a me nsa ge m pora inicior co m y a u z.
" Enter occess key".
e • • • namel. A ajuda com problemas comuns e dada no diagn6stico e solucao
Q uan do presslonc a bctoc Soltcito outcrizoccc de
de problemas que se segue. Se voce river problemas ern alguns des passos, nao
Create, voc~ ve a mensoge m de senvolvimento do sev
se esquec;a de consulter 0 . diagn6stico e solucac de problemas. " You are not authorized to moke odm inistrodor de seguron<;a
cha nges".
1. Comece na tela D ictionary : Initial Screen . (P ara chegar la a partir d o
menu principal SAP, escolha 0 caminho de menu Tools->ABAP/4
Q uonda pressiono a botcc o nome que voce digitou j6
Creole, vo ce ve a mens agem existe no Data Did iona ry.
Workbench, Development-> ABAP/4 Dictionary.) "a lrea dy exists". Escalho urn nome de domfnio
2. Digire 0 nome de domin io no campo O bject N ame. diferente.
·3. Escolha 0 batao de 0PliaODomains. O btendo "W: {calculate d output length is Deixe em bronco a ca mpo
mensa gem sma ller tha n specified)." Output Length e pressio ne
4. Pression e 0 batao Create. Voc e entac ve a tela Dictionary: Maintain Enter e depois Activate,
Domain. as campos contendo pontos de in terrogacao sao campos
"E: Value table doe s not exist." Delxe em bronco a ca mpo
obrigatorios. Vclve Table, presslone Ente r e
5. Digite uma descric ao do dominio no campo Short Tex t. depois Activate.
6, Preencha no campo Data T yp e. Voce p ode colocar 0 cursor nesse
campo e pressionar a seta para baixo a fim de exibir uma lists de tipos .Obtendo dccumentocco de SAP nos dom inios
de dados permitidos . Selecione urn ripe cialista ou digire urn. H i muitos lugares para obter documentacao de SAP sobre as recursos de s
7. Digi te urn comprimento de campo. domfnios.
Se voce deseja ver a do cumentacao que descreve todos os ripo s de dados
8. Pressione 0 botco Active na barra de [erramenras Application par a co
e suas u tilizacces, coloque a cursor no campo Data T yp e e pressione Fl . Voce
mesmo tempo salver e ativar 0 domfn io. A tela Create Object Catalog
vera uma caixa de dialogo cam en do campos destacados. De urn clique nesses
Entry e exibida .
camp os destacados para mais detalhes.
9. Pressione 0 botao Local O bject. Vo ce e levado de volt a a tela D ic- Vo ce pode tambem consultar a ajuda da biblioteca do R/3 para encon rrar
tionary: Maintain D omain , docu me nt acao adicional sobre tipos de dados e outras proprie dades do
10. Pressione 0 botao Back na barra de ferramen ras Stan dard. 1550 0 leva dom fnio, Para visualizar essa documenracao, a partir de qualquer tel a escolha
de volta para onde voce comecou nes se procedi mento, a tela o caminho de menu Help->R/3 Library. Voce vera o menu principal da
Dictionary: Initial. biblio reca do R/3 , A partir daf de urn clique nas seguintes guias: Basis Com-
ponen ts- > ABAP/ 4 De velopment Workbench- > ABAP/4 Di ctiona ry- > New
D evelopments In The ABAP/ 4 Dic tionary In Release 3.0.
Para ainda m ais documentacdo sabre tip os de dcdos no dominic, de
dent ro do do minic escolha 0 caminho de me n u Help-> Extended help . Entao
112 t...==:...:::..:::...:.:.::.:..::.:::.:.:..:...
APREHDA EM 71 OIAS AB AP/4 j- ~==~~'_'_
0143:0 DATA DIOlONAR'f, PARTE 1 113

de urn clique em C reat ing D omains e depois de urn clique em External Data Os ca mpos Field Label e Header
Type. A parte inferior da tela rnostrada na F igura 3.8 conrem quatTO campos de texto.
Para obeer doc urne ntacao que descreve 0 mapeamento de tipos de dados as prime iros eres sao rctulos de campo. Quando qualquer camp o aparece em
de d ominic par a cipos de dad os do AB AP/4. exiba a ajuda Fl para a palavra- uma te la (como u rn campo de entrada em uma tela de entrada), urn dos campos
chave "tables" . (Par a fazer isso, dent ro do editor de ABA P/4, colo qu e 0 cursor cur tos, medias a u longos ap arece rao aesquerda del e como urn rotulo de campo.
napalavra t abl es epressioneFl.) o programador escol he urn des ses r6tul os de campo quando ele cria uma tela.
o conreudo do cam po H eader aparecera como urn cabecalho de coluna no
Descchrindc elementos de dodos tapa das listas,
Antes de realmente criar urn elernento de dados , descreverei a tela que voce Se os campos que voce cria com esse elernentc de dado s nao aparecerem
utiliza ra para crif-lo. em quaisquer telas , desative a caixa de selecso Ma int ain Field Labels e pressione
A Figura 3.8 mos tra a tela utilizada para criar um elem ento de dad os. Aqui a teela Enter. Voce nao veri mais os campos Fie ld Lab el e Header. Voce tera
voce esp ecifica 0 texto curto, no me de dominic, r6tulos e urn cabecalho, que de pre ssionar Enter duas vezes para [aze r a s campos desaparecerem se esses
sao explicad os nas selioes seguintes. A documentacfc tambem pode ser criada camp os contiverem valores.
depois que 0 elemento de dad os foi salvo.
A documentccdo de elementa de dodos
F i g ur a 3 8 Depois que voc e salve 0 eleme nto de dados, urn bouo Docum entatio n aparece
A lela Dictionary: na barra de ferramentas Application, de modo que voce possa armaze n ar te xto
Chonge Dolo na forma livre. 0 usu drio ve esse texto quando solicita ajud a Flo E m outras
Element,
palavras , quando urn campo de tabela que utiliza ess e elemen tc de dados e
exibidc em uma tela) 0 usuario pode colocar 0 cursor ness e campo e pressionar
FI para exibir a documentacao que voce digi tou aqui .
Quando voce ve a tela Documentation, a primeira linh a con ted as
caracteres &DEFINITION&. Isso e urn titulo; nao alte re essa liaha. Digite sua I
I
documentacio comecando na linha da is.

A docornen tcceo de elemento de dodos e frequ entemente muilo util


para 0progro mad or. l endo esse elu de Fl , 0 progro mod o r pode •
determiner 0 utilizo<;oo de neg6cio dos dodos, Pcrtc ntc, voce sem pre
deve crior o juda Fl para 0 usu6 rio otraves do batao Docume ntatio n.
l
t
/
Crianda um elemento de dodos
N esta seCjao, voce aprendera a abordagem bottom-up para criar urn elemento
de dados.
o cam po Shari Text
o campo Short Text descreve urn co ntexte de neg6cio para urn dominic. Po r
exemplo, urn "n ume rc de tel efon e de cliente" e urn contexte de neg6cio
S(RHNCAM~ Inicie a Screen Co m "How to Creote a Data Element" ogo ra .
I
especifico para urn dominic "n um ero de te lefone gener ico" , en rjio ele seria uma
descric ao apropriada para urn elemenro de clades. 0 usuario fin al vera essa
descrica c se solicitar ajuda Fl para urn campo que foi criado ur ilizan do esse
elemento de dados .
"
Exec~t e esse prc cedi mento du as vezes para criar os elementos de dados
. , i fn r e " ' namel. A ajuda corn proble mas comuns edada no diagnosrico
e solucjo de problemas qu e se segue. Se voce tiver problemas com qualquer u rn
dos passes, nao se esqueca de consultar a Sclucac de pr oble mas.
I
I
;
114 AP ' EN DA EM " DiAl " ,P/4 DlA3, ODATAOlCTIOHARY,PARTE 1 I 115

1. Comece na Di ctionary: Initial Screen. (Para chegar ai a partir do menu 14. Pressione 0 botao Back. Voce e levado de volta aDictionary : Initial
principal SAP, siga 0 caminho de menu Tools->ABAP/4 Work- Screen.
bench, Developmen t-> ABAP/ 4 Dictionary.)
2. Digite 0 nome de elernentc de dados no campo Object Name.
Problema Possive is SoluCjoo
3. Escolha 0 borso de op~ao Data Elements. stntem es
4. Pressione 0 bo-se Create. A tela Dictionary: Change Data Element Nsc posso Q uando voce pressiono a botcc 0 1he no borra de stotus no
aparece. crier elementos Crecte, nade acontece. parte inferior do jonelo e
5. Digite rexto curto para 0 elemento de dados. de dodos ~ressi on e 0 botco nova mente.
E prov cvel que voce vejc umo
6. Digire urn nome de dominic e pressione a tecla Enter. Se 0 dominic mensag em.
existe e ests ativo, seu tipo de dado e comprimento aparecerao. Se
Quando pressiono 0 botoo Altere 0 nome do elemento de
voce nao vir urn tipo de dados e comprimento depois de pressionar Create, voce ve 0 mensagem dod os pa ra inicior com y ou z.
Enter, verifique 0 nome de Data Element. Se a nome estiver correto, "System change option does
verifique se esta ativo abrindo urna nova sessao (utilize 0 caminho de not a llow changes to SAPobjects".
menu System- >C reate Session) e exibindo-o no Data D ictionary. Quando presslono 0 botcc Altere 0 nome do elemento de
7. Insi ra rotu los de campo nos campos Field Label Shorr , Medium, Long Create, voce ve a me nsoge m da dos per c inicior com y ou z .
e Header. a valor no campo Short deve ter no maximo 10 caracreres, "Enter access key".
o Medium deve ter no maximo 15 e Long deve t er no maximo 20. 0 Quando pressiona 0 botoo Soliclte a autori zOl:;oo de
Create, voce ve a mensa gem desenvolvtmento do seu
valor no campo H eader deve ter 0 mesmo comprimento ou ser menor
"You o re not authorized to make od minislrodor de sequronco.
que a comp rimento de saida no dominic . changes" .
8. Pressione a bono Save na barra de [erramentas Standard. A tela Quando pressio no 0 batao o no me q ue voce inseriu i6
C reate Object Catalog Ent ry e exibida. Cre ate, voce ve a mensogem existe no Dota Dictiona ry.
9. Pressione 0 botao Local O bject. Voce e levado de volta a tela Dic- "'olreodyexists". Escotho um nome de dominio
difere nte.
tio nary: Change Data Element . as campos Status con tern os valores
Nne posso Aporece a mensog em "No act ive V6 a te la Dictionary: Change
New e Saved e a mensagem "Saved without check" aparece na parte
otivcr elementos domoin exists with nome". Dolo Eleme nt e de um clique
inferior de janela na barra de status. a bccso Documentation (entre de dados duplo no nome de domlnio.
outros) aparece na barra de ferramentas App lication.
o nome de dominio que voce Voce enteo vera uma coixo de
10. Pressione 0 borso Documentation. A tela Change Data Element: d igitou no lela an terior n60 exlste di610go o u a tela Dictionary:
Language E e exibida. Aqui voce pede digitar a documentacio de ou ':l0oestc ctlvo. Display Domain.
usuario final. Essa documentaci o e exibida quando 0 usuario solicita Se voce vir a ccixc de di610go
ajuda F1 para os campos criados utilizando esse elemento de dados. com 0 iftulo Create Domain, 0
A primeira linha contem os caracreres &DEFI NITION&. Isso eurn titulo; dom inic nee existe. Verlfique 0

I
no me cuidadosamente. Voce
nao altere essa linha. D igire sua documentacao comecando na Iinha
inseriu 0 nome e rrado ? Pode
dois. Pressione a tecla Enter para comecar cada novo paragrafo . ser uma boa ldelc obrir uma
11. Pr essione 0 borao Save Active na barra de [erramentas Application novo sesscc e exibir as objetos I
\
para salvar seu texto. A mensagem «Document was saved in active que voce criou usando Object
Browser. (No Die 2, vejc 0
status" aparece na barra de status .
se~o o "Locolizondo sevs
12. Pressio ne 0 botso Back na barra de ferramentas Standard. Voce e
levado de volta atela Dictionary: Cha nge Data Element.
13. Pressione 0 bordo Active na barra de ferramentas Application. a
valor no campo Status altera-se para Act . e a mensagem "was
o bjetcs de desenvolvimento".)

I
I

activated" aparece na barra de status.


I
~,J
!£! &
- - -
116 APRE NDA EM 21 DIAS ABAP /4
DlA 3:0DATA ormoNARY, PARTE 1 ) 117

Fig u r a 3 9
Problema Possiveis Soluljao
A tela Dictiona ry:
sintomas Toble/ Structure: .~ : iFol. :,,1 ~"' nild. 'f\;i.': ;j".·~:~,~. ·. ;/,->:;,···~:'·;>c .,.: .; ;.;>.,;
Se, de pais de da r urn clique Chonge Fie lds cnvc
";;.~~ ~}';' ~~f~ TYIn1 ~':'':T;ln~p;;;:~~i:'' t~81~''' ~. ''''''}'''::':''~;:' ''''; :-~<~~''::'';{~.:c' ./_
duplo , voce vir a tela fexto curta, otribu los

"I~~~~~1t;~'jf·
e nam es de compo 0
Dicti on ary: Display Domain,
serem inse ridos.
clh e no ca mpo Status nesso
tela. New e urn status? Se for,
a dominic precise ser ativodo.
Pressione 0 batao Activate e Fwi'n~ j(.~ UtI .1.~. ·TYi'f l.ng~h cb.~kI~bl. -Sh or t. ~.~.~~ _, .• ,<, :: ~~:, .. . " ' ."':"- ;t. , ~ , .
entoo pressione 0 botoo Bock .. s:::'.'
para retarnor 0 0 eleme nto de
dodos e tente ctlvo-lo
novomente.

Obtendo "Mainta in field lobel." Insiro a s rctclos de campo


mensa ge ns sho rt, me d ium , lon g e depois
olive.
IIW: Length was inc rea sed to th e o texto de cc becolhc que
adual text lenqth." voce digitou era mais long o
que a comprime nto do compo .
e
Esse n60 urn"erro serlo. Para
contcmd-lc, simplesme nte
pressione Enter e de pais al ive. Par a uma listc co mplete de vclores v61idos e seus significa do s, cclcque
o cursor no ca mpo Delive ry Closs e cresslcne Fl .
Ne e posse Compos de entrodo estoo Alive a co ixe de seleceo
digifor r6fulos perdidos no tela . Mainta in Field Labels e
de compo . pression e Enter. Ocampo Tab.Maint.Allowed
Marcar a caixa de selecso Tab.Maim.Allowed faz com que 0 caminho de menu
U tilities-> C reate Entries seja ativado. Depois de arivar a tabela e esco lher esse
Descobrindo tob e los transparentes caminho de menu, a tela Table Insert e exibida, permitindo que vo ce digite
A Figura 3.9 mostra a tela utili zada para criar uma tabela transparente. Aqui dado s em sua tabela. Eutil para tes te e en trada manual de quantidades pe quenas
voce especifica a texto curto, a classe de remessa, os nomes de campo, urn nome de dados. Se a caixa de s ele~ao T ab.Maine.Allowed estiver em br anco, 0
de elemento de clados para cada campo e seleciona as campos de chave primaria. caminho de menu U tilitie s- >Create Entries esta ra acinzentado.
As secoes a seguir explicam esses itens em mais detalhe.
A coluna Field Name
o ca mpo Short Text N a metade inferior da tela voce pode inserir nomes de camp o na colun a Field
o campo Short Text e utilizado para os mesmos pro p6sitos que os campo s Name. Os camp os de chave pr im aria devem aparecer primeiro nesra lista e
Short Text de dominic. 0 usuari o final mo vera essa descricao em qualquer devem ser in dicados por um a marc a de verificaclo na coluna Key. Urn nome
lugar, mas 0 desenvolvedor veri quando trazer a to na um a lista de tabelas . de elemento de dad o'S d eve ser ins erido adireita de cada nome de campo. Depo is
de preencher no s nom es de campo, pression e 0 botao Next page na bar ra de
o campo Delivery Class ferramentas Standard se voce quiser inserir campos adicionais.
o valor no campo Delivery Class identifi es 0 "proprietario" dos dados nesta
tabela. 0 proprietario e responsavel pela manutencao do con teudo cia tabela. Cria ndo umc tabela transparente usa ndo dom inios
Nas tabelas de cliente, voce deve sempre inserir urn A aqui , que indica que a preexistentes e elementos de dados
tabela cont em dados de aplicativo po ssuldo s apenas pelo cliente . Ou tro s Nes ta s e ~ao, voce aprendera a abordagem bottom-up para erial' uma tabela
valores inseridos no campo sao cre is somente para a SAP e ind icam que ele transparente.
possui os dados ou a SAP e 0 clienre em con jun to pos su em os dados.
=== • • • • • • • • • • • ==.--=====-- -- "
DIA 3: 0 DATADICTIONARY, PARTE1 119
118 I APRE!fDA EM 21 DIAS ABAP /~

.... Inide a Screent.crn "Hew to Create a Tra nspa re nt Table Using Preexisting Se voce agora estiver olhando 0 elem en to de dados, observe 0 valor
SCREENCAM,. Domains and DOlO Eleme nts" a gora. no cam po Status. a campo Status deve co nter Act . para indicae que
est a ativo . Se na o esti ver, pr essione 0 bo tao Active e verifiqu e se 0
Execute esse procedimento pa ra criar a tabela " 'Hal. N esse procedi- status esca agora Act . (Se e1e nao fun cionar, arive 0 Diagno stico e
mento, criaremos a tabele, mas apenas incluirem os os primeiros tres campos solccao de problemas associado com 0 proc edim ento para criar ele-
(menot, " '1 i fnr e ," name l ) nele. Mais tarde, adicio narem os os camp os m en to s de dados.) U ma vez que 0 elemento de dados for ativado,
restantes u tilizandc a abordagem to p-down.
A ' ajuda com problemas comuns e dada no Diagno sti co e solccso de
°
press io ne bor do Back para retomar a tela D ictionary : Table/ St ruc-
tu re : Change Fi elds.
pr obl emas que se segue a esse procedimento. Se voce tiver p roblem as com
13. Repita os passo s 8 a 12 para cada urn dos campos restantes na tabela
quaisquer urn dos passos, nao se esqueca de consulta-l o.
,(' - -1; fnr e _ • • neme f) ,
1. Comece na Dictionary: Ini tial Screen (para cheg ar af a par ti r do menu 14. Pressione 0 bono Save na barra de fer ra men tas Standard. Vo ce entao
principal SAP, utilize 0 caminho de men u T ools-> ABAP/4 Wo rk- vera a tela C reate Object C atalo g Ent ry .
bench, D evelopment- > ABAP/ 4 Dictionary). 15. Pressione 0 b atao Local O b ject. Voce entao e ret ornado a tela !iI,
2. Digice 0 nome de tabela • • 'Hal no camp o O b ject Name. D ictionary : Table/S truc ture: Change F ields . 'I
"
3. Escolha 0 batao de 0Pl1ao Table s. 16. Pressione 0 bot ao T echni cal Settings na barra de [erramenras Appli- Il
I;
4. Press ione 0 bots o Create (pushbutton) . V oce vera atela Dictionary: cation. A tela ABAP/4 D icti onary: Maintain Technical Sett in gs e
Table/Structure: Change F ields. exibida. Ii
5. Digite 0 texto curto para descrever a tab ela. 17. No camp o Data C lass) digite APPl O (APPlO com urn zero, nao com a I,
6. Digite urn An o campo Delivery C lass. letra 0 ). I
7~ Faca uma marca de verificacao na caixa de selecao T ab .M aint.Al - 18. Digite 0 (z ero) no campo Size C at ego ry. L
lowed. 1'9. P res sione 0 bono Save. i!
i
8. Na coluna Field Name, di gite 0 no me do primeiro campo cia tabela. 20. Pressione 0 botao Back. Voce e levado de volta a tela Dic tio nary :
9. Falia uma marca de ver ificacao na coluna Key se ela faz parte da chave Ta ble/ Stru ctu re: Change Fields.
primaria. 2 1. Pressione 0 botao Active na barra de ferrame n tas Applicatio n. Se a
10. D igite a nome de urn elem ento de dados na coluna Data Elem . ativ aliao for bem-sucedida, a mensagem "was acti vated" apare cer a na
11. Pression e a tecla En ter. barra de Statu s e 0 campo Status tera 0 valor Act .
12. Olhe na berra de Status. Se voce vir a mensagem "Data element is not 22. Pr ession e 0 bo tao Back para re tornar a D icti on ary: Initial Scree n .
active", 0 elemento de dados nao existe ou foi ativado. Estas sao as
pos sfveis raz6es por que voce pode ver essa mensagem:
Pro ble ma Possivei s Sol ufjao
• Ele nao foi criado. sintomas
• Urn erro de ortografia ocorreu quando voce criou 0 elemento de Nco posse Qu a ndo voce presslonc 0 batao O lhe no barra de status no
dados. crier a tobela Create, nada oco ntece. pa rte inferior do [c nelo e
pressione a botoc novomente.
• 0 nome de elementc de dados esti erra do na tela atual. Eprcvovel que voce veja uma
• a elemento de dados exist e e 0 nome esra escrieo corretamente, mensagem.
mas nao esta ativ o. Q ua ndo voce pressiono 0 batao Altere a n~me do tobelo poro
Create, voce ve a mensagem que passe a lnlclcr com y au z.
Verifique 0 nome cuidadosamente. Se a ortografia esciver correta, de urn
"Enter access key".
clique duplo sabre a nome. Se urn elemento de dados desse nom e nao
existir, voce vera uma caixa de dialogo intitulada Create Data Element.
Se a elemento de dados existir, 0 proprio elemento de dados sera exibido .
• • w.w • • --~~---~-~~~-~-~~---

120 "RENDA EM 21 DIAS ABAP/4


DIA 3,0DATA DICTION" Y, PARTEl 121

Solu~60 Problema Posslveis SoluCjoo


Problema Possiveis
sintomas sintomas

Quando presslo no 0 bata o Altere a nome do to bela par a Mensoge ns "E- Field (Data eleme nt or domai n Ve ja a linha "Nco poss e otivo r
Create, voce ve a me nsagem qu e posse a Inlci c r com y ou z. exibidos em is not act ive or does nat exist} ." a tobelc", cnterlcrrnente .
"Syste m change option does verme lho
not allow changes to SAP o bjects". "E- Entry in ta ble TAO RA missing. " Procure mais e mboixo umo
Quanda press iona a batao Solicite a outcrlzocec de men sagem (em vermelho)
Create, voce ve c me nsoge m de senvolvimentc de se u scbre 0 Data Closs au a
"You are not au thorized to ma ke administrador de seq uronco. categorio Size.
changes". "E· Error in co de ge neratio n for Proc ure odio nte umo
Quando pressio na a ba tao o nome que voce digito u ia creating ta ble in the DB" mensogem (em vermelhoJ
exlste no Da ta Dictionary . "E- Ta ble (Sta teme nts coul d not sa bre Data C loss ou cotegorio
Create, voce ve a mensag e m
Escolho um no me de dominic be ge ne rated)." Size.
"already exists".
diferente. Procure adiante uma
Volte pa ra a tela do tobela me nsogem (em ve rmelho)
Nco posso Aporece a me nso gem "E-Held
Dictionary: Ta ble/ Structure sobre Da ta Closs a u categor ia
c tlvor a tobelo (Data element or domai n is not
active or does not exist)". C han ge Fields . De um clique Size.
d uplo no no me do elementc "E- Field Size cat egory (Va lue Voce dig itou um va lor invalido
de dodos. Voce vera uma no t permitted)." no co mpo Size Category des
cclx o de di6logo ou a proprio confiqurocoes tecoicos .
ele mento de dodo s. Pres sione Back seguido de
Se voce vir uma co ixo de Technica l Settings e mude c
d i61ogo com 0 titulo Creote Size Category para 0 (zero).
Data Element, a elernento de "E- Field Data clcss (Volue not Voce digitou urn valor inv6!ido
dodos noo exlste. Verifique 0 perm itted}." no compo Size Category des
no me coidcdoscmente . Voce configurac;6es tecnlcos.
digito u 0 nome errado? Pode Presslone Back seg uido de
ser um o boa ideio abrir umo Technica l Settings e mude 0
nova sesseo e exibir os obietos Da ta C loss pora APPLD (use
qu e voce criou usando 0 um zero no fina l de APPL}.
Ob ject Browser . (No Dia 2, "E- Key is a lready de fined ; field Oe campos de chove prim6 rio
velo 0 seccc "locchzondc seus ca nnot be in the key." es e sao cdiccentes para co da
o bjete s de desenvolvimento".) um. Pressione Bock e
Se voce puder exibir a cerf ff ique-se que seus ca mpos
elem e nta de dodo s, examine a de cbove prim6ria esteo todos
co mpo Stat us. New e um corneccndc a parti r do tobe la
stat us? Se nco, 0 elemento de com nenhurnc tntervenc ec
do do s precise ser cttvcdo. nem compos choves. [Tados as
Presslone 0 botdo Activote e marcos de verificao;oo no
e nloe presslo ne a ba tao Back colune Keydevem este r juntos
para retornor a tabela . no comeco de to belo .)
Venda 0 tela O s ctrtbvtos tec nfco s fora m au
ABAP/4 nao lnseridos a u selves. Insira
Dictionary : entoc as otnbutcs tecnlcos,
Ma intai n pressionando a bctcc Save e
Technlccl par ftrn pressione Back.
Settings
DIA 3, 0OATAOICTIOHARY, PARTE1 J 123
122 " mOA EM21 DIA S A'AP/4

SCREEMC,I.M'" Inid e ? ScreenCom "Hew t~ Create a Transparent TobIe Without Preexisling


Possiveis Solu~ao ,. Dornotns and Data Elements ogoro .
Problema
sintomas
Voce mud au a tobelc e cqoro
1. Comece na D ictionary: Initial Screen (para chegar at a partir do menu
Vendo a cclxc A tobelc preciso ser convertido.
umo eonverseo de tobel o deve principal SAP, utilize 0 caminho de menu Tools->ABAP/ 4 Work-
de di6loga
ser feita para completer a bench, Development->ABAP/4 D ictionary ).
Adjust Table
ctlvccoc. Escolho um flpc de 2. Digite 0 nome de tabela •• - H al no campo Object Na me,
cam a texto
processa me nto Online e
Table must 3. Escolha a botao de op~ao Tab les.
pressione 0 botoc Adjust..
be adjusted
in the 4. Pressione 0 botao Change. Is50 0 leva a tela D ictionary: T able/ Stru c-
datab as e. ture: Change Fields.
Voce tentou remover um 5. Pr essione 0 botao New Fields. Linhas ern branco-aparecem na parte
Aa oparecer a
compo delxcndo-c em bronco.
mensogem no inferior ciatela e as campos existentes de tabela sao rolados para cima.
Nco se pa de fozer lsso: voce
porte inferior
do tela "Initial
deve excluir os cam pos usonda 6. Na coluna Fiel d Name, digire 0 nome do camp o que voce deseja
o bctcc Cut no borro de adicionar.
va lue not
ferromentos. Pressiooe Cut ate
permitted as
voce ver a mensogem
7. FalSa u ma marca de verificacao na coluna Key se ela e parte de chave
the field nome" primaria. (Os campos -- - regia e - - e Land l nao sao, mas esse pro-
"Selected entries were copied
ou: e impassivel
to the clipboard" no parte cedimentc e escrito gener icamente para que seja utilizado em si-
desloccr-se
interior do [cnelo no borro de tua'i0 es gerais.)
para cimo au
nco e pas sive! status.
8. Digite 0 nome dos elem entos de dados associa do s na coluna Data I'
ver os com pos
d igitodos
Elem. I,
Nee consiqo Uma mensog em ca mec;ando com Pressrooe a teda Enter para 9. Pressione a recla Enter. I

lr para outro
mensa ge m
os corccteres "W:" oporece no
borro de status e voce n60
responder a me nsogem. 10. O lhe na barra de status. Voce deve ver a mensagem "D ata element is
not active», porque 0 elemento de dados nac exist e. i
pode prosseg uir.
11. De urn clique duplo n o no me do elemento de dados . A caixa de f
dialo go C reate D ata Elem ent sed, exibida. No camp o Data Element I
Criendo urno tobelo transparente sem do minios estar a a nome do elem ent o de dados a ser criado. Este naturalmente
sera 0 eiem enro de dados que voce deseja criar , entao a menos que
I
preexistentes e e lementos de dodos
Nes ta se'iao voc e aprendera a adicion ar campos a um a tabela utilizando a esteja incorr eto, nao 0 altere aqui .
aborda gem top -down . Voc e adicionara os dois campos restantes (. - - reg; 0 e 12. Pressione 0 batao Continue . A tela Dictionary: C hange Data Ele-
•• • landl ) asua tabela -·-Hal. ment aparece .
U tilizand o a abordagem top -down, voce pode edicionar campos a uma 13. Digite 0 te xro curro para 0 elemento de dado s.
tab ela antes de criar os elem ent os de dad os e do min ies. Voce po de simples- 14. Digice urn nome de dominic .
men te criar elementos de dados e dominies a medida que avancar . 15. De urn clique duplo no nome de dominic para cria-lo. A caixa de
Para fazer isso, voce ira inserir urn elemen to de dados ou nome de dialcgo Create D omain sera,exibi da. No campo D omain N ame estara
dom fnio e entac dar urn cliqu e duplo nele. Voce sed. levado a tela Creation. A a nome do dominic a ser criado. Este naruralment e sera 0 domfnio
part ir dai, vo ce cria 0 domtnio ou 0 elemento de dados, ativa-o e entac pressiona
que voce deseja criar, entao a menos que esteja incorreto, nao 0 altere
o batao Back para retornar aonde voce estava.
aqul .
o que se segue e 0 procedimento para adicionar campos a uma tabela
16. Pressione 0 botao Continue. A tela Dictiona ry: Maintain Domain e
transparente sem primeir o criar os dominies e os elementos de clados.
exibida.
17. Preencha os campos Short Text, Data Typ e e Eield Length.

• --t..
<.:...:~..
;xxn I!. !:J I I ~. _'I .• . .. . . . . I ••• * w •••• • 'W • • • y y • •
w w w w w . it . :5-;;

DIU aDATA DICTIONARY, PART< 1 125


124 APH NDA EM 21 01,1..5 ARA PI4

nalidade de dicionario qu e ePOllCO con hecida para voce , sem querer modificar
18. P ression e 0 bo rao Active na barr a de ferramentas Application.
uma tabela exisrente.
19. P ressione 0 botsc Local Object. Voce e levado de volta a tela Dic- Para cop iar uma tabela, siga est e procedimento:
tionary: Maint ain D omain. 0 valor no campo Status se alter-a para
Act. e a mens agem "was activated" aparece na barra de sta tus . 1. Va para a Dictionary: In itia l Screen . (Pa ra chegar ai a partir do menu
20. Pression e 0 batao Back na barra de [erramentas Standard para retor- pri ncipal SAP, utilize 0 caminho de menu Tools- >ABAP / 4 Work-
nar a tela Di ctionary : C hange Data Element. bench, Development->ABAP/4 D icticnary.)
21. Digire os campos r estant es no elemen to de dado s (v eja 0 passo 2. Esc olha 0 botao de 0Pliao T ables.
mimero 7 do Procedi me nt o de Criacao de Elemento de Da dos na 3. Pressione 0 borao Copy na barra de [erramentas Application.
se~ao "Criando urn elem ento de dados" ). 4. Digite 0 nome das tabe las F rom e To.
22 . Pressione 0 bot ao Active n a barre de [erramentas Application . Voce 5. Pressione 0 be-eo Continue. Voce elevado de volta para a Dictionary:
entao vera a tela Create O bject Catalog Entry. Initial Screen e a mensagem + + aparece na bar ra de Status na parte
23. P ressione 0 bo tao Local Object. Voce e levado de volta a tela Di c- inferior da janela.
tionary : C hange Data Elem ent . 0 valor no campo Status se altera para 6. Pressione 0 botao Active na barra de ferr amentas Application para
Act . e a men sagem "was activated" aparece na barra de status. ativar a nova tabela.
24 . P ressione 0 bo tac Back na barra de ferr amentas Standard. Voce e
levado de volta a tela Dictionary: Table/ Str ucture: Change Fields .
Nao havera nenhuma m ensagem na barra de Status , As tabelas noD padem ser renomeadas . Pa ra cltercr a nome de umo
delcs, 'lace deve co plo-lc para umo tabe la diferente com 0 nome
25. Repita os passos 5 a 23 para cada novo elemento de dados que voce desejodo e entcc exclulra tab ela original. Se 'lace preclscr fozer isso,
quiser crier. certlftque-se de copiar tonto a estruturo como os dodos do tooele.
26. Depois que voce criou to dos os dominios e elemento s de dad os,
pressione 0 botac Active na bar ra de [erramentas App lication. Se a
Esse procedimento copia apenas a estrutura de tabel a, nao 05 dados. Para
ativacao for bem-s ucedida , a mensagem "was activate d" apar ecera ria
copiar os dados de tabela, escreva urn programa pequeno de ABAP/4 de sua
barra de status e 0 campo Status ira ca nte r 0 valor Act .
propriedade.
27. Pressione a botao Back para retomar a. D ictionary: Initial Screen.
Excl uindo u ma tobela
Modificondo tabelos Voce pode excluir ta belas existentes de DDIC . Voc e pod e querer fazer isso
D ep ois que voce criou uma tab ela, voce pede: quando uma tabela existen te nao for mais necess aria ou se voce tiver criado
um a tabela para os propds itos de experimentar funci onali dad e de dicion aric
• copia-la
que epo ucc ..c onheci da para voce.
• exclu i-la Para excluir uma tabela, siga este pr ocedimento: I
• adicion ar mais camp os nela ~
1. Va par a Dictionary: Initial Screen. (Para chega r af a partir do menu i'
• excluir os campos dela principal de SAP, utilize 0 caminho de menu Tools- > ABAP/4 Work- .j!
• alterar os campos dent ro dela bench, D eve!opment-> ABAP/4 Dictionary.)
Essa secao descreve como executar est as fcncoe s. 2. Digice 0 nome de tabe la no campo Object N am e.
3. Escolha 0 botac de op ~ao T ables.
Copiondo umo tobelo 4. Pressicne 0 bono De lete na ban-a de [erra men tas App lication. U rn
Se uma tabela estiver ativa no DD IC, voce pode copia-la. Voce pode querer pop-up pedira a voce a confirmacao do pedido de exclusao .
fazer isso se a tabela que voce quer criar for muitc semelhan te a uma que ja 5. Verifi que 0 nome da tabela que voce digitou e pression eYes se desejar
existe no banco de dados. Ou, voc e pode querer experimentar alguma funcio- continuar.
-~~~~"""'~'m"'"~·"""
"·.~-"",-
;;:..~::_=_-=-:,,,......,...-....,. . ...W-.~W.---~_.
...~.....,............r-...........,....,r....r-.r-...........,.....r W._ ••••• WW •••• W•• 9&* _
..r-...........,....,r...r-..r ..........,r.,r...r ...I""".....,r..,!!"'""'!!r "'!!!!""""'!!!!....I!!!'~~""l;!i!

126 ,P REN" EM 21 DI,S 'BAP /4 DIA3,DDATADICT1DN' RY,P, RTE I 127

Adicionando camp~Ol:>S _
Excluindo campos
H a duas maneiras de adicionar campos para uma tabela existente: Voce pode excluir campos existentes de uma tabela. Voce pode desejar fazer
• inserir isso se 0 campo nac for mais necessario na tabela au se voce tiver criado urn
• acrescentar campo para os propcsitos de experimenrar funcionalidad e de dicionario que e
pouco conhecida para voce.
Inserir urn campo permire que voce posicione urn campo antes de outre Para excluir um campo de uma tabela, compl ete os seguintes passos:
existente .
Acrescentar urn campo permite que voce adicione novos campos no fim 1. Va para Dictionary: Initi al Screen. (Para chegar af a partir do menu
da tabela, depois de todos as campos existentes. principal de SAP, utilize 0 caminho de men u Tools- > ABAP/4 Wo rk -
bench, Development-> ABAP/4 Dicricnary.)
Inserindo um campo 2. Digi te 0 nome de tabe1a.
Para inserir urn novo campo acima de urn campo existente, execute esse 3. Escolha 0 borao de opc;ao Tables.
proce dimento:
4. . Pressione 0 botao Change.
1. Co mece na Dictionary: Initial Screen. (Para chegar afa parti r do menu 5. Coloque 0 cursor no campo a ser exclufdo.
principal de SAP, utilize 0 caminho de menu Tools -> ABAP/ 4Work- 6. Pressione 0 bcrac Cut na barra de ferramentas Application ou escolha
bench, D evelopment - > ABAP/ 4 D ictionary.) o caminho de menu Edit-s-Delete Field.
2. D igite 0 nome de tabela no campo Object Name . 7. Ativ ea tabela. A tela Adjust Table eexibida. Pressione 0 botao A djusr
3. Escolha 0 bata o de opc;ao Tabl es. para converter a tabela no banco de dados.
4. Pressione 0 botsc Change. Isso 0 leva para a tela Dictionary: Ta-
ble/St ructure: Change Fields.
5. Posicione 0 cursor em urn campo.
6. Pressione 0 ba tao Insert Field na berra de ferramentas App lication. :
~o Para excluir um compo de umo tabela , nco de ixe em bronco a nome
de compo. Em vel disso, coloque 0 cursor sa bre 0 nome e pressione
o botdo Cut. Se voce simplesmente de ixar em bronco 0 nome, 0
U ma nova linha aparecera acima da posicao do cursor. mensagem " Initial value not permitted as field na me" cp crecer o no
porte inferlcrde suo tela no barro de'status e voce nco poderc continuor
7. erie seu novo campo na linha que voce acabou de digitar. ate que exdua 0 linho que voce deixou em bronco.

Ac rescenfando um campo
Para acrescentar urn campo no fim de uma rabela, execute este procedi - Alterando 0 tipo de dado ou comprimento
menta: de urn campo
1. Comece na Dictionary: Initial Screen. (Para chegar aia partir do menu Voce pode alterar 0 tipo de dado e/ou comp rimento de campos existentes em
principal de SAP, utilize 0 caminho de menuTools->ABAP/4 Wo rk- uma tabela. Voce pode querer fazer isso se 0 comprimento de campo pr ecisar
bench, D evelopment- > ABAP/4 Dictionary.) ser aumentado para armazenar valores mais longos ou se as regras de validacao
de campo mudarem e 0 tipc de dado nao for mais adequado para os novos que
2. Digite 0 nome de tabela no campo Object Name.
devem ser inseridos no campo.
3. Escolha 0 botao de op~ao Ta bles. Complete os seguintes passos para alterar 0 ripe de dado ou compri men to
4. Pr essione 0 bono Ch ange. Is50 leva voce para a tela D ictionary: de urn campo:
Table/Structure: Change Fields.
5. Pressione 0 boec New Fields na barra de ferramentas Application . 1. Va para Dictionary: Init ial Screen. (Para chegar ai a partir do men u
principal de SAP, utilize 0 caminho de menu T ools- > ABAP/ 4Work-
N a metade inferior da tela, os campos existentes rolam para permitir
bench, Developme nt->ABAP/4 Dictionary. )
que voce digite campos adicionais no fim.
2. Digite 0 nome de tabela.
6. Crie seus novos campos nas linhas que voce acaba de digitar.
-
128 "RENDA EM,l DIAS ABA'" Din 0 DATA DICTIONARY, PARTEI 129

3. Escolha 0 bocao de opclo Tables. fun cionalidade e a partir da tela Dictionary: Table/ Structu re (no modo de
4. Pressione 0 ba tao Display . exibicjn ou alteracac), esco lha 0 caminho de me nu U tilities- > Create Entries.
Escolher esse caminho de menu e urn atalho - ele cha mara urn navegador de
5. De urn clique duplo no elememo de dados correspondente ao campo
dados, mas pulara a tela inici al e 0 levard dire tamente a tela que permitira que
que voce quer aItera r. 0 elemenro de dados sera exibido.
voce insira novas linhas em uma tabela.
6. De urn clique duple n o nome de dominic no elemenro de dados . a Se esse caminho de menu est iver desativado, faca u ma marca de verifi-
dominic sera exibido. ca ~a o no camp o Ta b.Maint.AlIowed e reative sua tabel a. Consulte a secso
7. Pressione 0 batao D isplay < -> Chan ge na barra de [erramentas anterior neste capitulo intitulada "Campo Tab.Mai nt. Allow ed." para uma
Application. Voce agora sera capaz de alterar os atributos do dominic. explicacao desse campo.
8. Deixe em branco 0 campo Output Leng th. Esco lher esse cam inho de menu automaticame nte executa estas tarefas
9. Altere 0 tipo de dado e/on compriment o. em ordem:
10. Pr essione 0 batao Ac tive. A tela Please note! e exibida para mostrar • Gera urn programa espe clfico atualizad o de A BAP/4 para sua tabela
uma lista de todas as tabelas e estrururas que utilizam esse dominic . que urn navegador de dados pede chamar. (Ess e pr ograma de ABAP/ 4
Elas scrao todas afetadas . Para continual', pressicne 0 batao Co n- so m ente egerado a primeira vez que vo ce acessa esse carninho de menu
nnue. para uma tahela dad a e toda vez qu e voce 0 acessa depois que uma
alteracao foi feiea na tabela.)
• Chama 0 navegador de dados que. por sua vez, chama 0 programa de
Fozer clterocoes em urn do minio ofeto todos os ca mpos que 0 utlllzcm. ABAP /4 recentemente gerado.
• Mostra urna tela que permire que vo ce erie linhas na tabela.

Tro bo lho ndp com dodos S(mH(AM~ Inicie a ScreerrCorn "Ho w to Add Doto to 0 Table" agora .
Se voce ja nao fez isso, erie sua tabela agora e ative-a antes de prosseguir.
Execute esse procedimento para adic ionar clados asua tabela. A ajuda com
NOVO... Dentro do R/3 estec 05 ufilit6rios fornecidos pe lo SAP chomodos nov.I?90dores problemas comuns e dada no D iagnostico e solocso de probl em as que se segue.
TERMO ~ de dodos que permitem que voce monipule os dodos dentro dos tcbelos: Embora Se voce tiver problemas com quaisquer urn do s pas sos, nac se esque<;.a de
a pclcvrc novegodor implique que voce openos ler6 os dodos, os novegadores de dodos
podem ser utilizodos tonto para ler como pa ra ct collzcr.
con sultar 0 Diagnostico e solu<;ao de problemas.

Voc e pode ut ilizar os utilitarios de navegador de dados para exibir ou 1. Va para Dictionary: Initial Screen.
modificar dados den tro de tabelas das seguintes maneiras: 2. Digite 0 nome de sua tebele no cam po O bject Name.
• proeu rando e exibindo as Iinhas que en contram criteria especificadc 3. Pressione 0 botao Display. A tela Di ctionary: T able/ Stru cture: Dis-
play Fields e exibida.
• adicionando novas linhas
4. Escolha 0 caminho de menu Utilities- c-Create Entries. Observe a
• . modificando linhas existentes
barra de status na parte inferior de sua tela quando voce escolhe 0
• excluindo linhas caminho de menu; vo ce pode ser capaz de ver a m ensagem "Compi-
Esta se<;ao descreve como u tilizar os navegadores de clados pa ra executar ling. .". Essa mensagem indica que 0 sist ema esta gerando a
essas fun~5es. atualizacao de programa. A tela Table Insert e exibida. Nessa tela, ha
urn campo de entrada para cada campo em sua rebels . A esquerda de
Acessando a funciona lida de do navegador de dados de cads campo de entrada, aparece 0 no me de campo . Os campos de
chave primaria apare cem primeiro, seguidos po ruma linha em branco,
denim do ODIC depois seguem as campos restantes da tabela. Para ver 0 programa
Como obs ervado antes, urna das fun<;6es de urn nav egador de dados e ins erir que foi gerado, escolha Utilities->Creat e Ent ries e depois escolha a
novas linhas em uma ta bela. Uma mane ira Hcil e rapida de acessar essa

._., ~
~ 'J:fr '. oil "~::-....""-""-:,,,,"""'''''""""'!!,,..-"'''!!r:-''!!!!~'!!!!!''''''!!'"""''!!!!''""""''!!''''-'''II!!r'!!!!''''''!!!!''''''
IIII'" ,...-,r'''ll!!''''''''''''''''''''''''P-..r-'''''' r ,....,..... r- ,.. ..., r-..,..... _

130 APRENDA EM 21 DIAS ABA P" DlA3: 0 DATADICTIONARY, PARTE I '131

caminho de menu System -c-Status. 0 nome de programa aparece no Problema Possiveis SoluljOO
sintom as
campo Program (Screen).
Quando presslcno 0 botoc A tob elc ;0 cc ntem um reqlstro
Save , voce ve 0 mensagem co m 0 mesmo chove prima rio
Se voce coloco 0 cursor em qualquer campo e presslcno a tecla Fl '~ II A data record with the specified que a primeiro que voce
telo Help - Ta ble Insert e exlbido. Nessa tela, voce vera a documen- key a lready exists" na porte inferior estcvc tentondo salvor. O s
tac;co que voce digitou no elemento de dodos. Para reto ma r tela a do [onelc. compos de chove prirnorlo sec
Table Insert, pressione botcc Continue ou Concel. os prlrneircs grupos de
ca mpo s que oporecem no tela.
Hd urn espoco em bronco no
5. Preencha os campos com as dados que voce quer digirar em sua tabela. telo sobre 0 ultimo camp o no
6. Pressione 0 botso Save na barra de ferramentas Standard. Voce vera chove primcric . Altere 0 va lor
no primeiro des compos ocimo
a mensagem "Da tabase record successfully created" na barra de
do espoco e tente solver seu
status. registro novomente .
7. Repita os passos 5 e 6 para cada linha que voce quer inserir.
8. Pressiorie 0 botao Back para retornar a tela Dictionary: Table/Struc-
ture: Dis play Fields. Utilit6rjos gerais de novegodor de dodos
9. Escolha 0 caminho de menu Utilities->Table Contents para exibir as A funcionalidade que voce acessou na se~ao prec edente esom ente uma fun~ao
linhas que voce acabou de criar. A tela DOl ta Browser: Table: Selection de urn unico navegador de dado s. No
sistema R/3, hi quatro utilitarios gerais
e exibida. de navegador de dados: SE16, SE17, SM30 e SM31. Eles sao similares sob alguns
10. Para exibir todas as linhas na rabela pressione 0 botao Execu te sem aspectos e ainda oferecem varie s tipos de funcionaliclade.
inserir qualquer criteri o de pesquisa. A tela Data Browser: Table
Select Entries e exibida e as novas linhas que voce inseriu serao Utiliza nda 0 SE16
mostradas em uma lista. o SE16 e 0 mais utilizado programa de utilitaric de navegador de clados com
prop6sito geral. Com de, voce Rode pesquisar tab elas para linhas especfficas e
exibi-las, arualiza-las, exclui-las, copia-las, adicionar novas linh as e fazer outras
Problema Po ssive is tarefas. Ele pode ser acessado de qualquer uma destas duas maneiras:
sintomas
• D a tela Di ctionary: Table/Structure: C hang e Fields, escolha 0 ca-
Nso posso o item de menu Create Entries A ca ixa de seleceo minho de menu U tilitie s-c-Table Contents.
adicianar dodos est6 ocinzentado e noda cccntece Tob.Moint.Allowed nee estc
quando voce da um clique nele. otivada. Va para a tela
Dtctlcncry: Table/Structure:
Change Fields (para chegar
• Digire /nse16 no campo Command.

S(mHCAM~ lnlcte a ScreenCam "How to Display Tc ble Da ta Using the Doto Browser" agora.
iI
ate 16 exiba a tobelo e clique
no bcteo Display -c-c- Chonge
no borro de ferromentos 1. Digi re / nse16 no campo Command.
Application ate que os compos 2. Pres sione a tecla Enter. A Data Brow ser: Initial Screen aparece.
seja m modificcdos) . Adicione
umo marco de verlficcccc em 3. Digire seu nome de tabela no campo Table Name.
Ta b.Moint.Allowed. Pressione 4. Pressione 0 batao Table Contents na barr a de [erram entas App lica-
o batao Activate. tio n. Se a tabe1a contiver mais de 40 campo s, voce vera a tela Ch oose
Fields For Selection. Se voce a vir, coloque um a marca de verificacao
ao lado dos campos pelos quais voce quer ins erir a s crireri os de
pesquisa e pressione 0 batao Execute. O s campos que voce ativou

-~- :
-':--'-~.""~"O"'''''''''''"--;;'=~~~-'!!!"""",!,!!,"",'''''''''''''''''''''''''''''''''''''''''''''''-''''''-''''''''''--~,,,,!,,----------------------------~~~======~

132 'P RE Ho , EM 2J DiAl ' ' ' PI'


DIU 0OAT' olmoNARY,P' RTE I 133

serao mostrados na pr oxima tela - a tela Data Browse r: T able: • Ro le para cim a e par a baixo.
Selection. Essa tela ena maioria das vezes simplesment e chamada tela • Role a esquerda e a direita.
de selerao. A qui voc e po de inserir os criterios de pesquisa para locali -
• De urn clique dup lo em um a linha para ver mais campos de uma vez .
z ar as linhas espedficas na tabela. P ara exibir todas as Iinhss, D aD digite
qualqu er crirerio de pesquisa. Se hellyer m ais de 500 Iinhas que • Cri e uma n o va linha es colhe ndc 0 caminh o de me nu Tabl e
coincida m com seu criteria e voce quiser exibir codas elas, deixe em Enrry-> Create.
branc o 0 valor no cam po M aximum No. Of H its. • Altere uma linha existe n te ativando-a e entao escolhendo 0 caminho
5. Pre ssione 0 bo tao Execu te na barra de [erramentas Application. Voce de menu Table Entry -c-Change.
eneac vera a tela Da ta Browser: Table Select Entries. T odas as linhas • Altere as mulriplas linhas ma rcando-as, escolhendo 0 caminho de
que coincidem com seu criteria serao exibidas ate 0 numero maximo menu Table Ent ry- > Chang e e entao pressione os bot6es Next Entry
de linhas espec ificadas no campo Maximum No . of H its. e Previous Entry na barra de fer ram entas Application.
• Copie uma linha existe nte m arcando -a e entjio escolhendo 0 caminho
Problema Solusao de menu Table Entry-> C reate w/reference.

Node c contece quan do • Voce intenciona lmente au acid entalmente deve • Copie as mulciplas linhas marcando-as, escolhendo 0 caminho de
voce pressiono 0 botdo Exec ute. ter digitado a lga em um campo no tela de menu T able Entry->Change e cntsc pressionando os bo roes Next
seleccc e nenhumo linha coincidiu co m esse Entry e Pr eviou s Entry na barra de ferramentas Application.
criteria de pesquisu. Deixe e m bronco todos as
compos no tela de selecc o e presstcn e Execute • Exclua uma linha ou mais marcan do-as, escolhendo 0 caminho de
novorn ente. menu T able Ent ry- c-C reare w/ refer en ce e coeac pr essiona nd o 0 boteo
• Nc o h6 dodos no tooele. Delete Ent ry na barra de fer ramentas Application para cada linha que
• Vocl! pressionou Save depois de coda registro ? voce quer excluir.
• Voel! inseriu dodos no tabela? • Selecione todas as linhas e tire a selecso de rodas as linhas pressionando
He menos registros no lista de • Voce pressionou Save depois de coda regi stro ~ os bot6es correspondentes na ba rra de ferramentas Ap plication .
scldo do que voce inseriu no tobela • Voce iosenu vclcres de compos de chove • Im prima a lista pressionando 0 botso Print na barra de ferramentas
primc rio para code registro? ."; '
Standard.
• Voce intencionol ou oclde ntclme nte digitou
olga em um campo no tela de sele<;60e nem • C lassifique a lista colocando 0 cursor em uma coluna para classificar
tcdos os registros eoincidem co m esse c-iteric e entao pressiona ndo os bo t6es Sort Ascending ou Sort Descendin g
de pesquisa. Retorne para 0 tela de setecec , na barra de fer ramentas App lication.
delxe em bronco fodo s os campos e pressic ne
o bat ao Execute nova mente. • Localize um a st ring pression ando 0 ba tao Find n a barra de [erramen-
tas Standard. D igite a st ring, pressione Find e entao de urn clique em
uma area dest acada para visu alizar essa linha.
• Palja download cia lista para urn arqu ivo em seu disc o rigid o es colhendo
Do mesrnc forma qu e a caminho de menu Utilities->Create Entries, o caminho de menu Edit-> D own load. Voce: pede esco lh er ASCII,
Utilities->Table Contents tombern gero um prog romo, e le e ge ra do
form ato de plan ilha ou Rich Te xt F orm at.
novamente se voce cltercr 0 estruturc de tab elo. Poro exibir 0 progromo
q ue ele gem , c pa rtir do fela de sele<;60 escolha a cominho de menu • Selecione os campos que vo ce quer vel' na lista esco lhen do 0 caminho
System- > Status. de menu Setrings-> List fo rm at-> C hoose fields.
• Varies outrOS parametres de Iista m ilium 0 caminho de menu Set-
S(RHNCAM ~ Inicie 0 Screen Cam "Dote Browser Functionolitl ogara. tings-> U ser parameters. Aqui voc e pode configurar a largura de safda,
o mimero maxim o de linhas que pode ser exibido, ativar saidas de
Na tela de naveg ador de dad os voce pede fazer 0 seguinte:
,1
DtAJ: oDATA DlOiONARY, PARTE 1 135
t
l

conversjo ou exibir 0 nu mero real de linhas que coincide com 0 criterio nolo sera capaz de utili zar 5£16 se a tabela river urn malogo de manuten~ao
de selecsc. Voce tambem pede alterar os tftulos de coluna para utiliz ar padra o. Ness e case, use 0 SM3l.
os r6t ulos de elementos de dados em vez dos nomes de campo das A maneira mais simples de dizer se voce deve utilizar S£ 16 ou SM31 e
tabelas. aimplesmenre experiments-los. Se urn deles nao funcionar, enrsc 0 OUtrO
pr ovavelmente resolved. Se nenhum funcionar, recorra ao SM30.
Utilizanda 5M3l e SM30
5M3 1 e SM30 tamb em p od em ser utilizados para exibir e at ualizar dados de Exibi ndo os dodos utilizando seu pr6prio prog ro mo
tabela . SM31 euma versao mais anriga de SM30 que tern menos func ionalidade.
de ABAP/4
a campo de entrada ria primeira tela de SM30 e. suficien temen te longo para
acomo dar qualquer nome de tabeIa; no SM31 ele tern apenas cinco caracteres Em vez de utilizar urn navegador de dados, e mais facil escr ever urn programa
de comprimemo. An tes qu e voce possa utilizar qualquer urn, urn programa pequeno de ABAP/4 para exibir os dadcs em sua tabela. Teate criar urn agora.
espe cial chamado dialogc de manu tencac padrac deve ser gerado para a tabela Projere seu programa para escrever uma men sagem aprop riada se nenhuma
que voc e quer exibir. Iinha existir na tabela.
U rna solu ~ao de exemp lo e mos trada na Lista gem 3.1. Experim enre criar
NOVO lrl...Um di6/ogo de monuten¢o podroo e um progromo ABAP/4 qu e voce gero . uma por conta pr6pria antes de olhar na solucs o.
niMO r Qu a ndo voce choma 5M31 a u SM30, 0 novegodor de dodos c uto rncficcme nte
lccchzc e corrego esse pragroma gerodo. He oferece umc interface mois campfe xc e ENTRAOA~ Lista ge m 3.1 Programo simples para exibir os dodos no ta belo ztxlfal
mois funciono lidode do que 0 5E 16. Poro mois informa lioes sobre di61ogos de
monutencec e procedimento po ro eric-los, consulte a e lude R/3 Library. 1 report ztx0301.
2 tables ztxlfaL
3 se je ct > from ztxlfal.
04 wr H e : I ztxlfal-11fnr,
Para localizor as informo<;6es em di6!ogos de mcnuten ceo no R/3
library, escolh a 0 com inho de menu Svstern-> R/3library Help. A partir 5 zt xlfal-namel ,
da l, de um clique nos seguintes guias: Basis Components·>ABAP/4 6 ztx lfal-regi o,
Deve lopment wcrkbench-> Extended App lica tions Funct ion U· 7 ztxlhl-landl.
brary->E xle nded Table Maintenance. 8 endsete ct •
9 if sy-subrc <> O.
10 write 'Table is empty.' .
Comparanda 0 SEl 7 cam a5El 6 11 end1f.
a 5E17 emuito semelh ante ao 5E 16 no sent ido de qu e pode ser u tilizado para
pesquisar linhas especjficas dentro de uma tabela. Enrretanro, 0 SE17 nao pode
ser utilizado para atualizacoes. U tilizando 0 5E16, voce pede especificar
Utiliza ndo 0 qjuda El
criterio de pesquisa complexo para urn maximo de 40 campos p or vez; com A ajuda Fl e a documenracjo vista pelo usuario para urn' campo. Para obra-la,
SE17, voce . pode especificar criterios de pesqui sa simples pa ra qualquer o ususrio coloca 0 curso r no campo e press iona Flo A do cumentacao e exibida
numero de campos de urna vex. 5£16 somente at iva a safda a ser classificada em uma caixa de dialogo. Voce utilizara 0 seguinr e proc edime n to para modi-
par um a un ica coluna de um a vez; 0 SE17 permite que voc e especifique ficar a ajuda F I que voce cri ou ant::riormente para 0 campo 1i fnr.
a
qualquer sequencia de tipc ao longo de varias colunas. 5E16 nao func iona ra
para uma tabe1a que tern urn dialcgc de manutencio padrao, mas a SE17 SmtHCAM~ lnicle a 5creenCom "How to Crea te or Mod ify Fl Help" oga ra .
fun cionarg.

Somando as navegadores de dodos Adicion anda a juda Fl para urn cam pa


Para adicionar ajuda Fl para urn campo:
Em casos especiais, para exibir dados som ente onde voce precisa especificar
multiples criterios de classificacsc, utilize SE17. En treranro, para a maioria das 1. Comece na tel a D iction ary: Tabl e/S tructure (no modo de altera~ao
arividades rotineiras de exibiljao/atualiza~ao de dado s, utilize 0 5E16 . Mas voce ou exibicao).
"'l!'"
~'~i ~£:C
",!!!!"--'!!!9 ~- .~ -es- -.~ -~ ~ ~""'="'" ~ ~--~~ ~-~------
- "'
OIA3,0 DATA DICTIONARY,PARTE 1 137

2. Localize 0 campo para 0 qual voce quer edicionar ajuda e de urn clique 1. Comece no menu principal do R/ 3 e escolha 0 caminh~ de menu
duplo no nome do elemento de dado s correspondence a esse campo. Too ls->ABAP/4 Development Workbench. A tela ABAP/4 Deve-
A tela D ictionary: Disp lay Data Element sera exibida. lopment Wo rkbench e exibida.
3. Pressione 0 botao Display < -> Change na barra de ferramentas 2. Escolha 0 caminho de menu Utilities- >Docu mentation. A Docu-
App lication. A tela muda para 0 modo de alreracao. ment Maintenance: Initial Screen e exibida.
4. Pressione 0 borao D o cumen tation na barra de ferramentas Applica- 3. De urn clique na seta para baixo do campo Document Cla ss. U ma
tion. A tela Change Da ta Element: Language E e exibida. lisra de classes de docurnento e exibida.
5. Digite 0 texro que 0 usu erio deve ver quando ele solicitar ajuda para 4. De urn clique duple em General Text . a campo D ocu ment C lass
esse campo. A primeira linha contern os caracteres &D EFINITION &. Isso agora contem 0 valor Genera 1 text e u rn campo identificado Gen eral
e urn titulo; nao altere essa linha. Digite sua documenracao co- Text e exibido na parte superior cia tela Document Maintena nce. (0
mecando na linha da is. Press ione a tecla Enter para comecar cada campo Documentation Type ja deve conter 0 valor Orig; nal us ervSe
novo pardgrafo. ele nao contiver, de urn clique na seta para baixo no fim do campo e
6. Press ione 0 botao Save Activ e na barra de ferram entas Appl ication o ahere. )
para salvar suas alreracoes . A mensagem "Document was saved in S. No campo General Text, digite 0 nome de urn documento que vo ce
active status" aparece na barra de status . quer criar. 0 nome deve iniciar com y ou z. LEMBRE-SE DESSE
7. Pr essione 0 batao Back na barra de ferramentas Standard. VocS e N OME.
levado de volta a tela Dictionary: Change Data Element. 6. Pressione 0 ba tao Create. A tela Change General Text: Language E
8. Pressio ne 0 botao Back mais uma vez para retomar a tela Dictionary: e exibida.
Tab le/Structure. 7. Digite seu doc umentc aqui. Pressio ne a tech Enter no final de cada
paragrafo.
Testo rido a ajuda Fl 8. Pressione-o botec Save Active . A tela C reate Object Catalog Entry e
Para testar sua ajud a F l : exibida.
1. Come ce na tela Dictionary: Table/Structure (no modo de alteracao ' 9. Pressione 0 bo-se Local Object. Voc e elevado de volta a tela Change
au exibicao). General Text e a mensagem "Document was saved in active st atus"
aparece na barra de Status.
2. Escolha 0 caminho de menu Urilities-> Create ent ries.
'10. Pressione 0 batao Back para retornar a tela D ocument Maint enance:
3. Coloque 0 cursor no campo com 0 texto de ajuda modificado.
Initial.
4. Pressione Fl. 0 sistema exibird sua documentacao modificada.
11. Pressione 0 batao Back novamente para ret omar a tela de ABAP/4
Development Workbench.
Ad icio na ndo vinculos d e hiperte xto pa ra aju da Fl
12. Entre no Data Dictionary e exiba seu elemenro de-dado.
NOVO ~ Vrnculos de hiperlexto perm item que voce cliq ue em urnu pclcvro destocodo au 13. Pressione a batao D isplay < -> Change na barra de {erramentas
HRMO "" [rose no elud e Fl e exibo ojudo edicione J pore esso pclov ro ou [rose. Pora Application. Sua tela altema-se para alrerar 0 modo.
adicionar vlnculos de hipertexto, voce primeiro eric um doc ument o 00 qual voce quer
criar um vinculo e ento c deve inserir umo referencio a esse documento no texta do cjudo. 14. Pressione 0 bono Documentation na barra de feITa~emas App lica-
Os names de dccumentos devem inicior com y au z. Voce pade indui r hiperlinks e m seu tion. A tela Change Data Elem en t: Langua ge E e exibida.
novo documento tcmbem e vincu!er 0 portir dol pore outro dccumentc, ad infinitum. 15. Coloque 0 cursor na posicao ern que voce quer inserir urn hiperlink.
16. Escolha 0 caminho de menu Inc1ude->Reference. A tela Insert Link
S(RHN(AM~ Inicie ScreenCom "How to Create Hypertext link in F1 Help" ogora.
0 0
eexibida.
17. De urn clique na seta para baixo no fim do campo Selected Reference.
A tela Title e exibida: note que ela conte m uma lista de classes de
do cumentc.
DIA3: 0 DATADIGlONARV, PARTE 1 139
138 APmDA EM 71 DlAS ABAP/4

18. De urn clique duple em General text. 0 campo Selected Reference Resumo
agora contem 0 valor General text e urn campo rotulado General
• a Data Djctio~ary e uma ferramenta utilizada por program as em
Text e exibido no topO cia tela. ABAP/4 para cnar e man ter tabelas . Hi tres ripos de tabelas: transpa-
19. No campo Gene ral Te xt, digite 0 nome do documentoque voce crio u rente, de pool e de cluster. As tabelas transparentes sao as mais comuns
no passo 6,· e sao utilizadas para armazenar dados de aplicarivo. As rabelas de pool
20. N o campo Name In D ocumen t, digite 0 texto de hipe rlink. Esse e 0 e de cluster sao principalmenre utilizadas pela SAP para armazenar
tex to que sera. dest acado e no qual 0 usuario sera capaz de dar urn dados de sistema.
clique par a reeeber ma is ajuda. • Para criar uma tabela, voce pr imeiro p reeisa de dominies e de elemen-
21 . Pressione 0 batao Continue . Vocee levado de volta para a tela Change tOSde dados . a s domfnios ofere cern as caracteristicas recnicas de urn
Data Element: Language E e urn link aparece na posiceo do cursor , campo; os .elementos de dad os ofere cern os r6tulos de campo e a ajuda
22 . P ression e 0 botao Save Ac tive na barra de fer ramentas Application. FI. as dois sao reutilizaveis.
23. Voce pode experimentar seu novo hiperlink imediatamenre escc- • o~ .objetos de .dieiomirio devem estar ativos antes de poderem ser
lhendo 0 caminho de menu Document-c-Sc reen Output. A tela utilizados. Se fizer uma alteracao para urn objeto de dicionario, voce
Display D ocument ation e exib ida, seu texto de ajuda aparece e seu deve reativar 0 objero para que as alteraqoes tome m-se efetivas .
hi perlink devera ser desta cado. • a s n avegadores de dados permitem que vo ce exiba e modifique os
24. De urn clique no h ipe rlink. A tela Display Hypertext: e exibida e seu dados dentro de tabelas. a SE16 e 0 navegador mais geral de dados.
doc umento prov avelmente aparecera. o SEll, 0 SM30 e 0 SM31 sao os out ro s navegador es que oferecem
25. P ressione Back tre.s vezes para retomar para a.tela Dictionary: Ta- capacidades variadas.
ble/St ructure. • ~oce po de erial' ajuda Fl dentro de u rn elemento de dados pres-
. 26. Para testar seu hiperlink, exiba sua t abela e escolhao caminho de menu sl~nando 0 bordo Documentation. Dentro dess a ajuda Ft, voce pode
Uriliries- c-Create Entr ies. A te la T able Insert e mos tr ada . cnar vfnculcs de hipertexto para outros docum entos de aju da FI.
27. P osicione 0 cursor no campo n o qual voce criou a ajuda Flo
28 . Pressione Flo Seu textc de ajuda com 0 hiperlink devers ser exibido. P&R
29. D e urn clique no hiperlink. Seu novo documento deve ra ser exibido.

.. o Se deixo 0 comprirn ento de urn campo menor alt era n do 0


do mfnio e, se esse campo e ut ilizado em uma tab ela que ja
o Problema Sol u ~ ao con rem dados pree n ch en do 0 comprimento in tei ro do campo,
E Nee posse loca lizer Gener al Text • Role pore cirnc. o qu e acon t ece?
'j;l,
o no llsto de classes de docvmento.
c
'"
-e
Aparece a mensagem
"Chonqe relevant to trcnslotlo nt"
• Presslone 0 botoc Save Active no bo rra de
ferromentas Application , noo 0 bctco Save no
borra de ferromentos Standard.
o Q uando voce ativa a domfnio, 0 sist ema ten rar a ativar as tabelas
qu: sao dep~ndentes desse domfnio. A ariva cao das tabelas que
~
III ~ Altere a closse de docu mento po ra General
teriam perdido dados falharia e um a lis ta d essas rabelas seria
~ Aparece 0 mensogem "Dote m os rrada para voce. Se voce en tao p rosseguir e ativar essas
'" element is not used in on ABAP/4 Text.
tabelas, 0 sistema au tomaticam en te converte d. os dad os nelas e
~ Dictionory structure.
H
os dados na coluna referenciada pelo domla io serao rruncados .
.... Estou pressionando 0 botco
Documentation no tela de elemente
• 0 titu lo do tela e Didionary: Display Doto
Element? Se for, voce est6 no modo de
Como voce sabe qu ais tabelas serac af~tadas an tes de alterar urn
de dodes, mas nado cccntece. exibi~oo. Voce precise ester no modo de
clterccoo. Pressione 0 batao Display <->
o dominic?
Change e entec tente novome nte.
- - - - __ v
w-- . . . . = _ .
140 I APRENDA EM 21 DIAl ABAP/4 DIA 3, ODATADJCTlONARY, PARTE 1 ! 141

o Paca uma list a W here-use d no domlnio. Para f~ zer i.sso, exiba


a dom inio, pressio ne 0 ba tao Where- Used ~lSt na barr~ de
5. 0 qu e sao os c6digos de transacao d os quatro navegadores de clados?
Qual e 0 mais comumente utilizado e qua l nao pode ser uti iiz ado para
ferramentas Application, selecione Other Objects ~ pressione atualizar dados?
Continue. Uma lists de drvore sera exibida. De urn clique duple 6. Q ual ea diferenca entre uma tabela tra nsparenre e um a tabela de pool
~
na linha em que esta escrito Table. A lista de.nomes de ta~e~a e I, ou uma tabela de cluster ?
exibida. De um clique duple em qualquer linha para exiblr a
rabela. I
~
Exerd cio J
Adicione os campos mo strados na Ta bela 3.4 em S1..1<'I tabela · ··1 f al . Nenhum
o E possive1 er iar um cam po de tabe1a sem utilizar urn eleme~to
de dad os au domin ic? Isso parece muito trabalhoso pa ra crrar
para eada cam po. I! desses camp os ted. urn X na coluna Key porqu e eles nao faze m pa rte da chave
pri maria. 0 propdsito desses campos e co nter urn segundo nome para 0
fabr ican te, a data e a hora qu e a linha foi criada e 0 ID de usuario do usudrio
que criou a regi stro. Crie urn n ovo elemen to de dadcs p ara todo s os campos.
o Sim, e possivel criar urn campo de tabela sem u tilizar urn
elemento de dad os au domtnio. Exiba a tabela no modo de
! Reutilize 0 dominic do campo namel para a camp o name2. Para 0 resto dos

alteracio e en tao escolha 0 caminho de me~u Edit-c-Direct


Type Entry. Voce entac pode inserir 0 compnmento de campo
! camp os, utilize os nomes de dominies existences do R/3 mostr ado abaixo.
Do cum ente esses campos utilizando 0 botao Docum ent ation no elemen to de
dad os. Depois que voce ativou suas alceracoe s, utiliz e urn navegad or de dados
e ripe de dado diretamente. Esse metoda ndo erecomendado para
para atualiza r as linhas existences em sua tabela e col oque os dados nos novos
campos que aparecerao na tela; ele e apropriado soment~ para
campos que nunca secio vistas sob~e a tela e nao terao qU;;l.ls~uer
relacionamenros de chave est ran geira com outras tabelas (veja a
seguinte capit ulo para uma explicacao de cheves estrangeiras}. A
II campos. Enquanto voce esta arualizando as Iinhas, te ste sua ajuda F lo

Ta b e la 3 .4 Novas compos e suas cc rccterlsticos pa ra a tab ela ztx lfa l


Nome do campo
SAP uciliza esse me todo de criar tab elas para tabelas que ar- Nome de DE Nomede DM
mazenam as in formacoes de sistema como ID s de cursor de banco , name2 • " • name2 •• · name
. de dados . Voce po de udliza-lo na visualizacio (staging) de. tab ela erdat ." -e rdat datum
,que arm azena dados brutos em transite den rro ou fora do s;:}e,ma ert i m · · ·ertim time
R!3. H a duas desvantagen s principais nesse metoda. Pr1IT~el~O~ ername • • • ernam usnam
nenhum eleme nto de dad o e utilizado e, ponamo. nao exrsnra
nenhum rotulo de campo ou ajuda FI. Segundo, nenhum dominic
e utiliza do e entao as chaves estrangeiras nao podem ser criadas.
Exerd cio 2
Works hop C rie uma tabela transparenre • • • knal para conter dad os-mestr es de clienres,
Os segu intes exerclcios proporcionarao. a voce pratica para c~iar objetcs no co mo mo strado na Tabela 3.5. Utilize urn na vegador de dados para adicionar
dicionaric de dados e urilizar esses objetos em prcgramas SImples com as da do s at abela. eri eurn novo programa ••• e0302 que Ie os dados dessa tabela
e os escr eve ern uma Iista.
insrrucoes tabl es, sel ect e write. As respo stas estao no apendice.

Q l Je stjo no ri o
1. Qual e 0 prop6siro do dominic ?
2 . 0 que 0 elemento de dados contern ?
3. A quese refere 0 termo dados de aplicativo?
4. Para campos do tipo DEC, 0 ponte decima l earmazenado com ovalor
do campo?

' -,,'
~ ,-
142 I ' PPEN D' EM21 01'S 'B'P/4

Ta bela 3 .5 Os compos e sues caracfe rlsticas para tabelo ••• knal

D e sc ri ~a o

N ome PK No me Nome Tipo Len


de ca mp o de DE de OM

Chente
mafldt mandt
Numero de c1iente
kunnr • •• kunnr
Nome de clente
name~ • •• knamel
Ctdode
cityc • •• ci tyc
Regioo
regio • • "r egi o
Pels
• • • , and l
1andl
oData Dictionary, Parte 2
Objetjyos do capitulo
Depois de completar est e capitulo, voce sera cap az de:
e Criar chaves estrangeiras.
• U tilizar 0 campo Value Table no do minic.
• Criar e utilizar tabelas de texto.
• Descrever a diferenqa ent re uma estrutura e uma tabela e criar estru-
tu ras no Data Dictionary do Ri3.
• Criar tabelas e estruturas con tendo campos monetdrios e de quanti-
dade.
• Aninhar est ru tu ras dentro de ourras estrutur as ou t ab elas.

De sco b rind o as chayes e strang"'eCLiruaoLs" - _


NOVO -.... Umo chove estrongeiro e um compo em umo tobelo que estc coneetodo a outra
HiMO r a
tcbelo via um rela ciono mento de chcve estrang eiro. prop6sito do relociono-
mento de chc ve estrongei ra e vchdc r as dodos sendo inseridas em uma tabelo de
verificccc c co ntra um conjunto vdlido de vclores em outre tobelo. A tcbelo que contem
a chove estrongeira e chcmado tobelo de chove estrongeiro. A tobela que contern a
cc ojvnto vclido de vclcres e chemo do tobete de verifico<;6c [ve]oa Figura 4.1) . 0 compo
que e va lida do e em que a relodonamento de chove estrangeiro e criodo e chomodo
chove estrangeiro.

nl1p:l/www.compU$.ccrn.br
-------------~~~~~~w~~~- .. -.... YWWYW W .

144 APREH DA EK 21 DIAl AB AP/ ' DlA 4: QOATA OIcnONARY. PARTE 7 145

Figura 4 1 Tabelode move Tobelo


estronge.ro de yermco<;Oo ta~6es de inr egri dade sio mantidas no banco de dados. Portanto, urn programa
A tcbetc de chcve
estrongeiro e 0 tobelo
em ABA P/4 incorretamente escrito pode violar a inregridade referen cial; ele
de verificor;60. nome do tob ela
pode inserir valores invalidos nas ta belas de banco de dados . P or ess a razao,
rth lfo1 l MOOS pr ogram as em ABAP/4 qu e precisam atu alizar 0 banco de dados com dado s
cbc ve ~ lan d l land l nome do compo
estrongeiro ~ proven ientes d e uma out ra fon te qu e nao a in t erface com 0 usuari o n orm al-
reloctonc mentc
Ii de chove eslrongeiro mente passaro esses dad os p or u ma interf ace com 0 usuario a fim de
US cA Esto to belc contem umo valids-los.
CA ~ lisle de c6digos
US IT de pcis v61ido$.
US US Para mo is lnfcrmccces sabre utilizoliCio do interfa ce com 0 usvcnc pora
DE JP
-'-
vcltdcr dodos, consulte os programas de ajude do R/3 library para
DE BOC (Botch Data Communication). Para visuolizor esso documentcceo,
o partir de qvclqc er tela escolbc 0 co minho de menu Help->RJ3
"-
Q uando voce odic:iono dodos a esto
tcbelc, umc verificot;60 , feito para
library. Voce vern 0 me nu principal do blbltctecc do R/3 . A partir del,
de um clique nos seg uintes guias: Basis Components->ABAP/ 4 Devel-
'o'er se a c6 digo do pa is que voce estc o pment Workbe nch-> Basis Programming lnterfcces->Tronsferring
lentando inserirexiste no tcbelo de verifico<;60 (ztxO05). Data With Botch Input.

P or exempl o, sua tabela·· - 1f al contem c6d igos de pafses em urn campo


Raquisi tos tecnicos para criar uma ch ave estrongeiro
chamado landl . Voce pede cri ar um a segunda tabela, por exemplo ••• t OOS, e
preenche -la com uma lista de codigos de parses validos . Encao, se vo ce cria um a Para criar um a cbave esrrangeire:
chave estran geira como a mostra da na Figura 4.1, uma verificacf o automati- • A verificacao deve ocorrer em relaljao a urn campo dentro da chave
cam en te sen. feiea contra a tab ela de verificacao para urn valor valido. C om essa prim dria da tabela de verificacao.
chave esrrang eira no lugar, 0 usudrio nac po de in serir codigcs de parses • Os no mes de dominios do campo de ehave estrangeira e 0 campo de
invalidos na tabela - - "l f al , rabela d e verificacao devem seros mesmos.
U rna chave esrrangeira ob tem seu nome do fat o de que ela semp re deve
verificar urn campo na chave primaria de outra tab ela. .• o segundo requi sit o existe p ara garantir qu e os campos que ests c sendo
comparados sejam compativeis quanto co tip o e comp rimen ro de dad o (veja a
Figura 4.2) .
Acionando a verifi ca ~ao de chave estrongeii-a
A verificacjo de chave esrrangeira ~ executa da pelo usua rio cia in te rface do R/3 .
Quand o voce digita urn valor em u rn campo e p ressiona a t ecla En ter, nos No Figura 4.2, os dais compos utilizom 0 mesmo e lement o de dodos .
bastidores a interface com 0 usuario formula uma instrucao sel ect para validar ossim como 0 mes mo domlnio.lembre-se de q ue noo e tmpre scindlvel
o camp o de chave estrangeira e envia-la ao banco de dad os. Se uma linha qu e as dois utlllzem 0 mesmo elementc de dodos - somente as
coincidence njio foi la calizad a na tabela de verificac ao, 0 u suario ve uma dornlnlcs de vem ser os mesmos.
me nsage m padrso indicando que 0 valor que ele digitou einvalido . Se u ma linha
coinci dence existe na tabela de verjfica~ao, os valores inseridos na tela tern Como esses campos compartilharn urn dominic em com um, aintegridade
permissao para passar para 0 programa em "ABA P/ 4 subj acen t e. Ass im, as da comparacao entre os dcis campos e garan tida, porque seus tipos e compri-
chaves estrangeiras jii sao verificadas ant es de 0 pr ogram a receber os valores . mente s ~e dados sempre coincidirao.
Alem da tecla Enter, as chaves estra ng eiras tambern sao verificadas quan do um a
teela de fun~5.oJ urn bota o (pu shb utton) ou urn ite m de men u eselec ionad o.
As chaves estrangeiras sao verificadas apenas pda int erface com 0 usuario.
Elas nao existem no banco de dados e DaOsap verificadas se vo ce sim ples mente
em it ir uma instru~ao updat e de banco de clados. ~en huma refer encia a limi-
...... - ... - •• --- - ... .... .. -- -- .. - = -
146 I APRENDA EM 21 VIAS AB AP/4 CIAt 0 DATADlmONARI, PARTE 2 147

Fig ur a 4 2 Tobela de
verifico<;oo
Procedime nto de criccco de ta be lo de verificccuo
Este e urn diogromo
do compo de chc ve
A seguir apresen tamos 0 procedimento de criacao para a tabela de verificacao
mlto 1 ,",,005 tcbelcs
estrangeiro, do compo - • - tOOS. Se voce tive r problemas, cons ulte a se<;ao de diagn6sti co e solucao de
landl land1 com pos
de tobelo de problemas relative ao p rocedi men to de criacio de tabelas rransparentes para
do
verificoc;lio e dominies preexistentes e elementos de dados no Di a 3.

~
dominiccomum que
eles comportilhom. "
S(mNu.M~ lnicle a ScreenC a m "How to Create Check Ta ble ' . ·tOOS" agora.

Para criar sua tabela de verificacao :

1. . Comece n a D ictionary: Initial Screen.


Estes carocteristicos
type: chc r 2. Digice nome de tabela no campo O bje ct N ame .
"
I, pe:
n: 3chcr "" / len : 3
sao herdodo s
do dominic
3. Escolha
0

0 bo tao de opcao T able.


I ztxlcnd l elerne nto de dodos
4. Pressione 0 bocao Create. A tela Di ction ary: Table/Structure:
ztxlondl Change F ields e exibida.
TYPE : CHAR _ dominic
5. D igite urn textc cu rto, escolha a classe de entrega A e colo que uma
LEN,3 marca de verificacao em Tab. Maint. Allow ed.
6. Di gite os n om es de campo e de e1emento de dados na parte inferior
de te la.
Criando u mo ,h o ye est ra O.Q"e"i"r a"--- _ 7. Coloque uma mar ca de verificacao nos dois campos para indicar que
eles formam a chave primaria.
Agora estd na hora de voce criar um a chave esrrangei r a simples. Este exemplc
p ermi tird que voce se familia rize com as telas envolvidas no processo; todos os . 8. Pressione 0 b c tao Save na barra de [errament as Standard. A tela
cam po s nessas relas serfo explicados em deralhes mais adian te neste capitulo. " Create Obj ect Ca talog Entry aparece.
Os pro cedimenrcs a seguir demons tram como criar a tab ela de verifieafac 9. Pressione 0 botao Local O bject. Vo ce e levado de volta a tela Dic-
zt xt 005 e dep ois uma chave estrangeira em zt xlfal - l andl ut ilizan do ztxt 005 tion ary: Tab le/ St ruc ture: Change Fields.
como a tabe la de verificaclo. D epois de visualizar esse procedimento, vo ce sera 10. Pressione 0 botao T echnical Settin gs na barra de ferr amentas Appli-
solicitado a erial' sua pr6pria tabela - - -tO OS e entao criar urn relacion am ento catio n . A tela ABA P/4 Dictionary: Ma intain T echnical Settings e
de chave esrran geira de - - - lfal -l and 1 para tabela de verificacao - - - t OOS. exibida.
Antes de erial' uma chave est ran geira, voce deve prim eiro te r um a tabe1a 11. No campo Data Class, digite APPLO (APPLO com urn zero, na o
de verificacao. Emb ora ja haja uma tabela de c6digo de pafses n o R/3, para APPLO com a letra 0).
pra ricar voce criara e ut ilizara a sua propria tab ela. A tabe la d e verificacao se
12. D igite a (zero) no campo Size Category.
cha mar a - - - tOOS e ira conter os campos e utilizar os elem entos de dad os
13. Pressione 0 batao Save.
mostrados na Tabela 4.1. (Urn x na coluna PK indica campos qu e fo rmam a
chave primaria. ) 14. Pressione 0 batao Back. Voce e.levado de volt a pa ra atela Dictionary:
Table/St ructure: C han ge Fi elds.
Tabela 4. 1 as campos e sues ca racterfsticas para a tabelo - --TOOS 15 . Pressione 0 botao Activate n a barra de [erram en tas Application. A
mensagem "was activated" apa rec e na berra de sta tus e 0 campo Status
Nome d e cam po PK No me de DE
contem 0 valor Act. .
mandt x mand t
l andl • - -1 andl Escolha 0 caminho de menu Utilities- c-Create Entries para inserir c s
dados em sua tabela de verificacao recentemen te criada. Insira seis linh as com
valores 1andl de us, CA, DE, rr, J P e AU. I,
I
~..--.d
w ... • ........... ••••••• w • wv • • •• • •• V . W ! ' ' I..;

148 APRENDA EM 21 DIAl ABAP/4 DJA4: 0 DATADlcnmURY, PARTE2 149

Proced imento de criocc o de chave estrangeira Fi g u ra 4 3


A tela Create Foreign
Keyeobe compos de
S(RHNCAM~ Inicie 0 ScreenCom "How to C reate a For eign Key" ag ora.
tobela de verificaqdo e
seus compos de chove
esfrangeiro ossociodos.
Para criar uma chave estrangeira:

1." Comece na Dictionary: In itial Screen .


2. No campo Object N ame, digire 0 n om e da tab ela que e para conter
a chave esrrange ira ( - - -1fal). .
3. Escol ha 0 boeso de op~ao Table.
4. Pressione 0 botao Change. A tela Dictionary: Table/ St ru cture: Chan -
ge Fields e exibida.
5. . Posicione 0 cursor no campo que esci para torn ar- se a chave es-
trangeira (l and2).
6. Pressione 0 botao Foreign Keys na b erra de fer ra m entas App licati on.
A tela Create F oreign Key sera exib ida (veja a Figura 4.3).
7. Digite urna descricao da chave estrangeira no camp o Sho rt T ext , por Testa ndo 0 relacionamenta de chave estrangeira
exemplo, Country Code val idat i on. Se vo ce encontra problema s, 0 seguinte procedimento e descrito em mars
detal hes n a pr6xima seC;ao. P ara test ar sua ch ave esrrangeira:
8. Digite a nome da tabela de verificacto ( - - - t0 05) no campo Check
Table ou de urn cliqu e na seta para baixo e escolha cia Iista. 1. Inicie na · tela Dicti ona ry: Table/S tru cture (qualquer alreracdo ou
9. 0 pop -up Change Foreign Key aparece. Ele declara Check ta ble name modo de exibicso) .
was created or changed. Generate a proposal for fi e 1d ass i sn- , 2. Escolha 0 caminho de menu Utilities-> Crea te entries.
ment? Pressione 0 borso Yes.
3. D igire um valor no campo de chave estr angeira (c6digo de pais). ,
10 . Voce elevado de volta atela Create Foreign Key. Os names de ca·~~o
. 4. Pressione a te cla Enter. Se a valo r nac for localizado na tabela de
de tab ela de veri ficacao e os nom es de campo de chave estrangeira sao
verificacao, a mensagem "Entry do es not exist (please check your
exibidos. (Os names de campo de tabela de verificacao sao - - • t005-
en t ry) " e exibida.
mandte - - - t005 - l and!. O s nomes de camp o d e chave est ran geira sao
.- - l fe l -mand t e· - -lfal-landl. )
Desco brio do a coluoa CbeckTable
11 . Pressione 0 botac Copy. Voce e levado de vo lta a tela Dictionary:
Table/Structure: Change Field s e a mens agem "Fo reign key was Dep ois de criar um a chave est ran geira, a nom e da tabela de veri ficacao aparece
transferred" aparece na barra de Status . O s campos Status contem os na coluna C hec kTable na tela Di cti onary: T able/ Stru ct ure. Se urn campo for '
uma chave estrangeira, a co luna Ch eckTable co nrera 0 nome da tabela de
valores Rev; sed e Not save d.
verificacac desse campo.
12. Pressione 0 batao Activate na barra de fer ramentas Application . A
O lhe em sua tabela agora. Vo ce deve ver 0 nome de sua tabela de
mensagem "was activated" aparece na barra de status. as valores nos
verificacao na colona C heckT able.
campos Status sao agora Act . e Saved.

V oce acaba de criar urn relacionamen tc de chave estrangeira entre as D ete[rn i o a ~60 autorn6tico de.compos de chave estraogeira
tab elas · · - H al e ·· - tOOS. ---Hal-landl e o campo de chave estrangeira e Quando cri ou a chave est rang eira, voc e nfio teve de especificar os campos que
- - - tO05 e a tabela de verificacao. A interface com a usu ario validara a valor devem pa rricipar no relacionamen ro de chave estran geira - 0 sistema as
dentro do campo _. -Hal-landl con tra os valor es na colun a - - - t 005-landl. deterrn in ou au romaticamente. Esta se~ao explica como 0 sist ema determine
esses n a mes de campo .
. ..'-.

150 ,PRENDA EM 21 DIAS "'P/4


DIA4;OOATADlaJONARY, PARTE 2 151

Durante a cria~ao de uma chave estrangeira, voce colocou 0 cursor no


campo de chave estrangeira e pressionou 0 botao de chave estrange ira e 0 a titulo de co luna e a lorguro nos listos de entrodas pcssfvefs vern do
campo Header no elemento de dodos para 0 ca mpo de tobelo de
sistema gero u uma p roposta de chave escrangeira consistindo em pares de verlftcccoo exibido.
campos. Em cada par, urn campo se o rigina da tabela de verificacao e 0 outro
da tabela de chave estrangeira. 0 num ero de pares eigual ao numero de campos
de chave primaria da tabela de verificacao. Todos os campos de chave prirnaria Acompanhe 0 procedimento a seguir para testar 0 relacio namento de
da tabela de verificacio devem ser incluidos no relacionamento de chave chave estrangeira que voce criou em - - -1 fal- 1andl . Se sua chave estrangeira
cstrangeira nao funcionar, tente esse procedimenro urilizando ztxlfal, entao compare
o sistema pesquisa nesses campos de chave primaria 0 primeiro que tern ztxl fal com sua tabela para dete rminar 0 problema.
o mesmo dominio que 0 campo de chave estrangeira e 0 emparelha COm sell
1. Comece em qualquer tela.
campo de chave estrangei ra.
2. No campo Command, digire /nse16.
Se houver diversos campos na chave primaria cia tabela de verificacao, 0
sistema tentara localizar uma coincidencia de cada urn dos campos resrantes. 3. Pressione a tecla Enter. A Data Browser: Initial Scree n e exibida.
Urn a urn, 0 sist ema tentani localizar urn campo na rabela de chave estrangeira 4. Digite - - - 1fal no campo Table Name.
que tern 0 mesmo do minic que a campo de tabela de verificacao. Se isso nso 5. Pressione 0 botao Create Entries na barra de ferramen tas Applica-
funcionar, ele tentard localiz ar urn campo que tenha 0 mesmo tipo e compri- tion. A tela Table Insert e exibida.
menta de dados. Se ele encon trar ma is de uma coincidencia, selecionara urn e
i
advertira vo ce de que a atrib uicac e ambigua. 0 processo e repetido ate que
todos os campos de chave prim aria da tabe1a de verificacao sejam emparelhados
6. Digire qualquer valor no campo de numero de fabricante, por exem-
plo, MY-V!.
7. Posicione 0cursor no campo Country Code (landl)..Em bo ra uma
I
a urn campo da tabela de chave estrangeira.

Rel aci o'na nd o as chaves estran geiras com a seta


seta para baixo apare~a no fim dele, nao a pressione ainda.
8. Digite 0 valor xx no campo Country Code.
9. Pressione 0 borso Save na barra de [erramentas Standard. A men-
I
pa ra baixo e a ajlJdo F4
sagem "Entry XX does not exist (please check your ent ry)" aparece .
NOVO...

I
Alem do ojudo Fl. voce tcmbem pode oferecer alga chomodo oiudo F4.pora Seu cursor esta posicionado no comeco do campo que contem 0 valor
lERMO r a vsucrlc. A ojude F4 e ume listo de vclores volidcs que 0 usvcric pe de digitor incorreto. Urna seta para baixo aparece no fim do campo.
em um compo. A flm de obter ojudo F4, a usuoria posiciono 0 cursor em urn ccmpo e
10. De urn cliq ue na seta para baixo ou pressione a tecla F4. Urn pop-up
presslon c Q teclc F4. A elu de F4 tc mbe m e conhecidc como possfveis entrodos de oiudo,
porque consisfe em umo listc de entrodos permltidos no compo. Os dais termos s60 contendo as colunas de chave primdria de tabela de verificacac
vtiluodos intercambiovelmente pelo SAP. - - -tOos aparece.
11. De urn clique duplo em us. 0 pop-up desaparece e 0 valor n o campo
Quando voce cria uma chave estrangeira, a ajuda F4
ofe rec ida para esse campo.

lnlcie a scree nco m "Using Q


e automaticamenre

Foreign Key to Provide F4 Help" agora.


c6digo de pais muda para US.
12. Pressione 0 botjc Save na barra de [erramentas Standard. A men-
sagem "Database record successfully created" apar ece na barra de
II
$CRHHCAM status.
Em uma tela, se voc e coloca 0 cursor dentro de urn campo de chave
o relacionamento de chave estrangeira oferece urn mecanisme para I
I
estran geira , um a seta par a baix o aparecera no fim do campo de entrada. Essa e
validar os dados inseridos pelo usuario na tela . Se 0 campo fo r urn campo de
a ajud a F4 . Se voce der urn clique na seta pa ra baixo ou pressionar a teela F4, .
chave estrangeira, 0 valor ecomparado contra a tabela de verificacao. Se 0 valor
uma Iista de p ossiveis en tradas vdlidas eexibida. Essa lista e0 conteudo da tabel a
nao existe na tabela de verificacao, e exibida uma mensagem de err o padrao.
de ve rificacao. N essa lista, as colunas de chave primaria da tabela de verifica~ao
sao exibidas, excluin do mandt. !
f
~~j
152 AP RENDA EM 21 DIAl ASAP" DlA 4: 0 DATA DICTIONARY, PARTE 2 153

figmg 4 4 Iobelo de chcve Tobela d e


C h aves e strangeiras e p rogTIlLLm UUOL:lsc..!eOW
mLllo
Wt!e« - _ Uma chove estrongeiro v e rifi ca ~60

Os programas em late que leem arquivos sequenciais au outras origen~ de estrangeira compo sto ztxllal ztxt005
volidondo a .
dados que nao a tela e atualizam 0 banco de dados diretamente devem validar
os dados. U rn programa desse ripo deve ser codificado de uma destas rres
combino; oo de regioo
e de poisem relo<;Cio
6 lobelo de verificor;Cio.
LOOrr LOrEr o relacionamento
de chove estrongeira
manerras :
• 0 programa deve passer as dodos per uma interfac~ c~m ~ usuario us FL CA ON
CA ON CA NS
chamando uma rra nsacao qu e contem as telas. 1550 efeitc mterramente US AK
US A
em segundo plano. Os clados sao automaticamente "chaveados" par a US GA US Fl
os campos de tela a fim de fazer com que a verificacao de chave DE 02 US GA
estrangeira seja executada. Essa tecnica e chamada EDe (Batch Da ta
Communications) e foi mencionada anterio rmenre na se~ao "Descc-
brinclo as chaves est rangeiras". BDC e a tecnica padrao utilizada para
-DE 01

chcve estrongel r a "


composto
DE
DE
01
02

cc mcc de verflcocco. Umvalor nesse


impo rta r dados no sistema Rj3 . compo a d ona a verthcocec

• Ele pode canter in srru coes se lect que executam a verificacao de chave
Voce cria urna chave est rangeira composta quase exatamente da mesma
estrangeira. Essa tecnica e menos confidvel, porque os programas
maneira como voce cria uma chave estrangeira cont endo urn un ico campo. Voce
devem ser atualizados se novas chaves estrangeiras forem adicionadas
comeca posicionando 0 cursor em urn campo , nesse caso zt xl f al- r eg; 0 e
au se existirem alteracoes.
depoi s press ionando 0 botao Foreign Keys. C om o 0 cursor esta em reg; 0, e1e
• Ele pe de passar os dados para m6dulos de funljao especiais que se torn a 0 campo de verificafiio da chave estrangeira composta. Embora a chave
executam as duas verificaco es de chave estrangeira e atualizacoes de

I,
estrangeira seja composta de divers os campos, apenas urn desses campos
banco de dados. A SAP cria esses modules de funljao (chamado BAPIs acionard uma verificacao contra 0 banco de dados . Como re g; 0 e 0 campo de
ou Business APIs) e os forne ce com 0 sistema R/3 . verificacao, urn valor inserido nele na tela aciona urna verificacao. Se 0 campo

Chaves es t ro ng e iro s compostas _


de verificacao nao est iver branco quando a usuario pressionar a tecla Enter.
uma verificacf o sed executada contra a tabe1ade verificacso comparando todos
os campos cia chave estrangeira. Se 0 campo de lverificar;ao estiver em branco,
,
f

i
Umo chove estronge jro comp osta e umo cbcve estrongei ro composto d~':dois
NOVO 'rr.... ,,t
nenhuma verificacfo e feita mesmo se as outros campos contiuerem oaiores.
mAIo ~ ou mcis cam pos. Em o utros polovrcs, umo verificcccc e feito para comporar os
dols compos no tcbelo de cbove estrangeiro com as dois compos no tobelo de verificoccc. ;
A ccmblnocdo de vclcres deve existir no tobelo de verlflcccoo antes de eles poderem ser
inseridos no tobelc de chove esfrcnqeiro . Entretcnto , somen te urn compo no tela ocionor6
Como com a chove estrangeira simples, os names de dorofnlo do
campo de verificac;ao e seu compo ossoclc dc no tcbelc de vertficocco
II
a verlflcococ de chove estrongeira composto. devem cai ncidir. Entretcntc, quando a chcve estrongeiro e criado, as
demais names de domin ios no chc ve estra ngeira composto nco tem
MOVO ~ Quando voce eric umo chove estrongeiro composto, 0 compo em que voce de coincidirj a chove estrongeiro pode ser crlcdc se 00 menos seus
URMO ~ rea lmente define a chove estro ngeiro echcmodo compo de verifica<;ao. Some nte tipos de dados e comprimentos coincldirem. Mois tarde, se 0 tipo de
um volor nco nulc no compo de verificc cc o adona a veriflcccec em relccec 0 tobela de dodos au comprimento em um desses domlnlos for alterodo, os campos
verificac;ao. Um valor em quolquer dos outros compos de ntro do chove estronge iro ndo mois coincldiruo e os resultados da verificococ de chove es-
composto noo ocionar6 a volidoc;oo. trongeiro serao imprevisiveis. Por essa roz60 , emboro 0 R/3 nao
imponho q ue todos os names de dominio de umo chove estrangeira
Por exemplo. 0 campo reg; a em zt xl fa l deve conter apenas 0 estado valida compo sto coincidom, isso e basto nte desej6veL
ou os c6digos de provincia. A cornbinaljao de regi a e 1andl juntos deve ser valida. Em geral. quando a lterar 0 tipo ou a compnmento dos dodos de um
Portanto. urna tabela de verificar;ao (ztxto05s) comendo cornbinaljoes vili das de campo em umo outro chave estrange ira composto que nao 0 compo de
regia e l andl e necessaria. Depois de eriar essa tabe1a de verificar;ao. uma chave verifico~oo, voce deve confenr se a chove estrongeira e os campos de
tobelc de verifica~oo estoo vfilizondo 0 mesmo dominic. Se naoestiverem,
estrangeira composta e necessaria em ztxl fal para validar a combinaljao de regia
voce deve otuoliz6·los para ter 0 mesmo tipo e comprimento de dodo.
e 1andl em re1ar;ao a tabela de verificar;ao. Comumente, ztxt005s- 1andl tambem Umo falho nissoresuhor6 no operoc;co imprevislveldo chove estrongeiro.
deve servalidado contra ztxtOOS - l andl (veja a Figura 4.4).
154 " RE NDA EM 21 DIAl ABAP /~ DIU 0 DATA DICTIONARY, PARTE 2 1:>5

F igu ra 4 ....A....--
Se voce criar urn relacionamentc de chave estrangeira para u ma tabela de
A defini¢o do cho ve
verificacao con tendo mais de urn campo na cbave primaria, todos os campos estrongeirc mostrodo
de chave primaria da tabela de verificacio deverao ser inc luldos na chave no Figure4.5.
estrangeira. Nero todos precisam ser verificados [veja a se~ao "Chaves es-
trangeiras genericas" a seguir) , m as todos devem ser incluidos.
Como a maioria das tabelas de verificacao conrem 0 campo mandt, esse
campo e parte da maioria das chaves estrangeiras (veja as Figuras 4.5 e 4.6).
In c1uindo ma ndt na tabela d e verificacao, conjuntos de valo res validos e
independentes po dem ser d efini dos para cada cliente de logon e eles podem
d iferir entre clientes. Essa capacidade ebastante desejsvel para sepa rar as dados
entre clientes e assegu rar que eles sejam completamente independen tes urn do
o utre .
A ajuda F4 escd apen as disponfvel no campo de verificacsc de uma chave
est rangei ra comp osta. Quando chamar a ajuda F 4, eodo s os campos de ch ave
p rimaria da tabela de verificacsc serao exibidos . A coluna contendo 0 campo
d e verificacso sera destacada na list a. As larguras e tftulos de co luna vern do
campo Header nos elem entos de dados . as valores de X significam:

Tobelo de chove Tobelo de • 1: Se 0 prograrna aplicativo exclui uma linha da tab eia de verificacao,
F igura 4 5
estrongeiro verifico~oo tambem excluini as Iinhas correspondenre s da tabela de chave es-
Umo cho ve
~strongeirc composto ztxIfa1 ",,1(105 rrangeira. Por exemplo, se 0 programa de aplic acao remover 0 valor us
envofvendo 0 compo MANDT LANDl REGIO tv\ANDT lANDl R.EGIO da tabela de verificacao, ele excluira todas as linhas da tabela de chave
mandt . estrangeira .o nd e 1andl '" US. Em outras p alav ras , se houver urn valor
na tabe la de chave estrangeira, havera sempre uma e apenas uma linha
I tendo esse valor na tab ela de verificacao.
700 I I US Fl 700 CA ON Volores v6lido$ no clteete 7~
800 I I US GA 700 US Fl I~ • C: E possfvel excluir da tabela de verificacao sem exc1uir as linhas
CA NS

~
800 I I US GA 800 correspondenres na tabela de chave esrran geira. Em out ras palavras,
800 I I CA NS 800 CA ON Volores v6lidos no cliente 800
800 r I CA ON 800 US GA po de haver valores na tabela de chave estrangeira sem valo res cor-
900 r I DE 01 900 DE 01 } Volores vclldos no cllente 900 respondent es na rabela de verificacao,
900 I I DE 01
I I as valores de Y sign ificam :
t
cutros
• 1: Hi sempre uma e, somente uma, linhana tabela de chave estrangeira
compos para cada linha na tabela de verifica cao.
• C: Ha, no maximo, uma linha na tab ela de chave estrangeira para cada
Iinha na tabela de verificacao.
Entenda a cardinalida de
• N: H a sempre pelo menos uma linha na tabela de chave estrangeira para
NOVD .... A cordino/idode do relccloncmentc de cbove estrongeiro descreve , para coda cada linb a na tabela de verificacao ,
TEilID r valor no tcbelo de verifico~60, quonfos linbcs de dodos soa perm itidos no tabela
• CN: Pede au nao haver Iinhas na tabela de chave esrrangeira para cada
de chcve estrongeiro. Ela e Inserldo no tela Create Foreign Key {veja 0 Figura 4.3}. A
ca rdinolidode e descrita como X: Y, onde Xse refere a fcbela de verifico ~oo e Yse refere linha na tabela de verificacio.
a tobelc de chcve estrongeira. X pode cpe ncs ter as vclores 1 ou C e Y pede ser 1, C, N e
A cardinalidade ndo imposta pelo sistema R/3 . Especificar a cardinali-
au eN. dade e opcional e a siste ma nao verificara a cardinalidad e pa ra determiner se
44 . .... _

156 APREH DA EM 21 DIASABAP/4 OIH OO'T'OICTIONARY, PARTE ' I 157

essa atualizacao tern permissao para acontecer quan do urn prograrna em chave estrangeira, a ripe correto de chave estrangeira sen do tipo campos/can -
ABAP/4 atu aliza uma tab ela. A (mica vez que a cardinalidade e utilizada e didatos -chave.
quando voce cria urn objeto agregado n o DDIC. A o criar uma chave esrrangeira, voce deve escc lher carnpcs/candidatos-
chave se 0 campo de chave est rangeira for urn dos campos de chave primaria
NOVOlio.. Urn o bjeto ogregado e um cbjetc ODIC co mposfo de mois de ume fabe la. Um da tabela au fo r urn candidato-chave. Caso contrario, escc lb a campos/candi-
lElI',O " exemplo de urn ob jeto egr egedo e umo visua Hzot;oo. dat os nao chave.
Quando voc e cria uma chave estrangeira vo ce deve especificar a cardina li-
dade . Se nao espe cifica-la, voce sera incapaz de incluir a tahela em urn ohje to Campas-chave de uma ta bela de lexla
agregado. o sistema R13 suporta diversos idio m as e, ponanto, permice que os usuarios
se conectem utilizando 0 idioma de sua preferencia. Por causa disso, ...s
Iipo de campo de chove estrangeira descricoes rio R/3 sao armazenadas em rabelas especi ais dependenres do idioma
chamadas tabelas de texto .
o ripe de campo de chave estr angeira tambem deve ser especificado na mesma
tela que a cardinalidad e quando voc e cria a chave estrangeira (veja a Figura 4.3) .
Ele pode ser urn dos segui ntes valor es: as usu6rios podem configurar se u pr6prio idioma de logon pcdrec.
• Campos/candidaros-chave Isso e feito no perfil de usu6rio escolhendo a cominho de me nu
System-> User profile- > User defaults. A c ftercce o do seu pe rfil de
• Campos/candidates nac chave usua rio s6 se tom o efetivo no seu pr6ximo logon.
• Campos-ch ave de um a tabela de texto
NOYO ..... Umo tobelc de fexto e urna tcbelc que contern descnce es 'n c lingua fa lodo' de
Campas-chave rmlo " vclo res em umo tobe lo de veohcccec. Essos descricees 56 0 ormoze nad os em
Escolha Key Fields/ C and idate s seo campo de chave est ran geira fo r urn dos v6rios ldlomcs. A chove prlrncric do tobelo de texto e c mesmo que 0 chove primcrlc do
campos de chave primar ia da tabela de ch ave estrangeira. Escolh a Non-Key " tobe lo de verlftcocec , com a edie;oo de umo colune spras (idiomo).
F ields / C andidates se nao fo r. Por exemplo, suponha que a tabela tl seja Por exemplo, a tabela ztxtOOS po ssui c6digo s de patses nela. Os nomes
co m posta de campos fl a fl Oe qu e seus camp os de chave primaria sejam fl,; f2
dos palses sao armazenados em uma tabela separada chamad a ztxtOOSt
e f3. Se voce fosse definir um a chave estrangeira no campo f3, Key F ields/C an-
(m ost rada na Figura 4.7). po rque voce realmente precisa de muitos nomes para
didates seria 0 tipo correro, porque f3 e pane da chave primaria. Se v6ci fosse
urn c6digo de pars . Como ela armazena descricoes espe cfficas do idioma de urn
definir u ma chave estrang eira rio campo f S, Non-key F ields/Can didates seria
c6d igo generico, ztx t 005t e chamada de tab ela de texro .
correto, po rque f S nao eurn dos cam pos de chave primdria. A chave primaria de ztx t00 5t co ntem os mesmos camp os que a chave
primaria de ztxtOO S, com a adi ~ao de urna coluna spras (idio m a}. 0 cam po
Candidalos-chave spr-as contem 0 c6digo de idioma e ativa essa tabela para conter uma descricao
de divers os id iomas de logo n.
NO
VO'" Urn condidcto-dtove e urn co mpo em urno tobelo que , por si mesmo ou em
TERMO "" con junt;oo com outro compo que n60 foz porte do cho ve prim6rio, pede ser A chave primaria de qualquer tabela de text o e compost a dos campos
utilizodo poro identificor de mon eiro unico urno linho no tobe lo. Em o uiros polovros, se mandt e spras, seguidos pelo campo de validac;ao (ou campos); Urn QU mais
houver umo mo neira de selecion or umc linhode"umo tobelo sem utilizer compos de chove campos de descri~ao seguem essa chave primaria.
prim6rio, existem condidotos-chove nesso tebela. as candidatos-chove s60 os compos Urn relacionamento de chave estrangeira e definido em ztxt OOSt- l andl
que noo se encont rom dent ro do chove prim6rio que podem ser otilizod os unicomente
para a tabela de verifica c;ao ztxtOOS. 0 tipo de campo de chave estrangeira deve
pore identjficor umo linho de mo neiro unicoi bosicc me nte e les podem se rvir como umo
chove prim6 rio alterna tive . ser campos -chave de urna tabela de texto.

Por exemplo. ztx 1fa 1 tern urn unico campo de chave primaria qu e contem
urn identifi cador unico para cada linh •. Se voce pressup6e que a combinal$ao
de erdat e ert i rn (data e ho ra de cria~ao) etambem (mica para cada linha, esses
camp os de data e hora sao candidatos-chave. Se qualquer urn aparecer em uma
DlA ~: 0OATA DICTIONARY, PARTE 2

158 , AP REHOA EM 21 elAS AB.l.P/~


Tabela 4.2 Co nteud o do tabelo ztxOO5
F ig u r a 4 7
A tcbelo de fexto
landl
pore ztxt005 eo us
ztxt005t. flo eo
comp osto de compos CA
mandt, spros, DE
landl, landx e
IT
natio.
JP
AQ
CC

Ta bel a 4.3 Conte udo do tobela ztxt OOSt


s pras l andl lan dx

E CA Canad a
D CA Kanada
E DE Germany
Relocionando as tabe las de te xto com a ajuda F4 D DE Deutsch' and
E US United States
HOVO D US USA
TIiMO ...
" sistema R/3 que a fobe lo de chove esfrongeira e umo fobe lo de felda. Quando
Ita ly
voce escoihe esse tlpo, a primeiro descrtcco que segue a chcve primorio e exibida no E IT
ajuda F4, no idiama de logon do csuoric. Pcrtcnto, esse tipo de chcve tem duos D IT Italien
propriedades esped ais: E JP Japan
• Quando as linhas cia ta bela de verif icalSao sao exibidas em respcsta a D JP Japan
uma solicitalSao de ajuda F4. 0 primeiro campo de clescrilSao da tabela E AQ Ant arcti ca
de textc apar ecera na mesma lista, como se fosse uma parte da tabela D AQ Antarcti ca
E CC Coconut Islands
de verificacao.
D CC Kobinseln
• Somenre as lin has da rabe la de t exto tendo 0 mesmo c6digo de idioma
que a idioma de lo gon atu al do usua rio aparecem na lista de ajuda F4.
Por exemplo , a tab ela de texto ztxt005t contem urn relacionamento de
chave estrangeira de ztx t 005t- l andl para a tabela de verificacao ztxt005 e a tipo $Cl£ENC,Ul,.... lnlcle ~ ScreenCom "Text Ta ble Demonstratio n: The Effect of the Logon Lon-
,. guage ogara.
e"key fields of a t ext table". Quando voce chama a ajuda F4 em ztxt005 -l andl,
o us ua rio ve as colun as de chave primaria da tabela de verificacao ztxt005, mais
o conteudo da primeira colu na que segue a chave primaria de ztxtOOSt. Scmence 1. Inicie a rransacao 5E16 (digite /nse16 no campo C ommand e pres-
e a
as linhas onde spras igual ac idioms de logon atual sao exibidas. resultado sione a tecla Enter).
e que 0 usuaric ve as descricoes em seu idioma de logon para os codigos em 2. Digite 0 nome de tabela ztxlfal no campo Table Name.

ztxl f al. 3. Pressione 0 bcrao Create En tries na berr a de ferram en tas Applica-
a conreudo das tabelas ztxt005 e zt xt 005t emostrado nas Tabelas 4.2 tion. '
e 4.3. 4. Posicione a cursor no campo Country Code {l andl }. _,I

_______J
160 APREWO A fill 21 OIAS ABAP I ~ DIA 4:0DATA DICTIOHARY, PARTE 2 161

I
.,~'

5. Pressione a te cla F4 a u de u rn clique na seta para ba ixo no fim do Chave s estIlmgeiros canstantes e genericas
~amp o. Urn pop-up aparece exib indo colunas das duas tabelas ztxt 005
e ztxt005t . Observe qu e a col una 1andl da tabela ztxt005 e exibida e
, Lembre-se ~e q~e, quand o voce cria u rna chave estran geira, todos os cam p os
de chave prim aria de tabela de ve rificaca o d evem ser in c1uidos no rela cio n a-
as descricoes de lingua in glesa da tabela ztx tOOSt sao exibidas. mente de chav e estra nge ira . Entretanto , as v eze s, voce po de nao que rer exe cu-
6. A gora efe tue logon novarnen te (voce nac precisa efetuar 0 logoff tar uma verificac jo em rela<;ao a to dos esses camp os . Em ourras situacoes, voce
primeiro ). Dessa vez , digite 0 par a Deutsch e (alemao) ern Language po de desejar verific ar em rela cio a u rn valo r constan te. Em qualquer urn d esses
Field de tela de lo gon do R!3, casos, voc e pode defin ir uma chave estran geira gen erica ou consrante.
7. Repita as passos 1 a 5 em sua nova se<;ao de logon.
8. Note que dessa vel. as descricoes da tabela zt xtOOSt sao exibidas em Chaves estrangeiras genericas
alemao.
NOVO llr.. Uma chove estrongeiro generi co e umo chove estrongeira no qual um dos
ltRMO" compos de cbove prim6rio de s ca mpos de tobelo de verificccoo e morcodo
como generice . Qu ando urn cam po de chc ve prim6rio e morcodo como generico, ele
Criando uma tabe la de texto e uma cha ve estrangeira para e la nco tern urn corresponde nte no tobe lo de chove estrongeira e nco porticipono venficcceo.
Agora' e uma boa hera para tenter criar sua propria t abela de texro. U tilize
ztxt005t como urn modelo. Sua t abela de tex to sera ch ama da - - - t 005t e P or exemplo, dentro do ap licarivo M at erial s Management, a tabela mara
conterd os campos que utilizam os elemento s de dad os e do mini o s mostrad os e a tabela Material Ma st er. Ela com em a lista-mestr e de ma teriais utilizad os
na Tabela 4.4. Voce rambem ted de criar a elernento d e dados - - -1 andx. Utilize par a fabricacao e os atri buros de cada ma te rial.
o dominio SAP existence textl5 p ara seu novo elemenro de dados. U rn x na o programa de configuracfo p ara este livro crio u u ma tabela ztx ma ra
coluna PK indica os campos que formam a chave prirnaria. sem elhante a mara. Os campos de zt xmar a sao mos tr ad os na Figura 4.8.

F igur g 4 8
A tobeloztxmaro e
Nome d e campo PK N ome de DE Nome de DM semelhonte alobe/a
mara de the R/3
mandt x mandt MaterialMosler.
spras x spras
1andl x - - -1andl
1 andx - - -1andx t ext1 5
;,
, , '
""
Depois de ativar - - -t005t , digite os dados n ela utili zando 5E1 6. Utilize
o s dados de exemplo mostrados na Tabela 4.3.
Agora erie uma chave estrangeira em _. - t005t -1 andl. Siga 0 procedi-
mento de cria<;ao de chave estrangei ra forn ecido an t eriormen te. Utili ze
- •• t005 como a tabela de verificacao. Na t ela Create Foreign Key, especitique
urn tipo de campo de chave estrangeira n os campo s Key de uma ta bela de rext o .
Voce pode querer revisar a scr een cam "H ow to Creat e a Foreign Key " ant es
de comecar. 1.-"

Depois de criar su a chav e est rangeira, siga 0 prc cedimen t o p ara t est ar 0
relacionarnento de chave estrangeira em •• - 1f al - 1andl. No pa sso 11, note que
...t,, Ocampo ztxmara- s t of f con t em 0 numero de urn material de risco . Se 0
;,J,.
a descricao de ztxt005t tambem e exibida. Agora, efetue logon novamenr e,
d essa vez esp ecificando urn idi oms de logon 0 (alem ao) e repita 0 teste. D essa
vez, voce devers ver as descricoes alem as no passo 11.
.'
, campo nao est ive r em branco, 0 mat erial exige tratamento especi al; 0 nu me ro
d e stoff indica 0 tip o de tratamento exigido. O s n um eros de rraramento sao
definidos na tabela ztx mgef, qu e est ailus trada n a Fi gu ra 4.9. No nosso exemplo,
sup on ha que zt xmg ef con ten ha uma linh a com st off igual a 1. Essa lin h a indica
.. . /
'W'W'W''W''W ......... ...
~ . ...

162 ,pm" EM " DIA S AB AP/ ' DIA ~ : 0 DATA DICTIONARY, PARTE 2 163

Figura 4 10
urn procedimento de tr atamento que exige luvas. Atualizar urn material e
Umo ma rco de
colocar 0 mimero 1 no campo ztxmara-stoff para 0 . mate rial ind ica que 0 verificor;oo no coixo
material exige tratamento esp ecial com luvas. de selet;60 Generic
indicaque um compo
_1;,1",1 deve ser ignorodo

~z~ii;~:;;:mara !;tilj:~l:1l~:~~.F~~'E:'.~E~5j~~: ;~;;,:'0 '~~?·~ durante 0 verificor;oo


de chc ve eslrongeiro .

-.," - , . ' r.,~eO""'.IirJnf.:,~unt"1.. ~. d~ ~::;:[


I
':M"; t. ~~~ , ' ~ •
. . ~" ,.. ~l',,~ ; $t.• j" '~' ~U5S · ~ ·,.-t ,,;; r,;.~: ~-··_ : - ~

'f';:',;~;;'':::;:::~;;~B~~~~~;'~~ .
., Quando essa chave estrangeira e verificada, somente a combinaci o d e
i mandt e s toff deve existir na tabela de verificacao. 0 r eg; a e os cam pos 1and l
sao ignorados.

Chaves estrangeiras co nstontes

HOVO.... Chaves es/-rcngeiras canstonfes sao chcves estrang eiros compostos em que um
A tabe la de verificacao pa raz txmara-s toff eztxmgef. A definicsc de chave TERMO ~ des names de compo de tobelc de verthcocoo e substilufdo par um voter
ccnstcnte. Essevolar constcnte e inserida no lela Creole Foreign Key (~ej a a Figura 4.11).
est rangeira e mos trada n a Fi gura 4.10.
Essa chave esrrangeira valida as valores inseridos em ztxmara- ~t~off e Por exemplo, imagine que voce p recise criaruma nova t ab ela de fabricante
assegu ra que apenas num eros de tratamento validcs existem na tabela at xme re. ztx lfalus como ztxHal contendo ap en as os fabri cante s dos EUA, mas, par
I nfeliz mente, regu lamentos d e rratam en t o podem variar de aco rdo com as razoes de compat ibi lidade, voce quer que des tenharn exa tamen te a mesma
regioes geogrd ficas. Por tan to , a chave primariade : t xmg e: compo_sta de sto,f:, e estrutura que ztxl fal. 0 c6digo de p ars nessa rabela semp re se ra.us. Vo ce po de
r eg; a e 1andl .Entretanto, ztxmare n ac ccntem qUalsquer informacces geografi- criar uma chave estrangeira constante para restringir os valores na tabela
cas - essas informacoes en contram -se nas ta belas da fabrica. ztx lfalus. Urn exemplo da definicao e mostrado na Fi gura 4.11.
Lernbre-se , uma ch ave estrangeira deve incluir todos os campos de chave
primaria da tabela de verificacao. Portanto, regia e 1andl de ztxmgef ap arecem Chaves estrangeiras odopto dos
na definicac de chave est rangeira . E ntretanto, para os proposiros de zt xmar a,
vali da r zt xma r a-s t aff contra zt xnlg ef - st aff e suficiente, as inforrnacoes de NOVO.... Nem lodos as compos de choveestrangeirode uma chcve estrongeiro composta
posicao n ao exis t em em ztxmara e nao imporram para essa validacao . Basta saber TtRMO~ precisomresidirno mesmatabela . Se eles nee residirem, ISSO econhecido coma
que 0 mimero de t ratamen t o espe cial especificado existe. uma chave estrongeiro adaptodo. Par exemplo, assumo que a c6digo de pols para a
Nesse relacionamento de chave estrangeira, os campos reg ia e lan dl na fobricante n60 este]c no finol dos centes ormozenoclo em ztxlfal, mas em vez disso em
ztx1falcc. Quando voce fosse crier a chove estrangeiro no compo de regioo, voce
chave primdria de zt xmqef estao sendo ign orad os. Para garantir que esses
clteroric 0 compo de tobelc de verificalioo de 1andl para zt xl f al cc-l andl [ve]c a Figura
campos serao ignorados durante a validacao, d es sao definidos no re laciona- 4.12 }. A vohdcceo no compo reg i a verlflcor io se a ccmbincceo de mandt e re g; 0 existia
mento de chave esrrangeira como genericos. A rnarca de verificacao na caixa de em zt xt 005s e se 1and1 existia em quolquer Hnha de ztxt 005cc.
selecao Generic n a tela Create Foreign Key faz isso.
~ '!' '!' '!' 11 !!f 'I' .. 'I' ... .. .. .. ... ... ... • ... ... ... ... "II!" •
-- --- -
w w _ 'W
- -- -- - - - - - - -
DIH 0DATA DICTIONARY, PARTE 2 '165
164 APR!NDA! M21 OIlS A BA P / ~

Fi gu r a 4 11
Sempre que voce cria urn relacionament o de chave esrrangeira, 0 sistema
o compo pots como
olha no campo de rabela de valor. Se houver u rn nom e de tabela af, ele propoe
umo chove estrongeiro esse nome como a tabela de verificacao.
ccostonte. Alguns Ieirores terao difieuldade com esse conc eiro, entac YOU explica -lo
co m det alhes na se~ao a seguir.

Entendendo 0 campo Value Table


A fim de entender 0 prop6sito do campo Value Table, voce deve estar familiari-
zado com 0 "q uadro geral'' do projeto e des envolvirneneo do banco de clades .
Com ecarei descrevendo esse qu adrc geral .
Antes de erial' qualquer tabe la no DDIC, vocenormalmente fara algum
projer o de banco de dados . Ess e projeto descreve as tabelas que serao criadas,
seus relacionamentos e os tipos de dados que cad a um a contera. Ele normal-
m ent e designarf certas tabel as para serem tabelas de verificacgo a fim de validar
os dados dentro de outras ta belas. POl' exemplo, um a tabela de verificacao de
c6dig o de pals pode ser necessaria para validar c6digo s de pafses para todas as
tabelas onde os codigcs de pajses serao armazenados. Quando voce cria urn
conjun to de tabelas dentro do R/3, voce normalmenre criara as tabelas de
Fjg ura 4 12
verificacao primeiro.
Exemplo de umo
chove eslrongeirc A principal fina lidade de voce erial' uma tabela de verificacao e validar
odoptodo . dad os. Voce pode erial' diverscs relacionamencos de chave estrangeira vincu-
lando muitas outras tabelas com uma unica tabela de verificacao. 0 campo
Value Table no dominio existe para simplificar a taref a de erial' esses relaciona-
mentos.
Antes de continual', suponha que 0 campo Value Ta ble dentr o do dominic
tenha umnome completamente diferente . Limpe 0 termo "V alue Table" de sua
mente e im agine que esse campo e chamado "Default C hec k T able".
Para simplificar 0 exemplo, nossa tabela de verificacao tera urn umco
campo de chave primaria, ilustrado na Figura 4.13. Para ilustrar esse conceito,
descreverei 0 processo que voce iria erial' para essa tabela de verificacao e utilizar
em urn relacionamento de chave estrangeira.

Fi g u r a 4 13 ztxtOOS
a compo Value Tobie tcbelc de verifico~oo
dentrodo dominio
contern 0 nome de
Defini nd o um a tabel a de valor limo tabelo de
verincolioo.
Dentro d o domlnio esta 0 cc mpc lobe/a de volor. A tobelo ldentificodo den tro
11010 ll. desse compo oferece a s segu intes fun<;6es para 0 do minic :
URIIO" Elemento de dodos

• Ela e automaticamente proposta como a tabela de verificacfo quando


cria uma chave est rangeira
• Ela oferece uma lista de valores para a ajuda F 4 (posslveis entradas), Domlnio
mas nac oferece validacao
0111 t 0 DIITA DICTIONARV,PARTE 2 167
166 'mHO' EM 21 OIAS "AP"
1. Comece na Dictionary: Initial Screen.
Quando voce cria uma tabela de verificacio, voce deve primeirc criar um
2. No campo Object Name, digite 0 nome da tabela ( * * *Hal ).
dominic. Voce sempre criaria urn novo dominic especificamente para uma
tabela de verificacao . Voce entac criaria 0 elemenro de dados e depois a propria 3. Escolha 0 batao de opc;ao Table.
tabela. Dar, ativaria a tabela. Entao, voltaria ao dominic, no campo de chave 4. Pressione 0 boco Change. A tela Dictionary: Table/S t ructu re:
primaria, e colocaria 0 nome da tabela de verifica~io que voce acabou de eriar Change Fields e exibida.
no campo Value Table-mas lernbre-se de que 0 chamamos de campo Default 5. Posicione 0 cursor no campo de ch ave estrangeira (' andl }.
Check Table. 6. Pressione 0 botao Foreign Keys ria barra de {erramentas Application.
Agora, voce criaria Dutra tabela, no nosso exemplc e ztxl fal. Voce criaria A tela Change Foreign Key e exibida.
ocampo 1andl e utilizaria o elemento de clades ztxl andl e entdo as dais campos
7. Pressione 0 batao Delete (a lixeira) na parte infe rio r da janela .
utilizariam 0 mesmo dominic. 8. Voce e levado de volta a tela Dictionary: Table/Stru cture: Change
Agora voce criaria a chave estrangeira para validar 1andl. Voce colocaria
Fields. A mensagem Foreign key was deleted apar ece ri a barra de
o cursor no campo ztx l f al- , andl e pressionaria a batao Foreign Keys, Quando
voce fizer isso, 0 sistema olhara no dominic no campo Value Table (lembre-se status.
de que a chamamos de campo Default Check Table) . Se houver urn nome de 9. Com 0 cursor ainda posicionado no campo de chave estrangeira
tabela af, 0 sistema automaticamente ira propor esse nome como 0 nome da (1 andl), pressione a batao Foreign Keys novamente. A tela Create
tabela de verificacao . No nosso ceso, 0 sistema localizaria ztxt005. Portanto, 0 Foreign Key e exibida. Ela Ie Foreign key does not exist. Generate
sistema iria propor ztxt005 como a tabela de verificacfo - exatamente 0 que proposal with value table as check table? Voce ve essa caixa de men -
quererlamos . A pro posta de chave estrangeira seria mosrrada, e entao po- sagem porque 0 sistema olhou no dominic e localizou urn nome no
campo Value Table. Ele responde exibindo essa caixa de mensagem.
deriamos salva-la.
Nesse exemplo, 0 sistema automaticamente criou a chave estrangeira para 10. Pressione 0 batao Yes. A tela Create Foreign Key eexibi da e 0 campo
nos, porgue colocamos 0 nome da tabela de verificacfio no campo Value Table. Check Table contem a tabela de valor do domlnio. O s campos Check
Dando tres cliques de mouse, criamos uma chave estrangeira! 1sso, em essancia, Table e-as campos Foreign Key sao pre enchidos.
ea principal razjio para 0 campo Value Table. Ele existe para fazer a criacao de 11. Pressione 0 borao Copy. Voce e levado de volta a tela D ictio nary :
chaves estrangeiras mais Iacil. Table/Structure: Change Fields. A mensagem Foreign key was trans -
Para resum ir, 0 campo Value Table e utilizado de duas maneiras pelo ferred aparece na barra de status. as campos Status exibem 0 texto
sistema: .' '" Rev; sed e Not saved .
• A tabela de valor {lembre-se de imaginar a Default Check Table) 12. Pressione 0 botao Activate. A mensagem "was saved apare ce na barra
automaticamente e proposta como a tabela de verificacao quando se de status. as campos Status Ieem Act. e Saved.
cria uma chave estrangeira.
Com urn nome de tabela no campo Value Table no do min ic voce po de
• A tabela de valo r ofe rece uma lista de valores para a ajuda F4, mas
rapidamente e com confianca erial' chaves estrangeiras.
nenhuma validacao e feita nesta lista.
Redescabrindo a cal una de CheckTable
o campo Value Ta ble como proposta de Check Table A coluna CheckTable na tela Dictionary: Table/Structure executa duas
Nessa se~ao,.voce adicionara uma tabela de valor para urn dominio e observarf
func;6es:
seu efeito na cria~ao de uma chave estrengeira.
-E dite urn domlnio _. -Landl agora e digire ** *tOOS no campo Value • Se urn campo for urna chave estrangeira, a coluna CheckTa ble con tera
o nome da tabela de verificacao para esse campo.
Table, ativando depois 0 dominio.
Agora voce excluira a chave estrangeira no campo - * *Hal-landl e entao • Urn asterisco (*) nesra coluna significa que uma rab ela de verificaqao
a criara novamente de modo que voce posse vel' 0 efeito do campo Value Table nao foi definida para 0 campo, mas uma tabela de valo r exisre no
no processo de criacao de chave estrangeira. Para fazer isso, siga 0 procedi- domfnio.
mento abaixo.
"': I. It t.1Jt:I,X::X:XI" I . II w • w w w ..

DlA~ : 0DATADICTIONARY, PARTE 2 169


168 APRENDA EM21 DIAl AB AP,.

Hoi uma excecao para 0 segundo ponto acima. Se voce atualmente est iver O s campos m onetarios tern esses requisit e s:
exibindo um a tabela de valor, 0 asterisco DaD aparecera no campo cujo dominic • 0 ripe de dado no domlnio deve ser CURRo
se refere a tabe la de valor qu e vo ce esta visualizando. • Ele deve es tar vinc ulado com urn campo do ti po CUKY contendo a chave
moneraria, como USD (d6lares norte-am ericanos), CAD (dolares
Ulilizando a labela de valor como uma lisla de possive is canaden ses}, ITL (lira italian a) e assim par diant e.
va la re s
Se urn campo con tiver uma tabela de valor mas DaD for uma chave estrangeira, NOVO ~ A chove mone t6rio e con hecido como comp o de refe r@:ncio Trata se de outro
quando esse campo aparecer em uma tela nenhuma valid ?t;;ao sera [eira no n~\O r ccmpo no mes rno tobelo au em outro tabela. Esse co mpo d'eve ter-a fipo CUKY
campo. A tabela de valor nao executa a validacao. Som enre uma chave es- (chove mon et6rio) no do mfnlo. Ele indica a chove monet6rio pa ra a campo monet6 rio
relere nctcdc.
trangeira valida as valor es.
Com apenas uma ta bela de valor, urn seta para baixo nao apa recera no fim Por exemplo, imagi ne que voce criou uma t abela contendo uma [ista de
do campo como acontece para urn campo de chave est rangeira. Entretanto, se pagamentos feitos aos fabricantes. Voce precisaria de um campo de quantidade
voce colocar 0 cursor no campo e pr essionar F4, a tecla F4 ainda exibira uma de p agamento (nome de campo wrbtr) e urn cam po- ch ave monetaria (normal-
lista de valores da tab ela de valo r. N ee hi nenhuma indicacao na tela de que a mente waer s) para indicar completarnente a qu an ridade e a chave m onetaria
funcional idade F4 esta dispo n fvel t: nenhuma verificacao efeita se urn valor for utiliz~das nesse pagamento. Para vincular as do is campos entre si, voce dari a
inserido no campo . urn clique duplo no nome d e campo monetario na tabe la e entao inseriria a tabela
Essa fu ncion alidade pode ser uti! quando voce qui ser oferecer ao usua rio de chave m one raria e a nome de campo no s campos Refe rence T able e
uma lists de valores sugeridos, mas quer permitir que OUtrOS valores sejam Reference Field (ve]a a Figura 4.14) .
digitados no campo tambem.
Elg ll r a 4 14
~!! i~ ; !t! ~~;.. ?~t'.'im1(= _JLt-¥;'\"t~'.! N~j~ ~· -=-2~, ,, ;.- ·;,)5 !i' -!~!:J
Campos especiais de Tabela
Dois ti pos de campos de tabe la precisam de tratamento especial :
• os campos m on ect rios
l Os compos de
referen cio no lela
Display Field.
. , :1 8;' ~ ,~ - -.~ H' ~ {) ~ -~ ~ '-·:i~l.:H>·~~~'-i~~\(~2~·, C

• as campos de qu antidade •...;'"

O s campos mooet6rios
NOVO ~ Imagine que voce qu eira ir 00 ba nco e pedir 1.000. 0 coixa provave lmenle
TtRMO "'- perguntoria NMil a que? " Voce pode responder NMil delo res". Ou voce pode
ser ate mois especffico e pedi r "'1.000 dolores norie-omericnnos". Quontios monet6rias
no R/3 sao ormozenad as em dots campos: um armozena a quentia nurnerico real (l.DOO)
e outro ormczena a moneloria {USDJ. 0 compo nomerlco de quentio e chcmodo compo
monercn c e a outre compo e cha mado compo-cbcve monetOrio .

o que e
muitos pessoo s se referem como monet6rio realmente urn
c6dig a mon et6rio (USD para a d6lor a merica no, CAD para 0 do lor
cc node nse e ossim par diontel. A SAP utilize a pclovro "chove" como
urn sin6nimo para "c6digo N, entoo ela chama a co mpo que conte rn a
c6diga mon et6rio "chcve manet6rio", isso se cpltcc 6 rnoloric dos
compos de c6digo no R/3; 0 c6digo de pais e chamodo chave de pa is,
a c6digo de regia o e a chove de regioo e ass im por dionte.

l
.,

I.J ~~~~~~---------------lHf! OIH 0DAnOICT10NARY, PARTE 2 I 17
.os ca mp os de qu-oanoIlti.od.o
.ou;dlfeL..- _ P Figura 4 16

NOYO.... e urn compo qu e contem umo medido n.umerico. Por


li Esses soo os o/ributas
de compo poro 0

milo r
Urn compo de quantidode
exemplo, esse compo pede conter uma medid~ de peso, co~pnmento,. tem- rl compo ntgel'f. Note
que cs dois compos
pe ratura ou eletricidode. Pa ra se r significativo, umc unrdade de rnedidc co mo librcs,
polega dos, grous Fahrenhe it a u q ullovolts devem ocomponh? -]o. Os compos de quan- ~I Reference Tobie e
Reference Field
tidod e tern estes req uisites : ofere~m 0 vInculo
perc 0 compo UNIT.


0 tipo de dado no do min ic dev e ser QUAN.
Ele deve estar vinculado a urn campo do tip o UNIT. t
~
o campo UNIT «0 campo de referencia para 0 campo QUAN. 0 camp~ UNIT
pode estar na mesma tabela ou em outra tabel~. 0 cam po UNIT co ntern a unidade ~ .>
de medida para a medida no campo de quantldad,e. , .
Por exernp lo, na ta bela ztxmara, 0 campo ntgew cont.em 0 p eso ~qUldo de
urn material e 0 campo g~wei contem as unidades, como libras au qUllo~ramas As estruturas no Data Dictionary
(veja a Figura 4.15) . 0 camp o ntgew te ,:, urn t ipo de dado d e QU~N e 0 tlpO de
dado de gewei e UNIT. Se voce der urn clique duple em nt~ e~, ver~ que a tabela NDVD .... Alem dos tobelcs, as esfruturos tcmbem podem serdefinidos no Data Dictionary.
de refe rencia e ztxmara e a campo de referencia e gewei (veja a Fi gura 4.16). TWO '" Como voce poderia espera r, umo estrutura co rrespo nde 0 umc serie de campos
ogrupodos sob um nome comurn . Emuito semerhonte a urno tc belc. C o mo urno tobelo,
era po de se r vtillzcdc dentro de urn progr a ma no instru; oo tab l es para definir urnc 6reo
de trabolho.

As diferencas entr e urna estru tura e uma tabela sao como segue:
• Uma estrutura nao tern uma tabe1a de banco de dados associada.
• Uma estrutura nao tern uma chave prima-ria.
• Uma estrutura nao tern atributos tecnicos.
As estruturas seguem as mesrnas convenc;6es de atribuicao de nome que
as tabelas transparentes e voce nao pode ter um a tabela e uma estru tu ra com 0
mesmo nome .
Voce criaria uma estru tura no DDIC se quisesse definir a mesma area de
trabalho em diversos programas. Por exemplo, se voce quiser escrever regist ros
para urn arquivo sequenti al utilizando pro grama em ABAP/4 e depois Ie-los
para utilizer outre, os dois programas precisam conhecer a layout desses
registros. Voce criaria uma estru tura no D DIC que define 0 layout do registro
e entdo atribuiria na mes a essa estrutura na instrucao t abl es nos dois pro -
gramas. Isso criaria uma area de trabalho identica para os dois prograrnas.
o proc ediment o para criar uma estrurura ~ quase a mesmo para criar uma
tabela tr ansparenre. [Co nsulre as pro cedimentos para criar uma tabela trans -
parenre.) As unicas diferens:as sao as seguintes:
• Em vez do borfo de op~ao Table, escolha 0 botao de 0plSao Structures.
• Os campos D elivery C lass e Tab.Maint.Allowed nao aparecem.
• As estruturas nao tern uma chave p rimaria.
APRENDA EM 21 DIAS ABAPI4
11-----~~~ DIA 4: 0 DATAOlCTIOHARY, PAm2 17:
• Nenhum atributo tecnico pode ser especificado, como classe de dados, a i ncl udes expandida dentro cia definiicao
JhPara visualizar cia propna
. . ta beIa,
caregoria de tamanho a u usa de buffer. I . ~
esco a 0 caminho de menu Extras-> Substructures- > Expand All Substr.
Todos as nomes de campo de uma est rutu ra inc1uida aparecerao embaixo de
Entendendo Includes • INCLU DE, como mostrado na Figura 4.19.
UIDa estrutura pode canter outra estrut ura, Em outras palavras, voce pod e
aninhar estruturas uma dentro da outra. Isso pode ser urilizado p ara reduzir a NOVO ... A codeic de estrvturos cricdo incluindo umo estrvturo dentro de outro ' h d
manutencao agrupand o campos juntos em uma estrut u ra e enrac inclu indo essa TEi.UO r b 1codeio
od
de indudesoA profundidode maximo de oninhomento • no e c ome ,0
. • e ve e sc me nte
estrutura dentro de outra estrutura ou mesmo dentro de uma tabela. umc t~ e ~ p e se r mclu:do em umo codetc de includes. Em outros pclcvros, voce nc o
po de :ndu:r vmo tc belo de ntro de outro.
Por exemplc, urn endereco de uma pessoa e composto de urn conjunto
de campos como rua, cidade, regiao, pais e ccdigc postal. Voce pede precisar .E.ig.1l..l:.a..-': 1a
.'.,,><1
mante r esse endereco em diversas tabelas. Dentro da tabela do fabricante voce A estrufuro z t xaddr
contem as compos
pode querer manter 0 endereco do fabricant e, na mestr e de cliente a endereco
°
do cliente, e na tabela de empregado ender ecc do empregado. Se voce criar
de enderel;o que sea
induidos no tobefo
uma estrutura para agrupar os campos que juntos formam 0 en dereco, voce ztxemp l.
pode entao incluir essa estrutura nas definicoes da tabela. Quando a tabela e
ativada, as campos da estrutura sao adicionados e existem na tabela de banco
de dades como se fossem definidos dentrc dela. Eles terao o mesmo no me que
a nome na estrutu ra. Para incluir uma estrutu ra dentro de uma tab ela, (a u I
dentrc de outra estrutura), digite . INCLUDE na coluna de nome de campo e insira .
a nome da estrurura na coluna de elemento de dados.
Na Figura 4.17, a tabela zt xempl (tabele de empregado) inclu i a estrutura
ztxa ddr (veja ;1 Figura 4.18), que consisee em campos de endereco stras (rna),
artDl (cidade); reg; 0 e l andl . A tabela ztxempl .portantc, contem estes campos:
j
zt xemp l -stra's; zt xempl - ortOl. ztxempl reqt 0 e zt xemp1-1andl. e I
.~ :j,' ,
Eigur g 4 17 !~ " 1 It · 'd 1: diE· it ' .,,,,,., j
1... 'r. ~:bo. j/Moo ' ~ ~ ..... ~ ; ::" :' ''';~~;'''' '_,; ; __<.1 -'".:t~. _.,: . ;, -(.~~.,. ... ?"-:: "
A tcbelo de
z t xemp l ccntem 'iI' j
~
::::::J ~t.ti : ~- · x· ~ a ~1i.0 0 "" -:'0 ·;,·:t;·g~:t>-:::.~.$; :=;"_:jj ;-;~
,;;p- :-0- :~: ;:£1 ~ ;..l' :"; io t ;'-d-'Si",:UCiQ,iil;': t:'riCiliiic .licllll ril' :"lrille.<e.:; ~~~+t=;,;r":i;'~,",1~#~ ( ·~.i_.
i Flgut a 4 19
um • I NCLUDEpora
I o formulcirio

~~~~i~=~~i~II
fazer com que os
. [ NeW-XXX do
campos de
tabela z t xemp l
ztxaddr seiom
inclui 0 in strv~6 o de
odicionodo s a ela.
. ...:u.~ du~"f~~~"PU~l tn1lt.(~.";~.tr~u~tb" ~ ~?>-<~':.J,

II
Nhl .' "!io''; .• " ", _. ; :--
modo que ztxoddr

~~!~:~~i1~;~~1t:flwt~~~~~tie;f2.t~~~~~::
posso ser incluido
duos vezes sem
il.... ; n .-.: ~~' : UU >,d'.".' .1n~ l-~,t~ · ~~u"rnl l " '~"l;:.t ... t~ -'-',* \ :"': : _~ -O. , ".:..k'\""'::'o'"'::r.:-!i£,.:.,,: ~ ,t o;, dup/ic:or os names
de compo.
174 APRENDA EM 21 DIAS ABA P/4

FigurQ 4 21 '''I 51 if &hi ei"lt4E "1, 1,,1


Indui nd o a mesmo estru tu ro d jyersos yezes ;.1... l llt.li'" EJIo. ·LlI'io' £~ ~ c- --; "· I-~,.~~';' >;.', · ."\-":'t::"''''''-=.>l./:- -:>t:~,'';r:-...l''_ ''
Ilolo 7 ~-:,:;r
Escolhe r 0 if ·L._. . _'3 ; ~ ¢o 4: 'Xn M'rt . t~l ~ E'-- -~ -{ {.;~<~~~•._;--;;:~~: ,::.: ~
Vo ce pede incluir a mesm a estrutura diversas vezes dentro d e urna tabela se, caminhode menu
Ex/ro->
em vez de . INCLUDE, voce utilizar .1NCLU- XXX. 0 xxx representa sua escolha de
Substructures- >
quaisquer [reS caracreres . Esses treS caracte res serao acr escen cados em cada Expond AllSubs!f.
nome de campo que e inclufdo para roma-lo unico. fez os compos des
Por exemplo, imagine qu e voce precise armazenar dois enderecos em estrutvros oporecerem
no lisle.
ztxempl : urn endereqo de casa e uma lisra de end ereco. C omo mosrrado na
Figura 4.20, ztxe mp12 inclui a estrutura zt xaddr duas vez es. A primeira inclui ,
. INClU-Ol , [az com que U01 " seja acrescen tadc a cada urn dos n a m es de campo
cia estrutura. A segunda, . I NCLU -0 2, acr escenta "02" a ca da u rn. 0 resulrado,
mostrado na Figura 4.21, pode ser visto escolhendo 0 caminho de me nu
Extras- c-Substructures-> Expand All Subsrr.
rsra
F i g u ra 4 2 0 , .,.. .-.'4- .. .... ;-- ......,, - . -.•• •;': : - -.-., .

Alobelo z tx empl2
uti/izo 0 mrmu/6rio
.INCLU· XXX do
instru~O o incl ude
de modo q ue
ztxoddr po sso ser Resumo
inc/uldo duos vezes
sem dup/icor 05
• A s chaves est rang eiras asseguram a integridade de dados execurando
nomes de. compo . validacoes n a tela e oferecem ajuda F 4 para 0 usu i rio co rn Iisea de
valores pe rmissfv eis.
• A tabela de valor oferece u.ma proposta para a tabe la de ve rificac go e
oferece ajud a H .
e As tabelas de text o ofer~cem suporte de diverscs idiomas p ara des-
,i
cricoes no R/3 e especialment e p ara ajuda F4.
'!
• Dentro de uma tabela, cada camp o mon eta rio deve ser vinculado com
urn campo-chave monetario e cada campo de qu an ridade deve ser

Ii yinculado com urn camp o que ccntem as unidades de medida.


• As tabelas e as estrutura s sao muito semelhanres. A diferenca p rincip al
e que uma tabela tern um a tabela su bjacente de banc o de dado s e uma
esrrutura na o .
As estrvtvrcs e tc belcs no R/3 50 0 too semeihc ntes que, q ua ndo voce
olha a definic;oo de coda Doto Dictionary, e dlfkll diferenci6·las. Pora • Voce p ede utili zer est ru tu ras para de finir areas de trab alho ide nricas
determine r quo l v oce estc olho ndo, olhe 0 direito do compo de nome . em divers os programas. Voce p ode incluir uma est rurura dentro de
N voce v ere ume tobelc Transporent ou Structure. -outras est ru turas e tabelas.

i
I
I
1
-y r... _ !
176 " " ' D' EM ' 1 DIA l " ""

P&R o Nao. Apenas Key Fields Of A Tex t Table empr ega fu ncio-
nalidade de sistema. a s outros nao [azem nada acontecer - eles
servem prin cipalm enr e para documentacao.
o Urn programa em ABAP/4 ped e ignorar relacionamcntos de
chave estrangeira e inserir Iinhas que violarn a integridade
referendal? o As estruturas podem ter definicces de chave estrangeira?

o Sim. Entretanto, na maiaria das vezes, as dados vern pa ra seu


p r ogram a vi a um a in terface com 0 us udrio . A in te rface com 0
o Sim . Isso normalrnen te e feito porque uma tabela que inclui
uma estrutu ra pode herdar defini co es de chav e est rangeira deb.
u suario valida as infcrmacoes antes de voce inseri-Ias no banco Se quiser, voce pode desativar essa heranca ao incluir a estru-
de da dos, po rtanto as chaves estran geiras ja foram verificad as. tu r a.
Mesmo quand o impor tar dados de sistemas ex ternos, voce deve,
u tilizer BDC para arualizar as tabelas. Isso tam bern impoe Workshop
inte gridad e re feren cial sim ulan do sessoes de u su drio e passando as seguintes exercicios darso a voce pratic a na cri acao de chaves estrangeiras,
as dados ao programa via in ter face. Entr etanto , se vo ce atualiza campos esp eciais e estr uturas.
o banco de dados sem passar as dad os pela interface com 0
usufrio, seu p rogram a ern ABAP/ 4 deve ser escrit o cui - Teste
dad osam ence de mo do que ele Dao tr ansgri da a integridade
referen cial. 1. P ara urn a chave estrangeira ser criada, 0 ·que 0 campo de chave
estrangeira e a campo de tabela de verificacic devem ter ern eornum?
2. Qu al e a sintaxe para inclusao cia estrutura zs l dent ro cia tabela ztl?
o Se quero garantir a integridade referendal de meu banco de
dados, posso ir para 0 nivel de DBMS e criar Iimitacoes de 3. Q ual e a prap6sito de urna tabela de texto ?
integridade? Como isso afetaria 0 Rt3? 4. Assuma que a tabela de verificacsc ze exisre e tern uma chave primaria
consistindo em mandt , fl e f2 . Quais devern ser os campos de chave
o Nao, nunea atua lize as definicoe s de RDBM S dir etamente. Voce
s6 deve utilizer 0 DDIC do R/3 para alter ar as defini coe s dentro
primaria de uma tabela de rexro para zc?
5. Se voce cria urn campo mcnetario, que tipo de campo ele deve
do banco de dados. Se voce atu alizar 0 banco de dad os rtia~ua1­ referenciar?
mente, as defini coes de banc o de dados e as definicoes de DDIC
do R/3 serso inconsistences e os resultados serao imprevisfveis. Exercfcio 1
e rie uma tabela de veri fica~ ao de co digc de pals charnade ••• toOS. Ela sera
o Se exc1uo uma linha de uma tabela de verificacao, possa fazer
com que as linhas que tern 0 mesmo valor sejam automati-
. utilizada para validar todcs os codi gcs de pajses inse ridos em suas tabelas. As
especificacoes aparecem na Tabe1a 4.5.
camente excluid as da tabela de chave estrangeira tambern?
Tabela 4 .5 as ca mpos e sues corocterfsticas pera a tobela •• -tOOS
o Nso. Esse recurso e normalrnen te definido
clusao" e D aO esta disp onfvel no RJ3 .
"cascara em ex-
Descri~ao

Nome de campo PK Nome de D E


o o ti po de ch ave estrangeira Key Fields Of A Text Ta ble faz com
que 0 sistema se com porte diferentemente. Os outros tipos de Cliente
campo de chave estrangeira tern qualquer funcionalidade par mandt x mandt
tras deles? Chove do pafs
1andl x •• -1 andl
178 "RENDA EM!1 DIAl ABAPI4 DIU 0 DATA rncnoNARI. PARTE! 179

Depois que voce ativou essa tabela, va ao domfni c •• - 1andl e digite Ta bela 4. 1 O s ca mpos e sues corocter fsticos para 0 tobelo •• 0t 0059
• • - tOOs no campo Value T able, entao ative-o. Utilize SE16 para adicionar
Descri ~ a o
c6digos de parses asua tabela.
N om e PK Nome Nome Tipo Len Tabela de
Exerdcio 2 de camp o de DE d e OM verificD ljOO
e rie uma tabela de verificacao de c6digo de pais:chamada • • • t 005s. Ela sera Cliente
utilizada para validar todos as c6digos de parses ins eridos em sua s tabel as. As mandt x mandt
especificacoes aparecem na T abela 4.6. Chove de-pels
landl x ··· l andl - - -tOOS
Tabela 4 .6 Os campos e'sues ca raderistices pare a tabela • • · tOOSs C6dig o de reg ioo
rect o x • ··regi o •• 0 t OOSs
Descriscio
C6digo de cidod e
Nome de compo PK Nome de DE Ta bela de v e r ifi ca ~a o
citye x • •• ct t yc •• - ci tyc CHAR 4

C liente
Nao se esqueca de criar os relacion ament c s de chave estrangeira nos
mandt , mandt campos land1 e regie.
Cbcve de pais
, andl x . 0 -Jendl ••• t005 Exercfci o 5
C6di go de regioo
Depois que voce ativou a tabela, va ate 0 dominio ••• ci tyc e coloque • • ·t005g
regio x _. -regi o
no camp o Value Table, errdo ative . Utilize 5E1 6 para adicionar c6digos de
cidade para a tab ela • • • tOOSg e teste as chaves esrrangeiras tenrandc inserir
Depo is que voce ativou essa tabela, va no dominic - - - regi 0 e digite c6digos de pais e de regiao invalidos. Entao erie a ehave estr angeira dentro da
• - - t 005s no campo Value T able, entao ative-o. U tilize 5£16 para adicionar . tabela • - - knal no campo ct t yc e utilize 5E16 a fim de adieionar clientes para
c6digos de regijo para sua rab ela. Teste sua chave esrrangeira em 1and! rentando - - - knal. Teste 0 relacionamento de ehave esrrangeira rentando inserir c6digos
inserir urn codigc de pars invalido. ,.' de cidade invalidos . erie um a tabela de text o para - • - tOOSg e arribua a ela 0
nome - - • tOOShj as espe cificacoes sao mostradas na T abela 4.8.
Exerdcio 3
Ta b e la 4 .8 05 compos e suos caracterfsticas pa ra ta be lo 0 •• tDOSh
Ad icione relacionamentos de chave esrrangeira aprop riados para 1andl e para
campos regie em sua tabela - - -lfal. Util ize 5E16 para atualizar as linhas Descri~ cio
exist ences dentro de - - - 1fa 1 e insira ccdigcs de paises vslidos de regiso.
N ome PK Nom e N om e Tlpo Len Ta bela de
d e campo de DE d e OM verifl co~ac
Exerdcio 4
C1iente
erie uma tahela de verificacic para 0 campo ci ty c na tabela-me srre de cliente
• _. knal que voce criou na D ia 3. Nom eie essa tabelacomo ••• tOO 59.Ela deve
man dt , mandt
Chcve de idiomo
canter uma lista de c6digos validos de cidade. As especificacces para ela
aparecem na Tabela 4.7. spras spras tOO2
Chcve de pols
l andl x • • • , andl •• otOOS
C6digo de regioo
re qt o x .0.reg1 0 .00t005s
180 I APRE NDA EM21 DIAS ABA P/4 DlA ~ : O DA.TA Dl mONA RY, PARTE 2 I 181

Tabela 4.8 Connnuocdo Exerdcio 7


Descrit;ao Adicione mais dois campos para a tabela ••• knal. As especificacoes sao
m c st radas na Tabela 4.10.
Nome PK Nome Nome Tipo Len Tabela de
de D E de DM ve r i f i ca~a o
de campo Tabela 4 .10 Compos odiciono is e sues coroderistic as para ta bela ••• knal
C6digo de cidode Descrisao
cf tyc x ···cityc • • -t005g
Descrtcco Nome .Nome Nom e Tipo Len Decimal Tahela de
·· ·bezei 20 text20 CHAR 20 de cempo de DE de DiY". verifi(a~ao
bezei
li mite de Credttc
o relacionamento de chave estrangeira no campo ci tyc deve ter 0 Foreign cr editl • ·· cred it • • · creditl CURR 12 2
Key Field Type "Key Fields Of A Text Table". Utilize SE16 para criar C hcve monet6rio
descricoes para cada codigo de cidade. erie essas descricoes em dais idiomas: waers waers tcurc
E (ingles) e D (alemao). T est e sua tabela de texto criando uma nova entrada
ern • • • knal e pr essio nando F 4 no campo ci t yc. As descricoes de cada c6digo Ocampo eredi t 1 cont era 0 limite de credit c do cliente. 0 campo waers
de cidade devem aparece r na lista, mas some.nte em seu idio ma at ual de logon. contera a chave m onetdria pelo qual 0 limite de crediro ser valido. Nao esque~a
F aca 0 logon em elemao e teste novamenre para ver as descricoes em alemao. de adicionar 0 relacionamento de chave estrangeira atab ela de verificacio tcure .
e rie ajuda F I para 0 campo ereditl pre ssionand o 0 botao de documentacao
Exercfcio 6 no e1emento de dados.
erie uma est ru tura chamad a - - - t el . As especificacoes apare cem na Tabela 4.9. , Depois de adicionar esses dais campos, de urn clique duplo em credit',
no campo Reference Tab le digite _•• knal e, no campo Reference Field, digite
Ta b e la 4 .9 Os campos e sues caraderisticas para estruturo - - -tel cred i t1. Entao ative sua tabela. Utilize 5E16 para atua lizar registros de cliente
e adicione urn limite de credito para cada urn . Visualize a ajuda Fl que voce
Descr isao
cnou.
Nome de campo N ome de DE

Primeiro nemerc de telelone


tel ft te1fl
Segundo nemero de telefone
telf2 telf2
Numero de fox
telfx telfx
Ncmero de telex
te 1 xl telxl

~I
:J
Inclua essa estrutura no final de SUilS tabelas - - - knal e - - -1 fal. Utilize
SE16 para atualizar alguns de seus registros existentes e adicion e mimeros de
telefone a des .
~ --- -- ----- - -- - -
• • • • www • • • w---~~~--

oData Dictionary, Parte 3


Qbjetivos do capitulo
Depois de completar este capitulo. voce devers ser capaz de:
• Criar e utilizar indices secundarios apropriadament e
• Configurar os atributos tecnicos para as tabelas transparentes
• Configurar a utilizacio de buffer para as tabelas

Entendendo os indices de tabela


Urn indice e urn mecanismo de eficiencia para localizar rapidamente .linhas
dentro de uma tabela. Ele e necessaria porque os dados sao armazenados em
lima tabela na ordem em que foram adicionados (a ordem de chegada ).
Imagine voce rasgando tod as as paginas deste livre e enrao jogando-as
para cima e misturando rude. Voce cneso as junta em uma pilha sem considerar
qualquer ripe de ordem. Se voce fosse pr ocur ar urn uma pagina especffica
dentro dessa pilha, como faria?
Algumas pessoas poderiam apenas procurar aleato riament e na pilha es-
perando ter a sorte de encontra-la logo no comeco. Estou convencido de que
a maioria logo desistiria e entao iria folhear as paginas um a a uma. Obviamente,
esse trabalho seria mais facil se as paginas esrivessem rodas na ordem. Com as
paginas em ordem, voce poderia iniciar a buses em algum lugar no meio e
sabendo como virar as pdginas, rapidamente pcderia alcancar a desejada.

hltpjlwww .ca mpu ~. cam . br


'I""'!!''!!'''!!f'W • • • _ .. ~_

184 I APUNDA EM 21 DUS ABAPI4 0" s,oDATA OICTIOHARY,PARTE 3 I 185

Imagine que voce agora co loco u as pdginas de volta na ordem. Procurando examinar minuciosamente a tabela do inicio ao fim procur and o todas as linhas
aleatoriarnente no livro recentemenre ordenado, talvez vo ce co mece a procurar onde 1and1 ;: ' US' . A tabela na Figura 5.1 e muito pequena, mas esse e urn
a psgina que desc reve 0 SE16. Po r cnde voce cornelia a procurer? Voce nao sabe processo que consumiria mu ito tempo em uma tab ela maior.
a numero de pagina, entac olha 0 tndice remissivo. Este contern as palavras
Figura 5 1
m ais importantes classificadas em ordem alfabetica. Voce rapidamenre encon- IndIce primoria Icbe'e mile I
Urn indice de lobe/a Ii pe rc m Ho 1
tra SE16 no Indice e cbtem urn mimero de pagina. Lltilizando isso, voce
umo c6pio de umo au nOdo
pesquisa 0 livro para localizar essa pagina. mcis ca /unos ,
I"/nr linho
Para criar um Iodice, 0 editor duplica informacoes importanres e entao ormozenodos em
ordem clossifjcoda
.1 , 1 .3
as classifies, colocando-as no fim do livro, separado do corpo. Quando voce .2 3 2 .6
com pan/eiros para as
olba essas informaco es, esn olhando nas informacoes originais ? Nao, e claro .
Voce esta olhando em uma c6pia das informacces originais; elas foram dupli-
linhos originals.
.,.3 1
7 , .,
3 .2

cadas. a livro ocupa urn pouco mais de espacc em sua estante por causa do .5 6 5 .7
Iodi ce, de aumenta urn pouco 0 prelfo do livro por causa do tempo e esforc c .6 2 6 .s
exigido para crid-lo, mas nioguern se queixa disso, porque economiza muitas .7 S 7 .,
horas quando voce quer localiaar alga.
Uma tabela no ban co de dados emuito parecida com esse livre. Para cada Ag ora, pense novamente no exemplo de livre . As vezes, urn livro tern
linha e dado urn nurnero sequencial quando uma linha e adicionada a uma m ais de urn Indice . P or exempl o, urn livre sobre ut ilizacces med icinais de ervas
rabela, de manei ra mui to parecida com urn numero de pdgina. As colunas p od e ter 0 Indice normal, alem de urn Indice somente pa ra nom es comuns de
importantes sao copiad as em urn Ind ice e c1assificadas de maneira seme - planta, o urro apenas para nomes de boesnica e urn terceiro apenas para efeitos
Ihante a urn Indice remissivo. Para localizar qualquer parte dos dados, a medicinais , Para crier esses indices, as informacoes pr ecisam ser c1assificadas e
sistema pesquisa primeiro 0 Indice para encontrar 0 mimero de linha e enesc duplicadas em mais tres lugares no final do livre. En eso, ha quatco maneiras de
rapidamente localiza a linha. localizar urn numero de pagina rapidamente: por meio do Iodice comurnente
Cada tab ela do R/3 tern urn Indice primdrio construfdo na chave primaria utilizado ou por -qualquer dos tres indices adici onais . .
da tabela. Esse Iodice e necessaria porque os dados na tabela sao arm azenados
na ordem que [cram adicionados a tabela. Quando uma linha e adicionada,' as MOYO ~ 0 fndice comumente utllizcdc e on61090 0 0 Indlce prim6rio de umo tobelo. Os
informacoes-chave sao classificadas e copiadas no Iodice, junto co m urn pon· rIt~O r indices cd icloncis s60 cnclcqos 0 indices secund6rios. Para suporter uma
tei ro na linha o riginal, A Figura 5.1 mostra urn exemplo utilizando a tabela clc vsvlc where em um campo de chove n60 prlmc ric, pode-se definir urn lndice
ztxlfal. Os dados do campo 1Hnr em ztxlfa1 sao capiados no indice, classi- secund6rio. Umo tobe la pede fer multiplos ind ices se cund6rios.
ficados alfabeticameme e arrnazenados junto com 0 numero da linba original. A Figura 5.2 ilustra urn indice secundario em ztxl fal-l and!.
(0 campo mandt foi deixado de fora para simplificar 0 exemplo.) Urn indice aumenta 0 desempenho tremendamente. Em uma tabela
comendo urn milhao de linhas, urn select em uma coluna comendo valores
o e
numero de linho infernomenle otribuido pelo bonco de dodos ; unicos que nao sao suportados por urn indice leria, em m edia, 500.000 registros
voce nunce 0 ve no ODIC. Ele e utilizodo pe lo indice porc opon tor de para localizar a primeira correspondencia, com uma visao pessimista de urn
volta para a linno original, do qual as dodos vierom. rnilhao de compara~6es.
Se voce adiciona u rn indice, 0 sistema pode utilizar urn algoritffio billario
Quando a inStru)ao select * from ztxlfal where 1Hnr :. '0000001050'
eexecutada, 0 sistema reconhece que ha uma 1i fnr ja classificada em urn indice
,I de pesquisa para localizar 0 registro, depois co mparan do uma medi a de apenas
10 registros J com urn cen:irio de piar CasO de 20 registros! 1sso e 50.000 vezes
I' mais rapido. Por essa razao, deve assegurar que oscampos em urnacUusula where
., a
e assim a ut iliza automaticamente. sistema encontra 1050 no indice e obtem
o numero de linha 2. 0 siStema entao procura na tabela 0 numero de linha 2. sempre serao suportados po r urn fndice . Isso pode ser feito exibindo indices
existentes, e entao organizando sua logica para utilizar esses campos ou criando
Agora, suponha que a instru)ao select * from zt xlfal where landl ;:
,
"

'I urn indi ce secundario. .


I US I foi executada. 0 .in dice e c1assificado por 1i fnr, nao por 1andl . A coluna

.,I landl nao esta em qualquer ordem especffica na tabela. 0 sistema tera de
J
II
)
LI
. .,5 , ..'" .ne (,F " If '

E1.gurQ 5 2 Tobelom lfo1 indice secvr.dcirio Fig mQ 5 3 1=." Wi ,l , ay A H . t"j xl


Indice prim6rio . ..... (. ' .... 1MOO S_ · IWIl ·.,... ·~ · ..-., ""," ~ ' ~':_'~'-""" " '''',~_':'!'''' ' ~ ~ ' '''' ~._ ,. ' "':' l"'I,
Urn IndiceseclJnd6rio em lond l o in<!ice Z "1._ . 3.~ C.AIX : ~ H U · n .oC", :_:~-"~'~"":"
permite que voce
,
n.O do n." do n." do secundorio no lobe/a .~ t-I '8t :".._ -,,·~ ,~; :_'. ~:::.;.;.: -: . ~.,.. : <.
ztxlfal e
:10:>-..:" _'1.:""-.f'"7"" ~~ ' ",:.T. -, ,~- .~.
pesquise ropidomente nnr
., , linho
,
linna limr lond1 lendl linho

~~~i~;~~§j;~~;~~0r:;:·; :.~ ~~./~5 '.


em outros co/uno!> .3 US CA 2 co mpos la petos
o/@m dessos no chove campos mandt e
prim6rio.
.2
,
3 2 .6 CA CA
,
6
londl .
.3
., , .,.2
3 US DE

.5
7
6 5 .7
DE
DE
DE
US ,
5

.6 2 6 .5 CA US 3
.7 5 7 ., US US 7

Exibin d o ind ice s


Cada Indice em R13 tern urn unico para tres idenrificadores de caractere, ou id.
a Iodice primfrio sempre tern urn id de 0 (zero) . Urn id de Indice secundario
pode ser qualquer Dutro n umero ou urn caractere alfabetico .
_.__ "" ........_...... ...~ ---:..;. ~ ...,.. ~ .. ~ ~ "'. -·=.;;-_ ~ . . _l _

SnE EN(ij ~ Inicie a ScreenCam "How to Display Se-condaryIndexes" agora.


a
procedimentc precedence somente mc strara indices secundsrios . 0
Indice na chave p rimfria (Indic e 0) DaO aparece nessa Iista .
Para exibir os ind ices secun derios existentes em uma tabela de banco de

I dados, siga este pro cedimen ro: smENW~ Inicie a ScreenCam "How fa Display All Indexes" a gora .

l
1. Exiba a tabela.
2. Pressione 0 borao Inde xes. " na barra de [erramentas Application. Para exibir todos as indices, incluinde 0 primario, siga estes passes:
Se voce nso vir esse batao , sua janela pede estar mui to estreita.

I
1. Exiba a tabela.
. Alargue-a a u escolha 0 caminh o de menu Goro-> Indexes. ~.~..
2. Escolha 0 caminho de menu Utilities->Database Utility. A tela
3. Se existirem indices secundarios, sera exibida uma Iista dele;-em uma
ABA P/4 Dictionary: Utiliry for Database Tables e exibida.
caixa de dialogo. Se D a O existi r nenhum, sed'exibida uma mensagem.
3. Escolha 0 caminho de menu Extras-c-Databa se Object- s-D isp lay.
4. Para exibir urn deles, de urn clique duplo nele . 0 Jndice e exibido na
U rna lisca de todos os campos na tabela e exibida e embaixo deja esd.
tela ABAP/ 4 D iction ary: Ta ble: Display I ndex, como mosrrado na
uma Iista de eodos os indices com seus camp os, incluindc 0 Indice O.
Figura 5.3.

o status do Indice eexibido no campo Status. A existencia do Indice no Considero<;6es 00 crier lim Ind ice
banco de dados e ind icada po r uma mensagem que aparece embaixo do campo
Status. No campo DB Ind ex Name esd. 0 nome do Indice como e conhecido NOYO ..... Urn Indice pede co nsisfirern mois de um campo. Pa r exemplc, construindo urn
no banco de dad os. 0 nome de indice no banco de dados efo rmado peIo nome TtU.O " lndice secund6rio em landl e re gi e ofivc select * f r om ztxlfal where
landl = 'US' and reg ie = ' HA l o loccllzcr ropidarnente linhas cc rrespcndentes.
cia tabela, seguido po r su blinhados e depois pelo id do Indice. Na pane inferior Quando existem multiplos indices (urn prim6 rio e urn ou mais indice:; secund6rios), 0
I" cia janela, esrdo os campos que abrangem 0 Indice . A ordem de ripe do Indice
I' RDBMS ufilizo urn otimizador para selecionar a melhor. Para escolher urn Indice, 0
i ~ a mesma que a ordem d e campo. ofimlzc dc r examine as names de campo na cl6usulo where e entcc procure urn indice
que contenha as mesmos ~ames de cam po no ordem especlbcodo no d6usulo where.
Partonta, ce rfifiq ue-se de que 0 sistema escolho 0 fndice que voce pretende, espedfique
os campos no cl6usufa where no mesmo oroem que eles oporecem no fndice.
188 APR ENDAEM 21 DIAS ABA PH
D~ s.o DATA DlenOHARY, PARTE 3 J 189

indice s e MANDT Ao criar ou modificar Indi ces, rente nao utilizar urn camp o que ji esn em
Se urna rab ela comeca com 0 campo mandt, seu s indices tambem devem com ecar urn deles. Ha uma chance, quando urn programa pree xist ente for execurado,
com esse campo. Se um a tab ela comelja com mandt e urn Indice nao, 0 ot imi- de que 0 otimizador va escolh er 0 novo Iodic e e urn programa preexisrente
aado r pode nao ut ilizar 0 Ind ice. po de tornar-se mais lent o.
Lernbre -se, se voce pre cisar, do recu rso de tr atamento automdrico de
clien re do Open SQ L. Q uando select *" from ztxlfal where landl ;: ' US' e Diret rizes para crior urn Indice
executada, 0 SQL real enviado ao ban co de dad os e select *" fro :n ztxlfa l Via de regra, siga estas diretrizes quan do voce criar urn Jndice:
where 0 mandt = sy-mandt e 1andl ;: 'USI • Sy-mandt contern 0 cliente atual de
• Nao ren te adicion ar indices desnecessarios. Per gunte-se como voce
lo gon . Q uando voce seleciona Iinhas de uma tabela utilizando Open SQL, 0
pode esc rever a ccdigc para utilizar urn Iodice existen te.
siste ma au to maricame nte adiciona sy-mandt aclausula where, que faz com que
apenas as linhas que pert enc em ao cliente atual de logon sejam localizadas. • Tente evitar indic es que se sobrepoem; em outras palavras, evite in cluir
Quando voce cria urn indice em uma tabela con tendo mandt, tambem deve o mesmo campo em multiples in dic es.
incluir ma ndt no Indice. El e deve vir primei ro no Iodice, p orque sempre apare- • T en ce fazer indices mu iro seletivos, mas nao inclua camp os que au -
cera p rimei ro no SQ L gerado. mente m a seletividade em apenas poucos nfveis.
No resta nre dessa discussao, par ta do pressuposto que mandt esra inc1uido
em todos os indices.
H6 um maximo de 15 indices secundc rtos pe r tcbelc permltrdcs pelo
Codifique um Sel ect para utilizer urn dado indic e R/3.

NOVO .... Sevocecodilicc sel ect *" from ztx lfal where regia" ' MA ' , precisa haver
Tn.ll.O ~ urn indice iniciondeemmandt e regi 0 para cssegurarque 0 otimizodoroutilize. Cri o ndo urn Iodice secun da rio
Se voce ccditicc sel ect *" from zt xl fa l where lan dl ;: IUS' and regia " ' MA',
deve haver umIndice que conternmandt, 1and! e regia. 0 Indice ideal tcmbernas terio S(REEHCAM~ Inicie a ScreenCam "How to Create a Secondary lodex" agora.
nesso mesmo ordem. Se ndc houver um Indice nessa ordem, mas hoover outro
ccmecondc com mandt e 1andl, a otimizodor a utilizar6 para cc rrespcnder os primeircs
doiscamposdo c16usulo where e entco execvtor umvorreduro de intervo/o de fndice pdro Para criar u rn Indice secundario:
localizer uma ccrrespondendo em regio. Uma vorreduro de intervolo de indicej ! umo
busco seqcencol por uma porte de um fndlce. 1. Exiba a tabela.. Voce deve comecar na tela Di ction ary: Table/ St ru c-
ture: Di splay Fields.
ind ices se letivos e a efic6c ia do fndice 2. P ressione a batao Indexes. . . na barra de ferram entas Application
Se a clf us ula where cont iver mais campos que 0 Indic e, 0 sistema utilizara 0
(ou escolha 0 caminho de menu Gorc-e-Indexes. . .)
Indi ce para esrreitar a pesquisa. 0 sistema entao leri os registros da rabela e os
3. Se os indices secundsrios ja exisr irem, uma lisra deles sera exibida em
varrera p ara localizar corr esp ondencias. Par exemplo, se urn Iodi ce for com-
uma caixa de dif logo identificada como Indexes for Table xxxxx. Para
p osto pelos campos Fl e F2e voc e codi fies wher e Fl = 1 and F2 '" 2 and F3 '" 3,
o sistem a somente p oderf utilizar 0 Indice para local izar regisrr o s em que Fl=l criar urn Indice, pr essione 0 ba tao Create. A caixa de dialogo Create
e F2==2. Ele lera esses regisrros da tabela para saber quais tern F3=3. Portanto, 0 Index se ra exlbida.
Indice sera apenas parciahn en te eficaz. Ele teria mais eficacia se contivess e 4. Se nenhurn Indice secundaric exisrir, voce nao veri uma Iista de
todos os campos: Fl, F2 e n . indices. Em vez disso, vera a caixa de diaIogo Create Index ime-
diatamente.
NOVO.... Qual 0 grau de efic6cia do fndice com F3? Depende do moneirocomoos dodos 5. Insira u rn id de fndice no cam po Index rD. Os indices de cliente
TWlO ~ 500 distribufdos no fabelo. Se a combina<;ao de F1 e F2 for muifo especifico (ou dev em comelja! com You Z, embora 0 sistema nao imponha isso.
se/etiva) e resultar em apenos a lgumas linhos correspondentes, a inclice i6 sere muifo
eficcz. Adicionor F3 00 indice nesse coso pode 1"100 ser vontajoso pe r causa do overhead 6. Pressione 0 botao Continue. A tela ABAP/ 4 Dictionary: Ta ble:
do fndice durante as atua l izo~6 e s de tabela. Se a combina ~oo de Fl e F2 resultar no Maintain In dex e exibida .
sele<;oo de um grande nvmero de linhas da tobelo, a Indice 1"160 estoro muito seletivo e 7. No campo Short T ext, digite uma descri~ao do fndice.
adicionar F3 provovelmente oumentora 0 desempenho e reduzir6 a consumo de recurso.
I AP RENO A EM 21 eus ABAP/4 D1AS, OOATA DlCTJONARY. P" IT3 I 191

8. Na coluna Fl d Name, digite os campos que 0 Indi ce deve abranger na a eabela, entao vo ce nao pcders excluir n enhu m. Se cs indices
ordem em qu e eles deve m ser classificados. secondaries ja existire m, uma lista deles sera exibida em uma caixa de
9. Se os valores nesses cam p os, quando reun idos , devern ser sempre diilogo chamada Indexe s for Table xxxxx.
un icos, facsa uma marca de verificacao na caixa de seleclo Unique 3. De urn clique dupl o no indice que vo ce quer excluir. A tela ABAP/4
Index. Dictionary: Table: Display Index e mostrada.
10. P ressione 0 botao Save na barra de [erramentas Application . as 4. Pressione 0 batao Display < - > Change na barra de [erramentas
valores nos campos Status sao ago ra Newe Saved e di retamente aba.ixo App lication . A tela alterna pa ra mod o de alteracao e 0 titulo da tela e
deles c mensagem Does not exi s t in t he database aparece. Tarnbern ABAP/4 Dictionary: Table: Maintain Index .
aparece a mensagem Index xxx to table xxxxx was sa ved na p arte 5. Esco lha 0 caminho de menu Ind ex- > Delete. A caixa de dialc gc
in ferior da janela na barra de sta tu s. D elete Index D efinicion aparece p edin do para coofinn ar a solicitacao
11. Pression e 0 batao A ctivate na barra de ferramentas Application. 0 de exclusao.
sistema gera a SQ L e envia pa ra 0 RD BMS, criando 0 Iodice no banco 6. Pressio n e 0 batao Yes para excluir 0 in dice. Voce e Ievado de volta a
de dados . Se bem-sucedido, os eampos Status exib em Ac t 1ve e Saved tela Dict ionary: T able/Structure: D isplay Fiel ds . A mensagern Index
. e, ebaixo dos campos de status , aparece a mens agem Exists in t he xxxxx deleted aparec e na barra de status.
database. a campo DB Index Name conrerf 0 nome do Iodice no
banco de dados. Alem disso, e exib ida a mensagem Index xxxxx was No pass o seis, pres sionar 0 botao Yes faz com que 0 Indice seja excluido
success fu l ly activated. na barra destatus. do banco de dad os. Ao rer ornar a tela Dictionary: Table/ Structure: Display
12. Pressione Back. A t ela Indexes for Tabl e xxxxx e exibida. Field s, voce nao precisa salvar a tabela. Note tam bem que voce DaO pode
desfazer a exclusso pre ssionando a batao Cancel na te la de exibicac de tabela.
13. Pres sione Cancel para retorn ar a tela Dictionary: Table/S tructure:
Display Fields.
Deterrni no n do qual ind ice est6 sendo utilizodo
Voce aprendeu a criar urn indice secundario. O s indices melhoram a Quando uma instrucao sel ect eexecutada, a oti mizad or tenta escolher 0 indice
eficiencia da insrrucao sel ect. mais apr opriado para acelerar a recuperaclo de da dos. Se voce river varies
indices em uma tabel a, como voce pode dizer qual Indice est a realmen te sendc
utilizado ou me smo se urn deles esta sendo utili zado?
Se voce fizer umo morco de verificoC;ao no coixo de seleccc Unique
Index, c ccmblnoccc de compos no indice eseguromente fundomen tal;
e
isso imposto pe lo RDBMS, Umc instrvC;a o de inse rC;ao o u modificoc;oo
folhora se 0 cc mblnc cc c de vclc res nos compos de Indice jo estiver
presente no tabe lo.
~o Somente uma pessoo pode execut or um rostrea mento de SQl de cede
vea, lembre-se 'de deso tivor 0 rastreomento quando terminor. 0
rastreome nto de SQl 1omo lentc 0 sistemo.

Excluindo urn Ind ice secund6rio Para fazer isso, voc e pode utilizar a ferramenta de rasrreamento de SQL.

S(mNUM~ Inide a ScreenCam "How to Delete 0 Secondory Index" ogoro . S(RHNUM~ lnlce 0 ScreenCom "How to Use SQl Troce to Determine the IndexUsed" ogora .

Para excluir urn Indice secundario: Para dererminar qual Iodice esta sen do utili zado por uma instrucio
se lect:
1. Exiba a rabela. Voce deve comecar na tela Dictionary: Table/Struc-
tu re: Display Fields 1. erie urn pequeno programa em ABI\.P/ 4 que contenha apenas a
2. P ressione 0 borso I nd exes. .. na barra de [erramentas Application ins trucao select. Antes de prosseguir, tesre-o pa ra certificar-se de
(au escolha 0 caminho de menu Go to->Inclexes . . .) . Se voce vir a que funciona.
.caixa de dialogo Create Index, ne nhum Indi ce secundario existira para
192 I APREHDA EM 21 DIAS AW l' DIAs,oDATADlcnDHARY,PARTE ' I 193

2. Abra esse programa no modo de edicsc pan. que ele esreja promo e 15. D igite %s c no camp o Co mm and e pressione a tecla Ent er. A caixa de
espe rando para ser execu tad o. dialcgc Find e exibida..
3. Abra uma nov a scssa o utilizando 0 caminho de me nu Syst em- > C re- 16. Di gite 0 no me da tabela que voce esta rasrreando no campo Search
ate sessron. For. (Essa e a tabela identificada na instrucao sel ect em seu programa
4. Execut e a tra nsacio STOS (digit e I n stCS - zero-cinco, e ndo O -cinco em ABAJ.'/ 4.) ,
- no campo C o m m and o u esco lha 0 ca m inho de m en u Sys- 17. Pr essione 0 bono Find. V ma lista de resultados de pesqui sa devers
tem -> Urilities->SQL Tra ce) . A tela T race SQ L D atabase Requests ser exibida com seu nom e de tabela dest acado.
e exibida. 18. D e urn clique no primeiro nome destacado da tabela. Voce e levad o
5. Se a caixa T race SQL Starus Information exibe Tr ace SQl is switched de volta a tela T ra ce SQ L: List Database Requ ests. Seu cursor e
off, va para 0 passo 7. posieionado na primeira linha qu e co ntern seu nome de tabela. A
6. Nesse p ontO, a caixa Tra ce SQL Status Information con tem Trace direi ra dele, na coluna O peration, deve estar a palavra PRE PARE , OP EN
SQ l switc hed on by, seguido pelc id de usua ric qu e ativou 0 ras- ou REOP EN.
rreamento e a data e a ho ra que fo iiniciado. Voce deve altern a-lc antes 19. P re ssione 0 bcrac Explain SQ L na barra de ferr amen tas Application.
de poder prosseguir. Se 0 rastreamento foi iniciado dent ro da ultima A tela Show Exec ution Plan for SQL Statement e exibi da.
hera, e pcssrvel que ainda este]a sendo utili zado . Ent re em con tat o 20. Role para baixo ate 0 plan o de execucao. 0 Indice utilizado sera
com 0 usufrio indicado ou rente novam ente mais tarde. Se 0 ras- exibi do em azul.
tre amentc foi inicia do hi hora s ou dias, 0 usuario pr ovavelm ente 0
deixou ativo por erro e ele, com s eguran~a, pede ser desativado. Para Voce aprendeu a executar urn rastr eamen to de SQL Isso ajudad. voce a
desligar 0 rastreamento, pressione 0 bono Trace Off. A mensa gem determinar qual Indice esd. sendo urilizado.
na caixa Trace SQL Statu s In fo rmation agora dev e ser Trace SQL is
switc hed off. Exibiodo coofig uro(;oe S fecoicas
7. P ressio ne 0 botao Trace On. A caixa de didlogo Trace SQLDatabase P ara exibir as configuracoes tecnicas de uma tabela, exiba a tabela e pr essio ne
Requests eexib ida. 0 campo DB -Trace for User deve center seu ID o botac Technical Settings na berra de ferrame n tas Application . (Se 0 bo tac
de usua rio. Se seu ID de usuario nao estive r nesse camp o, insi ra-o na o estiv er af, sua janela pode estar muito estreita. T en te alargar sua janela ou
agora . ~_::.' utilize 0 cam inho de m enu G orc-e-Technical Settings.) Para modificar essas
8. Pressione 0 botao OK. Vo ce e levado de volta a tela Trace SQ L co nfiguracoes, pression e 0 bor ac D isplay <-> C hange na barra de [erramentas
Database Requ est s e as informacoes de sta tus exibem Trace SQL Application. A tela ABAP/4 Dictiona ry : Ma in tain Te chnical Settings eexibida,
'switc hed on by. indicando qu e voce ligou 0 rasrream ento. como mostrado na Figura 5.4.
9. Aherne de volta para a janela que contern sua sessso de editor (aqu ela
com seu programa esp eran do para ser executado) .
Closse de dodos
10. Press ione F 8 para executar seu programa. (Apenas pressione F 8, nao NOVO'" A cosse de dodos determino a tablespoce 0 que 0 fobelo e ctribuldo. (0 termo
fa~a mais nad a, nem mesmo p ressione 0 bo tio Back.) Tft»O ~ "tcbt espoce" se cplico 0 bancos de dodo s Oracle. Pora lnformix, substituo pelo
11. Quando seu programa t iver side execut ado e a ampulheta nao estiver termo "'DBS spa ce"'.) Um tabJespoce e um orquivo fisico no disco que e uttlucdc para
mais sendo exibida, alt em e de volta ajan ela de rastr eam en to. crmczencr tcbelcs . Coda tc belc eotribuida a um toblespoce. As tabela s com corocteristi-
cos seme lho ntes nc rrnc lmente sao agrupoda s em urn tab lespace, ossim toblespcces sa o
12. Pressi one 0 botao T race Off. As inf ormacce s de status leem Trace as unidad es a dministrotivos utilizada s pelo DBA pa ra gerencior 0 ban co de dodos. Pa r
SQL is switched off. exernplo, a s tobelas que cresce m rcp idomente esto roo ogrupodas em urn toblespoce em
13. Pression e 0 ba tao List Tra ce. A caixa de diilogo T race SQL Database urn disco com muilo espo<;olivre.
Requests e exibida. Os campos nessa tela jacon terao os valore s. Ca da classe de dados tern urn tablespaee associado. Quando voce ativa
14. Pres sione 0 botao OK. Vo ce pode precisar espe rar urn pou eo, no uma tabela. ela e criada no tablespac e associado a essa c1asse de dados. Se voce
maximo doi s minutos. A tela Trace SQ L: List D atabase Requ ests e alte ra a elasse de dados quando a tabela est a ativa, oada aco m ece; ela nao se
exibida. move para outro tab lespace .
.w.. w.w.w • • • • • ---~------

D1A5: 0 OATADIITIONARY,PARTE 3 ,. 195


194 I APRENDA . M21 DlAS AD AP/'

E.i.o.u-t:a-5 4 ·'!'i ii @ Hg ! • § ffl ft' 9\ [ ,


.:>.!L.-__ ~ : t.-- JIloiloo '.~ '''II<\; ' ._. ~' . , ~~,.;._~f"~" \;. :,';·...r··_;"~:: ·.'-c-:. .••:.•, ,',-•.,> _ , -~. ;:' ,. ',
_1" 1>:1
"" .' '''
Alem de ssas categories, p ode haver classes de dados USER tambem. Estas
No telo A.B.AP/4 sao criadas par seu DBA, que 0 dirigira na esc olha delas nas hora s apropriadas.

Catego ria de tamanbo


o camp o Size Category permite que vo ce esp ecifique 0 mimero maximo de
regist ros que espera que essa tabela arm azene. Vo ce ira con figurar 0 tamanhc
da exten sao ini cial e das pr 6ximas, assim como 0 nu m ero maximo de extens6es
permitidas por essa tabela. VIDa eaensso e a quantidade de especc alocado para
uma tab ela. A extens fio inicial ea quantidade de espa<;o alocado pa ra um a tabela
quando e criada. Se uma tabela consome esse espa<;o, out ra exte ns ao sera
alocada, fazendo com que 0 espa!jo de tab ela seja est endido .
As cacegorias de tam anh o sao sempre de 0 a 4, mas a namero de re gist ros
.- ~-~.~~;~ .~.,~~.: .".<:~) ,~~~%~.~\,~,~,
i_~ 'i~i'f.;"'!$C~~?" ?*;~~~n'::.l espera dos em carla categoria de tamanlro mudare de acor do com cede tabela
:I~W-ID'; ~:;- l:, :)'~ :;" '; .:1:.-t(,9,~~§·f~:;;:'
baseada n o co mprim ento de uma linha. Esco lha uma categoria apr o pr iada
*~""-'~~~::j;.~;r~.~ ' "·~··"~~~i{~l:ll~ baseada no numero m aximo de registros qu e voc e espera que a tab ela arm azen e.
.....,. ~--"':.;.,.:..~~~

~o
Q uando escolher umc ca teg orio de tomonho, se jc ge neroso . No R!3
As classes de dados imporrantes sao: e muito melhor supe restimar, que subest imor esse pcrernetrc . Se a
cotegorio de tomonho e muito peq ueno e a tooele cresc e mois que a
• APPLO au dados-mestres . Escolhendo APPLO (dados-m est res) , signifies clccccec inicicl, 0 RDBMS oloco outra extenseo. Extens6es seccn dcrlc s
que a tab ela nao e atualizada com freqeencia e cresce lentamente. Ela redvaem 0 dese mpen ho e exigem uma reorqc nlzocec do lable spoce
sera colocada em urn tablespace com tab elas semelhanres. 0 mestre para sere m remcvidos. As reorgcnizocoes podem se r muito diflceis de
do fabricante e as tabelas-mes tres do cliente sao bans exem plo s de , executo r e murn banco de do dos g rond e, especiolmente e m urn que ·
exijo a lto disponibilidode. t muito mois focll reduzir uma ca tegorio de
dados -mestres. tom onho excessivome nte qeneroso do que ournentor umo subesti-
• APPLl ou dados de transaoio , Escolher APP LI (dados de traqsj.<;ao), modo .
significa que a tabela se destina a ser atualizada com frequencia e
crescer rapidamente. Pedidos feitos a fabricantes e pedidos recebidos
de clientes sao bons exemplos de dados de transacoes. As eabelas que Exibindo 0 numero de extensoes alocadas para
contem essas ordens terao uma classe de dados de APPLl. umo tabela
• APPL2 OU dodos de personalizacso. Escolher APPL2 (clados de perso- Voce po de exibir a ndmero de extens6es aIoca das para uma tabel a ut ilizando
nalizacao), significa que 05 conteudos cia tabela sao determinados a seguinte proce dim ento.
am es da implementacio e njio alteram com frequencia depcis disso .
As tabelas de verificacao e suas tabe1as de texto associadas, como smENCAM.... lnicie a Scree rrCom "How to Display the N umbe r of Extents Used by a Icble"
ztxt005 e ztxt OOSt , sao bons exemplos de tabelas que devem ter uma " a gora.
classede dados de APPL2. Para exibi r a mimero de extens6es para uma tabela:

1. Ex ecute tr ansaclo DB02. (Digire / n d b02 no campo C ommand e


Outros classes de dodos podem se r exlbtdos pressfcncn do-se 0 seta pressione a tecla En ter.) A te la Database Performance: T ables and
perc ba ixo no fim do compo Doto Closs e ernoc press ionondo-se a
Indexes e exibi da.
bctcc System Data Types. Esse s classes s6 devem ser vtllizodos pe lo
SAP; elcs serve m pa ra as tcbelcs de sistema do R!3 que c rmoze norn, 2. Pres sione 0 bctao D etailed ana lysis. Uma caixa de dialogo Memory
par exemplo, as roforrrocees de Doto Didi on o"ry e a c6 digo·fonte do Ma nagem ent: T ables and Indexes e exibida.
progromo.
.*•. wwww •• ww • • • _ • • ~-- - ~ ~

DIA 5:DDATADICTIONARY, PARTE3 197


APRENDA EM 21 DIAS ABAP/4

Colocando os dados no buffer, voce aum enta 0 desempen ho de duas


3. Digite 0 nome cia tabela no campo Tables e pressione 0 batao OK.
maneiras significativas:
VIDa tela M emory Management: Tables and Ind exes e exibida. 0
nome de tabela apa rece ria lista. • Os programas que udlizam os dados no buffer sao execut ado s mais
rapido porque eles nao precisam esperar as informacoes chegarem do
4. De urn clique duplo no nom e de tabela. Uma caixa de dialogo Memory
banco de dados . Isso reduz os arrasos d e espera pelo ban co de dados
Management: T ables and Indexes eexibida.
e a rede que as conecta.
5. Selecione 0 ba tao de opcao Extents.
• Os outros programas que preeisam acessar a banco de dados sao
6. Pressione 0botao OK. Uma tela Memory Management: Tables and
executados mais rapido porque hoi men os carga no ba nco de dados e
Indexes e exibida, contendo a Iisca de exrensoes, seus nomes de
menos trafegc na rede.
tablespace, n umeros de extensao, mimero frsico de arquivc, tamanho
de bloco, tamanho de extensao e mimero de blocos na extensao. Ha Colocar uma tabel a no buffer pode fazer com que uma sel ect execut e 10
um a linha nessa lis ta para cada extens ao. a 1OOvezes mais rapido ou mais . A princfpio, pode pareceruma boa id eia u tilizar
buffer em cada tabela no sistema. Entretanto, as buffers sao armazenados
Voce aprendeu a exam inar 0 numero de extensoes alocadas em uma inteiramente na RAM, assim 0 especc e limitado pela qu antidade de RAM
tabela. I sso informara se a t abela p rec isara ser reorganizada au nao. disponfvel. De faro, a quantidade de dados e dio superior a de RA M que as
tabelas devem ser co locadas no buffer prudentemenre para evitar overruns . Se
lliiJi za ~ii Q de buffer em um a tg be lo acc nt ece urn overrun em urn buffer, ele pode fazer troca (swap) para 0 disco,
Como mencionadono Dia 1, as dados podem ser colocados no buffer na RAM que pode apagar qualquer desempenho ganho pela utilizacao de buffer.
no servidor de aplicat ivo. Isso e contro lado individualmenre e especificado nas As tabelas contendo tipos de dados numericos ria ehave primaria nao
configuracoes tecnicas para cada tabe la {veja a Figura 504). podem estar no buffer. Os tipos de dedos numericcs -de DDIC sao CURR, DEC,
Sempre que uma instrucao Open SQ L e utilizada para ler urn regis tro, 0 FLTP, INTI, INT2, INT4, PREC e QUAN.
buffer de dados e verificado p rimeiro para ver se os dados estao ai. Se nao
est iverem, as dad os sao lidos do banco de dados. Se as atriburos cia t abela
indicarem que os dad os devem ser cclocados no buffer, 0 regis tro e salvo n~ :
A trcnsoceo 5T02 exibe buffers e estctleflcc de usc. No tela Tune
Summary, os buffers de dodos sao chcmodcs Generic Key e Single
RAM no servido r de aplicativo em buffers de dados. Mais tarde, se esse registro Record. Urn clique duplo em coda umc desscs liohas exibir6 umo
for lid o novam ente, ele sera lid o atraves do buffer, em vez do banco de dados. analise detclhcdo. A partir del, os cbietos no buffer podem ester
Urn diagrams desse processo e mostra do na Figura 5.5. exibidcs pressloncndo -se 0 botoc Buffered Objects no borro de ferro-
mentes Application.
Elg ll r g 5 5 CD 0 prccessc de trobolho
Os dodos podem ser
colocodos no buHer
verik o 0 buffer perc ver
se es dodos eslo o ui. Se
o e
consultor de Basis 0 responsavel par monitorar a s buff ers e evitar
no
Progromo em
WI. do servidor ABAf'l4 nco esuverem. que a falta de buffer tome lema 0 sistema. Antes de utilizar bu ff er em u ma
sendo
do oplicotivo. exeectcdc em (2) ele obtl!lm 05 dodos do banco cabela, e uma boa ideia conversar com seu consultor de Basis.
um procl!SSO de dodos e
de trcbclbc

o® preenche 0 buffer. Sincronizac;cio do b uffer


Acesscs subseqiienles leem os
dodos do buffer. NOVO ~ Se voce fiver dais servidores de cplicctivo, 0 mesmo reqistro pode ser cclccod c
TtR1!O ~ no bufferem code servidor. lsso n60 serlo um problema para ele, noo fosse 0
foto de que os dodos podem ser otuolizados. Se um registro colocodo no buffer for
otuolizodo, as clterccoes devem ser comunicodas 00 outro servldor de cpllcctlvc. Isso e
feito em um processo conhecido como sincron;zo~oo de buffer, que ocorre em intervo los
de 1 a 4 minutes, dependendo do configuro~60 do seu sistema.
_:w: __ __
~ . Y W W W W W W W W W . W W W . W . W •• •• • -- ~ ~

-- 1
198 mEHO' EM 21 DIAS·"AP"

Por exemplo, como mo strado na Figu ra 5.6, supo nha que 0 usud rio 1
Dl's,o DATADICllDN'RY, PARm

Na Figu ra 5.9,0 usuario 21e 0 registro 1. A versjio auriga do registro 1 e


I 199
I
!
esteja conectado ao servidor de aplicat ivo 1 e 0 usuaric 2 esteja conectado ao encontrada n o buffer, enrso 0 usuario 2 ve os dados ant igos. 0 usuario 2 nao
ve a nova versao do registro 1 ate qu e uma sinc ronizacao de buffer ocorr a.
11
servidor de aplicarivo 2. 0 usuario lIe 0 registro 1. 0 registro 1 e colocado no
. N a Fi~ra 5.10, a processo de sincronizacao de buffer detecta que 0 j
buffer do servidor de aplicativo 1.
N a Figura 5.7, 0 ususrio 2 Ie 0 registro 1. 0 mesmo registro esta agora l~terval? de_ smcroni~a(jao expirou e com elSa a sinc ron izacao. Ele Ie 0 log de
n os buffers dos dois servidores de aplicativo. . smcromzacao no servidor de banco de dados e determine que 0 regist ro 1 esta
Na Figu ra 5.8,0 usudrio 1 atualiza 0 regiscro 1. A atu aliza cao e refletida fora de sincr onizacao. Ele entao marca esse regist ro como invalido no buffer.
n o banco de clades e no s buffers do servidor 1, mas 0 regist ro an tigo aind a esd Ele ainda ndo atua liza 0 registrc n o buffer do banco de dados.
no serv ido r 2. Uma entrada e feita no log de siruronizaoio n o servid or do banco
fig u r g 5 8
de dados indicando que 0 registro 1 foi atualizado.
Posso C: 0 usucria J
oluolizo 0 regislro de
"F i g u r a 5 6 l egendo: J, fozendo com que
AS: Servidcrde oplicotivo
Posso A 0 usu6rio ele seio otuolizodo no
DB5 : 5ervidorde banco.de dodos
J Ie 0 registro J, SP: Processo de sincronimco c
banco de dodos e no
fozendo com que ele buffer do seNidor do
seio colocodo no