Você está na página 1de 25

Introduo ao Web Dynpro

Do ponto de vista tcnico o webdynpro para java e abap um passo


totalmente revolucionario no desenvolvimento de interfaces baseadas na
web. completamente diferente do padro de design utilizado
anteriormente pela SAP, no que se refere a desenvolvimento WEB e
aplicacoes no ERP.

As aplicaes Web Dynpro so construdas usando tcnicas de programao


declarativa baseada no paradigma Modelo Viso Controlador (MVC). Todo o
cdigo para gerar interfaces do usurio gerado automaticamente atravs
do standard runtime framework. O que evita a necessidade escrever cdigo
html e javascript.

ABAP Web Dynpro esta disponvel desde o SAP NetWeaver 7.0 (SAP
NetWeaver
Application Server 7.0).

Para o desenvolvimento de uma aplicao Web Dynpro o Object Navigator


(transao SE80) foi ampliado.

Meta-model Declarations e Programao Declarativa

Uma aplicao Web Dynpro desenvolvida utilizando a abordagem da


programao declarativa. Dentro no ABAP Workbench existem ferramentas
especiais que permite construir e abstrair representaes de sua aplicao
na forma de um web Dynpro metamodel. O Cdigo necessrio gerado
automaticamente dentro do padro de arquitetura conhecido como Web
Dynpro Framework (WDF)

A WDF permite que cada controlador dentro de um componente tenha um


conjunto de mtodos padres. dentro destes mtodos que qualquer
codificao personalizada necessrios pode ser inserida.

Alm dos eventos fornecidos pelo WDF, voc tambm pode definir seus
prprios. Todas as aplicaes so construdos a partir das mesmas unidades
bsicas. No entanto, atravs da utilizao de codificao personalizada nos
mtodos padro, o sistema central pode ser estendido para fornecer a
funcionalidade para qualquer atividade necessria.

Nem todas as definies da aplicao tm de ser feitas em tempo de


design. perfeitamente possvel implementar uma aplicao Web Dynpro
em que a aparncia da interface do usurio definida em tempo de
execuo

Cenrios de Aplicaes com Web Dynpro

Partes principais dos componentes Web Dynpro


Componentes Web Dynpro permitir estruturao de aplicaes Web complexas e
desenvolver entidades reutilizveis e interativas. Isso permite que o aninhamento de
sees de aplicaes de grande porte.

Componentes Web Dynpro so containers de outras entidades relacionadas com a


interface do usurio e o programa Web Dynpro.

Entidades relacionadas com a interface do usurio so as windows e views. O layout


de uma view representa uma parte retangular de uma pgina exibida pelo cliente (por
exemplo, um navegador). A exibio contm elementos de interface do usurio, tais
como campos de entrada e botes. A pgina completa enviada para o cliente pode ser
configurada por apenas uma nica View, mas tambm pode ser uma combinao de
vrias Views.

As possveis combinaes de views e de fluxo entre as views definido em uma


Window.

Uma Window pode conter um nmero arbitrrio de views. A view pode ser incorporado
em um nmero arbitrrio de windows.

O Cdigo fonte numa aplicao webdynpro localizado nos controllers. A hierarquia


de armazenamento de variveis globais dos controllers so chamados de Context.

Context e transporte de dados

As variveis definidas em um context de um Controller podem ser referenciadas


atravs de outros Controllers. Isto chamado mapeamento de contexto. Isso permite
compartilhar atributos comuns entre os diferentes Controllers.
Data Binding a proprieade dos elementos de interface que permitem que uma
entrada do usurio seja ligada a um atributo do contexto do controller. Atravs dela o
transpote de dados feito automaticamente entre os elementos da interface e os
atributos de contexto.

A combinao destes dois conceitos, o transporte de dados entre os elementos da


interface do usurio localizados em diferentes views pode ser feito apenas de forma
declarativa.
Navegando entre views
Navegao entre view feita disparando outbound plugs. Os eventos de navegao
so eventos assncronos especiais, que so colocados em uma fila de navegao.
Mutiplos outbound plugs podem ser disparados atravs de uma view. Isto pode ser
usado para definir a prxima tela dentro de mltiplas views. A fila de navegao
processada em certos pontos do ciclo de vida da aplicao webdynpro.

Inbound plugs so eventos especiais que definem o evento disparado quando um


outbound plug disparado. Eles so chamados apenas quando a fila de navegao
processada. Ele chamar a view apenas quando o outbound plug for diparada e as
validaes de erros ocorrem.

Outbound plugs e Inbound plugs so combinaods para formar os links de navegao.

Windows, View Sets and View Areas

Quando criamos uma window, podemos definir trs coisas:

Todas as possveis view que podem existir em um componente de


interface visual.

O Layouy e Posio destas views com view sets e view reas

Os links de navegao entre diferentes views

possvel incluir uma nica view, ou uma ou mais view sets em uma
window. Cada view set dividida em view reas, e cada uma pode ter uma
ou mais views ou view sets includas nela.
Uma view rea pode exibir uma view por vez. Os links de navegao
precisam ser definidos entre as view na ordem em que elas devem ser
exibidas.

Web Dynpro Controllers

Arquitetura de uma aplicao Web Dynpro


Diferentes Tipos de Controllers

Custom / Component controller

Cada componente Web Dynpro tem pelo menos um controller global o


component controller (default)

Custom controllers so um tipo de controller global adicional para


encapsular sub funes do component controller Tipicamente para
estruturar componentes maiores.

Eles no tem interface visual.

View controller

Cada view tem exatamente um view controller, que processa as aes


executadas pelo usurio na view.

Window controller

Cada window tem exatamente um window controller. Ele funciona como o


view controller e pode ser utilizado por outros controles (como o custom /
component controller)

Principais funcionalidades dos Controllers


O Context no Desenvolvimento

Todo controller tem exatamente uma estrutura para armazenamento de


dados hierrquico. Os dados armazenados no contexto existem apenas no
ciclo de vida do controller. Uma vez que a instancia do controller finalizada
os dados armazenados no contexto so perdidos.

A estrutura do contexto normalmente definida durante o desenvolvimento


mas possvel altera-la em tempo de execuo.

Os dados declarados no contexto so privados ao controller.

Para compartilhar os dados entre diferentes controllers, deve-se utilizar o


mapeamento do contexto, conforme j explicado anteriormente.

Estrutura do Context

Todos os contexts so construdos atravs de um arranjo hierrquico de


entidades conhecido como Nodos e Atributos. Ele tambm tem um nodo pai
chamado de Nodo Raiz (Node Root).

Context Node:
o Esto organizados hierarquicamente e podem ter filhos

o O Nodo filho pode ser entidades conhecidas como outros nodos


ou atributos

o Descries dos metadados podem ser declaradas


manualmente ou derivadas de uma estrutura do Dictionary.

Context Attribute:

o Armazena dados em tempo de execuo ou referencia a dados


de tempo de execuo.

o Baseado em tipos do DDIC.

Em tempo de execuo o context armazenas os dados em uma arvore multi


dimensional, parecida com estrutura de diretrios do Windows Explorer.

Cada n do context tem uma propriedade chamada cardinalidade. Esta


propriedade define o numero mximo e mnimo de elementos. Abaixo as
cardinalidades possveis:

0..1 Zero ou Um element permitido


0..n Zero ou mais elementos permitidos
1..1 somente um elemento permitido
1..n Um ou mais elementos permitidos
A estrutura do contexto em tempo de execuo

Supply Function

Cada Context Node no Controller pode ser associada a uma Supply Function.
Esta funo chamada em tempo de execuo quando os dados do
context node so utilizados.

Em geral ela chamada quando os dados do context node so acessados e


quando o context node ainda no foi preenchido ou esta vazio.
UI Elements

Os UI Elements ou elementos de interface com o usurio, so entidades


grficas que ocupam uma posio dentro de uma View.

Todas as view so compostas de uma hierarquia de UI elements.

O nodo raiz sempre do tipo TransparentContainer, e sempre chamado


de RootUIElementContainer. Voc no pode altera-lo, ele hard coded!
Varias categorias de UI elements so suportadas. Cada objeto UI element
representado como uma classe abstrata que independente do client da
camada de aplicao.

Context Binding

O Context Binding a associao de uma propriedade de um UI element


com o node ou atributo em um view controllers context.

A propriedade de um UI element ento utiliza o nodo do context ou atributo


como fonte de dados. Se a propriedade pode ser alterada pelo usurio,
ento o novo valor substitui o valor no context.
Context Binding desacopla os UI element do cdigo da aplicao. Para
controlar o comportamento dos UI elements, deve-se manipular os nodos do
Context ou atributos que formam os UI elements
A ordem dos atributos em um nodo no influencia na ordem em que os
dados armazenados so exibidos.

O binding entre um UI element e um context attribute um relacionamento


em duas vias.

Dados do context so transportados para o client durante a


renderizao da tela.

Dados inseridos pelo usurio so transportados de volta para o


contexto quando a requisio HTTP processada.

Introduo aos UI Elements compostos

Um UI element composto um tipo de UI element que necessita de UI


elements filhos.

Exemplos: Table e Tree UI elements.


UI elements Compostos so incapases de exibir informaes por eles
mesmos. Eles necessitam ter UI elements filhos na ordem para funcionar
corretamente.

Uma Table um exemplo de um UI element composto. Os elementos filhos


da Table tambm so compostos.

Programando Controller e Context.

Code Implementation

Cada controller no web Dynpro um programa abap separado. A definio


destes programs gerada automaticamente quando um novo componente
ou controller declarado. O cdigo fonte que implementa estes controles
gerado automaticamente. So fornecidos vrios pontos no controller onde
pode-se adicionar um cdigo prprio

Tentar entrar com um cdigo fora das reas definidas, acarretara na perda
do cdigo criado quando o controle for gerado novamente. Isto ocorrer toda
vez que ele ativado.

Standard Hook Methods

Em cada controle existem certos mtodos padres. No momento de criao


do controller estes metodos esto vazios e podem ser utilizados pelo
desenvolvedor em certos momentos.

No possvel apagar ou renomear estes metodos. Se tentar fazer isto a


mudana ser desfeita quando o cdigo for gerado.

Todos os controles possuem alguns mtodos padres, ele somente ser


chamado durante a execuo se estiver codificado.

Controller instance methods

Existe tanto para view e custom controllers.

Para todos os controles possvel criar mtodos de instancia, apenas


declarando o nome do mtodo no parametro methods na aba apropriada
no controller editor

Atributos e mtodos do controller.

Atributos:
Podem ser pblicos ou privados

No podem ser utilizados diretamente dentro do controlador. Os atributos


podem ser acessados utilizando o atributo WD_THIS, que fornece uma
referencia para o controlador local.

Mtodos

Todos os mtodos pblicos podem ser utilizados por qualquer controller. O


nico pr-requisito que o controles que ir chamar o mtodo esteja
definido no relacionamento para utilizar o controller em suas propriedades.

Atributo padro do Controller WD_CONTEXT e WD_THIS

Presente em qualquer WD controller (exceto interface e interface view


controller).

WD_THIS referencia a ele mesmo na interface local, o tipo depende do tipo


do controller.

WD_CONTEXT referencia ao context associado ao controller.


Atributo de Controller padro WD_COMP_CONTROLLER

Presente em qualquer WD controller.

Referncia ao component controller que acessa todos os mtodos e


atributos pblicos.

Atributos sero automaticamente associados a todas as view controllers,


quando a view for criada.

Para todos os outros controles o atributo WD_COMP_CONTROLLER estar


assinado, quando a propriedade do component controller for utilizada.

Acessando o atributo de um Node Element


Acessando todos os atributos estticos de um Node
Element
Acessando todos os elementos de um Nodo
Binding de um Elemento para um Nodo

Static Attributes e Binding de um Element para um Node


Binding de uma Table para um Node

Online Text Repository (OTR) e Mensagens

Internacionalizao

O processo pelo qual textos especficos de determinada linguagem so


associados a funcionalidades do programa e conhecido como
Internacionalizao.

Isto permite que o mesmo programa trabalhe com mltiplas linguagens,


sem necessidade de reescrever cdigo.
Internationalization (I18N) Support

Durante a execuo o UI elemento ligado a um context node/atribute que


baseado numa tabela/strutura ou tipo do DDIC recebero o texto na
linguagem apropriada.

As propriedades dos UI elements podem ser ligadas diretamente aos texto


do DDIC.

Se um texto um texto literal informado em um UI elements um texto OTR t


correspondente ser criado

Caso exista OTR text (alias) ele pode ser associados a propriedades de uma
UI element.

Utilizando o repositrio de texto online


A classe CL_WD_UTILITIES fornece um mtodo GET_OTR_TEXT_BY_ALIAS
para pegar o texto do OTR.

Utilize o WD code wizard para selecionar o texto OTR apropriado e gerar o


cdigo.

Utilizando uma classe de componente assistente

Uma classe de componente assistente pode ser associada a qualquer


componente WD.

O atributo wd_assit estar disponvel para qualquer controller, de forma a


possibilitar acessar os textos com o mtodo get_text

Mensagens em Web Dynpro e tratamento de erros

Todas as mensagens so exibidas em uma rea especfica

Por padro esta rea de mensagens aparece no topo da pgina


As reas de mensagens podem ser movimentadas como qualquer outro
elemento da tela. Ela pode ser encontrada na UI Library Pattern. Todas as
mensagens sero exibidas nesta rea, se estiver disponvel

Categorias de Mensagens

Você também pode gostar