Académique Documents
Professionnel Documents
Culture Documents
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.
Pgina 1 de 28
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:
Pgina 2 de 28
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:
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.
Database a camada onde os dados so armazenados, quando a camada Application necessita de algum dado, o mesmo requisitado a camada de Database.
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.
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.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:
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.
Pgina 5 de 28
Pgina 6 de 28
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.
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.
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.
Pgina 9 de 28
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
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
respeito da tabela que so definidas pelo programador que a construiu. Como mostra a figura abaixo.
Pgina 11 de 28
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.
Pgina 12 de 28
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.
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:
Pgina 14 de 28
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:
Pgina 15 de 28
Pgina 16 de 28
O exemplo abaixo mostra uma ajuda de pesquisa associada a um campo de uma tabela:
Pgina 17 de 28
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.
Pgina 18 de 28
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.
Pgina 19 de 28
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).
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:
Pgina 20 de 28
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:
Pgina 21 de 28
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.
Pgina 22 de 28
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.
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.
Pgina 24 de 28
2.2.
Tipos de processamento.
Pgina 25 de 28
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:
Pgina 26 de 28
Depois s preencher os dados relativos ao perodo de execuo do job. Como mostra a tela abaixo:
Pgina 27 de 28
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.
Pgina 28 de 28