386

Click here to load reader

Aprenda ABAP em 21 dias.pdf

  • Upload
    cabral86

  • View
    1.881

  • Download
    682

Embed Size (px)

Citation preview

  • Crie telas de selecao bern-projetadas e eflclente-

    . ~...."

    .... ,contem: '

    KEN GRtENWPOD e o'president" da ernpresa de .\consulto riaern ,SAP Novt.l::; ty1o~us ~ Inc, sediada em \

    Ontario, .~~nada. Ele tam~e~'e instrutor de ' . . .... ICertificacao em SAP da America's ABAP/4 Academy: . ': -Boston; no Lambton Collegeem Ontario e . .... ~.recenternente lecionou curso~ '}a Mais de'50'st;~eric~s "erh 'Y1~~S ' tbj~ sess6~:i-e- . .trelnamento Individuals a que "QCe~pode assiWf ere\::isar a qualquer rnornento, ilus.t;and9:passq a passoas prQcedim,,~ntos cont idos no liv re.' . .. . l

    :: ~ . ~ ~~( ." . . . \. ' _. I,i! C6digofonteli>m ABAP/4 testadopara osprog~as de

    exemplo, e~:~.t~ibS e solucoes lnciuldos ~o Iiv o. I Utillta rfos originai s,

    '- ....cC -'-~__1__:;_--'..J. ' . . : .... ..

    \IV\IV\N. ..c.ampu,

  • ,)

    ')')

    "

    )))

    " )".;'ill

    Dla14

    EnlendaoseLemenlOide$lntaxedo ABAPI":cescreva0 conce~o deobielosde lidos . suavisibilidade; ulihe Il!lBis eentendacomo codi~ce rcada lipo; delifUI eutilizeconstantes,

    Enlerda0 ele~o do! \IpOsdedados nasalda: utlllzaasoP95es de)Ofma la~o

    da~o i,fr1te;utilze seeasdecoovorstioe deiecteSOlI preseo",dentrodedomlnios.

    Dla13v,

    Pre&flCha umalabelaJnlama apar1ir deumalabela debanco dedado.

    u~lizando aseSlruturas(consll1lcl~ matserlcienles;relllillt processamento de

    ln lll"u~1o decontmleemlabelasInlernesutI~zandoat ecn change of.

    ;i;f.{~:: :,:~,. , ";. ,.;);".;,Dla6.Apllqul0 ulW1aria de bancoeedados para newtar IvorUlcllt;ao decoerl!nd:l;atesteInlormaes debanco dedades espadlicasde labela; Insira a recralabelas nobanco dedados.

    Coo e utilI IndicesseQ.Jrxlar!osapropriedamenle;configureosalriltJlos16cnlcos paralabolas Iransparenles:configure 0usadebullerpara tabelas,

    !0:tt~" ~,i~\2.(: ~ ~~; ~ ~(Reconh~ 0opefalb decorpo delabltla It umze-epara testeraoxlstllncladedados emuma labelaInlemae compauuo

    . conteudo deduas labelas

    . Intemas quanta! Iguaklade.

    Defina umalabE IaIntema com ousom umallnhadecabSl;alho;preencl\a essalabelautilzaooo appendehavesuma irmade

    cab~lt1o Otl ume dreadeIfabalho expl idla;c:lasslnque labeln! kltltmas 'autilize a ad~!o astext.

    J 'j ; .Pt ".; !" : ~}.1 ', ,' ; , I' ;')~ :':;':'~'-:~, :l1:t~~ ~:" ~.'~~~ 9,~>"' !~; ~ ,J.l'!i ..,:i . :P(~ 1~.: ~\ \;t: , .',Cod~e ISlnSIruescomunsdlt conlrole i f.case.do ewhtl e:cootrol& I seqiillncladoprogrlmau!iIIzandoex it, conti nueechec k:codiqueespecficllt;ees simples dlt

    pos~o 0decomprmentonl InstrOlfAo wri teo

    1,,; ~};i:.;D~~~:>,;;l~l:{~ .',.,~.\t\'i;:1 "'_~ ~ ~i~r~).f ,~ it.':~W ';i ;~~ .:~.~ .{.~~1:;::, \1:.'~;,, .f/. .,13 2 ; .' I , ,! I~n " .it-."\ ;o;.;~, pla .3 :q: , : ~r' ~ ~ ,JI,~~,~:, Dia 4:\ :!1 1_" ~' 1 ~'. -, "" 1\"0 , ;- .:,'. ...I< L ~'. .. . ... I II!,I'. ~ ", ' ..,-' ,'.-,. ,-,'1" , .1 .

  • ~~...-~Y,

    Consultor EditorialFernando Barcellos XimenesKPMG Pea t Morw;c;k

    Tradu'iaoEdson Furmankiewicz

    "Docware Trodu~6es recnrcos

    'lle"o Site et"o C;:;-~ ~

    ,f; '":s ACELERE tflSEU CONHECIMENTO

    NOVIDAOES. CAOA ST IIIO ,I.A Nlf'AM ENTOS .o C.OMI"ItAS ~~

  • 00"""'"sams Tead'I Yourwlt ABAP/4 k'l 21 DaysTradul
  • Dia 20 Modu larizacao: m 6dulos de fun,ao, Parte 2D ia 21 Telas de selecao

    619653 Sumario geral

    . 577789

    1010152022242424252526262727282830

    ....... 12

    SEMANA 1 Visao geral. . . . . . .Dia 1 0 ambiente de desenvolvimento

    Objetivos do capitulo .o que eR!3 ? .

    Qual ea fun

  • .. ,..

    XII "RENDA EM 21 DI AS ABAp/'SU"'''DGERAl XIII

    434344454546464747485051516464656667687070717272767879828385858687878893

    . . 9595959697979899

    . 101

    Dia2

    Dia3

    Seu primeiro programa em ABAP/4 . . . . . . .Antes de prosseguir .Explorando 0 ambienee de desenvolvimentoDescobrindo tipos de programa .

    Definindo relatorios .Definindo programas de dialogo . .

    Descobrindo componen res de rela ta rio .Descobrindo a ob jeco de tempo de execucac de prograrna .Inrroduzindc as convencoes de atribui'):ao de nome de programa

    Criando seu primeiro programa ...Explorando 0 editor de codigo-fome .

    Utilizando a Editor: Initial Screen .Explorando a funcionalidade do editor de codigo-fo nr e

    Obten do ajuda . . . . . . . . . . . . . . . . . . . . . . . . .Obtendo a ajuda F1 .O bt endc a ajuda R/3 Library .

    Localizando seus ob jeto s de desenvolvimento .Introduzindo 0 R/3 Data Dictionary .

    Explo rando as tabelas e as esrrururas .Exibindo uma tabela ou definicao de estruturaExibindo 05 dados na tabela ...De termin andc campos exibidos .

    Entendendo a sintaxe do ABAP/4 . .Introduzindo a instruci c se1ect . . . . .Entende ndo as areas de t rabalhos de tabela"In trcduzindo a clausul a where .Trabalhandocom variaveis desistema .Utilizando 0 ope rado r de encadeamenro .Utilizando a instrucio se l ect singl e . . .Comentando 0 c6digo e a documen tacao formal

    Resumo .P&R .Workshop ..

    Teste . . .Exercfcios do editor . .Exercfcios de prcgramacac

    o Data Dictionary, Parte 1 .. .O bjetivos do capitulo .Descobrindo nfveis de versac do R/3 .Aprofundando-se no R/3 D ata DictionaryExplorando os tipo s de tabelas em R/3 . .

    Tabelas transparen tes . . . . . . . . . . .Pools de eabela e tabelas de pool .Clusters de tabela e rabelas de cluster .Restri

  • XIV I APRENDA EM 21 DIAS ABAP" SUMARIO GERAl XV

    . 269

    .270

    .270

    .270

    .272

    . 273

    .274

    .275

    .276

    .259261

    . 261

    . 261

    .262

    .263

    .263

    .267

    .268

    . 257

    .. 225.226.230. 231.232.233.233.234. 234.234

    235. 235. 236. 236. 237.238. 241.254. 255.255.256. 256

    Definindo dados no ABAP/4, Parte 2 . .Objetivcs do capitulo .Definindo constantes .

    Sintaxe da instrucao CONSTANTSDefinindo strings de campo . ... ,

    Urilizando a instrucao DATA para definir uma string de campo .Utilizando uma string de campo como uma varidvel do tipo char .Utilizando a instrucao TABLES para definir uma st ring de campoString de campo definida u tilizando TABLES in teragindo com

    SELECT .Visibil idade de uma string de camp o definida uril izand o TABLES

    Definindo ripos .Sintaxe para a inserucao TYPES

    Tipos estruturados .Grupos de ripe .Criando urn grope de ripe

    Resume.P&R .

    Definindo dados no ABAP/ 4, Parte 1 . . . . .Objetivos do capitulo .o buffer de programa e a area de rolage mElementos de sintaxe do ABAP/4Definindo ob jeto s de dados .

    Definindo literais .Definindo variaveis

    Resumo ..P&R . . .Workshop

    Teste .Exerctcio 1

    U cilizando 0 utilicirio de banco de dadosVerificacoes de coerencia .Exibindo 0 log de ativacao .Exibindo e mcdificando parametres de armazenamentoExcluindo e recriando as tabelas no ban co de dados

    Resumo . ,P&R . . .Workshop

    Te ste .Exercfcios 1 . \ .

    SEMANA 2 Visao geral ... .... ..

    Dia 8

    SEMANA 1 Revisao

    Dia 7

    164 168 168. 170 171.1 72 174. 175. 176. 177. 177.177 178. 178 178 179.180.180

    183. 183. 183 186 187 189.190 191 193. 193 195. 195. 196.213. 214.214.215.215

    217. 217.217. 218.221. 221.222.223.223

    o Data Dictionary, Parte 4.. . .Objetivos do capi tulo .H ist6r ico auto mati co de tabela e documentos alterados

    Documen tos alterados .Sabendo quand o ut ilizar hist 6rico automdtico de tabela

    Resumindo as configuracoes tecnicasversees ativas e revisadas .

    Vers6es adicion ais .D escartando uma verssc revisada

    o Data Dictionary, Parte 3 . .. ...O bjetivcs do capftulc .Entendendo as Indices de tabela .

    Exibindo indices .Consider acbes ao cria r urn IodiceCriando urn Indi ce secundario . .Excluin do urn Indice secundsrio .D etermin ando qual Indice esu sendo uti lizado

    'Exibindo configuracoes tecnicasClasse de dados '. . ':Ca tegoria de taman hc .Exib indo 0 nu mero de extens6es alocadas para uma tabela .Utilizacic de buffer em uma tabe1a

    Resumo . .P&R ...Workshop

    Teste .. Exerd cio 1

    Definindo uma tabela de valorCampos especiais de T abela . .

    Os campos monetarios .as campos de quanridade .

    As esrruturas no D ata Di ctionaryEnrendendo Includes ... . .Incluindo a mesma estrutura diversas vezes

    Resumo . .P&R ...Workshop

    Teste .Exercfcio 1Exerclcio 2Exercfcio 3Exercfcio 4Exercicio 5Exercicio 6Exercicic 7 .

    Dia5

    Dia 6

  • XVI I 'PIE NO' EM2101'S "'PI' SUMARID GERAl I XV"

    At ribuicges, conversoes e calculos .Objetivcs do capitulo .Antes de prosseguir .T rabalhando com variaveis de sistemaLocalizando varidveis de sis temaInstrucoes de atrib uicio .... .

    U tilizando a insrrucao cl earUtilizando a instrucao moveUtilizando a instrucdc move-correspondi ngExecutando cilculos .

    Atribuis;ao dinamicaResumo . .P&R .. .Workshop

    Teste .Exercfcio 1

    Instrucoes de controle comuns ..Objetivos do capitulo .. .Utilizando a instrucao if .

    Sintaxecia instrucao ifConversao de dados de literais durante comparacdes .Exibindo convers6es .Utilizando el set f .Utilizandc operadores de string de caractere

    Utilizando a instrucao cas e .Sineaxecia instrucao cas e

    Utilizando a instrucao exi t .Sintaxe cia instructo exi t

    Utilizando a instrucio do . .Sintaxe cia instrucdo do .Terminando urn loop sem fimUtilizando a adic;ao varying .Madificando valores dentro de do ... varyi ng/enddo

    Urilizando a instruc;2.o whi 1e . .Sintaxe da inspucac whil e . .

    Utilizando a instruc;ao cont i nue .Sineaxe da instrucac conti nue

    Utilizando a insrrucdc check .Sintaxe da insrrucdc check .

    Camparando as instrucoes exit , continue e check. 408

    .390

    . 391

    .392

    .393

    . 395

    .395; 395. 397.398. 400. 400. 403. 403. 405. 406

    349.349.349.350

    .353

    . 359

    . 376

    . 382

    . 383

    .385

    . 385

    .385

    387. 387. 388.388.389. 389

    . 341

    . 344

    . 345

    . 346

    . 347

    . 347

    Tabelas in ternas . . . . . .. . .Obierivos do capitulo .Princfpios da tabela interna .

    Definicao de urna tabela internaAdicionando dad os em uma rabela interns util izando a instrucac

    append .Lendo 'dados a partir de uma tabela interna .C lassificandc 0 ccnteodo de uma tabela intem a

    Resumo . .P&R .. .Workshop

    Teste .Exercfcic 1

    Tabe1as internas avancadas, Parte 1 .Objetivos de capitulo .Testando e modificando 0 conreudo da tabela inrernaObtendo informacoes sobre uma tabela interna .. ..

    Determinando se uma tabela interna esta vazia ..Deterrninando 0 numero de linhas ern uma tabela internePrograrna de exemplo que obtem as informacoes sobre umatabela intema .

    Copiando clades de uma tabela inrem a par.1 um a autra . . _ . -: .Copiando uma parte de uma tabela int ema .Programa de exemplo que copia os dados ~ntre as tabelas internasCornparando 0 conreudo de duas tahelas internas

    U tilizando a instrucl c edi tor-ca11 ..Sintaxe da instru~io edi tor-ca 11 .

    Inserindo linhas em uma tabela internaSintaxe da instruc;ao insert ... .

    Modificando as linha s em uma tabela intemaSintaxe dainstruci o modify .

    Excluindo 0 conteudo da tabela interna .Utilizando free para excluir 0 conreudo da tabela interna .Utilizando r ef resh-para excluir 0 conteudo da tabela interna .Uriliaando c1 ear corn uma tabela interna .Utiliaando a instruljao de1ete para excluir as linhas de umatabela interna , .

    Especificacoes simples de comprimento e posici c cia instrucdo wri te . 341Sintaxe para especificacoes simples de co rnprimemo e posica cna instrucfo wri te .

    Resumo . .P&R .. .Workshop

    Teste .Exercfcio 1

    Dia 12

    Dia 11

    . 277

    . 277

    . 277

    . 277

    279.279. 279.280.283.286.286. 291. 303. 304.309. 310. 311. 312.312. 312

    31 5.315. 315.316.317.319. 320.321.326.326. 327.327. 328. 328.330.332. 334. 336. 336.337.338.339.340.341

    rWorkshop . .Teste ...Exercfcic 1Exercfcic 2

    Dia 9

    Dia 10

  • {VIII , APREHD A EM 21 DIAS ABAP /~SUMARlOGERAl t k.IX

    . 482" 490.491. 493. 493.493.494

    527.527.527. 528. 529. 530. 534.536. 538.540. 541.542. 542.542. 542

    . 495

    .497499

    . 499

    .499

    .500

    .500

    . 501

    . 503

    . 506

    . 507

    . 508

    .513

    . 525

    .525

    . 526

    .526

    .526

    ".

    Especificando decimals e arr edondamentoMudando 0 alinhamento .

    Resu mo . .P&R ."..Workshop

    Teste .Exerclcio 1

    Tecnicas de Iormaracao, Parte 1Objetivos do capitulo .Fo rmatacic grafica com a inscructo write .

    Sint axe paraasadiljoes graficas para a inscrucao writeUtilizando aadic;ao as symbol . .Utilizando aadic;aoas i con .Utilizandoaadifjao as 1; ne .Exibindo os sfmbclos, leones e caracreres 1i ne-drawdisponjveis .

    Formatando e imprimindo relatorios .Contro lando 0 tamanho de pfgina .Criando cabecalhos e rodap es de pagina .

    Resumo . .P&R . . .Workshop

    Teste .Exe rdcio 1 . .

    Tecnicas de formatacao, Parte 2 .O bje tivos do capitulo .Ins rrucoes de fcrmaracio de lista ..

    U tilizando a instrucao new-l ; ne . . .Utilizando a instrufjao newpage .Utilizando new-page pr i ntU tilizando a inserucic ski p .. .Utilizando a instrucao backUtilizando a ins rruefo posi t; on .Utilizando a insrrucio set blank 1i nes

    Resumo . .P&R . ..Workshop

    Teste .Exercfcic 1 . . .

    SEMANA 2 Revisao

    D ia 15

    SEMANA 3 Visao geral

    D ia 16

    . 425

    . 425

    . 426

    .434

    .437

    . 438

    .439". 440. 444.449.451.458. 459. 460. 460.460.460

    461.461. 461. 461. 462.463.465.467. 468. 470.471.472. 473. 474. 476. 479. 481

    . . 412

    . . 413. 417. 417. 422. 423. 424. 424.424

    425

    A instrucao write . . . . . . . . . . . . . . . . . .Objetivos do capitulo .Porrnatacao e comprimentos padrao

    Co mprimenros padraoCampos compactados .Eormatacao padrao .P ro grama de exemplo dem onst rando a formatacao padrdo .

    Adiljoes para a instrucao writ e .Ccmpreendendo a especificacdo de posicao .Compreendendo a especificacao de comprimentoTrabalhanclo com subcampos . .Ucilizando a adifjao under . .Utilizandoa adi~ao 'noMgap . . .Utilizando mascara s de edicac .Utiliza..ndo as safdas de conv ersaoTrabalhand o com a formatacfc de dataUtiliza..ndo as adifjoes no-zero e no-sign

    C riando Iistas dos 10 melhores uti lizando append so rt ed by .Sintaxe dainstrucio append sorted by . . . . .

    Preenchend o um a tabe la intema utilizandc co11ectSintaxe da ins tru cjio co11 ect .

    Resume . .P&R .Workshop . .

    Teste . . . .Exercic io 1 .

    Tabelas internas avancadas, Parte 2 . . . . .Objetivc s do capitulo .Preench end o uma tabe1a in terna a partir de uma tabela de bancode dados .

    Selecionando rmiltiplas linhas diretamente para uma tabela intern aAdicionando Iinhas, uma por uma, utilizando se1ectResumindo se 1ect , tabelas in temas e eficiencia .. .

    U rilizandc as tabelas de exemplo 1fal , 1fbi , 1f el e 1fe3Process amento de interrupcao de con trole ... .

    Utilizando as instruc oes at fi r st eat l ast .Utilizando as instru coes at new e at end of .Ut ilizando a instrucdc sum .Llrilizando a ins trucio on change of

    Resumo .P&R .Workshop .

    Teste . .Exercfcio 1Exercfcio 2

    Dia 13

    Dia 14

  • .628

    .6291

    .638

    .640

    .641

    .641

    .644

    .648,649.650.650.651,651.651

    .655

    .653

    .653

    .654

    . 6~5,657.659.666.666.667.667,668.670.671

    ,672.672.673.673

    9.622.623

    ng .ngDefinindo as sub-retinas em U1U gropo deLiberando um modulo de . . . . . .Testando um modulo de .Localizando modules de funcao existentesExplorandoos cornponentes do seu grupe de Iuncao .Localizando e corrigindo erros em modules de fun~aoConfigurando 0 valor de sy-subrc no retorno .

    Utilizando a instrucao rai se .Utilizando a instrucao message. '0 rai si ngDefinindo excecoes na interface .... , ..

    Inserindo automaticamente a instrucao ca 11 funct ionResumo .P&R .Workshop .

    Teste ..Exercicio 1

    Objetivos do capitulo ... ' ...Programacao baseada em evento

    U tilizando 0 evento i ni t i ali zat ion .Utilizando 0 evento at sel ect i on-screen ..Utilizando 0 evento at user-command ...

    Validacao de dados utilizando chaves estrangeirasValidacao de dados utilizando matchcodes

    Sintaxe para utilizar um matchcode .Formatando telas de selecao .Utilizando se1ect i on-screen ..

    Sintaxe para sel ecti on-screen block com frame.Parametres de tela de selecao . . . . . . . . . . ... . . .A tela de selecao checkbox . . . . . . . . . . .

    Sintaxe para se1ecti on-screen checkboxA tela de selecao select-opt ion s .

    A sintaxe para se1set-opt i ens .Botoes de tela de sele~io .

    A sintaxe para urn radi obutton groupExernplo de programa de tela de

    Dia 21

    ...

    597.597.598.600.601.602.604.605.605.607.608

    .. 609610

    .611

    .613

    .. 559. . . 561

    .563

    .568

    .568

    .570

    .570

    .570

    571.571.573.576.578.583.592.595.595.596.596

    Deixando uma sub-retina .Dermmdo variaveis

    U tilizando a instrucao include . . . Sintaxe para a instru

  • Tendo ministrado 0 curso de certif icacao em ABAP/4 para centenas denovatos e desenvolvedores experientes, tanto na SAP como em outras insritui-
  • IIIll
  • ' .

    Sumcirio

    SEMANA 2 Reviseo

    SEMANA 1 Reviseo

    Inrroducao

    SEMANA 1 Visco geral . . . . . .Dia 1 0 ambiente de desenvolvimento ..

    .. . . . . . . . . 1

    .. 5. 743

    95143183217

    235

    .257

    .259261279315349387425461

    . 495

    Seu primeiro programa em ABAP/4o Data Dictionary, Parte 1 .o Data Dictionary, Parte 2 .o Data Dictionary, Parte 3 .o Data Dictionary, Parte 4 .Definindo dados no ABAP/4, Parte 1 .

    SEMANA 2 Visco geralDia 8 Definindo dados no ABAP/4, Parte 2 .Dia 9 Atribuicoes, conversoes e cilculosDia 10 Instrucoes de controle comuns

    Dia 11 Tabelas internas .Dia 12 Tabelas internas avancadas, Parte 1Dia 13 Tabelas internas avancadas , Parte 2Dia 14 A instrucao write . .. .

    Dia2Dia 3Dia4Dia5Dia 6Dia 7

    SEMANA 3 Visco geral .Dia 15 Tecnicas de formatacao, Parte 1Dia 16 Tecnicas de Iormatacao, Parte 2Dia 17 Modularizacao: everitos e sub-rotinas .Dia 18 Modularizacao: passando pariimetros para sub-rotinasDia 19 Modularizacao: modules de fun,ao, Parte 1 . . . . . .

    .499499527545571597

  • SEMANA 1

    Visao geralVoce comeca a Semana 1 aprendendo sabre 0 ambiente do R/3,

    incluindo 0 Basis, clienees de logon, 0 ABAP/4 Development Work-bench e 0 Data Dictionary. Dentro do dicionario, voce cria tabelastransparentes utilizando elementos de dados e dominios, adiciona chavesextemas para validar entrada e prepara indice s secunddrios ou usa debuffer para acelerar a acesso aos dad os. Voce tamb em aprende a criarajuda Fl e F4 para 0 usuario, corne ca a escrever programas ABAP/4simples e familiariza-se com 0 editor do ABAP/4 .

    0 Dia 1, "0 ambience de desenvolvimenro", explica 0 que eurnsistema R/3 e sua interface com 0 usuario. Voce aprende sabrea arqu irerura do sistema em que fun cionam prograrnas noABAP/4.

    . 0 Dia 2, "Seu primeiro programa ABAP/4", ensina a criar emodificar programas ABAP/4 simples. Voce tambem exibe umatabela e seu conreudo utilizando 0 Data Di ctionary, assim comoadiciona com entarios e documentacao aos seus programas.

    0 Dia 3, ...0 Data Dictionary, Parte 1", descreve as diferencasentre tab elas de poo l, tabela s tran sparentes e de cluster. Vocetambem aprende a criar dominies, elem entos de dados e tabelastransparentes no Data Dictionary.

    No Dia 4, "0 Data Dictionary, Parte 2", voce cria 'chavesexternas, cria e uriliza tabelas de text c , des creve a diferenca entreuma estrutura e uma tabela e erie estrururas no R/3 DataDictionary.

    Durante 0 Dia 5, "0 Data Dictionary, Parte J", voce cria eutiliza indic es secundarios apropriadamente, configura osarributcs tecnicos para tabel as tran sparen tes e ajusra 0 uso debuffer para tabelas,

  • 6 I APRENDA EM 21 DIAS AiAP,.

    No Dia 6. "0 Data Dic tionary, Parte 4". voce rrabalha com 0 utilitario~e banco _de dados para execurar verifica~ao de coerenc ia, acesso demform a!Soes de tabelas especfficas de banco de dad . . d

    . d b as, mserm 0 erecnan 0 ta elas no banco de dados.

    Depoi s do Dia 7, "De finindo dados no ABAP/ 4 Part I" ,ente dId . , e, VOce

    n e as e ementos a smtaxe do ABAP/ 4 d .bi d d escreve 0 concerto deo ~~;~s e dad~s e SU~ : isibilidade, utiliza Iiterais e entende comoco 1 lear ca a npo, definindo e utilizando constantes.

    II

    1

    oambiente de desenvolvimentoQbjetjvos do capitul....o'-- _

    Depois de conduir este capitulo, voce devers ser capaz de responder asseguintes perguntas:

    8 0 que eurn sistema R/3? 0 que euma instdncia R/3? 0 que e0 Basis? Que plataformas 0 R/3 suporra? Q uais sao as possfveis configuracces do sistema R/3? 0 que ea arquitetura de servidor do R/3 ? 0 que eclienre d,elogon?

    o que e R/3?o R/3 eurn conjunto inregrado de aplicativos projetado para tratar 0 proces-samento de dados em grandes corporacoes. Ele foi desenvolvido na Alemanhapela empres a denominada SAP {uma sigla de Systems Applications and Pro-duc ts for data processing - aplicativos e produrcs de sistemas para proces-samento de dados). .

  • 8 APRENDA EM21 DIAl ABAP/4'" lA, .NT. .Dl VOl EN'

    WF r:workflow - [luxe de trabalho) IS (Industry Solutions - solucoes de industria) HR (Human Resources - recursos humanos) . PM (Plant Maintenance - rnanutencao das insta~a~6es). QM (Quality Management - gereneiamento da qualidade)Estes aplicativos sao chamados areas[uncionais, areas deaplicativo ou, as

    vezes, modulesfuncionais do R/3. Todos Esses termos sao sinonimos .Tradicionalmente, as estruturas empresariais desenvolvern urn conjunro

    de apjicativos de processamentc de dado s avaliendo produtos individuais e .cornprando Essesprodutos separadamente de diversos fabri cantes de software.Interfaces entre eles sao entsc necessarias . Por exemplo, 0 sistema de geren -ciamemo de materiais precisara ser vinculado com as vendas e a dist ribuicao ecom as sistemas financeiros, e 0 sistema de luxo de trabalho precisari de umaalimentacao a partir do sistema de HR.Uma quantidade.significativa de tempoe dinheiro de IS egasta na implementacao e manutencao dessas interfaces.

    a BJ3 vern predefinido com os aplicativos empresariais basicos ne-cessarios a maioria des grandes corporacoes, Esses aplicativo s coexistern emurn ambiente homcgeneo. Eles sao projetados para funcionar uti lizando desdeurn unico banco de dados e urn conjunto (muito grande) de tabelas. Ostamanhos de banco de dados de producao atuais variam de 12 gigabytes aaproximadamente 3 terabytes. Cerca de 8.000 tabelas de banco de dados SaOdistribuidas com 0 produto R/3 pad rdo.

    pp

    BAS IS

    Demro do R/3 , hi urn ambience de tempo de execucao e urn conjuntointegrado de programas aplicativos escritos em 4GLdo SAP -ABAP/4. Essesprogramas aplicarivos foram projetados para atender ao processamento declades necessaries para negocios muito grandes. R/3 e seu predecessor Rf2 saoparticularmente populares no setor industrial.

    o RJ3 e0 sist ema em que seus programas ABAP/4 serao executados. AFigura 1.1 oferece uma representacfo 16gica disso.

    Fig ura 1 1Todos os m6dulos deoplicotivo s60 escritosem ABNJ/4, que einlerpretodo porexecutovets Basis, quepor suo vez, s60execurcccs no sistemaoperocionol.

    Quando voce ve a pclovro SAP por si mesma, ela e pronunciodo"es-ei-pl". Quando e combinodo com Dutro pclovro, e pronunciodosop, como em "teclo sap" . Voce nunce deve dizer "sop" quando sereferlr o empreso SAP. Sempre 0 pronuncie como "es-el-pl". Dlzer"sop"eo mesmo que dizer lieu n60 sei node sabre SAP".

    SISTEMA OPERACIONAl

    QUai e a fLJo \;oO do R/3?A unica utilidade de urn sistema RJ3 eof~recer urn conjunto im egrado com-pacto, de aplicativcs empresariais de grande escala. Alguns desses podem servistas na parte superior da Figura 1.1. a conjuntc padrao de aplicativosintegrados com ceda sistema R;3 e0 seguinte:

    PP (Production Planning - planejamento da producao) MM (Materia ls Management - gerenciamentc de materiais) SD (Sales and Distribution - vendas e disrr ibuicao) FI (Financial Accounting - comabilidade financeira) CO (Controlling - controladoria) AM (Fixed Assets Management - gerenciamento de ativos fixos) PS (Projec t System - sistema de projetc)

    II

    , . b ' 2por que voce preCIse S al.l:He~rU:IS:ilS'-lO= _E importante para VOCe, como urn programador de ABAP / 4, saber p.or queesses aplicativos sao todos escritos inteiramente em ABAP/ 4. Esses saO osaplicativos que voce deve entender para ser urn born deserivolvedor de R/3.

    Por exemplo, suponha que voce conhece ABAP/4 e tenha recebido aincumbencia de escrever urn relat6rio financeiro que resum e debitos e crediccsde cada ano fiscal para cada fabricante na empresa. Talvez voce saiba escreverc6digo em ABAP. mas voce saberia como comecar a resolver essa tarefa?

    au talvez seu trabalho exija urn novo desenvolvimemo em ABAP/4.Voce eincumbido de projetar urn sistema que ofereca informacoes de estoquepara potenciais compradores. Se voce njio conhece os sist emas de vendas efinanceiro e de disrribuicao, voce nac sabere se esta criando algo que ja. existeem Rl3. Tampouco voce pode saber se ha tabelas do R/3 que jacontem dadossernelhantes ou identicos aos ripos de dados que voce quer recuperar. Essesaplicativos sao altamente integrados. Urn desenvolvedor que assume a aborda-gem "eu construirei minhas pr6prias tabelas e manterei minhas pr6prias capiasdos dados", pode logo descobrir que seus dados sao redundantes e devem serrotineiramente sincronizados com 0 resto do banco de dados. Ele construiu

  • urn aplicativo que nao tira proveito da natureza altam ente integrad a do ambi-=~M. .

    Mencionei isso apenas porque muitos desenv olvedores qu e desejamtomar-se consultores independentes pensam que aprender ABAP/4 erud o deque eles precisam para se aperfeicoar no sisterna-RJ3. Ecertamente urn grandeinfcio, mas eapenas 0 come co. A impcrrancia de treinarnento em uma areafuncicnal pede ser supervisionada ou desc onhecida par esses interessadcs emse tomar consultores profi cientes de ABAP/ 4. Obviamente, muito desseaprendizado pede e sera Ieiro na pratica do rrabalho, En tretanto, espero ilustraro fate de que aprendera Iinguagem ABAP/4 esomente 0 comecc de uma longaviagem dentro do SAP . Se deseja sec bern-sucedido como urn cons ul torindependente, voce acabara precisand o adquirir urn con hecimento funciona lda "area.

    Voce pode cprender sa bre as 6reos funcionois lende 0 referencia onlinedo R/3 (cominho de menu do R/3 Help-> R/3 libra ry). Ela cc ntemtutoriois e Inicrmccoes de todo s os areas funclc ncls . 5e voce tive rocesso 0 um sistema com dodos do IDES (Internat ional Demo andEducation Sysfem), voce tcrnbem pcderc troba lhor com as exerdciosdo R/3 library. Perc lnformocces sebre-edispcn'btlidcde de cursos detrelncmentc, contofe a SAP (ht tp ://www . sap. com) o u la mbton 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 urncaminho 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 voce urn ID de usuario e senha. A tela de logonaparece na Figura 1.3. Voce preenchera esses dois campos eentao pre ssionaciEnter.

    o sistema R/3 entao exibire uma tela de direitos autorais e, quando vocepressionar Enter, exibira 0 men u principal do R/3 como mos trado na F igura 1.4.

    lltiliza ndo as areas conceitlJa is do sistema R/3A partir do menu principal, voce pode ir para tres areas conceituais no sistemaRJ3:

    a area Applications a area Basis 0 Development Workbench

    \iII!IjJ

    -jI

    ! .~.,

    fjguro 1 2o kane do R/3 no6reo de trcbcfbc-

    lce nedoR/3

    EJgurp 1 3Alela de logon doR/3 solicifa 0 voceurnc senho.

    ._ - -'--

  • ,.. r12 APIENDA EM21 DIAS ASAP,. ~ 1 .lit ,EI ESE LV ITC

    Figura J 4o menu principaldo R/3.

    1~ R' 9 It 1,1,,1....lcVo'c< ---.,_-.,__ 1_~tIolJ :..,.,.i ~').; ;: _.-~r_ ..... ' . " '. ........- ~

    :" 1 ~.::r~-:+- ~ ~ iHl;ri n ~ ~i~ :: ";::-.'_~ ;. ~ t -' .,;.; .'- ;"'".Figura] 5a cominhode menuotuolizo urnregistro-mestre dofobriconte (porte i ).

    -'e'....1

    o Development Workbench eutilizadc para criar e testar progremasABAP/4. Como urn programador em ABAP/ 4, voce gastara a maior parte doseu tempo dentro do Workbench. Para acessar 0 Development Workbench,escolha 0 caminho de menu Tcols-c-Developrnent Workbench. Entretanto,seu c6dig o devers ler ou atua lizar as clados de aplicativo e, portanto, serades tinado a to mar-se parte cia area de aplicativos. Com isso em mente, vamosolhar cleona de uma area Applications prim eiro.

    Para nosso exemp lo, imagine que voce' eurn atendente que trabalha emurn departamento de ccntas a pOlgar. Urn fabricanre Iiga para dizer que 0endereco dele mudou.Voce coloca urn marcador no artigo de revista que estavalendo (Visao criminologista dos problemas relacionados com a contabilidadecriatiua} e precede aatualizacao de endereco no sistema R/3. Primeiro, vocealcanca 0 men u Account 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 urnfabricante escolhendo 0 caminho de menu Master Records->Change (veja aFigura 1.6). Voce vera a tela Change Vendor: Initial.

    Na tela Init ial mostrada na Figura 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).

    Voce altera seu endereco e pressiona 0 botao Save {veja a Figura 1.9).Ao salvar, 0 sis tema retorna a voce Change Vendor: Initial Screen. Ele

    tambem exibe um a mensagem de exito dentro da barra de status posicionadana part e inferior da tela (veja a Figura 1.10).

    Figura] A...--o cominho de me:nlJotuolizooregistro-mestre de umfobriconle (porte 2).

  • 14 APREHDA EM21 DIAS ABAPI4

    ~~;i.;i ;;' I~I~"ldllio~;t ,_'\1 ~" " ;~.;-' f':'~'~/~" ... " .> _. ",: .- .~ ~i.--

  • 16 APRENDA EM 21 DIAS ABAPi4

    Cada tela do R/3 contem estes elementos :

    A barra de titulo: contern 0 titulo cia tela atua]. A barr~ de menu: a conteudo ciabarra de menu altera-se com cada tela.

    Pesquisando as menus dentro dele, vo ce pode descobrir todas ' asfun~6es que sao possfveis na tela atua]. Os menus System e Help estaopresentes em cada tela e as itens de menu que eles contem nunca sealteram. .

    0 campo Command: aqui voce digita comandos a serem executados.Por ex~mplo, voce po de efetuar 0 logoff digitando { nex nesse campoe pressionando a teela Enter. A se

  • IEN- .J ~ ..-VD':DrJllJA01.

    .

    ~!i~i~J,.~"",~ ~~ .. ,,, . ~?,tt.'tk~...:;:f;;(e~J",?J '"-,,,- ..

    Por enqucnto, pense em um progromo como ume trcnscceo. O s do issa o grosseiromente eq uivolentes. Quando voce inicic umo trcnsocco,voce est6 iniciando urn progroma.

    Exiba tod es as configurac;6es de tecto de func;ao (ou teclo ~ do ndo umclique com botco dtreito do mouse em quolquer lugor do 6rea detela. lsso fundona em todcs as telas. As tedos de func;ao 1 a 12 estoono linho superior dos tedos em seu tecla do. As teclcs de fum;ao 13 02 4 sa o essos mesmos tedos com a tedo Shiftpressionoda . Por exemp lo,f13 eShift+ 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, montenhapressionoda Or! e digite 0 nc mero do teclo no teclado nume rlco. Porexemplc , pora F50 , monlenho pressionado Ctrl e digile 50 no tedodonumerico.

    Utiliza ndo 0 Command FieldN a barra de [erramentas Standard est auma area de entrada chamada CommandField. 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 epr essione a tecla FI.

    Este ca~po e mars frequentemente utili~do para uuciar uma novarran sacao.

    Calocondo marcas deselelOoo no caixa deselelOoa Co lors InLists.

    Figura 1 14

    Voce deve dar urn clique no batao Apply ou OK ant es de escotherovtrcguio. Se voce nco fizer issc, sues clterc coes noo tenSa efe ito.

    De urn clique na guia General e altere suas configuracoes para coinc idircorn . as mcstradas na Figura 1.13. Pazendo isso, voce assegura que a suainterface com 0 usuririo ficard par ecida e se comportara como descrito ne stelivre.

    A tive todas as barras de [erramentas (fa~a um a mar ca de selecso em codaselas) e configure Quick Info como Quick. Fac;a um a marea de selecao naprimeira e na ultima das caixas de selecao de mensagem como mosrrado. Deurn clique em Apply.

    . Deurn clique na guia Colors In Lists e fac;a uma marea de selecao na caixade selecac Lines In Lists como m ostrado na Figura 1.14. De urn clique em OKpara reto rna r.

    A opcac Lines In List s ativa ou desativa a exibicao de linh as verticals ehorizontais em seu relarorio de saida. Essa opr;ao deve estar selecionada paraque voce veja 0 efeito das insrrucoes graficas de linha que voce codificard maistarde neste livre .

    Fig u ra 1 13

    As opes de Gen eralInte rface .

    18 AI/EHDA EM 21 DIAl ABAP/.

    NOYO .... Em vez de escolher urn cominho _de menu pora inicior uma tronsac;o~, vocemilo" pede inserir 0 c6d iga de tronsa c;oo no eampo de eama ndo. Um c6d!go de

    trc nsocoo e um c6digo de 3 ou 4 cc rocteres associodo o ume nc nsocc c - voce pad eutiliz6.1o para lnlcicr 0 tronsccoc sem unlucr um ca minho de menu. Cado trc nsccoo temum c6digo de tronsOf;do (tam bem den orninodo tcode).

  • 20 AP' ENDA EM 21 DIAS ABAPI4

    Para localizar 0 c6digo pa ra qualquer transacac , voce invoca a transacl oe enrao escolhe 0 caminh o de menu Sysrem- c-Status. A tela System:_Statussera exibida. a codigo de transacao aparecera no campo Transaction.

    Por exemplo, a partir do menu principal R/ 3, escolha 0 caminho de menuAccounting-c- Financial Accounting->Accoun ts Payab le. Vo ce vera a telaAccounts Payable. A partir daqui, escolha 0 caminho de menu Maste rRecords- >Display. Voce vera a tela System:_Status . Escolha 0 caminho demenu Systern -c-Srarus . Aparecerf a tela System: _Status. N o campo Transac-tion esti 0 codigo de transacio para essa tela: FK03. .

    Agora que voce tern 0 c6digo de transaca o, pede iniciar essa transacao dequalquer tela digitando 0 camp o de com ando I n seguido pelo codigo detransacao.

    Por exemplo, re tome ao men u principal (de urn clique no bo tao Cancelduas vezes e emac de urn clique no bono Back). No campo de cornando digite/ nfk 03, enrac de urn clique na tecla Enter. Voce imediatamenre vera a DisplayVendor: Ini tial Screen.

    Em qua lquer tela, voce pode encontrar 0 c6diga de trcnsocco dotroosccec etuel. Pera fozer isso, escolho 0 cominho de menuSystem- >Stotus.

    Entendendo 0 Basis

    NOVO ~ Basise como um sistemo operocional para R/3. Ele fico entre 0 c6digoABAP/4lUMO " eo sistema cperoooncl da computodcr. ASAPgosta de chcmc-lo middlewore

    porque ele fico no mete, entre 0 ABAP/4 e 0 sistema operacionel.

    o antecessor do R/3 e RI2 . 0 R/2 e baseodo em mainframe e 0 SAPcdcptou-o para 0 ombientecliente/servidor_Para fczerisso, 0 SAP criouo Basis. Suo criol;oo permitiu que 0 c6digo em ABAP/4 existentefuncionosse em outrosplctoformos.

    Se voltar para a Fi gura 1.1, voce podera ver 0 Basis colocado entre 0ABAP/4 e 0 sist ema operacional. 0 ABAP/ 4 DaO pode funcionar diretamenreem urn sistema operacional. Ele exige urn conjunto de programa s (coleti-vam ente .chamade Basis) para carre gar, inrerprecar e usar buffer em sua entradae safda .

    o Basis, sob certo aspecto, ecomo 0 ambience Windows. En quanro 0Windows estive r sendo executado , ele ofereee urn amb ience em que os pro-gramas Windows po dem funcionar. Sem 0 Windows, 0 programa escrito parao amb iente Windows nao pede ser executado.

    - - --~-

    o Basis para prograrnas ABAP/4, enquanto a Windows epara programasWindows. a Basis oferece 0 ambiente de tempo de execucao para programasABAP /4 . Sem de, programas ABAP/4 nao podem ser executados. Quando 0operador inicia 0 R/3, voce pode cons iderar que ele esta iniciando 0 Basis. Ele euma colecsc de programas de sistema R/3 que apresen ta uma interlace a voce.Utilizando essa interface a usuario pode iniciar programas ABAP/4.

    Para instalar 0 Basis, urn instalador execut a 0 programa r3 inst no nfveldo pr ompt de comando do sistema operaeional. C omo na maioria das instala-

    ~6es, essa operacio erie uma esrrurura de diret6rios e copia urn conjumo deexecutaveis para ela. Esses executaveis tornados juntos com o uma unidadeformam 0 Basis.

    Para inieiar 0 sistema R/3, 0 operador digita 0 comando starts ap. Osexecutaveis do Basis iniciam e permanecern sendo executado s, aceit ando soli-citacoes do usuario para execur ar programas ABAP/4.

    Programas ABAP/ 4 sao executados dentro do ambienc e protetcr doBasis; eles nao sao executaveis que funcionam no sistema operacional. Em vezdisso, 0 Basis Ie 0 c6digo do ABAP/ 4 e os inte rpre ta como instrucoes dosistema operacional.

    as programas ABAP/4 nfo acessam fun~6e s de sistema operacionaldiretamente. Eles utiiizam fuDc;oes do Basis para execu rar E/S de arquivo eexibem dados em janelas . Esse nfvel de iscla mentc do sistema operacionalpermite que programas ABAP/4 sejam adaptados sem modificarao de qualquersistema que suporte R;3 . Esse uso de buffer e. construldo diretamente napr6pria linguagem de ABAP/4 e etotalrnente transpar ente para 0 programador.

    o Basis torna os programas ABAP/4 portateis. As plataformas em queo R;3 po de ser executado sao mostradas na Tabela 1.1.

    Ta bel a 1.1 Plotoformas e bancos de dodos suporto dos pa r R/3

    Sistema Hardwa re Fro ntaEnd s Ban cos de dadosoperational suportado suportados suportados

    AIX SINIX IBMSNISUN W;n 3.1 /95 /NT DB2 for AIXSOLARIS HPUX Digital HP OSF/Mol;f Informlx-Online

    D;g~ol.UNIX Bull OS/ 2 O rccle 7.1Macintosh ADABAS D

    Windows NT AT&TCompoq W;n3.1/ 95/NT Orode 7.1BulllZen;lh OSF/Mot;f SQl Server 6.0HP (Inlel) SNI OS/2 ADABAS DIBM(Intel) MacintoshDiqltcl (Intel)Dcto-Geoerc l

    OS/400 AS/400 W;n95 OS/2 DB2/400

    a

  • 22 "R END A EM2\ DIA l ABIP/4... ..-2L..Ll__

    A tela de setecoc e alela de soldo .

    Somenre 0 c6digo-fonte e os componentes de atributo de programa saoexigidos. Os demais componentes sao opciona is.

    Todos os objetos de desenvolvimento e seus componentes sao armaze -nados no banco de dado s do R/3. Por exemplo, 0 codigo-fonte para urnreldtorio earmazenado na tabela dd010s do banco de dados.

    Fi gu r a 2 2Os componentesdeurn progromo ,4BI>Pj4.

    Um progromo ABAPj4 consiste em-

    Atributos

    NOVO.... Dedique urn memento para esco lher urn identificador de tres coroderes es-URMO'- pecffico pa ro seus progromos. Deotro deste livre, farei referencio 0 esse

    identificodor como sev handle . Ele deve comeccr com urn y ou z. Por exemplo, voce podeuftliaor 0 letro z seguido por sues duos iniciois. A notc ccc indicor6 onde voce deveutilizer seu hand le. Por exemplo, se voce escolhev zkg e viu 0 direr:;oo HDigite 0 nome deprogrom o abc" I voce digitar io zkgabc . Recomendo que, amedida que ovcnccr oestelivre, voce utilize seu hand le como os primeiros tres corode res de todos objetos dedesenvo lvimento que voce criar . Se voce fleer isso, eles sereo f6ceis de reca nhecer ma ista rde e mois f6ceis de lccoluor.

    As convencces de atribuicao de nome de programa adctadas para estelivre sao as seguintes:

    Programas de exemplo do texto de capirulos seguem a convencaoztxccnn , onde cc e0 mimero de capfrulo e nn eurn numero sequencia]de 01 a 99.

    Nomes de programa ut ilizados em exercfcios seguem a convencaozt ycc nn,on de cc e0 mimero de capftulo e nneurn numero sequencial.o nom e de programa para a solu;ao sera. zt zccnn.

  • SCRHNW~ lnicie a ScreenCom "Hew To Crea te Your First Proqrc m" ag ora.

    I.

    2.

    3.4.

    S.

    6.I

    IIj

    48 APiEN DA EM 21 Dl AS ABAP/ .

    Programas utilirarios oferecidos no CD-ROM seguem a convencaode atribuicgo de nome y -xxxxxx, onde xn:xxx e0 nome do utilitario.

    a programa de instalacao que cria objetos de desenvolv imento e oscarregacom dad os pa ra a s exercfcios echamado y-s etup. Se necessaria, elepodesec executado de novo a qualquer mem ento para rest aurar a cond icao orizinaldos dados do exercfcio. Para remover [OdDS as objeros de desenvolvimenro edadcs criados pelo program a de inst alacj o do sistema, execute y- uninst. Vejao arquivo readme. txt no CDROM para mais informacoes.

    Cria ndo seu primeiro pro-Q.LCra.........mJ.JO........ ----'- _a que vern abaixc eurria descricao do processo que voce seguirf p ara criar urnprograma.

    . Quando voce efetua logo n no R/ 3 para criar seu primeiro pr ograma emABAP /4, a primeira tela que voce ve e0 menu principal da SAP. A partir dar,voce i.r.i para a Development Workbench e depois para a editor. Voce ira digitarurn nome de programa e cria-lo. A primeira tela que voce vera sera a telaProgram Attributes. Af voce deve inser ir os arributos de pro grama e salvd-los.Voce enuc teci permissdo para pros seguir para 0 editor de codi go-fcnte . N oeditor de codigo-fonte, voce ici inserir o codigo-fonte, salvs-lo e entdo execuraro programa.

    Siga este procedimento para criar seu prim eiro programa. A ajuda paraproblemas comuns eoferecida no Diagn6stico e Solu~ao de Problem as que sesegue a ele. Se voce tiver problemas com qualquer urn dos passos , njio esque ~ade consultar esse procedimento.

    Do menu principal do R/3, sele cione 0 caminho de men uTools->ABAP/4 Workb ench. Urn. tel. com 0 titulo ABAP/4 De-velopment Workbench eexibida.Press ione 0 botao do ABAP/4 Editor na barra de ferrame ntas doaplicativo. 0 ABAP/4 Edi tor: Initial Screen eexibido.No campo Program, digite 0 nome do pro grarna 0201.Pressione 0 boreo Create. A tela ABAP/4: Program Attributes eexibida. a s campos que contem pontes de inrerrogacio sao exigidos .Digite My First ABAP/4 Program no camp o Tide. Po r padrao. 0conreudo desse campo apareceni no topo da lista,Digite 1 no campo Type, a mimer o 1 indica que 0 programa eurnrelat6rio .

    '** -,c-,

    01" 2: SEUPRlMEIRO PROGRAMA EMABAPj4 49

    7. Di gire urn asterisco (*) no campo Application. 0 valor no campoApplication indic a a area do aplicarivo a que esse programs penence.A lista compleca de valores pod e ser obtida posicionando 0 cursorness e campo e entao danclo urn clique na seta para baixo adireita dele.Po r exemplo, se esse pr ograma perrencesse ao gerenciamento Inven-tory, voce colocaria urn L no campo App lication. C omo eurn pro -grama simples de test e, uti lizei urn asteri sco para indicar que d e naopertence a qualquer area especlfica do aplicativo.

    8. Facauma marca de selecf o na caixa de selecfc Editor Lock. Ativendoo Editor Lock, voce evitara alteracoes no programa per qualquer ou trapessoa alem do criador . Para seus exercfcios, fa

  • --r"---~~_;. .- ---

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

    Utiliza ndo a Editor' Initial ScreenA ABAF/4 Editor. InitialScreen emostrada na Figura 2.3. A partir dar,voce podeexibir au alterar todos os componentes de programa. Par exemplo , para alterar 0componente de ccdigo-font e, escolha a ba tao de op~ao Source Code e entacpressione 0 bene Change. Ou, para exibir 0 componente de atributos, escolha 0batao de op~ao Attributes e entao pressione 0 batao Display.

    19. Para exe cu ta r seu programa, escolha 0 caminho de menuProgram- c-Execure. Urna tela com 0 titulo My First ABAP/4 Pro -gram eexibida e as palavras Hello SAP world serao escritas embaixodela. Essa ea safda do relatorio, tambem conhecida como lista.

    miAOA ~ Lislagem 2.1 Seu primeire pregrome em ABAP/41 report zh 020l.2 write ' Hell o SAP World' . NOVO ...

    TflMO"Pressicncr 0 botao Change exlbe 0 componente se lecionado no modo deolterc/iao, que cerm tte que voce c ltere 0 componente.

    Explo ra odo 0 editor d.l:Lc.6dig,..o-fonte... _Nesta se~ao, voce aprenders como subordinar 0 poder do edito r do ABAP/4e aprendeni a ut ilizar duas telas nesra secao.

    A ABAP/4 Ed itor: Initial Screen

    A tela ABA P/4 Editor: Edit Program

    Esses sec os prob lemas comu ns e ncontrados no cricccc de urnprogra ma e sues respectivcs sc lucoes

    locolizor (find)locoFizor0 pr6lcimo(find Null

    Prtmelrc p6gino (fin.1 Page)P6gino onte rior (Previous Pagel

    PrOximo p6gino (Next PagelUltimo p6gino (lost Pose)

    No Figura 2.3, note que a ccbc de grupo Object Components envolvebot6es de cpcec, a batao Display e botcc Change. Quando voce virumo coixo de grupo envolvendo bot6es de op;oo e bctces (pushbutton),os botoes de OPl;aOdetermincm a componenfe que ag iu sabre os botces

    . (pushbutton) erwolvldcs. 0 efeilo des bctces de op

  • 52 APRE NOA EM21 OIAS AS APj . CIA 2,SEU PRIMEIRO PROG RAIM EMABAPj. 53 1,' J, '-

    Explorondo a borra de ferromentas Standard

    !..~. --'~""- ,

    ... --...: _...r l tit 'I h II,_ l olI r.oo _ ....

    Os ccotrclesdo barre deferrcmentos

    Standard

    Enter: Pression ar 0 bon o Enter tern 0 mesmo efeito que pre ssionar atecla Enter. E tambem a funS-ao de divisao de lin ha. Para dividir umalinha de c6digo, posicione a cursor no ponto ondevoce quer dividir alinha e pre ssione Enter.

    C ommand Field: Esse campo aceita codigos de transaci o e variesoutros comandos.

    Back e Exit: Os dois levam 0 usuario de volta aABAP / 4 Editor: InitialScreen. Se-nao river salvo as alteracoe s, voce ser a solicitado a salvd-las.

    C ancel: Leva a usudrio de volta aABAP/4 Editor: Ini tial Screen' semsalvar suas alteracoes. Se voce nao river salvo as alteracc es, voce serasolicitado a fazer isso.

    Print:Esse comando imprimirf a c6digo-fon te de seu programa. Quandovoce 0 pressi ona, a telaPrint Parameters eexibida. Para receber sua saida,cenifique-se de que a caixa de seles-ao Print Immed. esta ativada.

    Find: Proporciona pesquisa e subsrieui a funci ooalidade. Quando voceo pression a, a tela de Search/Replac e emo strada. Uma explicacio maisdetalhada segu e abaixo.

    Find.Next: Esse eum atalhc amao para localizar a proxima ocorrenciade uma string.

    Firs t Page , Previous Page, N ext Page e Last Page: Esses comandospermitem que voce role para cima e para baixo pelo c6digo-fome.

    H elp: Exibe uma caixa de diilogo a partir da qual voce pode obter ajudasabre 0 editor e a sintaxe do ABAP/4, ent re outras ccis as. Posicion eo cursor em uma palavra-chave do ABAP/ 4 ou em uma linha embranco antes de pressionar 0 botao H elp. Para mais informacoes, vejaa seS-ao intirulada "Obtendo ajuda" mais adianre oeste capitulo.

    Estes s60 os conlrolesno barre deferromentcs Standarddentrodo editor doNW/4_

    Figura 2 5

    I)

    Exibi, < -> Alterer (Display CVerificer (Check)Llstc circunstonciol (Where-used lisPilhe (Stock)Linhe de insen;oo (Insert line)Cortor (CUi)~'- porc o"~' "',",Imerir do buffer pnsen From bvf{e~

    Selecioncr (Select)I Desfozer(Undo).

    ,-Ajudodo ABAP/4 (ABAP/4 help)..

    --

    .

    -: ....,...~ . .. . -- -- , - .' "-

    '-_~r.llfJlx Q,1,a!:. 'C C l C it]:f" ." ;'" .....-::-:'~-: ....::.~,' 1

    '!.4. "-~~..---- ..""'.... 0

    -

    ~~. , .,~~',~~,.~:r"iJ~.'1., " ""-,-;c.,~l-y."!~-... . ~1~-1;(~ ~4i-""."'~""~W~;;:;,......a:-.l"i) .-w.~~> ,i~~""". -,-t";-"'-iff.

  • 54 "RENDA EM21 DI AS "API' OlA 2, 5EU PRIMEIROPROGRAMA EMABAP/4 55

    Utilizando os recursos de locclizccco e substitu icdo

    S(mNOM~ Inicie a ScreenCom "Using Find a nd Replace .... ogoro.

    Para executar uma pesquisa com curingas, utilize os caracre res + e " ,o sin al + corresponderf com qualquer caractere unico e 0 sinal '"corresponded . com qualque r st rin g de caracteres. Ent retan to, '" so -mente pode ser ut ilizadc como um curinga no comeco a u no fina l deuma string; dent ro do corpo d e uma string ele nac age como urncuringa. Por exemplo, a string de pesquisa wo+d localizard word ou wood;a st rin g j ++n correspon dera com joh n ou joan , mas njio jan. E vanlocalizara ia n, joan ou ate an. Uma vez que " inc orporadc dentro deuma str ing nao age como urn curinga, para localizar a string select '"from, digire simplesmente sel ect'" f rom. Nore que uma string quetern * no corneco au final produz as mesmos resul tad os que a mesmaString sem 0 *; 0 curinga '" portanto nae eparticularmente {nil.

    _. : : sao caracteres especiais. Se sua string inicia corn quaisquer dessescarac teres, voce deve envc lve-los dentro de delimitadores. Voce podeescolher qual que r urn desses mesmos caracteres para urn delimiradorcontanto que ele nao apare~a dentro de sua string de pesquisa. Porexemplo, :hh comeca com urn caractere especial. Para localizar essasuing,digite -:hh-ou .:hh. ou , : hh ou ; :hh; .

    0 caractere # tambem e especial. Para localizar uma strin g que contem# em qual quer lugar dentro dele . voce deve subs tituir II par cada urn# que ocoere na string. Por exemplo, para localizar a string alb, utilizea string-de pesquisa allb .

    IIrrrrrr.. Inide a Scree nCom "How to Find NI Occurrences of 0 String" ogora.\CREENCAMJI""

    Para configurar 0 esco po para uma Unc;ao de pesquis a ou substituicao,siga est es passo s:

    1. Na tela Sear ch/Replace, digite a string que voce qu er localizar nocampo Find.

    2. Escolha 0 botio de opc;ao In C urrent Source Code.3 . Escolha a bono de op~ao Fro Cursor para comecar a pesquisa na

    posicic arual de cu rso r. Altemativam ente, voce pode escolher 0 botaode opcao From Line e digitar 05 ruim ero s de linha de infcio e de fimpara a pesqm sa.

    4. P ressione 0 bon o C ontinu e. 0 cursor e colocado a esquerda daprimeira st ring de coincidencia.

    5. Pressione 0 pr6ximo botao Find pa ra localizar a p roxima string decoincidencia.

    IIrrrrrr.. lnide 0 ScreenCom "Setting the Scope of a Search or Replace Function" ogora .S(lEENWl JI""

    .

    Nee feche a ic nelo de edito r presslcncodca bctcc X no extremidode superior direltodo jonelo. Voce perder6 as clte rccoes n60salvos.

    Solve seu progro mo ante s de digitor urncc mc ndo /n no cam po de cc rncndo.Coso cootrone , voce perc/ere suesclte rccoes.

    Hi vfria s opcses n est a tela para contrclar 0 processo de localizacjo: As a String fad. com que sua string seja localizada em qualquer lugar

    no programa.

    As a Word [ocalizara apenas casas em qu e espaccs em branco ouponruacao envolvem a palavra dentro do codigo-fonte .

    U pp er/Lower C ase fara a pesquisa diferenciar letras maiusculas deminusculas.

    o campo Find tern algumas qualidades incomuns: Para pes quisar uma string que con tern espacos em br anco incorpora-

    dos, sim plesmente digite a string junto com as espacos em branco nocampo Find. N ao cc loqu e a String entre aspas. Se fizer isso, as aspasserao consideradas parte cia string de pesquisa.

    Pression e 0 botac F in d na barra de [erramenras Standard e 0 sistemaexibira a tela Search/Replace (veja a Figura 2.6). Insira a string que voce querlccaliza r no campo Find.

    IFa~a

    F igu ra 2 6Etta ea telaSeon:~/Reploce. Bopermite que voc!localize e altere slringsde coroctereem secprogromo.

    I!!I,Ii

  • 56 APRENDA EM 21 DIAl ABAP/4

    -

    'W' _- . -- .. -

    DIA 2:SEU PRIMEIROPROGRAMA EMABAP/~ I 57

    Para localizar todas as ocorrencias de uma string:1. Na tela Search/Replace, digite a string que voce quer localizar no

    campo Find.2. Escolha 0 botao de opcao In Program.3. Press ione a batao Continue. Urn resumo das ocorrencias localizadas

    eexibido na tela Global Search In Programs.4. De urn clique duplo em uma linha para ve-la no contexte do codigo-

    fonte .5. Pressione 0 botao Back para retornar a tela Global Search In Pro-

    grams.6. Pressione 0 botao Back mais uma vez para retornar ao editor de

    codigo -fonte.

    S(mHCAM~ lnkle a SereenCom "How to Search and Replace in the Source Code" ogara.

    Para localizar e substituir no codigo-fonte.1. Na tela Search/Replace, digite a string que voce quer localizar no

    campo Find.2. Paca uma marca de seleliao ern Replace By e digire uma string de

    substituicao no campo Replace by.3. Pressione 0 bouo Continue. A tela ABAP / 4 Editor: Edit Program e

    exibida com 0 cursor pcsicionado a esquerda da proxima stringcoincidente.

    4. Para subsr itu i-la, pre ssione 0 botso Replace. A string na posicao decurso r e subs titufda e 0 cursor e posicionado na proxima stringcoincidente.

    5. Para ir para a proxim a posicio sem substituir, pressiona 0 bone NextH it. 0 cursor eposieionado na pr6xima string coincidente.

    6. Para substituir todas as coincidencias restantes da posicao do cursoratua] para 0 fim do cod igo-fonte, pressione 0 borso de No Confir-mation.

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

    Para pesquisar e substituir via uma tela de resume:1. Na tela Search/Replace. digite a string que voce quer localizar no

    campo Find.2. Faca ~~a marca de selecsc em Replace By e digite uma string de

    substituicac no campo Replace by.

    3. Escolha 0 boeao de opcao In Program.4. Pressione 0 botao Continue. A tela Global Replace In Programs e

    exibida com a cursor posicionado na primeira str ing coincidente.T odas as linhas que contem strings coincidentes sao exibidas e asstrings coincidences sao destacadas.

    5. Para substituir a string na posicao de cursor, pressicne 0 botaoReplace. A string na posicao de cursor e substituida e 0 cursor eposicionadc na proxima string coincidente.

    6. Para ir para a proxima posicao sem substituir, pres sione 0 batao NextHit. 0 cursor eposic ionado na pr oxima string coinciden te.

    7. Para substircir codasas coincidencias restantes da posicaoatual de cursorpara 0 fim do codigo-fonte, pressione a bono N o Confirmation.

    Se substituir quaisquer strings, voce devers salvar suas alter acoes antesde retornar ac editor de codigo-fonre. Para [azer isso, pressione 0 botao Savena barra de ferramentas Standard e entao pressione 0 bo-ac Back. Sevoce quisercancelar suas alreracees, pressione 0 bo-ac Cancel em vez do borso Save.

    Explorando a bo rra de fer romentas Application

    SCRHHCAM..... lnicie a ScreenCom "Exploring the Application Too lbor of the ABAP/4 Editor",.. oqoro. .

    Antes de prosseguir, maximize sua janela (se ela janao esciver maximi-zada). Voce nao .pode ver os botoes na extremidade direita da barra deferramentas Application se sua janela for menor que 0 tamanh o maximo.

    Os con troles de berra de ferramentas Application sao mostrados naFigura 2.7.

    Figura 2 7Os conlrolesdebono de ferromenloSAt:Jplir::otion.

  • ........ ....- _ W ................. .... ....- ... ....,.---.-.- -- --- -- - - - - -

    I

    Para trozer uma linha para a tope do [onelu do editor,de urn clique dupleentre as polcvrcs ov no final do linha . Mas n60 de um clique duplo emumo polovrc, isso n60 funcionor6. Um metcdo alternative ecolocor ccursor no fina l de umo linho e pressionor a teclo F2.

    DIA 2:StuPRIMfiROPROGRAMA EM ABAP/4 I 59

    urna linha com a linha seguinte. Para dividir uma [inha, posicione 0cursor onde voce quer que a divisao ocorra e pressione a tecla Enter.

    Duplicate Line: Duplic auma unica linha au urn bloco in teiro de c6digose urn est iver seleciona do {veja 0 botao Select, acima}.

    Move Line: Move linhas aesquerda e adirei ra. Para mover uma Iinha,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 colaque 0cursor na primeira Iinha do bloco na posicxo para a qual de deve sermovidc e entao pressione 0 botao Move Line. Para move-lo para aesquerda, coloque 0 cursor aesquerda no comecc cialinha e pressionea borao Move Line.

    Mark Line: Co loque urn bookmark em uma Iinha . Voce po de exibirtodas as linhas marcadas com 0 caminho de menu Goto -> Markers.

    ascontroles de barra de ferramentas Application. na ordem em que elesaparecem na barra de ferramentas, sao as seguinres:

    D isplay Change: Altera a tela de modo de exibicao para mudaro modo . Pressione-a novamente para altera -la de volta ao modo deexibicao.

    Check: Verifiea a sintaxe do programa atual. Where-Used List : Q uando voce pressiona esse botao enquamo 0

    cursor esta em qualquer nome de varifvel, ele exibird rodas as linhasde c6digo que a utilizam.

    Stack: Exibe 0 conteudo cia pilha de navegacao atual. Cut: Exclui a linha que contem 0 cursor e a coloca no buffer. Copy To Buffer: Copia 0 conteudo cia linha que concern 0 cursor para

    o buffer. Inser t From Buffer: Ins ere 0 conteudo do buffer ern uma nova linha

    acima cia posi Copy Block/Buffer-> Insert Xprogromos to X Buffer Buffer

    Area de Carta e colo Cominh o de menu:trcnslerenoc entre: Block/Buffer-> Copy

    - duos sess6e s to ClipboardR/3

  • -: _

    -- '!=' - '!'!'

    --

    . N a primeira linha da Tabela 2.2 esta 0 buffer especffico do programa,simplesmenre chamado buffer. Ele permite que voce copie demro de urnprogra~a. Para ut iliza-lo, coloque 0 cursor em um a linha au marque urn blocoe preSSlOne as botoes C ut, Copy ou Insert Fr om Buffer . 0 conteddc do buffereperdido quando voce deixa a editor.

    as buffe:~ X, Y e Z sao utilizados para copia r c6digo de urn programapara DUtro . U tilize a menu Block/Buffer para acessa-los. Embora eles tenhamtres buffers separad os, tc dos eles sao util izados da mesma mane ira. Seuscontea dos sao retidos depcis que voce deixa 0 editor, mas d es sao perdidosquando voce efeeua 0 logoff .

    A area de transferencia ea mesma que a area de transferenci a do Windows.Utilize-a para cortar e colar em outros aplicarivos do Windows como 0MSWord au 0 Bloco de Notas. Ela tambem eutilizada para eopiar texto detelas de ajuda Pt [veja a seguime sefSao int irulada "Obtendo ajuda") .

    Alem dos botc es na barra de ferramentas Ap plication e as menus, vocepode urilizar funcoes Windows padrac para execurar opera!;oes de cortar ecolar. Para destacar uma palavra ou linha, arcaste a cursor atraves dela oumamenha pressionada a tec1a Shift e pressione as tec1as de seta pa ra a direita

    Tabel a 2.2 O utros prog romos convenienfes e fun~oes do ed itor

    IdII I!III

    II

    De um clique duplo nos espccc s em bronco (no om dolinho) ou ccloque 0 cursor nos espcccs em bronco epressione F2.Pressione a tec lo Enter com 0 cursor no cc mecc ou nofina l de umo linho.Ccloqve 0 cursor no linha e presslooe 0 bata o Cut.Coloqu e 0 cursor no prime ira linho do bloco e pressioneF9 (seleciona) . Entoo coloque -o na ultimo hnhc dobloco e pressione F9 novornente.Seledone 0 bloco e press ione 0 bctco Cut.Pressicne 0 botoo Duplicate line .Posicione 0 ccrscrno ponto de divisoo e presstcne atedo Ente r.Posicicne 0 cursor no tim do linho e presslone 0 botocConcatenate.Morque urn bloco. Pressicne 0 bctcc Copy To Buffer.Entoa posicione 0 cursor no ponto onde 0 c6d igodevere se r inserido e pressione 0 botoo Insert FromBuffer.

    7Z

    Escolha a caminho de menu Help- >Extende d He lp.Coloqoe 0 cursor em umc pc lovro-chcve dentro dac6digo e pressione Fl .PressloneF11.Presstone Fa.De urn clique com 0 bcfeo d jrelto do mouse emquolquer lugor no 6reo de tela de urno [cnelo.Pressione Ctrl + Tab.

    Fo~a ..

    Excluir urn bloea de tlnhcsRepetir umo ltnho c u blcccDividir umn linha

    Excluir umo linhoMarco r um blocc de c6digo

    Mover a cu rsor perc"0compo de comondoTroaer quolquer linha porea porte superior do tela

    Unir duas linhas

    lnserir umo Hnhc

    Cop ior os linhas de ntro doprograme otuol

    Para..

    Obter cjodo no edit,orObter ciudo de qualquerpclovrc-chcve do AW/4Salvor seu programoExecutor seu programaExibiras teclo s de fun~oo

    Utilizondo outros funcoes convenientes do edito rA Tabela 2.2 contem urn resume das fun~6es do editor cornumente utilizadas.Todas as fun~6es sao acessadas a partir cia tela ABAP/4 Editor: Edit Programa mencs que observado de outro mo do.

    DIA2:SEU PRIMEIROPROGRAMA EM ABAi'/4 1 61

    ou para a esqu erda (voce apenas pede destacar uma linha par vel. utilizandoesse metodo). Para dest acar mul tiplas linhas, de urn clique rnais uma vez na telacom 0 mouse e entao pressione Ctrl + Y. 0 ponteiro mud ara para a forma deuma cruz . Arraste a cru z para desracar a secac que voce quer copier. Pre ssioneCrrl + C para copiar 0 texto destacado para a area de transferencia ou pressioneCtrl + X para cortaro Cole da area de rrans ferenc ia utilizando Cr rl + V.

    (,-

    r1I:iI ,.'

    s.

    e

    1-,

    f

    Como Colo ra partir de le

    Ceminho de menu :Block/Buffer- > Insertfrom Clipboard parainserir as ccnteedcs doarea de trcnsjerenclccomo linhos novas noprogromo no pos iCioOdo cursor. Ou Orl+Vperc color no topo doslinhos exlstentes. ComCtrl+V, as dodos serootruncodos se tod os elesnoo se o justc rem no telaofvcl.

    Como Copia rpara e re

    1- De um clique

    2 - Ctrl+Y3- Arroste e

    marque4- Ctrl+C

    - R/3 e outroopllc oftvos

    Windows (p. ex.,Bloco de Notes)

    - coplc e c6d igodo c jvdc F1pora 0 ed itor

    - copia mcls deumo linho doc6digo

    Chama do

    Tabela 2 .1 Confinuoc;60

    60 , AP RENDA EM21 ClASABAP/4

  • :IrrrrrrY t: _1' www w

    62 "RENO' EM 21 OIAS ABAPH

    Tabela 2.2 Ccnnnoccec

    w.v .. - -

    Tabela 2.2 ContinuoSplitscreen ed itor. lnsiro dais names decrcqrcrnc e pressione 0 batao Display. Para exlblr aprimeirc dderencc , pressione a ba tao Next Difference .Para cltnhcr as dais prog ram as nc prOxima linholdermcc, press ione 0 botcc Alig n.Da ABAP/4 Editor: Initial Scree n, escclh o 0 comj~ho demenu Utilities->Splits:::reen ed itor . Presslooe 0 botaoCompore Dift Systems. Insira dois nomes de prog ro mae urn id de sistema e presslone 0 bctoc Display.De dentro do editor, escolha a caminho de menuProgrom-> Generote ve rsion. 0 prog roma otuol e sclvc 'no ba nco de dodos do verseo .Da tela Editor Initial, escolho 0 cami nho Utilities->Version management . A te la Versions Of Object OfType REPS ~ exlbldc . Tire 0 selece c do verseo ctivc eIeee umo marco de setecec no verseo 0 resta urar.Pressione 0 bctec Retrieve e entco pressicne 0 botooBock. Clique em Yes e a versec atual tomo-se ageroc;eo -1 e uma c6pia do versec se lecionodo tomo-sea versec at ual.A partir do tela Initial Editor, escclh c 0 cominho demen u Utilities -c-Verslon monagement. A tela VersionsOf Object Of Type REPS eexibido. fo cc uma marco dese'ecec nos vers6 es que voce q uer cc mpc rc r epressione 0 batao Compare . A tela Com pe re Programs:Alle exlbidc . Role para ba ixo para visualizer asdiferenccs.Escolho o cominho de menu Prog rom-> Print. Nopr6ximo tela , especifique umo impressora e foc;o umamarco de se le1;ao no coixo de se lec;ao Print lmmed.

  • 64 APIl:EHOA EM 21 OIASABAP/~

    Qbie.ndo~--"a4-'iu",-,d.....a",-- _SmEHUJI~ lnicie 0 ScreenCom "Obtendo ojudo" ogara.

    Pa ra urn tu torial complete no editor:I. v para a tela ABAP/4 Editor: Edit Program .2. Escolha 0 caminho de menu Help-s-Extended Help. A tela SAP RJ3

    Help eexibida.3. D e urn clique no texro ABAP!4 Editor. A tela BC ABAP/4 D eve-

    lopmentWorkbench To ols eexibida.4. De urn clique em qualquer rexto sublinhado para ob eer ajuda sobre

    esse t6p ico.

    orA2:sru PRIMEIRO PROGRAMA EMABAf'/4

    Dentro da ajuda ha frequentemenre exemplos de codigo. Para cortar ecola-los em seu programs, pressione Cu-l + Y e entac marque urn bloco deccdigo, arrastando 0 cursor arraves dele a part ir da extrernidade superioresquerda para a ext remidade inferio r direita. Deixe 0 mouse e pressione Ctrl+C. Pressione 0 bo tao Back par a reromar ate1aABAP/4 Editor : EditPrograrne cole em seu programa utilizando Block/Buffer-> Insert Clipboard. au vocepode colar na parte superiorde seu c6digo utilizando Crrl + V. (Ctrl + V naocola na origem) mas na tela , encso isso nao colard na parte inferior da pdginavislvel.}

    O btendo a o juda &/3 LibraryA ajuda R/3 Library esu arrnazenada nos arquivos de ajuda do Windows. Paravisualiza-los:

    65

    NOYO ... He dots tipos b6sicos de c judo no editor, 0 oiudo Fl eo oiudo R/3 Ubrory. ATERMO " civdo Fl tcmbem e conhecido como documenlo.:;60 de pelovros-chove do

    ABAP/4.

    . 'A a;.u.da F1 descreve a sintaxe de palavras-chave do ABAP/4 e da exemplosde sua utilizacao. Ela ebaseada em texto e reside em tabelas dentro d o bancode dados do R!3.

    A ajuda R/3 Library e muito mais exrensa e contem visoes gerais eprocedim entos para criar objet os de desenvolvimento. Ela euma ajuda baseadano Windows e reside fora do banco de clados do R/3. normalmente em umCD-ROM.

    Obtendo a a il/do ElA ajuda F I eu tiJ pa ra pesquisa r sintaxe e frequentern enre contem exemplosuteis de c6digo.

    Para ob rer ajuda F I:

    I. Vapara a tela ABAP/4 Editor: Edit Program.2. Coloque 0 cursor na palavra-chave ABAP/4 que voce quer ajuda.3. Pressione Fl. A tela Display Hypertext eexibida.

    Denno .da ajuda FI, as palavras destacadas sao vfnculos de hipertexro.Dando urn clique nelas, voce ob tem mais informacoes.

    Voce pede utilizer 0 utilit6rio Findlt no CDRO M pore localizer maisexemplos de c6digo.

    1. De qualquer tela, escolha 0 carninho de menu Help- > R/3 Library. A. tela R!3 System Online Help eexibida.

    2. Para ajuda em ABAP/4, de urn cliqu e no rextc Basis Components. Atela Basis eexibida.

    3. De urn clique no texto ABA P/4 Development Wo rkbench. A telaABAP/4 Development Workbench eexibida.

    4. Daqui voce pode ob eer ajuda detalhada em qua se qualquer aspecto deprogramacic em ABAP/4. De urn clique no tema sobre 0 qual vocequ er ajuda. .

    Adicionalmente, a ajuda pode ser obtida do ABAP/ 4 Editor: InitialScreen. Para visualiza-la:

    1. va para a ABAP/4 Editor: Initial Screen.2. Escolha 0 caminho de menu Utilities- >ABAP/ 4 key word doc. A

    tela Display Structure: ABAP/4_SAP's 4GL Pro gram Language eexibida.

    3. Pressione 0 batao Find na barre de ferramentas Application. A tela .Search Chapter Titles eexibida.

    4. Digire 0 texto que voce quer localizar no campo Find.5. Pressione 0 bouo Continue. A primeira linha que contem esse texto

    edestacada.6. De urn clique duplo na linha destacada para exibir mais informacoes

    ou pressione 0 botao Continue Search na bar ra de [erramentas Stand-ard para localizar a proxima ocorrencia.

    A ajuda tambem pode ser obtida de denrro do editor enq uanto voce estaeditando 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'IEI' OP'OGRA.. EM ABAPi< 67

    Ajuda do editor Visso geral do ABAP/4 Pa!avra-chave do ABAP/4 Novas recursos da linguagem ABAP/4 Exibir modules de funlSao Exibir estruturas de rabela Exibir bancos de clados logicos Exibir objetos de autorizacio Exibir infotipos

    Local iza ndo seus objetos de desenvolvjmentoS(RHN(AM~ Inide a ScreenCam "l ocalizondo seus c bjetc s de desenvclvimento" ogora.

    Para exibir todos as objero s de desenvolvimento que voce criou nosis tema RJ3:

    i, DOl tela ABAP/4 Development Workbench, pressione 0 bono Ob-ject Browser. A Object Browser: Ini tial Screen eexibida.

    2. Escolha 0 botao de op

  • :w:o ... ,._~~...~.~ .~:...:.:. :. -. _ ~ . ~'" . ..-'. ,,,.I'- r-." .""i,.o -I . .::J '~ .:A )( :. ~ 10U ~ 0 . .c,,,, : : }.

    F i g ur a 2 9

    Adefjnis:oo de ODICpore tabe/o Zfal .

    Explorondo as tabelas e as estrutllros

    NOVO- lilt.. No RJ3 umo tahe la e urno colecc c de ltnhos. Coda ltnho ccntern compos ,TiRMO,. tcmbem chama dosde co/unos. Ncrmclmente, dentro de umo tcbelc, coda linho

    tem c mesmo numerc de colones, como as outros hnhos do tcbelc.

    Uma tabela armazena dados persistentes. Ern outras palavras, se vocecoloca dados em uma tabela, e1es permanecem ai depois que seu programafinalizar. Eles permanece rao ate serem ahera dos a u exclufdcs par seu pro gramaa u curro. 0 nome de uma tabela eunico dentro do sistema R/3 inteiro.

    Quando voce olha uma tabe1a no DDIC, esta visualizando a descr icto deuma tabela no banco de dad os subja cen te. Voce nao esta olhando diretamentea pr6pria tabela de banco de dados. A Figura 2.9 mostra como uma definicaode tabela aparece no R/3 DDIC.

    NOYO .... No R/3 vmc estrutvro eurno descrit;60 de urn gropo de compos. Elc descrevelIiMO" os nomes de compo, suo sequencia e sees tipos e comprimentos de dodos.

    Ce do esmnurc fern urn nome que ecnicc dentro do sistema inteiro do R/3. Umo estrufuronCio pede ter 0 mesmo nome que umo tcbelo.

    Urn nome de estrutu ra pede ser utilizado de duas maneiras: Em urn prog rams, urn nome de estrutura pede ser utilizado para alocar

    mem oria pa.ra urn grop e de campos. Em uma tabela, urn nome de estrurura pode ser utilizado para descre-

    vet urn conjunto de campos.

    Estritamente falando, uma estrurura ealgo que 56 existe dentro do R/3Data Dictionary. Se visse a palavra estrutura , voce imediatamenre pensaria na"est rurura de DDIC", Entretanro, a documentacio da SAP ut iliza tambem apalavra estrutura"para referir-s e a u rn grup o de varidveis dentro de urn pro-grama. A estrutura emare emostrada na Figu ra 2.10 como urn exemplo de comouma estrutura aparece no DDIC.

    Fi g ur a 2 10

    Adefjnit;dode ODICpara 00 eslrvturoemora.

  • ."' -

    4az::;: cc;:_~ _

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

    '.,

    "l~.,

    1 ~

    _INco deixe em bronco 0 cc rnpc Maximum No. Of Hitspara exibir todosas registros, 0 menos que voce reolmente pretendo procurar no listoInteirc. Para tobelos grondes, isso pode conwrnir muito CPU nos doisboncos de dodos e servidores de op licativo, clem de tombem ovme ntc rsignificativamente 0 tr6fego no rede, fernando ossim a sistema leoto.Se um relotcrlo multo grande for necessaria, em gem ! ele deve se rexecutodo em lote. A obo rdoge m preferida e estreitc r suo pesquisa ,digita ndo volores nos cam pos Doto Browser; Table: Selection Screen.Isso sera a bordado em detolhe em capitulos posteriores.

    r-ra II-! ! f tj it! '''PTJ 'tTm'' ''1_ _ [ olt 1iolo . 5ol1jroo"lJ"Iiot ""'_~.$""'" 1IftI " , - . - Fields for selection. A tela

    Choose Fields For Selection e. exibida.3. Faca uma marca de selecao nos campos que voce quer incluidos na

    Data Browser: Table: Selection Screen. Desanve qualquer urn quevoce nac quer que aparelia.

    4. Pression e 0 bo- ac Execute. A Data Browser: Table: Selection Screeneexibida e con tem os campos que voce selecionou.

    Voce pode con trolar quais campos serao exibidos na Data Browser: Tab le:Selection Screen. Para fazer isso:

    Determ ina ndo compos exibidos

    E.ig ll rg 2 1 1A tela Data Browser:Table Select Entries.

    1. Va para a tela Dictionary: Table/Structure: Display Fields.2. Escolha a caminho de menu Utilitie s-s-Table contents . A Da ta

    Browser: Table : Selection Screen eexibida.3. Para exibir todas as linhas na tabela, pressione 0 botao Execute sem

    inserir qualquer crirerio de pesquisa. A tela Da ta Browser : TableSelect Entries eexibida (vejn a Figura 2.11).

    o numerc de registros 'exibido eIirnitado peIo valor no campo MaximumNo. Of Hits na Data Browser: Table: Selection Screen.

    No R/3, tabelas e estruturassao definidas no DDIC. Voce no tara entre-tanto, quando as visualiza, ha uma diferenca muito peguena entre elas. Isso eporgue, no RJ3,uma tabela esomente uma descripio de uma tabela real de bancode dados. Ea estruturada tabelano bancode dados. Entao, tanto tabelas comoestruturas dentro do DDIC defin em urn layout - uma serie de campos. Adiferenca principal entre as duas eque uma tabela tern uma outra subjacente debanco de dados associada a ela. VIDa estrutura rdo tern,

    Algumas pessoas, as vezes, acham a documenracao do R/ 3 confuse, umavez que a SAP ocasionalrnente utiliza esses dais termos intercambiavelrnent e.

    Exib inQQ umo to bela ou defin ili:io de estruturoPara 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:

    Display Fields e. exibida, como mostrado nas Figuras 2.9 e 2.10.

    o que voce ve na Figura 2.9 ea estrutura de tabela Hal no R/3 DataDictionary, nao a tabela real de banco de dados. No R/3 , apenas a estrutura databela pode ser definida, junto com alguns atributos como os campos de chaveprimaria.

    Exibindo os dodos no tabeloo R/3 tambern oferece urn utilitario para permitir que voce exiba os cladosqueexistem dentro de uma tabela . Para utiliza-lo:

  • 72 I APR ~NOA ~M 21 DIAS ABAP/~DIA7: seuPRIMflROPROGRAMA ~M ABAP/4 , 73

    lntrcduzindo a instru~ao sel e;_,cJt~ ---,---, _A instrucao sel ect recupera registros do banco de dados.

    Entendendo a sintaxe do ABAP/4Ante~ ~e contin.uar, voce agora deve executar 0 utilitdrio de configuracao deexerctcm fornecido no CD-ROM. Ele criers as tabelas e os dedos necessariespara. as exercf~ios neste livro . Para instrucoes, veja 0 arqu ivo readme. txtlocalizado DO diretcrio raiz de CD-ROM.

    Crie urn novo p rograma e atribua a nome 0202. Digite 0 c6diga comomostrado na Listagem 2.2.

    ENTRAOA~ Lista gem 2. 2 Seu segundo prog roma1- report ztx0202.2 tables ztxlfal.3 set ect .. f rom ztxl fill into ztxl fal order by 1ifnr .4 write / ztxlfal -lifnr .5 endselect.

    , ,

    , ,; !

    iII !

    IE"

    ANAlI S ~ ~ Esse progr~mo Iefodos as reg isiros detobelo zt xl fa l e escreve a contecdc dor compo 1i fnr (0 ncme ro do fob riconte ) em o rdem crescente.

    10601070108010902000V1Vl0VllV12V2VJV4VIYOV7vaV9

    Na Iinha 1, a instrucao report esolicitada como a primeira linha de urnrelar6rio.

    N a linha 2, a instrucao tables faz a~ duas coisas. Primeiro, ela aIocauma area de mem6ria (chamada area de trabalho) ident ificada ztx l f al.A area de trabalho tern a mesmo layout qu e a definicao de DDIC derabela ztxlfal. Segundo, ela da acesso ao p rograms para a tabela debanco de dados ztxlfal.

    Na linha 3, a insrrucao sel ect comeca urn loop. A endsel ect na linha5 marca 0 fim do loop. As linhas de c6digo entre se1ect e endse1ectsao executadas uma vez para cada linha retornada do banco de dados.

    Na linha 4, a instrucfo write eexecutada uma vez para cada linha queelida da tabe la.A / (barra) depois de wri te corne~a uma nova linha.

    N ote que em seu programa, voce tern duas coisas identificadas comoztx lfal: uma area de trabalbo e uma tabela. A duas te rri 0 mesmo nome -zt xl fa I. A pcsicao do name ztxl fal denrro de uma inst rucdo determina aqualvoce se refere. Na linha 3, a primeira ocorrencia de zt xlfal se refere arabe1ade banco de clados. A segunda ocorrencia refere-se aarea de trabalho.

    Lf a1 e 0 tobelc-mestre do fa brico nte no R/3. Ztxl f al foi criodo pelcrotina de configuro~60 de CD-ROM e e se me lha nte a 1fa l, mas eutilizado poro as exercicios neste livre. a com po 1i fnr e0 ccm po dencrnerc de fobriconte .

    onde:* 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 trabalho que coincide com a estrutura da tabela11 ea nome de urn campo na rabela t l , .

    ~p eurn dos seguin tes operadores logicos: = > >= <

  • 74 APRENDA EM 21 DIAl ABAP/4DlH lEU PRIMEIBDPBOG RAMA EM ASAP/' 75

    Se 0 usuerio enrac pressionar Page Down, 0 processamento prosseguecomo a segu ir (veja a Figura 2.13):

    B17 _, .~""" , .7 ' .... ' r:ita~Ji'!'.

    Mem6riaestendldo

    SAPGUI (Servidor de cpresel1tol;oo)

    DBS ~'4~~~.~{t~;:.; , ~ ,':~~i ; . . . L ~ ' ~i.:~:';"~~};

    Se 0 usuario entao pressionar Back, 0 processamento continua assim:

    1. 'P ressionar Back faz com que uma sclicitacao seja enviada do SAPGUIpara 0 dispatcher no servidor de aplicativo para terminar 0 programaztx0202.

    2. A soliciracao e despachada para 0 primeiro processo de trabalhodisponfvel.

    3. 0 contexte de usuario e a area de rolagem para ztx 0202sao deslocadosno processo de trabalho.

    4. 0 sistema libera a area de rolagem para 0 programa.5. 0 contexte de usuario edeslocado para fora da tela.

    1. Pressionar Page Down [az com que uma soliciracfo seja enviada doSAPGUI para 0 dispatcher DO servidor de aplicacivo para obter aproxima pdgina de saida a partir de ztx0202.

    2. A soliciracac e despachada para 0 primeiro processo de trabalbodisponivel.

    3. 0 contexte de usuario e a area de rolagem para ztx0202 sao deslocadospara 0 processo de trabalho.

    4. 0 processo de trabalho envia a pr6xima pagina para 0 servidor deapresentacao.

    5. A area de rolagem t: 0 contexte de usuario sao deslcca dc s para forado processo de trabalho .

    Figura 2 12

    Esto e0 moneirocomo a ins/rus:oose lect fundono.

    lnlcie a NAYI Select Statement Processing'" ogora .

    Prossiga os processamentos como a seguir (veja a Figura 2.12) :1. P ressione F 8 para executar 0 programa que causa uma solicitacao a

    set enviada do SAPGUI para 0 dispatcher no servidor de aplicativopara executar 0 programa ztx0202.

    2. A solicicacao e despachada para 0 primeiro processo de trabalhodisponfvel.

    3. a contexte de usuaric edeslocado no processo de trabalha.4. 0 prog rama erecuperado do banco de clados.5. 0 processo de trabalho aloca uma areade rolagem para armazenar as

    variaveis do program a, 0 ponteiro atua l de programa e as alocacoesprivadas de mem oria.

    6. 0 programa eint erpretadc pelc processo de trabalho no servidor deaplicativo e cornelia execu tando na linha 3. (As linhas 1 e 2 saodeclaracoes, Da O c6digo executavel .)

    7. A linha 3 faz com que uma linha seja lida da tabela de banco de dadoszt 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 ealocadapara a Iista.

    9. A Iinha 4 causa 0 campo 1; fnr a ser escrito da area de trabalho ztx l falpara 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 eescrito na proxima linha da pagina virtual.13. Os passos 9 a 11 sao repetidcs para todas as linhas J?a tabela ztxlfal.14.0 loop termina aut omaticamenre quando a ultima linha elida de

    ztxl fa l.15. 0 programa termina, mas a area de rolagem (contendo a pagina

    virtual) permanece alocada .16. 0 processo de traba lbo determina 0 numero de linhas que a tela do

    usudrio ecapaz de exibi- e errvia essas muitas linhas ciapagina virtualcomo a pr imei ra pagina da lista para 0 servidor de apresentacao.

    17.0 ccnrexro de usudrio e a area de rolagem sao deslocados para forado processo de rrabalho.

    lVI ~

  • -.; -"".~--=-----=--=-=-,,,""""""'------------~---~~--~-------------~

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

    F jgura 2 13Esso e 0 seqiiencia deeveorcs ocionodaquando 0 usu6riopressiona Poge Down.

    L- - - - - - - - ---I- - HI va -V9 .1..0

    . _ de:oglhO :"'irtUQl:.~._ . rologem

    Pare abrir umo novo ionelo do R/3 (cho modo sessec), de quo lquert e laescclho 0 com inho de menu Svstem-c-Cr ecte New Session. Voce pedec brir urn maximo de seis sessces. Se voce qctser chrlr mois de sels,simples mente efetue 0 logon umo segundo vez.

    Entendendo os areas de tro bo lhos da tabela

    NOVO il... No linho 3 do listoge m 2.2, as polovros ; nto zt xl f al sse opcion ois. Se voc eTfRMO~ debe-los de foro, 0 crec de trobolho co m 0 mesmo nome do tcbelo euftlizode.

    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 , ac reo de trebo lho ztxl f al e0 area padrOo pore a tobelc ztxlfal. Por isso, 0 c6d igo nolistogern 2.2 pode ser sirnplificodo como mostredo no listcgem 2.3.

    [NTiAOA~ Listagem 2.3 Seu segundo prog romo simplificodo1 report ztx0203.2 t abl es ztx lfa l.3 sel ect > f rom zblfal order by ll fnr .4 write / ztxlfal- lifnr.5 endset ect ,

    DIA 2, l EU P'W.EliU P' 06RAJI,A EM ABAP/~ 77

    Comparada a Listagem 2.2, apenas a linha 3 mu dou. Esse programafunci ona exatamente da mesma maneira e produz a mesma saida que a anterior.C omo a clausula i nt o nao foiespecificada na instrucao se1ect, 0 sistema utilizaa drea de trabalho cia tabela padrsc ztxlfal.

    Para cop iar urn pragrama , esc o lhc 0 cominh o d e men u Pro-qrcm -o-Ccpy do telo iniciol do ed ito r. Alternotivo mente, enqoontc editcum progroma , voce pede escolher c com inho de menu Proqrcm -c-SoveAs.

    Uti lizando uma area de traba lho explfcitaA instrucao t abl es sempre cria uma area de trabalho da tabel a padrao , entacvoce normalrnente nao tern de defin ir sua propria. Enrreeanto, em alguns casasvoce 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 modificadatambern, voce precisaria de duas areas de trabalho.

    Voce pede definir areas de trabalh o da tabela adicional utilizando ainstruc;ao data .

    Sintaxe simplificada para a instrucco data~ Abaixo eSta a sintaxe simplificada para a insrrucio data .Z data ItO like tl.

    ~ onde:m Ita ea nome de uma area de trabalho de tabela qu e voce quer definir'f tl ea nom e de uma ta bela qu e voc e quer para padrjio em sua area de

    trabalho depoi s .

    A Listagern 2.4 mostra como utilizar a in srrucao dat a para criar um a novaarea de trabalho.

    EKTWlA~ List ag em 2.4 Utilizando sua pr6pria a rea de trobolho de tobela1 re port zb:0204 .2 tables ztxlfal.3 data Wi li ke ztxlfal.4 select" tree ztxlfal into wa order by l t fnt-,5 wr ite / ee - j tfnr,6 endsetect .

  • --- -

    78 APREN" EM 21 DIAS ABAP/4 DlA 2:SEU PRIMEIRO PROGRAMA EM ABAPf4 79

    latrod uzia do a c1ausulo where

    NOVO.... Quando voce explicitcmente atribui names a umo 6rea de trobclho no instru

  • ---~~~~~~~~~~~~~~----------'--~---------------~80 APRENDA EM 21 DlAS ABAP/4 DIA 2:StU PRIMEIROPROGAAMA EM ABAP/4 81

    ENTRADA'" lista gem ~.6 Utilizando sy-subrc para determinar se quoisquer llnhos,.. fora m selecionodos

    IIII

    o codigo na Listagem 2.7 produz esta saida:1 10002 10103 10204 10305 10406 10507 10608 10709 108010 1090.11 200012 VI13 VlO14 VlI15 VI216 V217 V318 V419 V520 V621 V722 VB23 V9

    1-3 registros encontrados

    Depois de endselect. elo reter6 seu volar e entcc ccnterc 0 ruimerc de linhos se-lecionodos. Por exemplo, pora irnprimir rujmercs seqcenclots 00 lado de coda fobricontee imprimir um tolo l do nomero de llnhos selecionodos no po rle inferior do relot6rio, utilizeo c6d igo no listogem 2.7.

    1 re port ztx0207 .2 tables ztxlfaL3 se lect 10" from ztxlfa1 order by lifnr.4 wri t e / sy- dbcnt ,5 write ztx lfa1-1ifnr.6 endse tect .7 write / sy-dbcnt .B write ' r ecords fou nd'.

    SAiDA~

    ENTRADAlItr.. Listagem 2.7 Utilizando 0 sy-dbcnt para co ntor lmhc s retomados do" instrucoo select

    a codigo na Listagern 2.6 produz esta safda:No records found

    1 report ztx0206.2 tables ztxlfal .3 se lect .. from ztx'l f al where l f fnr > 'Z '.4 write / ztx lfet-ltrnr ,5 endselect.6 H sy-subrc < > O.7 write / 'No records found' .B endif.

    Muitos pclovrcs-chove otribuem vclores a sy -subrc . Algumas po-lovrcs-chove slmplesmente nco 0 configurorn. Se urne pe lovra-chaveconfigura sy -subre, as volores oossrvels 500 documentodos no ojudaFl para esse pclcvrc -chcve.

    Sy-subt-c noo e outomot icomente inicializodo como zero quando seuprogromo lntctc. Entretcntc, isso nunco deve ser umo preo cupoceo,porque voce nee deve venficc-lo ate que umo instruceo que oconfigurotenhc exeeutado.

    ANALISE..... A instru

  • -,;.;.:,

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

    Exi bindo 0 es trutura sys tHoi duas rnaneiras de exibir os cornponentes de estrurura syst:

    Da tela ABAP/4 Editor: Edit Program, de urn clique duplo no nomede qualquer campo sy dentro de seu codigo

    Va para 0 Data D ictionary , insira syst, se1ecione a bctao de 0pljaoStructure e pressione a batao Display

    Para localizar C'flmpos dentro cia estrutura, pressione a batao Find nabarra de ferramentas Standard e digire 0 nome do campo que voce querlocal izar.

    Se voce nao sabe 0 nome do campo que quer localizar, mas antes desejalocalizar urn par descncao, voce tambem pode pesquisar as descricoes.

    S(RHN(AM~ lnicie a Screeotlcm "How to Seorch Through Field Descriptions" ogora.

    Por exemplo, para definir duas tabelas, voce poderia codificar isro:tables ztxlfal.tables ztxlfbl.

    au, voce poderia utilizar 0 operador de encadeamento, com o esse:tables: ztxlfal. ztxlfbl.

    Funcionalmente, os dais segmentos precedentes de c6digo sao identicose ern tempo de execucio nao hi nenhuma diferenca em desempenho. Durantea gerecac de c6digo, 0 segundo segmento de c6digo e expandido em duasinstrucces. Entao, de um ponto de vista funcional os dois prograrnas saoidenticos.

    as operadores de encadeamento devem ser ut ilizados para melh orar alegibilidade de seu programa. A utilizacao do operador de encadeamenro eilustrada na Listagem 2.8.

    Utilizondo a jnst[lJ~ao sel eet si agl e

    ENTRADA.... Listagem 2.8 Utilizondo a operador de encadeo mento pa ra reduzir ar redundcnclc no instruPrint.. Uma caixa de dialogo

    aparece ra perguntando quais compon-entes voce deseja imprimir.. 3. Faca uma marca em todas as caixas de selecao e pressione 0 batao

    Continue. Uma caixa de didlogo aparecera pergunrandc a voce asparametres de impressao.

    4. P ressione 0 borao Print Preview. A caixa de dialogo se fechara e umalista contendo uma pequena fonte aparecerd.

    5. Escolha 0 caminho de menu Goto-> List Display. A Iista mudara parauma fonte maier de especc fixo.

    6. No campo de comando, digite %sc ~ pressione a tec1a Enter. A caixade dialogo Find aparecera.

    7. Digite 0 texto que voce quer localizar e pressione a tecla Enter. Umalista de coincidencias aparecera e cada ccincidencia sera desracada.

    8. De urn clique em uma palavra desraceda para pular imediatamenre ateessa linha na lista. Se voce deseja localizar cutra ocorrencia do texto,va para 0 passo 6 desse procedimenro.

    Utilizondo 0 ope rodor de encodeomento

    Nova... a sinal de dois-pontcs (: l e chamado operodor de encodeomento. Uttllze-cHRMO"" para combiner linhas de c6digo que cornecom com e mesmo polcvro ou

    seqvencio de polovrcs. Coloque a parte comum no comeco do i n stru~aa seguida pardois -ponios. Entao, coloque as partes fmcls das instru

  • ..,------------

    _ 'W

    -----------._-

    ---.""""..-';,.~"",-""~ :~--",;';;;:"'::-="",=:"'"":=:-=~~_""'!!!""'!!I"'"_""",,",,,__......._ ...,....,..._ ........_ ....... ........__....__........__..... .....r-"__.... ....__ .

    84 APREH D" EM 21 DIAS AB AP/4 DIA2: SEU PRIMEIROPROGRAMA EM A8AP/~ 85

    as seguinte s pontos aplicam: select si ngle nao corn elia urn loop porque ela apenas retoma uma

    linha. Portanto, nao codifique uma instrucio endsel ect , Se fiaer i550.voce obtera urn erro de sintaxe.

    Certifique -se de que uma linha un ica foi retomada, voce deve espe-cificar todos os campos de chave primaria na cldusula whe re. Se vocenao fize r isso, seu p ro grama execu tara, mas obt era urn aviso. (Paraexibir os avis os , esc olh a 0 caminho de menu Programa Pro-gram-c-Check-> Display Warnings.)

    A Listagem 2.9 ilustra a instrucao select s t ngl e. Para praticar, erie urnnovo programa e digite 0 c6digo como mostrado na Listagem 2.9.

    fHTRADA~ Lisfa gem 2 .9 A instru;ao sel ect si ngleI repor t zt x0209.2 tables zt xl fa l .3 sel ect sing le * from ztxlfal where lifnr" 'VI ' .4 if sy-subrc z o.5 write : / ztxlfaI l i fnr , zt xlfal -namel.6 el se .7 wri t e 'record not found" .8 endif.

    * Isto e um ccnentartcta b' es ztxlfal. " Isto t am