Livro: Web Dynpro ABAP – The Comprehensive Guide

Há muito tempo não falamos de livros aqui no ABAP101. Particularmente só gosto de fazer revisão de livros inteiramente lidos. Felizmente acabo de ler mais um livro de ABAP, o Web Dynpro ABAP – The Comprehensive Guide. Este post vai para você que gostaria de aprender mais sobre Web Dynpro e procura boas fontes de informação sobre o assunto.

Web Dynpro ABAP - The Comprehensive Guide

Livro “Web Dynpro ABAP – The Comprehensive Guide”

Por que ler Web Dynpro ABAP – The Comprehensive Guide?

Primeiramente devo explicar porque optei por ler este livro. Web Dynpro é um dos assuntos ensinados na academia ABAP da Ka Solution e como instrutor creio que devo saber tudo de tudo que ensino, apesar de ter total consciência que isso sempre será impossível 😛 – enfim, pelo menos devo me esforçar para tal.

Infelizmente nunca peguei um projeto no qual a tecnologia usada fosse Web Dynpro mas isso nunca me serviu como desculpa para não aprender sobre o assunto. De volta em 2011 o ABAP101 lançou o primeiro (e provavelmente único até a presente data) campeonato de ABAP mundial. O campeonato baseava num exercício de ABAP Objects, com aplicação num jogo da velha desenvolvido em Web Dynpro – Um simples jogo da velha fez com que pelo menos 30% do livro não fosse novidade para mim. Como estudei bastante o assunto antes de começar a das aulas, acabei praticando assuntos que não havia estudado antes, o que deve representar 50% do conteúdo do livro. Logo faltava outros 50%.

Conteúdo

Faço questão de colocar o nome de cada um dos capítulos do livro (em inglês, porque obviamente o livro é em inglês) seguido de um resumo do seu conteúdo.

1 – Getting Started

Este capítulo dá um excelente histórico do desenvolvimento Web – desde a criação de páginas estáticas, passando por GCI, Java Servlets, Server Pages (como ASP, JSP e BSP) e finalmente chegando em conceitos e tecnologias mais difundidos atualmente como MVC, Javascript, AJAX e o próprio Web Dynpro. Além do histórico é falado um pouco da arquitetura da Web, HTTP e do próprio Web Dynpro. O capítulo aborda também a evolução do desenvolvimento web e de UI em sistemas SAP, começando com as telas clássicas (module pools) e o SAP GUI, passando para o SAP GUI para HTML e depois ITS (Internet Transaction Server). Logo explica-se o ICM (Internet Communication Manager), ICF (Internet Communication Framework) e consequentemente o funcionamento da transação SICF. O capítulo encerra-se descrevendo o Web Dynpro Runtime Environment (e como a classe CL_WDR_MAIN_TASK é complexa) e também os pré-requisitos para ter o Web Dynpro funcionando no ambiente.

2 – The Anatomy of WDA Applications

Aqui a brincadeira realmente começa. É dado nome a todos os bois do Web Dynpro: Views, Windows, Component, Controllers, etc. Para quem é leigo em Web Dynpro este capítulo é realmente cruel. Por isso, eu recomendo que você tenha pelo menos explorado um componente Web Dynpro (por mais simples que seja) antes de ler este livro. Se você não souber os nomes de todos os conceitos e entendê-los bem, não adianta passar para o capítulo 3 pois vários outros capítulos são na verdade ênfases dos assuntos tratados neste capítulo.

3 – Developing York First WDA Application

Não há muito o que dizer deste capítulo – É feito um tipo de “hello world” passo a passo de uma aplicação Web Dynpro desde a criação do pacote até da geração da URL usada para executar o componente. É um bom aquecimento para quem já fez alguma coisa de Web Dynpro (como era meu caso) e um fundamental guia para quem está começando a se aventurar e precisa entender os conceitos dados no capítulo 2.

4 – Controller Development

É dada ênfase em Controllers (de views, windows, component e custom controllers). O que são, para que servem, do que são formados e como funcionam. Outros conceitos relevantes são o Web Dynpro Phase Model, Web Dynpro Runtime API, Classes assistentes e ferramentas de desenvolvimento como chamadas de serviço e o code wizard.

5 – Working with Contexts

Por ser um assunto grande, os contextos (que fazem parte dos controllers) tem um capítulo a parte. Nós, atributos, supply function e context binding são ensinados aqui.

6 – Windows and Views

Este capítulo foca na diferença entre windows e views – uma explicação muito completa e que requer conhecimentos de ABAP Objects para serem totalmente compreendidos – Aliás, 90% do livro não pode ser verdadeiramente assimilado caso não conheça bem orientação a objetos e alguns design patterns como singleton, factory e composition. É ensinado aqui também o funcionamento de plugs de entrada e saída que servem para construir a navegação de um (ou mais) componente Web Dynpro.

7 – Basic UI Elements

Aqui é finalmente aberto o editor de Views e os principais elementos de UI (Button, InputField, Label, Caption, etc) são explicados. O livro é muito bom nesta parte pois detalha os elementos no seu funcionamento e não em cada uma de suas propriedades, que é o foco do help.

8 – Advanced UI Elements

Elementos de UI mais complexos são tratados neste capítulo. Tais elementos são divididos em 3 categorias: Gráficos (como BusinessGraphics, Gantt, GeoMap, Image, etc), Integração (basicamente o foco é em FileDownload, FileUpload e PDF Forms) e por último Complexos (Table, Tree e RoadMap). Aqui também é ensinado a como desenvolver elementos que suportam Drag and Drop – bem interessante.

9 – Component-Based Development Concepts

Foi aqui que praticamente tudo começou a ser novo para mim. O capítulo aborda o conceito do desenvolvimento baseado em componente e como aplicá-lo no Web Dynpro usando Component Interfaces e Component Usages – algo raro de se ver nos poucos  Web Dynpros “Z” que vi por aí.

10 – User Interaction

Este capítulo talvez seja um dos mais maçantes pois foca naquelas pequenas coisas que desenvolvedores são negligentes mas que fazem toda a diferença para como os usuários usam as aplicações. Falo de Input-Helps (incluindo OVS), textos de ajuda, mensagens e caixas de diálogo. Há bastante código neste capítulo o que tornou ele mais fácil de ler visto que a minha preocupação principal era conhecer mais sobre seu Web Dynpro e não nas minúcias do livro.

11 – Dynamic Programming

Este é disparado o conceito mais avançado do livro tudo. Basicamente é ensinado como fazer tudo que foi aprendido entre os capítulos 4 até 9 de forma dinâmica usando a API do Web Dynpro.

12 – Configuration and Adaptation

Este capítulo foi 100% novo para mim. Aqui é ensinado como configurar e adaptar componentes e aplicações Web Dynpro. Realmente me surpreendeu esta parte do livro pois era um conteúdo que nunca havia nem ou ouvido falar e que se mostrou de fundamental entendimento para que se considera entendedor de Web Dynpro. Em outras palavras, é abordado o uso dos componentes standard CONFIGURE_COMPONENT, CUSTOMIZE_COMPONENT e CONFIGURE_APPLICATION. Style Sheets e internacionalização encerram este longo capítulo.

13 – Modifications and Enhancements

Esta unidade fala de melhorias – algumas das quais são são particulares de Web Dynpro (como BADis) e o próprio enhancement framework, outras não. Obviamente a segunda é o foco principal e neste capítulo é mostrado o que pode-se mudar em componentes standards e como fazê-lo.

14 – Working with Floorplan Manager

Este foi um dos capítulos que me fez realmente comprar o livro. Nunca sequer tinha ouvido falar no tal do Floorplan Manager (aliás, a primeira vez que vi isso achei que fosse algum sub-módulo de MM, WM ou coisa parecida – que nome ruim para algo de desenvolvimento). Bem, finalmente descobri que Floorplan Manager é na verdade um framework para Web Dynpro no qual tem a o propósito de diminuir o custo de desenvolvimento. Superficialmente fala-se do Web Dynpro Page Builder e de CHIPs neste capítulo também.

15 – WDA Integration

Este capítulo é bem técnico e ensina coisas um tanto quanto fora da caixa: integrar Web Dynpro com Flash e Silverlight. Agora que já sei que isso é possível, basta achar agora uma necessidade para isso. Aliás, caso um dia ache a necessidade e alguém compre a ideia, será necessário alguém que desenvolva em Silverlight ainda – realmente não será fácil e espero não usar o conceito aprendido neste capítulo. Para não ser injusto, é mostrado também como fazer a integração com Adobe Interactive Forms (que para mim é igual caviar) e com o SAP Netweaver Portal. Existe até um tópico que aborda o consumo de Web Services em Web Dynpro mas ele é tão superficial que me deixou decepcionado – há simplesmente um parágrafo sobre o assunto dizendo apenas “use classes de proxy”.

16 – Security Concepts

Aqui é dito alguns conceitos de segurança que devem ser levados em consideração ao desenvolver componentes WD. O que particularmente achei mais interessante é configurar as telas de login e de 404 em nós da SICF.

17 –  Performance Tuning

Este capítulo me surpreendeu positivamente. Várias dicas de desempenho são dadas (onde colocar o seu select, como gerenciar memória de maneira inteligente, URLS (Uniform Rendering Light Speed), Delta rendering, compressão de transmissões HTTP, etc). Além das dicas que já valem o ingresso neste capítulo, são abordadas 10 ferramentas de medição de desempenho, algumas ensinadas passo a passo, outras somente mencionadas como as famosas SE30 e ST05 – já que não são de exclusividade do Web Dynpro.

O que foi ótimo?

Saber tudo que é possível fazer com WDA é o mais útil com toda certeza. Mas falando de tópicos em específico, o livro realmente é excepcional até o capítulo 11 – que é  ensina toda a base fundamental para trabalhar com Web Dynpro, inclusive para construção de aplicações bem complexas.

Os capítulos de enhancements é bem explicado também bem como o de performance tuning.

O que poderia melhorar?

Os capítulos de adaptation Configuration and Adaptation parecem supor que o assunto é um pouco óbvio, quando não é. Ensina-se a como usar os componentes de configuração, customização e adaptação mas pouco crédito é dado em quando e porquê usá-los. Infelizmente este conteúdo é fundamental para entender o Floorplan manager, que também é muito superficial. Mas na verdade entendi o porque disso ao ver o guia de desenvolvimento do Floorplan Manager e descobrir que o autor do livro tem um outro livro somente dedicado ao Floorplan manager.

Consegui fazer uma coisa ou outra em FPM, mas ainda assim não fui convencido a usá-lo depois de ler o capítulo inteiro juntamente com algumas thread na SCN (“An Opinion Blog: Floorplan Manager – A Compromised UI Solution from SAP?”  e “Using Floorplan Manager in your own applications“). Vendo os novos monitores da Nota Fiscal 3.10 no GRC tenho a impressão que eles podem ter sido desenvolvidos usando Floorplan Manager, mas isso é um achismo baseado na estética deles.

A parte de consumo de Web Services e CHIPs também é muito superficial, achei que poderiam ser um pouco mais detalhadas.

O livro vem com alguns exemplos disponibilizados em transportes que podem ser importados num ambiente (arquivos .SAR). Infelizmente isso não está ao alcance de todos que podem ler o livro e acho que versões em formato SAPLink seriam bem vindas também (assim como o livro Next Generation ABAP Development faz).

O futuro do Web Dynpro

Sendo um pouco off-topic por aqui, recentemente divulgamos aqui no ABAP101 alguns cursos da OpenSAP. O primeiro deles, “SAP’s UX Strategy in a Nutshell by Sam Yen” já foi lançado e pode ser realizado em 2 horas com tranquilidade. Como é possível prever pelo nome do curso, é dito a estratégia da SAP quanto a UX. Web Dynpro não é nem mencionado no curso e o Floorplan Manager, tem um menção muito rápida. O curso ainda deixa bem claro que o futuro para tudo que for SAP (ECC, Hana, Cloud, etc) é o Fiori e como diria a Globo, o futuro já começou. Particularmente, deu a entender que o Web Dynpro só não vai morrer em pouco tempo por uma questão de suporte. Para tirar esta dúvida abri a discussão “Web Dynpro & Floorplan Manager” (para vê-la é necessário login na OpenSAP e estar cadastrado no curso).

Caso eu esteja certo quanto ao entendimento, esta realmente é uma péssima notícia para as pessoas que são “especializadas” em Web Dynpro, ou para aquelas que querem focar nisso profissionalmente falando. Independentemente de Fiori, SAPUI5 ou o diabo, mantenho minha opinião quanto a Web Dynpro: todo desenvolvedor ABAP deveria saber e ponto final (pelo menos os capítulos 1-11, 13 e 17 do livro). Web Dynpro não é uma especialização assim como Smartforms ou ABAP Objects também não o são. Por isso se você vê uma vaga intitulada “ABAP Web Dynpro” entenda “não aceitamos pessoas que não conhecem Web Dynpro” e não como uma vaga na qual a taxa hora deve ser maior por ser algo especializado. Se quer uma “especialização” de Web Dynpro, estude Floorplan Manager pois este realmente é um assunto totalmente a parte e que requer conhecimentos de Web Dynpro – agora não me pergunte pela demanda disso pois não sei apesar de chutar ser baixíssima.

Pensando no que todo desenvolvedor ABAP deveria saber de Web Dynpro, atualizei a nossa tão famosa Matriz de Conhecimento ABAP, indicando os conceitos que deveriam ser assimilados para cada nível de profissional.

Onde comprar?

Comprei o livro no site da SAP Press, versão ebook em 22/Junho/2014 por 70 USD. É mais caro somente se você desconsiderar o frete para o Brasil da versão impressa. Ainda, o ebook pode ser baixado no ato da compra não sendo preciso esperar algum prazo. Comprando a versão de ebook você pode baixar em formato Kingle, epub e pdf. Você pode também achar este livro na Amazon.

Fábio Pagoti

Formado em Sistemas de Informação pela Universidade de São Paulo. Comecei no mundo da programação com Java mas logo caí no mundo ABAP. Estagiei na Nestlé por 2 anos e foi lá onde conheci o Furlan. Depois de efetivado fui morar no Canadá por 1 ano onde pude aprender a área de testes em desenvolvimento de software. Hoje sou consultor e instrutor ABAP, amante de projetos Open Source, Wordpress, Data Mining e da esfera SAP. Siga-me no twitter: @fabiopagoti

You may also like...

3 Responses

  1. Muito bom Fabio! Realmente parece ser um livro muito bacana! Vai entrar pra wishlist! 😀

    • Fábio Pagoti says:

      🙂
      … e já estou no SAPUI5… estou apenas no começo mas ele parece ter uma leitura mais dinâmica.

      Abraços Renan!

  2. Obrigado pelo texto Pagoti.
    Abs Denis