Introdução ao ALV – Série Especial

No decorrer dos anos a SAP vem evoluindo em vários sentidos. Vem aumentando a sua experiência na área de negócios, application server e também na parte visual.

Nesse sentido, ela evoluiu da tela verde dos terminais mainframe do R/2 para as listas (usando comandos WRITE), passando pelo ALV e agora pelo WebDynpro (WD).

O WebDynpro é a evolução natural para os browsers, levando a camada de apresentação para os browsers, saindo de cena o famoso Sapgui.

No entando, WD ainda tem muito chão para substituir por completo o Sapgui. Ainda há uma infinidade de programas que precisam ser migrados e isso levará muito tempo.

Enquanto isso, os programas baseados em dynpros (telas) tradicionais ainda ocuparão boa parte do seu tempo programando em ABAP. Por isso, apresento uma série de posts sobre ALV e como programar usando essa tecnologia.

ALV significa ABAP List Viewer. Como o próprio nome diz, é um gerado de listas, onde os dados são apresentados na seguinte forma:

Os dados são apresentados de forma tabular, como uma planilha Excel.

O ALV faz parte de um framework da SAP chamado Control Framework. Nele encontramos uma série de elementos visuais que podemos usar em nossos programas. A idéia aqui é ter uma clara separação da parte visual da parte de negócio. Ou seja, o programador precisa se preocupar com as regras de negócio, como seleção de dados, tratamento de dados etc., e o Control Framework é responsável pela apresentação dos dados.

Perceba que nesse ALV acima temos uma série de botões que já vieram pré-definidos. Nesses botões encontramos funções como ordenação, sumarização, busca, exportação etc. Tudo já está pronto, testado e aprovado. É só saber usar.

A mesma coisa para as colunas com os dados. Somente precisamos informar o conteúdo. O ALV faz o resto, como controlar layout, largura de colunas, ordem das colunas etc. É realmente muito interessante, tanto do ponto de vista de programação quanto para o usuário, que recebe um produto final com ótima usabilidade (já que seu funcionamento é muito parecido com o Excel) e muito bonito.

Podemos encontrar vários outros tipos de Controls. Para uma boa lista, você pode acessar vários exemplos da própria SE80 (ABAP Workbench).

Formas de Implementar ALV

O ALV é entregue pela SAP através de uma classe global, chamada CL_GUI_ALV_GRID e basicamente temos 3 formas de se implementar essa classe.

A primeira e mais conhecida é usando a function module REUSE_ALV_LIST_DISPLAY e seus vários outros serviços do package SLIS. A SAP encapsulou a implementação da classe CL_GUI_ALV_GRID nessa FM, tornando o trabalho do programador muito simples.

Atualmente, a SAP entrega uma série de outras classes, que fazem parte do pacote SALV, que fazem um serviço similar ao feito pela FM, mas usando chamadas de métodos.

E por último, vem a forma que eu chamo de “pura”, pois não usamos nenhuma classe ou FM para chamar a classe do ALV, mas sim a chamamos diretamente. A princípio dá mais trabalho, mas isso nos dá total controle sobre a nossa aplicação.

Quando Usar Cada Implementação

Depende. Se for necessário fazer uma aplicação com varios controles na tela, interagindo entre si, com drag-drop, eventos etc., sugiro usar a forma pura.

Agora, se a intenção é apenas um relatório simples a FM e principalmente as classes SALV são as mais aconselhadas, pois você não precisa se preocupar com uma série de coisas que a forma pura precisa fazer.

Próximos Capítulos

Nos próximos posts, vou mostrar várias formas de implementar programas usando ALV. Vou começar pela forma pura, depois passo para o uso das classes SALV e por último exemplos usando as FM REUSE.

Usarei o formato de receita de Receita ABAP, onde mostrarei 3 tipos de problemas, usando as 3 diferentes técnias.

Após essa série de posts, posso afirmar que teremos um conjunto de receitas ABAP, que cubrirão cerca de 70-80% dos problemas de ALV.

Progresso

Você pode seguir o progresso dos posts, acompanhando os links abaixo, onde eu coloquei as técnicas e os três tipos de problemas.

ALV Puro:

SALV

REUSE

  • Programa simples usando ALV
  • Uso do field catalog
  • Uso de eventos


UPDATE: Por alguma razão, eu apaguei esse post e perdi os comentários. Esse texto foi recuperado do cache do Google.

You may also like...

2 Responses

  1. paulo ricardo says:

    seria possivel vc completar a técnica SALV e a técnica REUSE

  2. Fábio Pagoti says:

    Sim. Seria.