Escolar Documentos
Profissional Documentos
Cultura Documentos
Data: 23/01/12
Versão 1.0
Instrutores:
Alexandre Izefler
Consultor SAP NetWeaver PI / WebDynpro for ABAP
aizefler@grupomult.com.br
Antônio Nicácio
Consultor SAP NetWeaver WebDynpro for ABAP
anicacio@grupomult.com.br
Índice
1 Sobre o Curso...........................................................................................................................................4
1.1 Duração / Tipo de Treinamento ..........................................................................................................4
1.2 Software release / Ambiente ...............................................................................................................4
1.3 Pré-Requisitos .....................................................................................................................................4
1.4 Publico Alvo.........................................................................................................................................4
1.5 Objetivo ...............................................................................................................................................4
2 Curso Orientado a Projeto ........................................................................................................................5
2.1 Exemplo de Negócio ...........................................................................................................................5
2.2 Casos de Uso ......................................................................................................................................5
2.3 Diagrama entidade relacionamento ................................................................................................. 11
2.4 Diagrama de classes ........................................................................................................................ 12
2.5 Diagrama de componentes .............................................................................................................. 12
3 Introdução .............................................................................................................................................. 14
3.1 Visão Geral Plataforma SAP (Netweaver) ....................................................................................... 14
3.2 Introdução a Linguagem ABAP ........................................................................................................ 15
3.3 ABAP Workbench............................................................................................................................. 16
3.4 Dicionário de Dados ......................................................................................................................... 16
3.5 Client Dependente e Client Independent ......................................................................................... 17
3.6 Tabelas ............................................................................................................................................. 17
3.7 Elemento de Dados .......................................................................................................................... 19
3.8 Domínio ............................................................................................................................................ 19
3.9 Manipulando dados no ambiente SAP ............................................................................................. 19
3.10 Estendendo Programas Standard .................................................................................................... 20
3.11 Transporte de requests .................................................................................................................... 21
4 Introdução ao ABAP Objects ................................................................................................................. 22
4.1 Conceitos de OO .............................................................................................................................. 22
4.2 Introdução a programação Abap Objects ........................................................................................ 23
4.3 Tratamento de exceções baseadas em classes .............................................................................. 30
5 Web Dynpro ........................................................................................................................................... 33
5.1 O que é Web Dynpro ....................................................................................................................... 33
5.2 O que é Web Dynpro for ABAP........................................................................................................ 33
5.3 O que é Web Dynpro for Java .......................................................................................................... 34
5.4 Quais são as semelhanças e diferenças entre as ferramentas? ..................................................... 35
5.5 Benefícios Web Dynpro for ABAP.................................................................................................... 37
5.6 MVC (Model-View-Controller) .......................................................................................................... 37
6 Web Dynpro Arquitetura ........................................................................................................................ 38
6.1 Componentes ................................................................................................................................... 38
6.2 Ciclo de Vida dos Componentes ...................................................................................................... 39
6.3 View .................................................................................................................................................. 39
6.4 Layout’s em Web Dynpro ................................................................................................................. 40
6.5 Window............................................................................................................................................. 44
6.6 Plug e Link’s de Navegação............................................................................................................. 44
6.7 Plugs Inbound e Outbound .............................................................................................................. 45
6.8 Controladores ................................................................................................................................... 48
6.9 Eventos ............................................................................................................................................ 50
6.10 Context ............................................................................................................................................. 52
6.11 Data binding e Mapping ................................................................................................................... 53
6.12 Metodos e Atributos de Sistema ...................................................................................................... 55
6.13 Interface View................................................................................................................................... 57
6.14 Interfaces de Componentes Web Dynpro ........................................................................................ 58
6.15 Web Dynpro Application ................................................................................................................... 58
6.16 Elementos UI WDA .......................................................................................................................... 59
6.17 Fases do Processo de Execução..................................................................................................... 82
6.18 Programação Cross-Component ..................................................................................................... 84
6.19 Wizards ............................................................................................................................................ 85
2
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
1 Sobre o Curso
Esta seção apresenta as informações permitinentes ao treinamento em questão.
1.3 Pré-Requisitos
Conhecimentos intermediários no desenvolvimento de software com linguagens orientadas a
objetos (C#, JAVA, ABAP Objects e etc).
1.5 Objetivo
Depois de ter participado deste curso e implementados os cenários do projeto, você terá o
conhecimento suficiente para implementar a nova interface de usuário SAP com a estratégia
baseada na estrutura WD4A (Web Dynpro para ABAP).
O objetivo deste curso é criar uma fundação que pode ser usado com o Portal da Ajuda SAP
(http://help.sap.com) e o SAP Developer Network (http://sdn.sap.com) para atender às exigências
e desafios de novos projetos sobre Web Dynpro ABAP e para encontrar uma solução sempre
quando necessário.
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
Os supervisores além de poder fazer as mesmas funções do atendente ele pode aprovar ou
rejeitar reservas.
Criar Reserva
Consultar Reservas
Atendente <<extend>>
Listar Clientes
<<extend>>
Supervisor
Aprovar/Rejeitar Reservas
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
Pré-condições
• Possuir acesso ao sistema.
• Os dados para os campos de seleção devem existir no armazenamento de dados.
Fluxo Principal
1. Usuário atendente acessa o sistema de reservas
2. Usuário atendente clica no link “Criar Reserva”
3. Sistema apresenta o formulário de cadastro
4. Usuário atendente informa os seguintes campos:
a. Selecionar o cliente [Obrigatório]
b. Selecionar linha aérea [Obrigatório]
c. Selecionar conexão [Obrigatório]
d. Selecionar agencia [Obrigatório]
e. Data do vôo [Obrigatório]
f. Fumante sim ou não
g. Peso da bagagem
h. Unidade da bagagem
i. Primeira classe sim ou não
5. Usuário atendente clica no botão criar reserva
6. Sistema valida a entrada do usuário [FA01] [FA02]
7. Sistema cria a reserva no armazenamento de dados com status “Pendente”
8. Sistema notifica com uma mensagem de sucesso e informando o código da reserva
criada
9. Fim.
Fluxos Alternativos
Protótipo
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
Pré-condições
• Possuir acesso ao sistema.
Fluxo Principal
1. Usuário atendente acessa o sistema de reservas
2. Usuário atendente clica no link “Consultar Reserva”
3. Sistema lista os clientes cadastrados [CU05]
4. Usuário atendente seleciona o cliente desejado
5. Sistema apresenta as reservas do cliente
6. Fim.
Fluxos Alternativos
N/A
Protótipo
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
Precondições
• Possuir acesso ao sistema.
Fluxo Principal
Fluxos Alternativos
N/A
Protótipo
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
Precondições
• Possuir acesso ao sistema.
• Possuir acesso ao caso de uso CU02.
Fluxo Principal
1. Usuário consulta as reservas de um cliente [CU02]
2. Usuário supervisor clica no botão “Aprovar Reserva” [FA01]
3. Sistema cria uma entrada no catálogo de vôo já confirmada
4. O status da reserva é alterado para “Aprovado”
5. Sistema notifica com uma mensagem de sucesso informando o código do catálogo de
vôo e o preço do ticket
6. Fim.
Fluxos Alternativos
1. FA01 – Usuário supervisor clica no botão “Rejeitar Reserva”
a. O status da reserva é alterado para “Rejeitado” e a operação é encerrada.
Protótipo
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
Precondições
• Possuir acesso ao sistema.
Fluxo Principal
Fluxos Alternativos
N/A
Protótipo
10
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
SCARR SBOOK
SFLIGHT
MANDT CLNT (3) <pk> SPFLI MANDT CLNT(3) <pk,fk1,fk2>
MANDT CLNT(3) <pk,fk>
CARRID CHAR(3) <pk> BOOKID NUMC(8,0) <pk>
MANDT CLNT(3) <pk,fk> CARRID CHAR(3) <pk,fk>
CARRNAME CHAR(20) CARRID CHAR(3) <fk1>
CARRID CHAR(3) <pk,fk> CONNID NUMC(4,0) <pk,fk>
CURRCODE CUKY(5) CONNID NUMC(4,0) <fk1>
CONNID NUMC(4,0) <pk> FLDAT E DAT S <pk>
URL CHAR(255) FLDATE DATS <fk1>
CUSTOMID NUMC(8,0) <fk2>
ZRESERVA
MANDT CLNT(3) <pk,fk1,fk2,fk3,fk4>
ST RAVELAG RESERVAID NUMC(8,0) <pk>
SCUSTOM
CARRID CHAR(3) <fk1>
MANDT CLNT (3) <pk> CONNID NUMC(4,0) <fk1> MANDT CLNT(3) <pk>
AGENCYNUM NUMC(8,0) <pk> FLDATE DAT S <fk1> ID NUMC(8,0) <pk>
CUSTOMID NUMC(8,0) <fk2>
SMOKER CHAR(1)
LUGGWEIGHT QUAN(8,4)
WUNIT UNIT(3)
CLASS CHAR(1)
AGENCYNUM NUMC(8,0) <fk4>
STATUS CHAR(1)
BOOKID NUMC(8,0) <fk3>
Legenda:
SPFLI – Contém as rotas ou conecções oferecidas pelas companhias aéreas da tabela SCARR.
SBOOK – Catálogo de voo, contém as reservas para os vôos disponíveis na tabela SFLIGHT.
SCUSTOM - Clientes
11
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
FlightBooking
FlightCustomer
+ CreateFromData ()
+ GetList ()
+ GetList ()
+ Confirm ()
0..*
0..*
0..*
0..1
0..1
0..1
WD_ASSIST
ZCL_BO_CURSO_RESERVA
+ ReservaInserir ()
+ ReservaListar () + Inserir ()
+ ReservaAprovar () 0..1 + Listar ()
+ ReservaRejeitar () 0..* + Aprovar ()
+ ClienteListar () + Rejeitar ()
+ CatalogoVooListar ()
12
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
13
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
3 Introdução
3.1 Visão Geral Plataforma SAP (Netweaver)
A primeira versão do SAP era um sistema de contabilidade financeira chamado R/1 lançado
em 1973.
O SAP R/2 foi uma versão baseada em mainframe que foi muito bem sucedida nos anos
1980 e início dos anos 90.
O SAP R/3 foi lançado em 1992 sendo uma solução de software integrado para
cliente/servidor e sistemas distribuídos. O SAP R/3 é o software de negócios cliente/servidor mais
utilizado no mundo atendendo às necessidades de um cliente de mercearia pequena com 3
usuários às empresas multibilionárias. O software é altamente personalizável utilizando a
linguagem de programação proprietária da SAP, ABAP / 4.
Após a versão 4.6c o SAP R/3 foi renomeado para SAP R / 3 Enterprise e a plataforma foi a
mudança de SAP Basis para SAP Application Web 6.20 Server.
Em 2004 a SAP muda o nome do produto para o mySAP ERP 2004, com o conjunto de
aplicações conhecidos como SAP ECC 5.0, a plataforma técnica mudou de Web AS para SAP
Netweaver 2004, com suporte ao ambiente ABAP e Java.
A última versão é SAP ERP 6.0 com o SAP ECC 6.0, a plataforma técnica SAP Netweaver é 7.0.
SAP NetWeaver é uma plataforma abrangente de aplicativos e integração que trabalha com
a infra-estrutura de TI já existente nas empresas para permitir e administrar mudanças. Com o
SAP NetWeaver, pode-se projetar, construir, implementar e executar novas estratégias
empresariais de forma rápida e flexível, assim como executar novos processos de negócios.
14
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
ser usada pelos utilizadores finais. No entanto, o ABAP é uma linguagem que necessita de
conhecimentos avançados de programação e é principalmente utilizada pelos programadores da
SAP que desenvolvem o software e por consultores que adaptam o software às necessidades dos
clientes.
O ABAP é a principal linguagem utilizada no software cliente-servidor SAP R/3. Em 1999,
com a versão R/3 4.5, a SAP lançou uma versão de ABAP que suporta programação orientada a
objetos. A versão mais recente da plataforma de desenvolvimento da SAP, o NetWeaver, suporta
programação em ABAP e em Java.
• ABAP Editor para escrever e editar relatórios programas, sub-rotinas, módulos (SE38)
• ABAP Dictionary para definições de tabelas, dados (SE11)
• Menu Painter para projetar a interface de usuário (barra de menus, barra de ferramentas
padrão, barra de ferramentas do aplicativo) (SE41)
• Screen Painter para projetar telas e lógica de fluxo (SE51)
• Function Bulilder para módulos de função (SE37)
• Class Builder para as classes ABAP Objects e interfaces (SE24)
Os objetos básicos para definir dados no Dicionário ABAP são: tabelas, domínios e
elementos de dados.
Tabelas são usadas para o armazenamento físico dos dados.
Domínios são usados para a definição técnica de um campo de tabela (por exemplo: tipo de
campo, tamanho de campo).
Elementos de dados são usados para a definição semântica (por exemplo: descrição pequena).
As tabelas são responsáveis pelo armazenamento físico dos dados.
O SAP possui suas tabelas standards as quais armazenam todos os dados de negócio do cliente
através dos módulos, e permite também a criação de tabelas novas. Após criá-las e ativá-las no
16
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
Dicionário de ABAP , elas são geradas automaticamente pelo utilitário do banco de dados no
banco de dados.
Uma estrutura corresponde a uma série de campos agrupados sob um nome comum. É
muito semelhante a uma tabela, porém não existe armazenamento de dados físicos nela, apenas
seu esqueleto é usado. Como uma tabela, ela pode ser utilizada dentro de um programa na
instrução TABLES para definir uma área de trabalho.
Matchcodes são utilizados com Help online (F4) para acessar dados gravados por meio de um
critério suplementar onde a chave é desconhecida.
3.6 Tabelas
Há no dicionário de dados três tipos de tabelas: Transparentes, Pool e Cluster. O primeiro
tipo é o mais comum e provavelmente sempre será o tipo a ser utilizado ao se criar uma nova
tabela em customizações do sistema. Pool e cluster são tipos de armazenamentos proprietários
da SAP.
• Transparente: Uma tabela transparente no dicionário tem relacionamento um-para-um com
uma tabela no banco de dados. Sua estrutura no dicionário de dados corresponde a uma
única tabela de banco de dados. Para cada definição de tabela transparente no dicionário,
há uma tabela associada no banco de dados. A tabela de banco de dados tem o mesmo
nome, o mesmo número de campos e os campos têm os mesmos nomes que a definição
17
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
de tabela do ERP. Quando examinar a definição de uma tabela transparente do ERP você
pode achar que está olhando para a própria tabela de banco de dados.
• Pool: Uma tabela de pool tem um relacionamento muitos-para-um com uma tabela no
banco de dados. Para uma tabela no banco de dados, há muitas tabelas no dicionário de
dados do ERP. A tabela no banco de dados tem um nome diferente do das tabelas no
dicionário de dados, tem um número de campos diferente e os campos também têm
nomes diferentes. O ERP utiliza pools de tabela para armazenar um grande número
(dezenas a milhares) de tabelas muito pequenas (aproximadamente de 10 a 100 linhas
cada uma). Os pools de tabela reduzem a quantidade de recursos de banco de dados
necessários quando muitas tabelas pequenas têm de ser abertas ao mesmo tempo. A SAP
os utiliza para dados de sistema.
As tabelas de pool e de cluster são normalmente utilizadas somente pela SAP e não pelos
desenvolvimentos dos clientes, provavelmente por causa do formato proprietário dessas tabelas
dentro do banco de dados e por causa das restrições técnicas colocadas sobre sua utilização
dentro dos programas ABAP/4, como a seguir:
• Não se pode criar índices secundários;
• Não se pode utilizar select distinct ou group by;
• Não se pode utilizar SQL nativo;
• Não se pode especificar nomes de campos depois da cláusula order by. A única variação
permitida é order by primary key.
• No caso específico das tabelas de cluster, não é possível realizar leitura através de joins,
nem a criação de views.
18
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
3.8 Domínio
Contém a característica técnica de um campo, como o comprimento do campo e o tipo de
dado. Tanto o domínio quanto o elemento de dados são objetos independentes que podem ser
utilizados em diversos campos de diversas tabelas. Deve-se porém, tomar as devidas precauções
quando da atribuição destes objetos aos campos de tabelas, uma vez que a alteração de um
elemento de dados ou de um domínio implica na alteração das características de todos os
campos que estejam utilizando este(s) objetos(s) alterados.
MODIFY - Insere linhas em tabelas de banco de dados ou altera o conteúdo das linhas
existentes.
CURSOR OPEN, FETCH, CLOSE CURSOR - Lê-se linhas de tabelas de banco de dados usando
o cursor.
Os dois campos do sistema são preenchidos com os códigos de retorno por todas as declarações
Open SQL:
19
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
SY-SUBRC: O campo de sistema SY-SUBRC contém o valor 0 após cada declaração Open SQL
se a operação foi bem sucedida.
Antes de modificar, sempre verifique se as suas necessidades não podem ser feitas através da
Customização ou do conceito de Enhancement.
Enhancements (Ampliações)
São aberturas do sistema disponibilizadas pela SAP para fazer customização nos programas,
telas, menus e tabelas.
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
21
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
Objetos
Um objeto é seção de código fonte e que contém dados e fornece serviços. Os dados
formam os atributos do objeto. Os serviços são conhecidos como métodos (também conhecido
como operações ou funções). Tipicamente, métodos operam em dados privados (os atributos, ou
estado do objeto), que é apenas visível para os métodos do objeto. Logo os atributos de um
objeto não pode ser modificado diretamente pelo usuário, mas apenas pelos métodos do objeto.
Isso garante a consistência interna do objeto.
Classes
Classes descrevem objetos. De um ponto de vista técnico, objetos são instâncias em
tempo de execução de uma classe. Em teoria, você pode criar qualquer número de objetos
baseados em uma única classe. Cada instância (objeto) de uma classe tem uma identidade única
e seu próprio conjunto de valores para seus atributos.
Referências a Objetos
Em um programa, você identifica e endereça objetos usando referências únicas a objetos.
Referências a objetos permite que acesse os atributos e métodos de um objeto.
Encapsulamento
Objetos restringem a visibilidade de seus recursos (atributos e métodos) aos outros
usuários. Todo objeto tem uma interface que determina como os outros objetos podem iteragir
com ele. A implementação do objeto é encapsulada, isso é, invisível fora do próprio objeto.
Polimorfismo
Métodos idênticos (mesmo nome) se comportam diferentemente em diferentes classes.
Orientação orientada a objeto contém construções chamadas interfaces. Elas permitem que
enderece métodos com mesmo nome em diferentes objetos. A implementação do método é
específica para cada um classe.
Herança
22
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
Você pode usar uma classe existente para derivar uma classe nova. Classes derivadas
herdam os dados e métodos da superclasse. No entanto, eles podem substituir métodos
existentes, e também adicionar novos.
ABAP Objects
ABAP Objects é o termo dado para programação orientada a objeto feito em ABAP, este
modelo de programação une dados e funções. OO ABAP é construído em linguagem ABAP
existente e são executados no mesmo ambiente que os programas normais ABAP. OO ABAP faz
parte da ABAP desde R / 3 versão 4.0
Classe
23
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
Objetos
Objetos são instâncias de uma classe. Nós podemos criar qualquer número de objetos a
partir de um modelo de classe. Todos os objetos criados têm identidade única e cada um contém
conjunto diferente de atributos. Objetos que criamos em um programa só existem enquanto o
programa existir. Para instânciar objetos utilizamos o comando ABAP CREATE OBJECT.
Encapsulamento
• Público
• Protegido
• Privado
24
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
Nas classes, há normalmente uma divisão estrita entre o público e o protegido ou privado,
mas em alguns casos, as classes precisam trabalhar juntas precisando de acesso aos
componentes uns dos outros protegidos ou privados.
Uma classe pode conceder a outras classes e interfaces a sua “amizade”. Para isto é
necessário acrescentar o comando FRIENDS na definição da classe. Ex: CLASS ... DEFINITION
LOCAL FRIENDS cif1 ... cifn.
A “amizade” é unilateral: Uma classe de concessão de uma amizade não é
automaticamente um amigo de seus amigos e se a classe de concessão a “amizade” quer
acessar os componentes privada de um amigo, então este último tem de conceder explicitamente
a “amizade” à primeira.
Herança
Em ABAP OO, utilizamos uma classe existente para derivar uma nova classe, a nova
classe contém os atributos da classe pai (deriva de acordo com a visibilidade dos atributos e
métodos), além de novos atributos e métodos adicionados a ele. A classe filha deriva todos os
atributos e métodos declarados na classe pai como a visibilidade pública. A classe filha não pode
herdar membros privados. Os membros protegidos da classe pai são derivados para a classe filha
alterando a sua visibilidade para o privado.
25
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
A parte esquerda do gráfico demonstra como você pode derivar uma subclass c2 de uma
superclasse c1 usando a adição INHERTING FROM no comando CLASS. A parte direita do
gráfico demonstra como a distribuição da subclasse dentro da árvore de herança, que alcança
classe vazia default OBJECT. Uma subclass contém todos os componentes declarados acima
dela na árvore de herança, e pode endereçar todas elas que são declaradas públicas ou
protegidas.
26
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
Este gráfico ilustra herança simples. Uma classe pode apenas ter uma superclasse direta,
mas pode ter mais do que uma subclasse direta. A classe vazia OBJECT é o nó-raiz de toda
árvore de herança em objetos ABAP.
As adições ABSTRACT e FINAL nos comandos METHODS e CLASS permitem que você
defina métodos e classes abstratos e finais.
Um método abstrato definido dentro de uma classe abstrata e não pode ser implementado
naquela classe. Ao invés, é implementada em uma subclasse da classe. Classes abstratas não
podem ser instanciadas. Um método final não pode ser redefinido em uma subclasse. Classes
finais não podem ter subclasses. Eles concluem uma árvore de herança.
Polimorfismo
Este gráfico demonstra como variáveis referenciais definidas com referência para uma
superclasse pode indicar objetos de subclasses. O objeto a direita é uma instancia da classe
class3. As variáveis referenciais de classe CREF1, CREF2, e CREF3 são digitadas com
referência a class1, class2, e class3. Todas as três indicam ao objeto. No entanto, CREF1 pode
apenas endereçar os componentes públicos da classe class1, CREF2 pode endereçar os
componentes públicos da class1 e class2. CREF3 pode endereçar componentes públicos de
todas as classes.
Se você redefinir um método de uma superclasse em uma subclasse, você pode usar uma
variável referencial definida com referência a superclass para endereçar objetos com diferentes
implmentações de métodos.. Quando você endereça a superclasse, o método tem a
implementação original, mas quando você endereça a subclasse, o método tem a nova
27
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
implementação. Usando uma simples variável de referência para chamar métodos com mesmo
nome que se comportam diferentemente é chamado polimorfismo.
Interfaces
Interfaces são definidas como classes. Eles também contêm atributos e métodos. Mas as
interfaces não têm parte de implementação. Seus métodos são implementados na classe que
implementa a interface.
Então, é fornecida uma implementação diferente para os métodos definidos na interface em
classes diferentes que implementam a interface, esta é uma das formas de obter o polimorfismo.
Para criar um objeto da classe <class>, você deve primeiro ter declarado uma variável
referencial <cref> com referência a classe. Se a classe <class> implementa uma interface <intf>,
28
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
você pode usar a seguinte atribuição entre a variável referencial da classe <cref> e uma
referência de interface <iref> para fazer com que a referência de interface em <iref> indique o
mesmo objeto da referência de classe <cref>:
<iref> = <cref>
Assim como referênciais de classes, você pode atribuir referências de interfaces para
diferentes variáveis referenciais. Você pode também fazer atribuições entre ariáveis referenciais
de classes e variáveis referenciais de interfaces. Quando você usa o comando MOVE ou o
operador de atribuição (=) para atribuir variáveis referenciais, o sistema deve estar apto a
reconhecer na verificação de sintaxe se a tribuição é possível.
Suponha que tenhamos uma referência de classe <cref> e referências de interfaces <iref>,
<iref1>, e <iref2>.
As seguintes atribuições com referências de interfaces podem ser checadas estaticamente:
<iref1> = <iref2>
Ambas referências de interfaces devem indicar à mesma interface, ou a interface de <iref1> deve
conter a interface <iref2> como um componente.
<iref> = <cref>
A classe da referência de classe <cref> deve implementar a interface da referência de interface
<iref>.
<cref> = <iref>
A classe de <cref> deve ser predefinida como a classe vazia OBJECT.
Em todos os outros casos, você teria que trabalhar com o comando MOVE …?-TO ou o casting
operator (?=). O casting operator substitui o operador de atribuição (=). No comando MOVE…?-
29
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
TO, ou quando você utiliza o casting operator, não há verificação de tipo estático. Ao invés, o
sistema verifica em tempo de execução se a referência do objeto na variável de origem indica um
objeto cuja referência de objeto no alvo a variável também pode indicar. Se a atribuição é
possível, o sistema a faz, senão, o erro em tempo de execução MOVE_CAST_ERROR ocorre.
Você deve sempre usar casting para atribuir uma referência de interface a uma referência de
classe se <cref> não indica a classe predifinida vazia OBJECT:
<cref> ?= <iref>
para o casting ter sucesso, o objeto o qual <iref> indica deve ser um objeto da mesma classe
como o tipo da variável de classe <cref>.
Classes persistentes
Para usar o serviço de persistência para os objetos, as classes desses objetos devem ser
criados como classes persistentes no Construtor da classe. O termo classe persistente não
implica que uma classe é persistente. (Como um modelo de objetos, toda classe é persistente).
Pelo contrário, significa que os objetos dessa classe e seu estado são geridos pelo Serviço
de Persistência. Por exemplo, os objetos dessas classes são instanciados no programa ABAP
com um método do serviço de persistência, o que garante que a inicialização está correta (não
com utilização do comando CREATE OBJECT).
Quando o Class Builder cria uma classe persistente, ele automaticamente gera uma classe
associada, conhecido como classe ator ou classe agente, cujos métodos gerenciam os objetos de
classes persistentes. Bem como a sua identidade, classes persistentes pode conter atributos-
chave que permitem que o serviço de persistência garanta que o conteúdo de cada objeto
persistente é único.
Exceções baseadas em classe são levantadas pela instrução RAISE EXCEPTION ABAP ou
pelo ambiente de execução ABAP. Se uma exceção baseada em classes ocorre, o sistema
interrompe o fluxo normal do programa e tenta encontrar um manipulador adequado. Se ele não
encontrar um manipulador, um erro de execução ocorre.
30
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
Bloco TRY
O bloco TRY contém a codificação de aplicações cujas exceções devem ser tratadas. Este bloco
de declaração é processada sequencialmente. Ele pode conter estruturas de controle além de
chamadas de procedimentos ou outros programas ABAP.
Bloco CATCH
Um bloco catch contém o manipulador de exceção que é executado quando uma determinada
exceção ocorre no bloco TRY. Uma estrutura TRY ENDTRY pode conter vários manipuladores de
exceção. Após ocorrer uma exceção o sistema procura pelo manipuladores de exceções listadas
na ordem especificada e a verificação de sintaxe garante que os manipuladores sejam listados de
exceções mais específicas para exceções mais gerais (superclasses).
Bloco CLEANUP
Se o sistema não encontrar um manipulador para uma exceção em uma estrutura TRY ENDTRY,
mas encontrar um manipulador em uma estrutura TRY ENDTRY externa ou tentar propagar a
exceção para o chamador do procedimento o bloco CLEANUP é executado antes de sair da
estrutura TRY ENDTRY.
• CX_STATIC_CHECK
• CX_DYNAMIC_CHECK
• CX_NO_CHECK
31
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
32
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
5 Web Dynpro
Web Dynpro é baseado em uma arquitetura poderosa e flexível que utiliza o padrão de
desenho Model-View-Controller. Esse padrão cria uma separação clara de interfaces de usuário
dos serviços de back-end e lógica de negócios, suporta reutilização e melhor manutenção,
extensibilidade e flexibilidade (usando componentes), e fornece ferramentas gráficas declarativas
para minimizar os esforços de desenvolvimento.
Web Dynpro ABAP (WDA) é o principal padrão de tecnologia SAP UI para o desenvolvimento de
interfaces de usuário para aplicativos Web no ambiente ABAP. Consiste em um ambiente de
execução e um ambiente gráfico de desenvolvimento com ferramentas especiais que são
completamente integrados no ambiente de desenvolvimento ABAP - o ABAP Workbench
(transação SE80):
33
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
Esta integração total com o ambiente de desenvolvimento ABAP fornece acesso direto aos
dados ABAP, lógica de negócios e Ajuda a Pesquisa no Dicionário de Dados.
WDA está disponível desde Outubro de 2005 (SAP NetWeaver 7.0 (2004s) - Web
Application Server 7.0) e é amplamente utilizada pela SAP Business Suite e continuará a ser a
tecnologia UI de escolha para aplicações Suíte principais de negócios (ERP, PLM, SCM , SRM,
FIM).
34
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
35
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
Tal como é descrito pelo diagrama acima, ambas as ferramentas web-based criam UIs de
aplicativos de negócios e utilizam os padrões de projeto MVC para suportar uma separação
estrita de negócio e lógica de apresentação.
Além disso, ambos apoiarão (em EhP1) a integração com consoles de alta interatividade
para enriquecer a base Web Dynpro oferecendo UI com alta qualidade, modelos animados e mais
ricos com Islands Flash ou Silverligth (Integração).
36
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
Com WDJ, os desenvolvedores podem criar suas aplicações de interface de usuário com
base em várias fontes de dados tais como web services ou EJBs para anexar nas UIs, e também
possui integração com o novo BPM (Business Process Modeling) da ferramenta (estará
disponível com CE7.1.1) .
Por outro lado, quando usando a lógica de negócio padrão SAP dos sistemas operacionais é
muito mais fácil de acessá-lo usando WDA e consumir os dados diretamente do sistema através
da codificação nativa ABAP. Além disso, WDA oferece um repositório de MIME para gerenciar e
utilizar diferentes objetos, como gráficos e ícones.
37
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
■ Estruturação da programação
■ Criação de blocos de aplicação facilmente gerenciáveis
■ Reutilização de componentes
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
componente Web Dynpro. Esta comunicação ocorre também sobre as interfaces dos
componentes.
6.3 View
Uma View descreve o layout e o comportamento de uma área retangular de uma interface
de usuário.
Cada aplicativo Web Dynpro tem pelo menos uma View. O layout de uma View é composto
de elementos diferentes ou iguais de interface de usuário, que podem ser aninhados em outro
elemento. O posicionamento dos elementos de interface em uma View é definido pelas opções de
layout fornecidos.
39
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
• FlowLayout
40
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
• RowLayout
Uma vez que um elemento de interface do usuário no container define essa propriedade
como RowHeadData, todos os elementos UI do processo irá aparecer atrás dela na
mesma linha, até que um elemento UI é encontrado com esta propriedade definida como
RowHeadData, uma nova linha será iniciada.
41
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
É uma grande vantagem do RowLayout é que você pode facilmente criar estruturas de
layout consistentes utilizando as classes de células pré-definidos, que também são
fornecidas no MatrixLayout.
• MatrixLayout
É o mesmo que o RowLayout com uma funcionalidade extra, o posicionamento vertical dos
controles.
É uma grande vantagem da MatrixLayout sobre o GridLayout que você pode facilmente
criar estruturas layout consistente.
• GridLayout
42
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
• FormLayout
Um novo tipo de layout disponível a partir da versão 7.0 Ehp2, que permite a distribuição
automática das colunas com alinhamento vertical dos elementos do formulário através de
grupos de formulários.
43
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
6.5 Window
Uma Window é utilizada para combinar várias Views. Uma View só pode ser exibida pelo
navegador se tiver sido incorporada em uma Window. Uma Window sempre contém um ou mais
Views, que são conectados por links de navegação, sendo uma destas especificada como a View
de início e é exibida pela primeira vez quando a Window for chamada.
Várias Views são geralmente incorporados em uma Window Web Dynpro. Portanto, é
necessário qualificar uma View como a que será exibida em primeiro lugar, quando uma Window
for chamada. Essa View é atribuída a propriedade Default. A estrutura de navegação
subseqüente é criada usando esta View.
A entrada de uma View através de um plug inbound sempre causa a chamada de um método
manipulador de evento. É por isso que um método manipulador de evento (cuja utilização é
opcional) é gerado automaticamente para cada plug inbound. Neste caso, o plug inbound em si
representa o evento a ser tratado.
Para navegar de uma para outra View, cada plug outbound da primeira View deve estar
relacionada com o plug inbound da segunda View com a ajuda de um link de navegação.
44
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
• Um link de navegação pode ser provenientes de um plug outbound, é possivel chamar uma
série de Views de destino.
• Em contraste, um plug inbound pode ser controlado por vários plug`s outbound
45
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
Para chamar ou fechar um aplicativo da Web Dynpro usando uma interface plug, o plug relevante
inbound deve ser declarado como um plug start, e o plug de outbound relevante como um exit
plug. Você precisa interface plugs de inbound e outbound do tipo padrão para usos de
componentes - que é, precisamente quando um componente externo está sendo ligado a um
componente interno.
Plugs outbound
Plugues de outbound dentro de uma Window de condução a partir da Window do plug de inbound
de uma View. Usando esses plugs de outbound, é possível iniciar a navegação dentro da Window
com diferentes Views em vez de usar uma View de início predefinida. Você define o controle
como a que é chamado de plug de outbound usando o método de manipulador de evento da
interface do plug de chamada de outbound.
46
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
Plugs Inbound
Plugues de inbound dentro de uma Window pode ser chamado através do plug de outbound de
uma View. Assim como todos os outros plugs de inbound, eles representam um evento e, assim,
chamar o manipulador de eventos que lhes são atribuídas. Desta forma, é possível controlar
dentro da Window do controlador, que plug de outbound interno deve ser chamado. Desta forma,
você pode dinamicamente definir a chamada da view que será apresentada na Window.
47
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
6.8 Controladores
Os controladores são as partes ativas de uma aplicação Web Dynpro. Eles determinam a forma
como o usuário pode interagir com o aplicativo Web Dynpro. Os dados que um controlador pode
acessar é definido no contexto correspondente. Diferentes instâncias de controladores e
contextos existem dentro de uma aplicação Web Dynpro. Além de ver os controladores, que
controlam o comportamento de uma visão individual, há também os controladores globais que
oferecem serviços mais gerais para todas as Views de um componente.
View Controller
Cada View tem exatamente um View Controller, que processa as ações executadas pelo usuário
na exibição. A View também tem exatamente um View Context, que contém os dados
necessários para a exibição.
Um View Controller possui um Context correspondente, pelo menos, enquanto View é visível no
navegador. Se a View é substituída por Views sucessivas, os dados locais já não estarão
disponíveis. No entanto, a vida do context também pode ser conectada à vida útil do componente
ao redor.
Controllers Global
Cada componente Web Dynpro contém pelo menos um controlador global que é visível dentro do
componente para todos os outros controladores. Uma vez que os dados para esse componente
controlador foram criados a primeira vez que eles são acessados, o tempo de vida se estende
para cobrir todo o período durante o qual o componente está em uso.
48
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
Você pode adicionar outros controladores global sob a forma de controladores customizados.
Estes também duram enquanto o componente e os dados neles contidos estão disponíveis para
todas as exibições do componente.
Toda vez que há uma Window Web Dynpro, um controlador adicional global (o controlador de
Window) é adicionada ao componente.
Controladores podem conter sua própria fonte de código nas seguintes áreas:
• Manipulador de eventos
• Métodos
• Supply Functions
49
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
Interface Controller
Cada componente Web Dynpro contém exatamente um controlador de interface. Este controlador
é um controlador global que é visível também no exterior do componente. É, portanto, parte da
interface de um componente Web Dynpro.
Cada controlador possui áreas do programa em que você pode inserir seu próprio código-fonte.
Portanto, uma Application Programming Interface (API) existe para o tratamento de nós de
contexto e seus atributos e dados. A inicialização necessária de nós também pode ser executada
usando esta API. Há ainda APIs disponíveis, por exemplo, a camada de abstração de servidor
para acessar o ambiente do sistema, e as APIs para manipulação de mensagens e programação
dinâmica.
6.9 Eventos
O controlador de componente permite criar eventos.
Os eventos são usados para comunicação entre controladores e permitir que um controlador
acione manipuladores de eventos de controladores diferentes.
Plugues de entrada em uma visão também reage como um evento. Portanto, quando uma visão é
chamado usando um plug de entrada, o manipulador de eventos que está opcionalmente
disponível para o plug de entrada é sempre chamado em primeiro lugar. Neste caso, o tratamento
de eventos ocorre dentro do controlador da view atual.
50
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
O mesmo se aplica para plugs de entrada de uma view interface. No controlador Window
correspondente, um manipulador de eventos é criado. Então ele pode ser programado se,
necessário.
Elemento Eventos UI
Alguns elementos da interface, como um botão têm eventos especiais que estão relacionados
com as ações do usuário. Estes eventos são pré-definidos e devem ser ligados com uma ação
em tempo de design.
Alguns elementos da interface como o elemento Button pode reagir a interação do usuário:
clicando no botão correspondente pode desencadear um método de manipulação a ser chamado
dentro do controlador da view. Tais elementos UI estão equipados com um ou vários eventos em
geral, que podem ser ligados com uma ação específica em tempo de design (a mudança para
uma visão posterior, por exemplo). Se tal ação é criado, um método manipulador de eventos para
esta ação é criado automaticamente. Desta forma, você pode associar a um evento de um
elemento de UI (que foi inserida várias vezes em uma visão) com diferentes ações, se
necessário. O evento é então processado pelo manipulador de eventos correspondente,
dependendo da ação que está vinculado.
51
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
6.10 Context
Os dados utilizados no componente ou no modo de exibição são armazenados no contexto.
Leitura e gravação a esses dados estão disponível usando os controladores como um ponto de
partida.
Estrutura
Os dados dos contextos são gerenciados como uma estrutura hierárquica. Cada Context tem um
nó raiz, abaixo dos quais os campos de dados individuais (atributos) são armazenados em uma
estrutura de árvore. Você pode criar esta estrutura de árvore de acordo com a estrutura do seu
aplicativo.
52
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
Cardinalidades
1:1 -> O nó contém apenas uma instância do elemento, que é instanciada automaticamente.
0:1 -> O nó contém apenas uma instância do elemento, que não deve ser instanciado.
1:N -> O nó pode conter múltiplas instâncias do elemento, dos quais pelo menos um deve sempre
ser instanciado (e é instanciado automaticamente).
0:N -> O nó pode conter múltiplas instâncias do elemento, nenhuma das quais tem que ser
instanciado.
Recursão Nodes
53
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
Um elemento de interface do usuário em uma view pode estar relacionada com um elemento do
contexto.
Um mapeamento pode ser definido entre os dois contextos controlador global, ou de um contexto
de view para um controlador de contexto global.
O contexto de um controlador global pode estar ligado a um modelo Web Dynpro (Wizard).
54
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
Atributos
● WD_CONTEXT
Este atributo é uma referência para o node raiz do contexto do controlador. Independentemente
do controlador é feito referência ao tipo IF_WD_CONTEXT_NODE. Você pode usar
WD_CONTEXT e os métodos de interface para editar o conteúdo de um node de contexto em um
dos seus métodos do controlador.
method INVALIDATE_TABLE_NODE .
data: TABLE_NODE type ref to IF_WD_CONTEXT_NODE.
TABLE_NODE = WD_CONTEXT->GET_CHILD_NODE( 'MY_TABLE_NODE' ).
TABLE_NODE->INVALIDATE( ).
endmethod.
● WD_THIS
55
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
Cada controlador contém uma interface local que pode ser acessado no controlador. O atributo
WD_THIS do controlador é uma referência a esta interface local. Dependendo do controlador,
uma variável de referência é do seguinte tipo:
· IF_COMPONENTCONTROLLER
· IF_<MY_CUSTOM_CONTROLLER>
· IF_<MY_VIEW>
· IF_<MY_WINDOW>
Metodos
● WDDOEXIT:
● WDDOINIT:
● WDDOBEFORENAVIGATION:
● WDDOPOSTPROCESSING:
● WDDOMODIFYVIEW:
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
Além disso, a Interface View permite que a Window possam ser reutilizada por múltiplos
componentes Web Dynpro. Isto significa que, além de todas as Views do componente específico,
a Interface View das windows de todos os componentes são conhecidos pelo componente atual
(ou seja, para o uso do componente que foi criado) pode ser embutido em uma Window. Assim
como a View, a Interface View possui plug`s inbound e outbound que podem ser integrados na
estrutura de navegação de uma outra Window com estes plug`s. Estes plug`s de Window são
convenientes que sejam explicitamente marcados como plugs de interface e poder serem
fornecidos para a interface do componente.
57
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
Cada View pode ser exibida apenas uma vez na Window atual ao mesmo tempo, isto também se
aplica a uma Interface View de um componente usado. É possível, no entanto, declarar diversos
usos, para um mesmo componente. Desta forma, você pode exibir uma Interface View várias
vezes.
• Interface View
• Interface Controller
Uma interface view de uma windows Web Dynpro é usado para ligar uma Window com uma
aplicação Web Dynpro que pode ser chamado pelo usuário.
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
Application
O Web Dynpro aplicação é meramente ligadas a uma view interface de Web Dynpro por um plug
de entrada declarado como um plug de inicialização.
● Favorites
● text
● action
● selection
● complex
● layout
● graphic
● integration
Elementos de UI
Favorites
Esta categoria está vazia por padrão. Você pode, porém, adaptá-lo para atender às suas
necessidades específicas, movendo os elementos da interface do usuário mais freqüentemente
utilizados a partir de suas respectivas categorias para os favoritos usando Drag & Drop. Isto
permite-lhe ter todos os seus elementos de UI juntos e evita que você tenha que escolher
novamente elementos únicos de suas categorias individuais.
Text
● Caption
59
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
Este elemento UI é utilizado por uma row de elementos UI, por exemplo, Group, Tab, Table,
TableColumn e Tray, para fornecer um cabeçalho ou um título.
Exemplo:
● Explanation
Este elemento UI é usado para exibir textos de ajuda de linha única ou múltiplas linhas o
elemento de interface do usuário ou uma aplicação Web Dynpro.
Exemplo:
● FormattedTextView
Este elemento da suporte a diversos tipos de tag’s XML, XHTML, dentre outros, é utilizado para
formatação de textos simples.
Tag’s suportadas:
http://help.sap.com/saphelp_nw70/helpdata/en/08/5696420cc2c56ae10000000a155106/content.ht
m
● InputField
Exemplo:
60
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
● Label
Exemplo:
● TextEdit
Exemplo:
● TextView
Exemplo:
Action
● Button
O elemento UI botão representa o botão na tela.
Exemplo:
● ButtonChoice
61
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
Exemplo:
● LinkToAction
Exemplo:
● LinkToURL
Exemplo:
● TimedTrigger
Selection
● CheckBox
Com um CheckBox você pode implementar um único interruptor para ligar / desligar.
Exemplo:
● CheckBoxGroup
Exemplo:
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
● DropDownByIndex
Exemplo:
● DropDownByKey
Exemplo:
● ItemListBox
63
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
Este elemento UI é similar ao conceito clássico de GUI uma lista de seleção com a seleção
simples e múltipla (caixa de listagem).
Exemplo:
● RadioButton
O RadioButton elemento UI é um botão com dois estados (on / off) que permite aos usuários
selecionar as opções.
● RadioButtonGroupByIndex
Exemplo:
● RadioButtonGroupByKey
Exemplo:
● ToggleButton
Exemplo:
64
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
● ToggleLink
O ToggleLink elemento UI é usado para exibir um link de hipertexto para uma busca estendida.
Exemplo:
● TriStateCheckBox
Este elemento da interface do usuário é similar a um CheckBox, com a diferença que ao clicar
sobre as opções o estado pode ser variável:
Exemplo:
Complex
● BreadCrumb
Exemplo:
● DateNavigator
Exemplo:
65
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
● Legend
O Legend elemento UI permite que você exiba um texto descritivo para diferentes cores utilizadas
em um elemento UI atribuído.
Exemplo:
● PhaseIndicator
Exemplo:
● RoadMap
Exemplo:
● Table
Em uma tabela Dynpro Web, os dados são exibidos em duas dimensões em células de tabela
organizada em linhas e colunas.
Exemplos:
66
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
67
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
68
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
● Tree
Exemplo:
69
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
Layout
● HorizontalContextualPanel
Exemplo:
One-level
Two-level
● ContextualPanel
Este elemento da interface do usuário fornece funções de navegação. A lista de navegação pode
incluir mais de três níveis.
Exemplo:
● MessageArea
70
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
● NavigationList
O NavigationList fornece uma área de navegação e é usado, por exemplo, no Contextual Panel.
Exemplo:
● PageHeader
Exemplo:
71
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
● ButtonRow
A ButtonRow é usado para organizar vários botões em uma ordem regular. Botões e
ToggleButtons pode ser inserido.
Exemplo:
● HorizontalGutter
Exemplo:
● InvisibleElement
● MultiPane
72
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
Exemplo:
● TabStrip
Exemplo:
● ViewContainerUIElement
O elemento UI ViewContainerUIElement é uma área dentro de uma view que contém uma outra
view.
● Group
73
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
O Grupo elemento UI é um container elemento UI que pode ser usado para agrupar elementos
múltiplos de UI.
Exemplo:
● TransparentContainer
● Tray
Exemplo:
74
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
Graphic
● Gantt
75
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
● Network
76
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
● BusinessGraphics
77
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
● GeoMap
● ValueComparison
78
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
● Image
● ProgressIndicator
Interation
● InteractiveForm
Você pode usar o InteractiveForm elemento UI para inserir um formulário interativo no formato
PDF em uma view.
● BIApplicationFrame
Em um BIApplicationFrame, Templates Web que são baseados em aplicativos BEx Web pode ser
acessado usando uma URL. Vários atributos podem ser definidos para um modelo de Web. Eles
são transferidos como parâmetros usando a URL. Ao usar o BIApplicationFrame, estes
parâmetros podem ser definidos como propriedades do elemento UI.
Exemplo:
79
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
● OfficeControl
Você pode usar OfficeControl elemento UI para adicionar um documento do Office para uma
view. Isto significa que você pode exibir os documentos do Office seguinte dentro de uma
aplicação Web Dynpro:
● Microsoft Word
● Microsoft Excel
Exemplo:
80
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
● FileDownload
● FileUpload
● IFrame
A interface do usuário elemento IFrame representa uma área separada por um frame, que contém
uma página separada do navegador, dentro de uma view.
Observações!
Para maiores detalhes dos controles, como as suas classes e métodos correpondentes acesso o
link a seguir:
http://help.sap.com/saphelp_nw70/helpdata/en/cd/422b035f01914e80251a660e39ab14/content.ht
m
81
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
82
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
83
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
Este é usado para fornecimento de dados para outros componentes em uma aplicação web
dynpro, para isso deve ser criado um componente web dynpro e remover os objetos visíveis, ou
seja, window e view.
• Componentes de Interface
Este é usado para criação de um componente com uma interface comum, ou seja, manter a
uniformidade na aplicação web dynpro. Representa o mesmo conceito de OO.
• Componentes Concretos
São componentes que fornece algum serviço ou função especifica que podem ser usados em
vários pontos de uma aplicação ou de aplicações web dynpro.
Usando componentes
Este permite ter acesso aos atributos e métodos do controlador além de visualizar as views do
componente.
Chamando Componentes
84
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
method MY_CONTROLLER_METHOD .
data: L_REF_CMP_USAGE type ref to IF_WD_COMPONENT_USAGE.
L_REF_CMP_USAGE = WD_THIS->WD_CPUSE_MY_COMP_USAGE( ).
if L_REF_CMP_USAGE->HAS_ACTIVE_COMPONENT( ) is initial.
L_REF_CMP_USAGE->CREATE_COMPONENT( ).
endif.
endmethod.
6.19 Wizards
Na na barra de ferramentas do Editor acesse o button Web Dynpro Code Wizard. Uma lista
de wizards mais usados com freqüência são listados em uma janela que permite a geração de
estruturas declaração Web Dynpro.
Ao criar uma classe de assistência para um componente os seguintes benefícios são oferecidos:
● Você pode armazenar codificação necessária dentro do componente que não está ligada
diretamente com o layout ou com a função de um controlador. Este poderia ser, por exemplo,
uma chamada de camada de aplicação ou UI baseado edição dos dados.
85
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
• Modal
• Externa
Abre uma janela independente da janela atual do navegador, uma nova janela é aberta.
Para criação de uma janela popup uma nova janela deve ser criada e chamada através de um
evento. O controlador do componente contém a interface IF_WD_WINDOW_MANAGER, com a
qual uma nova janela pode ser criada com o conteúdo da caixa de dialogo.
No Web Dynpro ABAP você pode reutilizar pesquisa existentes ajuda do Dicionário ABAP. No
entanto, não há busca ajuda para todos os tipos de dados no sistema.
86
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
Exemplo
87
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
• CLEAR_MESSAGES
• REPORT_SUCCESS
• REPORT_WARNING
• REPORT_ERROR_MESSAGE
http://www.sdn.sap.com/irj/sdn/index?rid=/webcontent/uuid/f0b107e4-dc72-2c10-08a7-
b822c9abf0e2
Quando você define um ponto de interrupção (breakpoint) no debugger, ele é criado como
um ponto de interrupção padrão. Um ponto de interrupção só é válido enquanto a instância do
debugger, no qual foi definido, está ativa. Quando o depurador é fechada, todos os pontos de
interrupção definidos são excluídos.
88
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
Se você definir um ponto de interrupção no Editor ABAP, por exemplo, este ponto de
interrupção é um ponto de interrupção da sessão. Pontos de interrupção da sessão permanecem
ativas, independentemente da existência de um Debugger e são válidos para todas as sessões
externas de um logon. Dentro do debugger, você pode converter um ponto de interrupção do
debugger em um ponto de interrupção da sessão e vice-versa.
Se a definição de pontos de interrupção da sessão está ativa, você pode definir um ponto
de interrupção da sessão em uma sessão externa de um logon para forçar um programa em
execução no depurador que é executado no logon mesma (por exemplo, em uma sessão externa)
e irá processar onde o ponto de interrupção da sessão foi definido.
89
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
A partir de release 7.00, pontos de interrupção definidos pelo usuário para BSP ou
aplicações Web Dynpro também são válidas para logons pelo SAP GUI.
Através do debugger é possível exibir objetos de dados, juntamente com seus conteúdos atuais e
atributos técnicos.
Permite que você exiba as classes e suas instâncias (objetos), juntamente com seus atributos
técnicos.
90
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
http://help.sap.com/saphelp_nw70/helpdata/en/81/809d4e09f84eb98103c4317c9ee9a5/content.ht
m
91
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects
Treinamento SAP Web Dynpro For ABAP
7 Referências
• Help SAP - http://help.sap.com
• SDN – http://sdn.sap.com
• Wikipédia - http://pt.wikipedia.org/wiki
• Livro Web Dynpro for ABAP – SAP Press
• Livro ABAP Objects – SAP Press
92
Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP
Objects