Vous êtes sur la page 1sur 28

Treinamento ABAP para Funcionais

ABAP para funcionais Parte I


Objetivo deste treinamento oferecer mais recursos para o corpo de funcionais para 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 do SAP........................................ 2 1.1.1. Estrutura ................................................................................................... 2 1.1.2. Work Process............................................................................................ 3 1.1.3. Vantagens da estrutura de 3 camadas no SAP.......................................... 3 1.1.4. Desvantagens da estrutura de 3 camadas no SAP. ................................... 3 1.2. Estrutura 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 Importantes:.................................................................................. 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 SmartForms)................................ 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 processadas as operaes efetuadas, transferindo para o Frontend, os dados a serem exibidos. nessa camada que os programas ABAP so executados. A camada de Application possui diversos servios e processos (tambm chamados de Work Process) disponveis. O desenho tpico de uma instncia SAP um servidor de Banco de Dados com um ou mais servidores de Application. Isso garante a integridade dos dados, e permite uma distribuio de carga nos servidores de aplicativo entre os usurios. Segue o exemplo da arquitetura 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 gerenciamento 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 necessita 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 garante 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 ansioso. Isto garante um melhor desempenho do sistema. Necessidade de um componente 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 dados pode variar de acordo com a necessidade do cliente O sistema de dados do servidor 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 procedimento desta fila estourar e por isso nenhum registro no sistema ser atualizado. 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 temos 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 um servidor de aplicao. Mas quando acessamos um ambiente produtivo devemos nos logar na mquina mais livre de processamento, pois podemos acessar o servidor com mais processamento indevidamente. Necessidade de um componente 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.

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 associar a um ou mais elementos de dados. No domnio configuramos qual o tipo do dado como 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 definir o nmero de casas decimais armazenados. Alguns campos possuem rotinas de converso 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 tabela, 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 fixo 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 associadas 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. Geralmente 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 dependentes de mandante. Ao construir uma tabela Z recomendvel que ela seja dependente de mandante. Como identificar uma tabela dependente de mandante? Basta verificar 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 mediante o informe de uma request customizing, como acontece com as tabelas standard. necessrio que toda tabela tenha uma chave primria. A chave primria o que garante 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 tabela do SAP como os campos que esto marcados com o flag de chave. Nas tabelas dependentes 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 campos no chaves, a no ser que esses campos sejam ndices. ndices so estruturas de busca 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 registros 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 detalhe 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 definida 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 visualizados 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 visualizar, como mostra a figura

Instrutor: Leonardo Lima Coelho

Pgina 10 de 28

Treinamento ABAP para Funcionais Depois clicando em aceitar voc consegue ver o desenho 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 alterao e o valor do campo antes e depois. No recomendada a utilizao deste recurso de armazenamento de log em tabelas que no sejam de configurao, pois o banco de dados pode 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 uma viso de atualizao atravs do Gerador de atualizao de tabela que est disponvel dentro do menu de utilitrios na transao de visualizao da tabela. Cuidado , pois ao habilitar o Gerador de atualizao de tabelas voc tambm estar disponibilizando o registro para ser atualizado 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 est 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 programas, 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 tabelas. Quando uma busca efetuada diversas vezes melhor construir uma viso, pois alm 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 podem 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 curta for estrutura da tabela mais rpida ser a busca. Os campos de dados mestre preciso ter uma chave estrangeira para a tabela principal. Como mostra o exemplo abaixo.

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 fazendo 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 espao no banco de dados. Verifique se existe outro ndice que tenha o critrio parcial de sua busca antes e pergunte ao abap se o custo da busca alto. No existe necessidade 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 Output) 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 bem 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 programa como, por exemplo, clicar um boto ou pressionar o enter. A figura abaixo mostra 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 Interface(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 processamento em arquivos diferentes (PBO, PAI e Performs). Isto ir facilitar quando for necessrio 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 mostrado 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. possvel colocar um report para ser executado em background e executar um retorno de uma 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 processo 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 pode 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, pois se uma funo do grupo de funes ficarem invlida todas as funes do grupo ficaro. No existe 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 externas. 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 maior biblioteca de funcionalidades que so de fcil implementao, fazendo com que o desempenho do programador ao desenvolver um projeto em SmartForms seja melhor. O SmartForms 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 usurio 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 executar um processo em background necessrio agendar um job . Na tela de verificao de processos eles so denominados de BTC(batch) como mostra a figura retirada da transao 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 critrios 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

Vous aimerez peut-être aussi