Você está na página 1de 29

Treinamento ABAP para Funcionais ABAP para funcionais Parte I Objetivo deste treinamento oferecer mais recursos para

a o corpo de funcionais par a que eles possam construir uma melhor especificao funcional e tenham uma noo geral do funcionamento da linguagem ABAP/4. Sumrio Estrutura de funcionamento do SAP ........................................ ................................ 2 1.1. Como funciona a estrutura de 3 camadas d o SAP........................................ 2 1.1.1. Estrutura ............... ................................................................................ .... 2 1.1.2. Work Process...................................................... ...................................... 3 1.1.3. Vantagens da estrutura de 3 cama das no SAP.......................................... 3 1.1.4. Desvantagens da es trutura de 3 camadas no SAP. ................................... 3 1.2. Estrutur a de dados do SAP .............................................................. ............. 4 1.2.1. Domnio:................................................... ................................................ 4 1.2.2. Elemento de dados:.... ............................................................................... 6 1.2.3. Tabelas:............................................................... ...................................... 7 1.2.4. Estruturas:..................... .......................................................................... 14 1. 2.5. Vises: ..................................................................... ............................... 15 1.2.6. Ajudas de Pesquisa: .................. .............................................................. 16 1.2.7. Dicas I mportantes:..................................................................... ............. 18 1.2.7.1 Tabelas:............................................... .................................................... 18 1.2.7.2 ndices: ......... ................................................................................ .......... 19 2. Programao ....................................................... .................................................... 20 2.1. Tipo de programas . ................................................................................ ......... 20 2.1.1. Online ..................................................... .................................................... 20 2.1.2. Reports.......... ................................................................................ .............. 22 2.1.3. Funes e Grupo de Funes..................................... ................................. 23 2.1.4. Formulrios de Impresso (SapScript e Sm artForms)................................ 25 2.2. Tipos de processamento........ .......................................................................... 25 2. 2.1. Processamento em Foreground................................................ ................... 25 2.2.2. Processamento em BackGround....................... .......................................... 26 1. Instrutor: Leonardo Lima Coelho Pgina 1 de 28

Treinamento ABAP para Funcionais 1. Estrutura de funcionamento do SAP 1.1. Como funciona a estrutura de 3 camadas do SAP. 1.1.1. Estrutura Um sistema SAP R/3 composto por trs camadas: Frontend Application Database Frontend camada responsvel por "exibir" as telas ao usurio. Application onde so pro cessadas as operaes efetuadas, transferindo para o Frontend, os dados a serem exib idos. nessa camada que os programas ABAP so executados. A camada de Application p ossui diversos servios e processos (tambm chamados de Work Process) disponveis. O d esenho tpico de uma instncia SAP um servidor de Banco de Dados com um ou mais serv idores de Application. Isso garante a integridade dos dados, e permite uma distr ibuio de carga nos servidores de aplicativo entre os usurios. Segue o exemplo da ar quitetura em 3 camadas no desenho abaixo: Instrutor: Leonardo Lima Coelho Pgina 2 de 28

Treinamento ABAP para Funcionais 1.1.2. 1. Message:

Work Process Servio interno responsvel pela comunicao entre as instncias. Servio interno responsvel pelo "despacho" das requisies para 2. Dispatcher: cada processo ou servio. 3. Gateway: 4. Enqueue: Garante a comunicao externa com outros sistemas Processo responsvel pelo gerenciame nto da tabela de objetos de bloqueio. 5. Dialog: 6. Update: 7. Spool: Processo responsvel pela execuo dos processos visveis pelo usurio. Processo responsvel pela atualizao dos dados no banco de dados. Processo que gerencia a fila de impresso. Database a camada onde os dados so armazenados, quando a camada Application neces sita de algum dado, o mesmo requisitado a camada de Database. 1.1.3. Vantagens da estrutura de 3 camadas no SAP Como o acesso feito somente um banco de dados a integridade de dados garantida pela vantagem do SAP utilizar o sistema de Enqueue e Dequeue. Isto gar ante que no podemos alterar um registro que est sendo alterado por outra pessoa. A maior parte dos SAPs possuem um servidor de logon balance para que ao efetuarmos o login no sistema sejamos direcionados para o servidor que est mais a nsioso. Isto garante um melhor desempenho do sistema. Necessidade de um componen te de cliente de pouca complexidade j que o processamento de regra de negcio efetuado pelo servidor de aplicao. Isto garante um bom desempenho de um aplicativo independente da mquina do cliente. O banco de da dos pode variar de acordo com a necessidade do cliente O sistema de dados do ser vidor de aplicao pode variar de acordo com a necessidade do cliente. 1.1.4. Desvantagens da estrutura de 3 camadas no SAP. Tudo que acessamos no SAP est diretamente vinculado com o banco de dados, ou seja, se o banco de dados cair o SAP cai tambm. A fila de enqueue finita Instrutor: Leonardo Lima Coelho Pgina 3 de 28

Treinamento ABAP para Funcionais e pode acontecer por um erro de programao ou de p rocedimento desta fila estourar e por isso nenhum registro no sistema ser atualiz ado. Por isso importante seguir as recomendaes da SAP com relao a configurao de tempo de time out e no realizar batch-input em transaes de origem da sm30. s vezes ns no te os acesso ao DNS do cliente para efetuarmos acesso no servidor de logon balance e por isso usamos o IP fixo da mquina de acesso. Isto no problema em ambientes de desenvolvimento ou QA, pois geralmente se tem apenas u m servidor de aplicao. Mas quando acessamos um ambiente produtivo devemos nos loga r na mquina mais livre de processamento, pois podemos acessar o servidor com mais processamento indevidamente. Necessidade de um componente de cliente de pouca c omplexidade j que o processamento de regra de negcio efetuado pelo servidor de aplicao. Isto garante um bom desempenho de um aplicativo independente da mquina do cliente. 1.2. Estrutura de dados do SAP 1.2.1. Domnio: O domnio a estrutura mais baixa que temos permisso de alterar. Um domnio se associa r a um ou mais elementos de dados. No domnio configuramos qual o tipo do dado com o mostra a figura abaixo: Instrutor: Leonardo Lima Coelho Pgina 4 de 28

Treinamento ABAP para Funcionais Caso o campo seja de um tipo numrico podemos def inir o nmero de casas decimais armazenados. Alguns campos possuem rotinas de conv erso que so definidas tambm no domnio. As rotinas de converso permitem que uns campos sejam armazenados de uma forma e mostrados de outra forma. Alguns domnios podem conter valores fixos e somente os valores listados no domnio sero aceitos na tabel a, como o exemplo mostrado na figura abaixo: Existe tambm a possibilidade de restringir os dados por intervalo ou por verificao de uma tabela. A transao de exibio de domnio a SE11. Instrutor: Leonardo Lima Coelho Pgina 5 de 28

Treinamento ABAP para Funcionais 1.2.2. Elemento de dados: Os elementos de dados se associam diretamente com os campos das tabelas. Somente um domnio pode estar associado a um elemento de dados, mas um elemento de dados pode estar associado a diversas tabelas. O elemento de dados pode ter um tipo fi xo sem associao a um domnio. A figura abaixo mostra a tela de associao de um elemento de dados com um domnio. A transao de exibio de elemento de dados a SE11. Instrutor: Leonardo Lima Coelho Pgina 6 de 28

Treinamento ABAP para Funcionais 1.2.3. Tabelas: As tabelas so estruturas de dados que armazenam registros. As tabelas podem ter a ssociadas a elas diversos elementos de dados ou podem ser informados tipos fixos sem elemento de dados. Sendo que a associao de um campo a um elemento de dados o mais recomendvel. As tabelas podem ser de dependentes de mandante ou no. Geralment e as tabelas dependentes de mandante so tabelas de configurao de aplicativos do SAP , por exemplo algumas tabela de archiving. A maior parte das tabelas do SAP so de pendentes de mandante. Ao construir uma tabela Z recomendvel que ela seja dependent e de mandante. Como identificar uma tabela dependente de mandante? Basta verific ar qual o primeiro campo. A tabela na figura abaixo dependente de mandante. A tabela na figura abaixo no dependente de mandante. Os tipos mais comuns de classe de entrega de tabelas so: Tabelas de Aplicao (Dados mestre e movimentos) e Tabelas de customizing. Pode-se definir uma tabela Z Instrutor: Leonardo Lima Coelho Pgina 7 de 28

Treinamento ABAP para Funcionais como customizing e ela somente ser atualizada me diante o informe de uma request customizing, como acontece com as tabelas standa rd. necessrio que toda tabela tenha uma chave primria. A chave primria o que garant e a identificao de um nico registro da tabela. Os campos que definem a chave primria no podem se repetir. Os campos da chave primria podem ser identificados em uma ta bela do SAP como os campos que esto marcados com o flag de chave. Nas tabelas depen dentes de mandantes estes so obrigatrios como parte da chave da tabela. Uma busca pela chave da tabela sempre uma busca mais rpida do que uma busca realizada por c ampos no chaves, a no ser que esses campos sejam ndices. ndices so estruturas de busc a para facilitar o acesso aos registros de uma tabela. O ndice se torna necessrio quando muitos acessos so executados em uma tabela com uma grande quantidade de re gistros e a busca feita por campos que no so chaves. Para identificar quais ndices esto criados para uma tabela basta clicar no boto ndices no canto superior esquerdo, como mostra a figura abaixo. Uma tela com todos os ndices da tabela ser exibida, como mostra a figura abaixo. Instrutor: Leonardo Lima Coelho Pgina 8 de 28

Treinamento ABAP para Funcionais Com um duplo clique voc pode visualizar o detalh e do ndice, como mostra a figura abaixo. A chave estrangeira uma importante funcionalidade dentro de uma tabela. Para que o um registro seja inserido em uma tabela ele j deve existir em outra tabela def inida na chave estrangeira. Para verificar as chaves estrangeiras de uma tabela basta clicar na aba preenchidos a coluna e verificar quais campos possuem . Para verificar quais os parmetros da chave ento os detalhes da chave estrangeira basta selecionar o campo e clicar no boto estrangeira sero visualizado s como mostra a figura abaixo. Instrutor: Leonardo Lima Coelho Pgina 9 de 28

Treinamento ABAP para Funcionais A figura acima mostra que quando o campo VBELN for preenchido na tabela VBAK ele j deve existir na tabela VBUK. Caso voc deseje visualizar todas as dependncias da sua tabela basta clicar no boto abaixo. e selecionar quais tabelas que voc quer visual izar, como mostra a figura Instrutor: Leonardo Lima Coelho Pgina 10 de 28

Treinamento ABAP para Funcionais Depois clicando em aceitar voc consegue ver o de senho do relacionamento. Como mostra a figura abaixo. No boto so exibidas algumas informaes tcnicas a respeito da tabela que so definidas pelo programador que a construiu. Como mostra a figura abaixo. Instrutor: Leonardo Lima Coelho Pgina 11 de 28

Treinamento ABAP para Funcionais O parmetro mais importante desta tela para o pblico alvo deste curso o check-box , pois se este check-box estiver

marcado ns poderemos visualizar todas as alteraes executadas nesta tabela atravs da transao SCU3, com informaes importantes como usurio que realizou a alterao, data da al erao e o valor do campo antes e depois. No recomendada a utilizao deste recurso de ar mazenamento de log em tabelas que no sejam de configurao, pois o banco de dados pod e crescer absurdamente se este flag for marcado em uma tabela de movimento. Para que a visualizao do log esteja disponvel para uma tabela Z necessrio tambm executar a viso de atualizao atravs do Gerador de atualizao de tabela que est disponvel dent enu de utilitrios na transao de visualizao da tabela. Cuidado , pois ao habilitar o Ge rador de atualizao de tabelas voc tambm estar disponibilizando o registro para ser atu alizado via a transao SM30.A figura abaixo mostra um gerador de atualizao de tabelas . Instrutor: Leonardo Lima Coelho Pgina 12 de 28

Treinamento ABAP para Funcionais possvel tambm anexar em uma tabela uma estrutura. Denominamos uma estrutura que es t anexada em uma tabela de uma Estrutura de Append. Este recurso muito utilizado para anexar estruturas Zs em tabelas standard. A figura abaixo mostra trs estruturas de append na tabela VBAK. Dados de uma estrutura de append: Instrutor: Leonardo Lima Coelho Pgina 13 de 28

Treinamento ABAP para Funcionais 1.2.4. Estruturas: Estruturas no so repositrios de dados e so utilizadas para interface de telas de pro gramas, para modelo de passagem de parmetros ou como estrutura de append como foi mostrado no tpico anterior. A estrutura de append no armazena dados e por isso no possui chave primria e ndices. A figura abaixo mostra uma estrutura: Instrutor: Leonardo Lima Coelho Pgina 14 de 28

Treinamento ABAP para Funcionais 1.2.5. Vises: Uma viso uma estrutura de busca de dados que pode fazer referncia a uma ou mais ta belas. Quando uma busca efetuada diversas vezes melhor construir uma viso, pois a lm da busca se efetuada com maior velocidade quando uma alterao for efetuada em uma viso todos os programas que fazem referncia a esta viso sero alterados. As figuras abaixo mostram a estrutura de uma viso: Instrutor: Leonardo Lima Coelho Pgina 15 de 28

Treinamento ABAP para Funcionais 1.2.6. Ajudas de Pesquisa: A ajuda de pesquisa utilizada para dar uma dica para o usurio dos possveis valores que um campo pode assumir. A ajuda de pesquisa pode estar associada a um campo de uma tabela ou a uma estrutura. Os dados exibidos em uma ajuda de pesquisa pod em ser oriundos de uma tabela ou de uma viso. A figura abaixo mostra o exemplo de uma ajuda de pesquisa: Instrutor: Leonardo Lima Coelho Pgina 16 de 28

Treinamento ABAP para Funcionais O exemplo abaixo mostra uma ajuda de pesquisa associada a um campo de uma tabela : Instrutor: Leonardo Lima Coelho Pgina 17 de 28

Treinamento ABAP para Funcionais 1.2.7. Dicas Importantes: 1.2.7.1 Tabelas: Ao definir uma estrutura de uma tabela tenha sempre em mente que quanto mais cur ta for estrutura da tabela mais rpida ser a busca. Os campos de dados mestre preci so ter uma chave estrangeira para a tabela principal. Como mostra o exemplo abaix o. A tabela exemplificada na figura abaixo mostra o que no se deve fazer: Instrutor: Leonardo Lima Coelho Pgina 18 de 28

Treinamento ABAP para Funcionais No existe mandante na chave da tabela Para a chave da tabela foram usados campos de denominao ao invs da chave da tabela de dados mestre. No existe nenhuma chave na tabela mesmo esta faz endo referncia a campos standard. 1.2.7.2 ndices: Antes de criar um ndice para acesso de uma tabela lembre-se que um ndice ocupa esp ao no banco de dados. Verifique se existe outro ndice que tenha o critrio parcial d e sua busca antes e pergunte ao abap se o custo da busca alto. No existe necessid ade de criar ndices em tabelas que no tero uma quantidade de dados razovel. Instrutor: Leonardo Lima Coelho Pgina 19 de 28

Treinamento ABAP para Funcionais 2. Programao 2.1. Tipo de programas 2.1.1. Online A caracterstica mais distinta de um programa online o processamento por telas. O processamento de uma tela possui 2 momentos distintos: PBO (Process Before Outpu t) e o PAI (Process After Input). A transao VA01 chama um programa Online. O PBO o processamento que ocorre antes da exibio da tela conseguimos visualizar be m o trecho de cdigo de um PBO na figura a baixo. O PAI o processamento que ocorre sempre que existe uma interao do usurio com o prog rama como, por exemplo, clicar um boto ou pressionar o enter. A figura abaixo mos tra o PAI a tela mostrada acima: Instrutor: Leonardo Lima Coelho Pgina 20 de 28

Treinamento ABAP para Funcionais No programa OnLine tambm so definidos Status de Interface(botes) e Ttulos de Interfa ce(Ttulos das transaes). Esses status so carregados no PBO. Um bom programador ABAP no desenvolvimento de um programa Online ir separar todos os tipos de processamen to em arquivos diferentes (PBO, PAI e Performs). Isto ir facilitar quando for nec essrio efetuar a manuteno do programa. Exemplo de um status gui: Ao criar uma transao que referencia um programa online necessrio especificar qual a tela inicial que chamada. Como mostra o exemplo abaixo: Instrutor: Leonardo Lima Coelho Pgina 21 de 28

Treinamento ABAP para Funcionais

2.1.2. Reports A caracterstica mais distinta de um report a utilizao de uma tela de seleo. Como mos rado o exemplo da transao ME2L na figura abaixo. Instrutor: Leonardo Lima Coelho Pgina 22 de 28

Treinamento ABAP para Funcionais Geralmente um report, como o nome diz, utilizado para a execuo de um relatrio. possv el colocar um report para ser executado em background e executar um retorno de u ma lista para o spool da tela, que pode ser visto posteriormente atravs da transao sm37. O retorno de um report pode ser uma tela simples ou um ALV. 2.1.3. Funes e Grupo de Funes Uma funo um objeto de processamento que ser chamado por um programa dentro ou fora do SAP. Ele pode ser executado imediatamente, com retardo ou quando outro proce sso for iniciado. Instrutor: Leonardo Lima Coelho Pgina 23 de 28

Treinamento ABAP para Funcionais Geralmente uma funo apresenta dados de entrada e dados de sada. Toda funo deve estar associada a um grupo de funes. Um grupo de funes p de ter uma ou mais funes associadas. Como mostra a figura abaixo. Uma ateno extra deve ser dada quando uma alterao for efetuada em um grupo de funes, po is se uma funo do grupo de funes ficarem invlida todas as funes do grupo ficaro. No e nenhuma funcionalidade do SAP que oferea uma funo como interface para um processo de um usurio. As funes devem ser chamadas de dentro de um report, um online ou um formulrio de impresso. Instrutor: Leonardo Lima Coelho Pgina 24 de 28

Treinamento ABAP para Funcionais 2.1.4. Formulrios de Impresso (SapScript e SmartForms) Os formulrios so leiautes de impresso. Geralmente so utilizados para interfaces exte rnas. Ao contrrio dos reports que geralmente so utilizados em processos internos. O SmartForms independente de mandante e o SapScript no . Tanto o SapScript quanto o SmartForms possuem as mesmas funcionalidades, mas o smartforms possui uma maio r biblioteca de funcionalidades que so de fcil implementao, fazendo com que o desemp enho do programador ao desenvolver um projeto em SmartForms seja melhor. O Smart Forms no passa de uma interface para gerar cdigos de SapScript. 2.2. Tipos de processamento. 2.2.1. Processamento em Foreground O processamento em foreground est sujeito a interao direta com o usurio. Quando o us urio est navegando pelo SAP qualquer clique de boto ou chamada de uma transao dispara um processo em foreground, pois em qualquer ao disparada pelo usurio esperada uma resposta do sistema no menor tempo possvel. Na tela de verificao de processos eles so denominados de DIA(Dialog) como mostra a figura retirada da transao sm50. Instrutor: Leonardo Lima Coelho Pgina 25 de 28

Treinamento ABAP para Funcionais 2.2.2. Processamento em BackGround O processamento em background est no sujeito a interao direta com o usurio. Para exec utar um processo em background necessrio agendar um job . Na tela de verificao de p rocessos eles so denominados de BTC(batch) como mostra a figura retirada da trans ao sm50. Somente possvel escalonar Jobs de transaes de reports. Para faz-lo basta ir at o menu Programa Execuo background como mostra a figura abaixo: Em algumas empresas ser pedido o dispositivo de sada como mostra a tela abaixo: Instrutor: Leonardo Lima Coelho Pgina 26 de 28

Treinamento ABAP para Funcionais Depois s preencher os dados relativos ao perodo de execuo do job. Como mostra a tela abaixo: Instrutor: Leonardo Lima Coelho Pgina 27 de 28

Treinamento ABAP para Funcionais Para verificar o resultado do job basta entrar na transao sm37, preencher os critri os de seleo da transao e verificar o retorno do job. possvel visualizar o retorno do relatrio selecionando a linha do job e clicando no boto de spool. Instrutor: Leonardo Lima Coelho Pgina 28 de 28