Apostila WebDynpro for ABAP

April 8, 2017 | Author: belkisrosa6503 | Category: N/A
Share Embed Donate


Short Description

Download Apostila WebDynpro for ABAP...

Description

Treinamento SAP

Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP Objects Data: 23/01/12 Versão 1.0

Instrutores: Alexandre Izefler Consultor SAP NetWeaver PI / WebDynpro for ABAP [email protected] Antônio Nicácio Consultor SAP NetWeaver WebDynpro for ABAP [email protected]

Tecnologia da Informação Mult Services Ltda Rua Rio de Janeiro, 2702, 10º andar Lourdes, Belo Horizonte, MG, CEP 30160-042 Tel 55 31 3223-0400 www.grupomult.com.br

Treinamento SAP Web Dynpro For ABAP

Í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 6.20 Classe de Assistência ...................................................................................................................... 85 6.21 Trabalhando com Caixa de Dialogos (Popup) ................................................................................. 86 6.22 Ajuda na Entrada de Dados ............................................................................................................. 86 6.23 Mensagens da Aplicação ................................................................................................................. 87 6.24 ALV (ABAP List Viewer) ................................................................................................................... 88 6.25 Debugging Aplicações Web Dynpro ABAP ...................................................................................... 88 6.26 Dicas de Performance ...................................................................................................................... 91 7 Referências ............................................................................................................................................ 92

3 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.1 Duração / Tipo de Treinamento Cinco dias da semana, distribuídos em 4 horas por dia, somando um total de 20 horas. Este treinamento será presencial e orientado a projeto, ou seja, a prática é baseada no desenvolvimento de um problema de negócio que contempla todos tópicos ensinados.

1.2 Software release / Ambiente SAP NetWeaver 7.02 for ABAP. MiniSap é o ambiente para pratica do treinamento.

1.3 Pré-Requisitos Conhecimentos intermediários no desenvolvimento de software com linguagens orientadas a objetos (C#, JAVA, ABAP Objects e etc). Conhecimentos básicos no desenvolvimento de software com a linguagem ABAP (ABAP e/ou ABAP Objects).

1.4 Publico Alvo Consultores ABAP com objetivos de construir aplicações e executar manutenções de desenvolvimentos Web com a tecnologia Web Dynpro for ABAP. Profissionais que desejam conhecer as características desta tecnologia e dos recursos oferecidos. Profissionais desenvolvedores de outras tecnologias que desejam migrar para o desenvolvimento Web Dynpro for ABAP.

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.

4 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

2 Curso Orientado a Projeto 2.1 Exemplo de Negócio A empresa XPTO precisa que seja desenvolvido um frontend Web que permita ao departamento de reservas gerenciar as reservas realizadas pelos atendentes e os supervisores. Os atendentes criam as reservas, consultam reservas realizadas pelo sistema customizado e cátalogo de voo, sendo que para criar uma reserva deve ser primeiramente informado o cliente. Os supervisores além de poder fazer as mesmas funções do atendente ele pode aprovar ou rejeitar reservas.

2.2 Casos de Uso Conforme as entrevistas realizadas com os usuários chaves deste negócio, o seguinte diagrama de casos de uso foi gerado.

Criar Reserva

Consultar Reservas

Atendente

Listar Clientes Consultar Voos



Supervisor Aprovar/Rejeitar Reservas

A seguir são apresentados as descrições dos casos de uso.

• 01 - Caso de Uso – Criar Reserva Permitir o atendente da Cia Aérea incluir reservas no sistema. 5 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 1. FA01 – Entrada de dados inválidos a. O usuário deve ser notificado com as mensagens de erros encontrados no momento da criação da reserva, e a operação deve ser encerrada. 2. FA02 – Validar existência de reserva a. Deve ser validado se para o cliente selecionado já existe uma reserva, neste caso deve ser notificado o usuário com a mensagem “Já existe uma reserva para o cliente XPTO” e o caso de uso é abortado. b. Protótipo

6 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

• 02 - Caso de Uso – Consultar Reservas Permitir o atendente da Cia Aérea consultar reservas no sistema. 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

7 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

• 03 - Caso de Uso – Consultar Catálogo de Voos Permitir o atendente da Cia Aérea consultar o catálogo de vôos no sistema. Precondições • Possuir acesso ao sistema. Fluxo Principal 1. 2. 3. 4. 5. 6.

Usuário atendente acessa o sistema de reservas Usuário atendente clica no link “Consultar Livro de Vôos” Sistema lista os clientes cadastrados [CU05] Usuário atendente seleciona o cliente desejado Sistema apresenta os vôos do cliente Fim.

Fluxos Alternativos N/A Protótipo

8 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

• 04 - Caso de Uso – Aprovar/Rejeitar Reservas Permitir o supervisor da Cia Aérea aprovar/reprovar as reservas no sistema. 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

9 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

• 05 - Caso de Uso – Consultar Clientes Permitir a consulta de clientes pelo atendente e pelo supervisor no sistema. Precondições • Possuir acesso ao sistema. Fluxo Principal 1. O sistema exibe a listagem de todos os clientes cadastrados no sistema com os seguintes campos: a. Número do cliente b. Nome do cliente c. Forma de tratamento d. Rua e. Caixa Postal f. Código postal g. Cidade h. País i. Região j. Número de telefone do cliente k. Email do cliente 2. Fim. 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

2.3 Diagrama entidade relacionamento O diagrama entidade relacionamento apresenta a visão das tabelas envolvidas e seus relacionamentos. SCARR MANDT CARRID CARRNAME CURRCODE URL

CLNT (3) CHAR(3) CHAR(20) CUKY(5) CHAR(255)

SBOOK

SFLIGHT SPFLI

MANDT CARRID CONNID FLDAT E

MANDT CLNT(3) CARRID CHAR(3) CONNID NUMC(4,0)

CLNT(3) CHAR(3) NUMC(4,0) DAT S



MANDT BOOKID CARRID CONNID FLDATE CUSTOMID

CLNT(3) NUMC(8,0) CHAR(3) NUMC(4,0) DATS NUMC(8,0)



ZRESERVA

ST RAVELAG MANDT CLNT (3) AGENCYNUM NUMC(8,0)

MANDT RESERVAID CARRID CONNID FLDATE CUSTOMID SMOKER LUGGWEIGHT WUNIT CLASS AGENCYNUM STATUS BOOKID

CLNT(3) NUMC(8,0) CHAR(3) NUMC(4,0) DAT S NUMC(8,0) CHAR(1) QUAN(8,4) UNIT(3) CHAR(1) NUMC(8,0) CHAR(1) NUMC(8,0)



SCUSTOM MANDT CLNT(3) ID NUMC(8,0)



Legenda: SCARR – Contém as informações das companhias aéreas. SPFLI – Contém as rotas ou conecções oferecidas pelas companhias aéreas da tabela SCARR. SFLIGHT – Contém os vôos que servem as rotas ou conecções da tabela SPFLI. SBOOK – Catálogo de voo, contém as reservas para os vôos disponíveis na tabela SFLIGHT. SCUSTOM - Clientes STRAVELAG - Agências de viagens ZRESERVA - Reservas realizadas pela aplicação customizada

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

2.4 Diagrama de classes O diagrama de classes a seguir apresenta uma visão das classes e seus relacionamentos.

FlightBooking

FlightCustomer

+ CreateFromData () + GetList () + Confirm ()

+ GetList () 0..*

0..* 0..*

0..1 0..1

0..1 WD_ASSIST

ZCL_BO_CURSO_RESERVA + + + + + +

ReservaInserir () ReservaListar () ReservaAprovar () ReservaRejeitar () ClienteListar () CatalogoVooListar ()

0..1 0..*

+ + + +

Inserir () Listar () Aprovar () Rejeitar ()

2.5 Diagrama de componentes O diagrama de componentes a seguir apresenta uma visão dos componentes WebDynpro e seus relacionamentos.

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 Também é possível conduzir a inovação ao combinar sistemas existentes, enquanto mantém uma estrutura de custos sustentável. O SAP Netweaver foi desenvolvido sob uma arquitetura que permite ser totalmente interoperável com o Microsoft .NET e IBM WebSphere (J2EE), fornecendo aos clientes a flexibilidade para gerenciar infra-estruturas heterogêneas e minimizar a complexidade. É um conjunto de tecnologias integradas e metodologias, baseado numa profunda e longa experiência em desenvolvimento de soluções corporativas, resultando em maior escalabilidade, tempo contínuo de funcionamento e gerenciabilidade de software, bem como suporte e extensibilidade ao ciclo de vida. A plataforma NetWeaver serve ainda como base para a Enterprise Sevices Architecture (ESA), uma nova infra-estrutura de TI que combina soluções baseadas em serviços em ambientes heterogêneos e rompe possíveis barreiras técnicas existentes dentro da corporação. A ESA oferece níveis sem precedentes de adaptabilidade, flexibilidade e abertura, combinando a experiência da SAP em soluções corporativas com Web Services e outros padrões abertos. Suporte ao conceito BPM - Business Process Management - Nascendo sob o amparo da evolução de outras tecnologias (Workflow, GED, EAI, WebServices, etc.), o BPM permite a análise, definição, execução, monitoramento e administração de processos, incluindo o suporte para a interação entre pessoas e aplicações informatizadas diversas. O BPM, acima de tudo, permite que as regras de negócio da organização, na forma de processos, sejam criadas e informatizadas pelas próprias áreas de gestão, sem interferência das áreas técnicas. A plataforma SAP Netweaver promove a redução do custo total de propriedade (TCO) ao facilitar a integração e alinhamento de pessoas, informações e processos de negócios nos limites organizacionais e tecnológicos. Sendo assim, a plataforma SAP NetWeaver se traduz na melhor forma de se fazer: - INTEGRAÇÃO DE PESSOAS - SAP Portals - INTEGRAÇÃO DE INFORMAÇÕES - SAP BI/BW - INTEGRAÇÃO DE PROCESSOS - SAP XI - PLATAFORMA DE APLICAÇÃO - J2EE / ABAP - Application Server - SAP WAS / WebSphere IBM Diferenciais SAP NetWeaver: - Plataforma de integração completa em um único produto. - Amplo conteúdo de negócios disponível para a camada de integração baseado no conhecimento da SAP em processos de negócios em mais de 20 diferentes indústrias. - Arquitetura confiável, escalável, segura e provada em mais de 30 anos de experiência e 20.000 clientes. - Suporte a Java/J2EE e .Net. - Composição de novos processos sobre os sistemas existentes. - Capacidade de oferecer soluções de negócios completas, e não apenas a plataforma técnica.

3.2 Introdução a Linguagem ABAP O ABAP é uma linguagem de programação originalmente concebida como uma linguagem para construção de relatórios para o SAP R/2 (o significado original de ABAP é Allgemeiner Berichts Aufbereitungs Prozessor, que em alemão significa processador genérico para preparação de relatórios). O objetivo original da linguagem era ser uma ferramenta de programação simples para 15 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.

3.3 ABAP Workbench O componente ABAP Workbench (transação SE80) é um ambiente de desenvolvimento completo para aplicações na linguagem ABAP. Com ele, você pode criar, editar, testar e organizar estes programas de aplicação. É totalmente integrado no NetWeaver AS ABAP e com outras aplicações ABAP e possui como principais ferramentas integradas: • • • • • •

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)

3.4 Dicionário de Dados O Dicionário ABAP é usado para criar e administrar definições de dados. Habilita todos os dados usados no sistema a serem descritos centralmente, sem redundância. Todos os dados que entram no Dicionário ABAP estão disponíveis ao longo do sistema SAP. Alterações entram em vigor em todos os componentes pertinentes ao sistema pelo mecanismo de ativação. O Dicionário ABAP é um componente ativo, integrante do ABAP Development Workbench. Os objetos do Dicionário ABAP são utilizados na maioria dos programas, portanto torna-se essencial na programação o seu conhecimento. Mudanças feitas no dicionário afetam imediatamente os programas evolvidos e telas de ABAP. 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. • • • •

Se você relacionar um campo com um objeto do Dicionário de ABAP através do search help, valores possíveis são automaticamente disponibilizados para você. Escolha a tecla F4, o sistema aciona no dicionário a verificação do search help, associando um campo diretamente ou indiretamente. Se este for o caso o search help correspondente será mostrado em caixa de dialogo. Um search help definido do dicionário permite a possibilidade de selecionar os dados que você necessita.

3.5 Client Dependente e Client Independent Estes conceitos estão ligados a estrutura de dados do sistema, tabelas e relacionamentos. Deve-se entender que Client Dependent são tabelas ligadas a um único Mandante, isto é, uma determinada tabela somente é válida para o ambiente mandante no qual se efetuou o login. Mandante é uma unidade autônoma dentro do sistema SAP que separa os registros mestres e seu próprio conjunto de tabelas e dados. Explicando, são núcleos de sistemas SAP R/3 independentes, como se fossem servidores distintos, os quais são utilizados para várias tarefas distintas, como implantação, testes, aprendizado, etc. Deve-se entender que Client Independent são tabelas que não estão ligadas a um Mandante específico, isto é, uma determinada tabela é válida para todos os Mandantes de uma Instância. Na prática estes conceitos são caracterizados pelo primeiro campo de uma tabela. Para uma tabela Client Dependent este campo é sempre do tipo CLNT, com tamanho de 03 posições e por convenção é sempre identificado como MANDT. Se o primeiro campo não for do tipo CLNT, a tabela é Client Independent.

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.



Cluster: São utilizadas para armazenar dados de algumas (aproximadamente de 2 a 10) tabelas maiores. As tabelas de cluster seriam utilizadas quando essas tabelas tivessem uma parte de suas chaves primárias em comum e se os dados nessas tabelas fossem todos acessados simultaneamente. Os clusters de tabela contêm menos tabelas que os pools de tabela e, diferente dos pools de tabela, a chave primária de cada tabela dentro do cluster de tabelas começa com o mesmo campo ou campos. As linhas das tabelas de cluster são combinadas em uma única linha no cluster de tabelas. As linhas são combinadas com base na parte da chave primária que elas têm em comum. Assim, quando uma linha é lida de qualquer uma das tabelas no cluster, todas as linhas relacionadas em todas as tabelas de cluster também são recuperadas, mas apenas uma única operação de I/O é necessária. Um cluster é vantajoso no caso em que os dados são acessados a partir de múltiplas tabelas simultaneamente e essas tabelas têm pelo menos um de seus campos de chave primária em comum. As tabelas de cluster reduzem o número de leituras do banco de dados e assim melhoram o desempenho.

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. Uma tabela deverá ser buferizada quando: Tabela pequena, com poucas linhas ou poucas colunas com tamanho de campos pequenos Mais acessada para leitura Alterações não ocorrem freqüentemente Tabelas de controle/tabelas de customização são boas candidatas a buferização.

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.7 Elemento de Dados Contém os rótulos de campo e a documentação on-line (ajuda F1) para o campo. Ele é puramente descritivo, contém as características semânticas para o campo, também conhecidas como “contexto do negócio”. Os rótulos que você oferece dentro de um elemento de dados serão exibidos na tela ao lado de um campo de entrada. O elemento de dados também contém documentação que é exibida quando o usuário pede ajuda nesse campo pressionando a tecla F1.

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.

3.9 Manipulando dados no ambiente SAP Open SQL é uma linguagem de manipulação de dados (DML) que compõem um subconjunto do padrão SQL, que é totalmente integrado com o ABAP. O acesso aos dados é realizado independentemente do sistema de banco de dados instalado no ERP (Oracle, SQL Server). Além disso, o Open SQL vai além padrão SQL, fornecendo instruções que podem simplificar ou acelerar o acesso de banco de dados em conjunto com outras construções ABAP. Utilizando o Open SQL é possível criar armazenamento em buffer de tabelas, reduzindo o acesso excessivo ao banco de dados. Os dados nos buffers são sincronizados em intervalos definidos pelo gerenciamento de buffer Algumas palavras-chave Open SQL:

SELECT - Lê dados de tabelas de banco de dados. INSERT - Acrescenta linhas em tabelas de banco de dados. UPDATE - Ele muda o conteúdo de linhas de tabelas de banco de dados. MODIFY - Insere linhas em tabelas de banco de dados ou altera o conteúdo das linhas existentes. DELETE - Apaga linhas de tabelas de banco de dados. 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. SY-DBCNT: O campo de sistema SY-DBCNT contém o número de linhas do banco de dados processados depois de uma instrução SQL aberto.

3.10 Estendendo Programas Standard Existem 4 maneiras diferentes de se modificar o sistema SAP segundo as suas necessidades: Customização: Configuração do sistema através do uso de parâmetros específicos de uma interface especialmente criada para isto. As possíveis modificações podem ser pré planejadas e organizadas. Customização é sempre requerida durante as implantações do sistema. Modificações no Standard SAP: Alterações no Repositório de objetos SAP em forma de mudanças de desenvolvimento, quando as mudanças desse tipo ocorrem, a versão customizada e a nova versão do SAP precisam ser reconciliadas manualmente. Conceito de Enhancement: Alterações no Repositório SAP, porém sem mudanças no Standard. Desenvolvimento do Cliente: Criação de objetos dentro do escopo possível de nomes permitidos ( Z e Y ). 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. 1-Se desenvolvida corretamente, as alterações não irão afetar os outros países. 2- A aplicação de Hot Packages não irá apagar as alterações 3-Durante o upgrade a alteração não será apagada pela SAP, porém será necessário analisa-la / testa-la. 4- A alteração é feita em uma área permitida pela SAP. Portanto, o suporte SAP para o programa está mantido. O programador tem as possíveis modificações quando estiver criando projetos de Enhancements: User-Exit: Criando módulos de função com as partes administrativas, de interface e documentação. Menu-Exit: Definindo Códigos de Funções Novos para os Menus Screen-Exit: Definindo áreas específicas nas sub-telas do SAP. Como um programador, você pode implementar então os seguintes Enhancements: 20 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 Escrever seu próprio código nas funções do SAP ( User-Exit ) Definir novos Códigos de Função (Menu Exits ) Criar subtelas para as áreas de sub-tela Standards(Screen-Exits) Adicionar novas funções para os elementos de dados ( Field-Exits )

3.11 Transporte de requests Request é uma funcionalidade utilizada para registrar todas as modificações feitas em objetos desenvolvidos e/ou customizados. Estas modificações são organizadas em tarefas e transportadas entre ambientes do sistema após a liberação do processo de Change Request. Associando objetos à Request assegura-se que todas as modificações feitas no Abap Workbench serão registradas, possibilitando inclusive o controle das diversas versões de um objeto. As change requests do tipo customizing são reservadas para transportar conteúdo de tabelas do tipo customizing, que são tabelas que contém informações de configuração dos módulos funcionais (FI, MM, SD etc.) ou configurações do sistema. Já as change requests do tipo Workbench são para os outros tipos de objetos do repositório, como packages, tabelas transparentes, classes e programas.

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

4 Introdução ao ABAP Objects 4.1 Conceitos de OO Orientação a objeto é um método de resolução de problemas no qual o solução do software reflete objetos do mundo real. Sistemas de software complexos se tornam mais fáceis de serem compreendidos, já que a estrutura orientada a objeto fornece uma representação muito mais próxima da realidade do que as outras técnicas de programação. Em um sistema orientado a objeto bem desenvolvido, é possível implementar mudanças a nível de classe, sem ter que realizar alterações em outros pontos do sistema. Isto reduz a quantidade total de manutenção requerida. Através do polimorfismo e herança, a programação orientada a objeto permite que reutilize componentes individuais. Em um sistema orientado a objeto, a quantidade de trabalho de manutenção e revisão envolvido é reduzido, já que muitos problemas podem ser detectados e corrigidos em fase de projeto. 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. Modelamento orientado a objeto O modelamento orientado a objeto de um sistema de software é o mais importante, mais demorado, e o requerimento mais difícil para alcançar os objetivos. Design orientado a objeto envolve mais do que apenas programação orientada a objeto e fornece vantagens lógicas que são independentes da verdadeira implementação.

4.2 Introdução a programação Abap Objects Antes do R/3 Release 4.0, o equivalente mais próximo de objetos no ABAP eram módulos de funções e grupos de funções. A diferença principal entre a real orientação a objeto e grupo de funções é que apesar de um programa poder trabalhar com instâncias de diversos grupos de funções simultaneamente, ele não pode trabalhar com diversas instâncias do mesmo grupo de funções. Objetos ABAP permite que você defina dados e funções em classes ao invés de grupo de funções. Usando classes, um programa ABAP pode trabalhar com qualquer número de instâncias (objetos) baseados no mesmo template (classes). Ao invés de carregar uma única instance de um grupo de funções dentro de uma memória implícita quando um modulo é chamado, o programa ABAP pode agora gerar as instâncias de classes explicitamente. 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 Classe é um protótipo que define os dados e o comportamento comum a todos os objetos de certo tipo. Podemos dizer classes descrevem objetos. Classes podem ser declaradas globalmente ou localmente. Classes globais podem ser declaradas utilizando a transação SE24. Classes locais são declarados em um programa ABAP (relatórios etc).

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 Por meio de encapsulamento nos restringir a visibilidade dos atributos e métodos no objeto. Existem três níveis de visibilidade em OO ABAP. • 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 O nome do método é o mesmo, mas eles se comportam de forma diferente em classes diferentes. Que significa a implementação do método (ou seja, o corpo do método) é diferente em classes diferentes. Ele pode ser alcançado de duas maneiras diferentes em OO ABAP. • Interfaces • Substituição de métodos ou redefinindo os métodos de cada classe após a herança

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.

A figura a esquerda do diagrama demonstra a definição de uma interface local I1 e as partes da declaração e implementação da classe local C1 que implementa a interface I1 em sua seção pública. O método de interface I1~M1 é implementado na classe. Você não pode implementar interfaces em outras seções de visibilidade. A figura a direita ilustra a estrutura da classe com os componentes em suas respectivas áreas de visibilidade, e a implementação dos métodos. Os componentes da interface ampliam o corpo público da classe. Todos os usuários podem acessar os components públicos específicos da classe e daqueles da interface. Para criar um objeto da classe , você deve primeiro ter declarado uma variável referencial com referência a classe. Se a classe implementa uma interface , 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 e uma referência de interface para fazer com que a referência de interface em indique o mesmo objeto da referência de classe : = Se a interface contém um atributo de instance e um método de instance , você pode endereçar os componentes da interface como a seguir: Usando a variável referencial de classe : Para acessar um atributo : -> Para chamar um método : CALL METHOD -> Usando a variável referencial de interface : Para acessar um atributo : < iref>-> Para chamar um método : CALL METHOD -> Em relação a componentes estáticos de interfaces, você pode apenas utilizar o nome da interface para acessar constants: Endereçando uma constante : < intf>=> Endereçando um atributo estático : < class>=> Chamando um método estático : CALL METHOD => 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 e referências de interfaces , , e . As seguintes atribuições com referências de interfaces podem ser checadas estaticamente: = Ambas referências de interfaces devem indicar à mesma interface, ou a interface de deve conter a interface como um componente. = A classe da referência de classe deve implementar a interface da referência de interface . = A classe de 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 não indica a classe predifinida vazia OBJECT: ?= para o casting ter sucesso, o objeto o qual indica deve ser um objeto da mesma classe como o tipo da variável de classe . 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 atributoschave que permitem que o serviço de persistência garanta que o conteúdo de cada objeto persistente é único.

4.3 Tratamento de exceções baseadas em classes A ocorrência de uma exceção é utilizada para mostrar uma situação de erro, o uso de exceções baseadas em classe é um novo conceito para tratamento de exceções ocorridas em um código ABAP e não se restringe apenas a ABAP Objects, pelo contrário, exceções baseadas em classe são projetados para substituir os conceitos anteriores para tratamento de exceções. Exceções baseadas em classe pode, portanto, ser levantadas e tratadas em todos os contextos ABAP (programas, blocos de processamento). Em particular, todos os erros de execução capturáveis da forma antiga podem ser tratadas como exceções baseadas em classe. 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. Os atributos de um objeto de exceção pode conter informações sobre a situação do erro. Todas as classes de exceção são parte de uma hierarquia de herança com uma superclasse comum, CX_ROOT. Classes de exceção são subclasses das seguintes classes globais, que determinam o comportamento para propagação da exceção : • CX_STATIC_CHECK • CX_DYNAMIC_CHECK • CX_NO_CHECK • Se as exceções que são definidas usando as subclasses de CX_STATIC_CHECK são propagadas a partir de um método, elas devem ser explicitamente declarados na interface do método. A verificação de sintaxe estaticamente verifica se todas as exceções desencadeadas no método usando RAISE EXCEPTION ou declaradas nas interfaces dos métodos são manipulados com CATCH ou são declarados explicitamente na interface. Se não for, a verificação de sintaxe emite um aviso. 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 • Se as exceções que são definidas usando as subclasses de CX_DYNAMIC_CHECK são propagadas a partir de um método, eles devem ser declarados explicitamente na interface do método. Este não é, porém, verificado estaticamente pela verificação de sintaxe, mas é verificada de forma dinâmica, em tempo de execução. • Exceções que são definidas usando as subclasses de CX_NO_CHECK não devem ser declaradas explicitamente na interface do método. O classe CX_NO_CHECK e suas subclasses são implicitamente sempre declaradas e são sempre propagadas através do método.

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

5.1 O que é Web Dynpro Web Dynpro é a tecnologia da SAP UI para desenvolvimento de aplicações empresariais que possuem interfaces de usuários baseadas na Web. Consiste em um ambiente de execução e um ambiente gráfico de desenvolvimento com ferramentas especiais que são integrados em ABAP ou ambientes de desenvolvimento Java. 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. Além disso, a definição da interface do Web Dynpro é independente da tecnologia de cliente, portanto, a aplicação Web Dynpro pode rodar em diferentes plataformas (browsers, rich clients, dispositivos móveis e clients de futuras tecnologias) sem desenvolvimento ou configuração adicional.

5.2 O que é Web Dynpro for ABAP ABAP (Advanced Business Application Programming) é uma linguagem de programação proprietária para desenvolvimento de aplicativos de negócios dentro de um sistema SAP. 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).

5.3 O que é Web Dynpro for Java Java é um padrão, uma plataforma de linguagem de programação independente e orientada a objetos para desenvolvimento de aplicações de negócios baseadas na web. WDJ é o padrão de tecnologia SAP UI para o desenvolvimento de interfaces de usuário de aplicativo da Web no ambiente Java. Consiste em um ambiente de execução Java / JEE e um ambiente de desenvolvimento baseado em Eclipse (3.x) - o SAP NetWeaver Developer Studio, que oferece um ambiente de desenvolvimento para facilmente projetar, desenvolver, implementar e manter aplicações de negócios.

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

5.4 Quais são as semelhanças e diferenças entre as ferramentas? Web Dynpro Java e ABAP possuem recursos semelhantes para a criação de interfaces de usuário, mas também possuem recursos e capacidades únicas e algumas diferenças:

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). Naturalmente, também há diferenças, principalmente porque WDJ é implementado em Java e oferece um ambiente de desenvolvimento baseado em Eclipse, enquanto WDA é implementado em ABAP e completamente integrado na pilha ABAP. 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.

5.5 Benefícios Web Dynpro for ABAP Web Dynpro oferece as seguintes vantagens para os desenvolvedores de aplicação: • • • • • • • • •

O uso de ferramentas gráficas declarativa reduzindo significativamente o esforço de implementação Separação rigorosa entre layout e dados de negócio Reutilização e melhor sustentabilidade, utilizando componentes O layout e a navegação pode ser facilmente alterada utilizando as ferramentas de Web Dynpro Aplicações Stateful são suportados - isto é, se a página é alterada e os dados necessários permanecem intactos para que você possa acessá-lo a qualquer momento em todo o contexto da aplicação inteira Transporte automático de dados utilizando a ligação de dados (binding) Verificação de entrada automática Acessibilidade da interface do usuário é suportado A plena integração no ambiente de desenvolvimento ABAP

5.6 MVC (Model-View-Controller) Model-view-controller (MVC) é um modelo de desenvolvimento de Software, atualmente considerado uma "arquitetura padrão" utilizada na Engenharia de Software. O modelo isola a "lógica" (A lógica da aplicação) da interface do usuário (Inserir e exibir dados), permitindo desenvolver, editar e testar separadamente cada parte.

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

6 Web Dynpro Arquitetura 6.1 Componentes Componente Web Dynpro é uma entidade reutilizável. O conceito de componente Web Dynpro oferece uma série de vantagens: ■ Estruturação da programação ■ Criação de blocos de aplicação facilmente gerenciáveis ■ Reutilização de componentes O componente Web Dynpro contém qualquer número de Windows e Views e seus controladores correspondentes.

A criação de um componente Web Dynpro é sempre obrigatória, pois a existência das Windows, das views e dos controladores que ele contém está ligada à existência do próprio componente. A comunicação entre os elementos de dois componentes Web Dynpro é implementado usando as interfaces de componentes, por isso não faz sentido considerar as partes individuais do componente separadamente. O componente Web Dynpro pode incorporar outros componentes Web Dynpro, e consequentemente um componente Web Dynpro pode ser incorporado em qualquer outro 38 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.2 Ciclo de Vida dos Componentes A vida componente Web Dynpro começa a primeira vez que é chamado em tempo de execução e termina com o tempo de vida do aplicativo Web Dynpro que o chamou. Os componentes incorporados são instanciados apenas no momento em que eles são necessários e sua vida termina ao mesmo tempo que o componente incorporado, quando o aplicativo Web Dynpro que foi originalmente chamado é encerrado. Também é possível para o componente incorporado ser criado ou destruído através de uma API e, assim, controlar a sua vida.

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

Além da parte visível, o layout de uma View também contém um controlador e um contexto. Os dados a que os elementos da View podem ser vinculados são armazenadas e gerenciados no âmbito da View, permitindo-lhes a representação na tela. O controlador de exibição pode conter métodos para recuperação de dados ou para o processamento da entrada do usuário.

6.4 Layout’s em Web Dynpro Os layouts em aplicações Web Dynpro são associados com Containers e como os controles são posicionados em uma view. Existem 5 tipos de layouts: •

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 Cada elemento da UI é posicionado na mesma linha (row). É o layout padrão para os containers e não podem ser definidos quebras de linha.

Tecnicamente a tag em HTML usada é: A aparência final depende da tecnologia do cliente e do tamanho da janela do navegador. •

RowLayout Este layout permite inserir quebras de linhas.

A RowLayout tem um comportamento semelhante ao MatrixLayout. No entanto, ele atribui seqüencialmente os elementos de UI exatamente uma coluna. 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 No exemplo acima a raiz TransparentContainer está definido para RowLayout. Todos os elementos da interface do usuário tem o rótulo layoutdataset propriedade para RowHeadData. O botão também está definido para RowHeadData de modo que aparece em sua própria linha. Note que não há controle de espaçamento vertical. É 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.

A MatrixLayout organiza os containers filhos em um formato tabular, semelhante ao GridLayout. Você pode utilizar as propriedades stretchedHorizontally stretchedVertically para especificar se os elementos de UI correspondem ao tamanho do container. Você não pode definir explicitamente o número de colunas que você pode ao utilizar o GridLayout. É uma grande vantagem da MatrixLayout sobre o GridLayout que você pode facilmente criar estruturas layout consistente. •

GridLayout A Grid Layout é similar ao MatrixLayout com a diferença que é possível definir o posicionamento vertical e horizontal.

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

NOTA: Em vez de o GridLayout, use o MatrixLayout sempre que possível. A GridLayout organiza os containers filhos em uma grade bidimensional, com um número de coluna definidos e qualquer número de linhas. Quebras de linha podem ser definidas. Quebras de linha são inseridas automaticamente quando um elemento de interface do usuário for muito longo a ser exibido dentro de uma linha. •

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. Os labels são alinhados a esquerda e um asterico é apresentado para elementos obrigató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.

6.6 Plug e Link’s de Navegação A navegação entre View’s é feita por meio de plug`s. Os plug`s podem ser divididos em inbound e outbound. Enquanto plug`s de inbound define os possíveis pontos de entreda de uma View, os plug`s de outbound de uma View são utilizados para chamar outra View. Plugs fazem parte do controlador da View. Eles estão sempre atribuídos a exatamente uma View. 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

6.7 Plugs Inbound e Outbound Uma Window tem um ou mais plugs outbound e inbound. Usando esses plugs, uma Window pode ser incluída em uma cadeia de navegação. O conceito destes plugs, corresponde ao conceito de plugs de View. Cada plug de uma Window é visível dentro da Window inteira e pode ser usada para navegar dentro desta Window. Além disso, um ou mais plugues podem ser acessíveis para a Interface de componentes de modo que sejam visíveis, mesmo para além dos limites do componente em questão. Eles, portanto, pertencem a Interface View da Window em questão.

Plugs da Interface View

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 Se um plug existente de uma Window é adicionado à interface de componente, então é parte da Interface View que pertencem a esta Window. Estes plugs de interface são necessárias sempre: ■ Uma Window componente é incorporado em uma janela de outro componente a exibição na tela se desloca para lá. ■ Um aplicativo da Web Dynpro deve ser pulgado de modo que possa ser chamado. ■ Um aplicativo da Web Dynpro deve ser encerrado. 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 Os manipuladores de eventos são executados quando uma View é inicializada, no termino ou na entrada, quando um elemento de interface do usuário de uma View desencadeia uma ação ou quando os controladores de outros desencadeiam um evento registrado.



Métodos Métodos podem ser chamados por outros controladores.



Supply Functions As funções de abastecimento são executadas quando necessário para inicializar os elementos do contexto.

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. Comunicação de um controlador para o próximo é feito chamando os métodos de um controlador diferente, ou pelo desencadeamento de um evento em que outros controladores já estão registrados. 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. Um controlador Window é atribuído a cada Window Web Dynpro. O controlador Window é um controlador global. É visível por todos os outros controladores dentro do componente.

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. A comunicação entre componentes pode ser implementada usando eventos do controlador interface. Eventos que foram criados no controlador de componente são visíveis dentro do componente.

Plugs de entrada (Plugs Inbound) 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. Ações para Eventos elemento UI (Actions) 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

O parâmetro WD_EVENT é usado nas actions, este referencia ao CL_WD_CUSTOM_EVENT, que contém várias informações do evento que foi disparado.

tipo

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.

Cada nó de contexto contém campos de dados que pode mostrar o seguinte: • •

Uma instância individual de um tipo de objeto Instancias de tabela 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 Esta propriedade de um nó é conhecido como sua cardinalidade. A seguinte tabela resume as cardinalidades possíveis de um nó: 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 É possível dentro de um contexto, a criação de nó de recursão. O nó que é usado para a recursividade é sempre um predecessor do novo nó. O nó recursão recém-criado é uma referência a um nó predecessor e, portanto, não podem ser tratados separadamente. Em vez disso, assume a estrutura do nó a ser repetido.

6.11 Data binding e Mapping Dentro da arquitetura Web Dynpro, os contextos dos controladores podem ser ligados de maneiras diferentes: 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).

Os elementos de um contexto de exibição podem ser definidos localmente. Neste caso (representado no gráfico abaixo como um nó local), todos os atributos contidos só são visíveis dentro da visão relevantes. Quando a visão desaparece, os valores do atributo são excluídos.

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

6.12 Metodos e Atributos de Sistema Para os controladores de componentes Web Dynpro, métodos e atributos de sistemas são criados automaticamente. 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_

·

IF_

·

IF_

Metodos Todos os controladores possuem os seguintes métodos: ● WDDOEXIT: Método de limpeza do controlador. Este método é chamado automaticamente quando um controlador é encerrado. No caso do controlador de componente, este método tem um parâmetro opcional Importing (REASON) através do qual a razão para sair do componente pode ser passado. Este parâmetro só é preenchido quando há um tempo limite da sessão. Se o componente é retirado regularmente (por exemplo, usando um plug outbound), o parâmetro é definido como Initial. ● WDDOINIT: Este é o método de inicialização do controlador. Ele sempre é executado automaticamente na primeira vez que o controlador é chamado. O controlador do Componente também é equipado com os seguintes métodos: ● WDDOBEFORENAVIGATION: De tratamento de erros antes da navegação através da aplicação. ● WDDOPOSTPROCESSING: Manipulação de erros que ocorreram durante a validação de contexto.

Um controlador de view recebe automaticamente o método: ● WDDOMODIFYVIEW: Método para modificar a visão antes da renderização. Este é o único método em que dinamicamente é permitido a modificação dos controles de interface do usuário. Um parâmetro possui a informação se a view é executada pela primeira vez. 56 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.13 Interface View Cada Window tem uma única Interface View atribuída. Esta Interface View representa a visão exterior da Window. A Interface View está ligada com uma aplicação Web Dynpro para que a Window possa ser chamado através de uma URL.

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.

6.14 Interfaces de Componentes Web Dynpro Cada componente tem uma interface, a fim de permitir a comunicação entre os componentes Web Dynpro e para permitir que um componente seja chamado por um usuário. Esta interface consiste de duas partes: • •

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.

6.15 Web Dynpro Application A aplicação Web Dynpro é uma aplicação que pode ser chamado a partir da interface do usuário. Como uma unidade de programa independente que conecta uma URL que pode ser acessado pelo usuário com uma janela no componente Web Dynpro. 58 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.

6.16 Elementos UI WDA Vários elementos de interface de usuário (UI elementos) estão disponíveis no Web Dynpro Explorer para criação de layout de interface. Estes elementos de UI estão categorizados conforme a lista a seguir: ● ● ● ● ● ● ● ●

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

O elemento UI inputField permite ao usuário editar ou exibir um texto de linha única. 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

O elemento UI Label é usado para rotular elementos de interface do usuário. Exemplo:



TextEdit

UI elemento TextEdit torna possível inserir e exibir várias linhas de texto. Exemplo:



TextView

O elemento TextView UI permite exibir um texto. 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 A ButtonChoice é um botão que oferece várias opções através de um menu. Exemplo:



LinkToAction

O elemento UI LinkToAction é um link de hipertexto. A navegação dispara uma Web Dynpro action. Exemplo:



LinkToURL

O elemento UI LinkToURL é um link de hipertexto. Exemplo:



TimedTrigger

UI TimedTrigger elemento automaticamente e periodicamente dispara um evento com um intervalo especificado.

Selection ●

CheckBox

Com um CheckBox você pode implementar um único interruptor para ligar / desligar. Exemplo:



CheckBoxGroup

O CheckboxGroup permite aos usuários selecionar um elemento de um conjunto de opções prédefinidas usando a caixa de seleção. Exemplo: Single Column

Two Column

Three Column 62

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

A DropDownByIndex elemento UI oferece ao usuário uma caixa de lista suspensa. Exemplo:



DropDownByKey

A DropDownByIndex elemento UI oferece ao usuário uma caixa de lista suspensa. 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

O RadioButtonGroupByIndex elemento UI representa um número de grupos de botões de rádio em colunas e linhas. Exemplo:



RadioButtonGroupByKey

O RadioButtonGroupByKey UI é grupos de elementos múltiplos de RadioButtons em uma tabela. Exemplo:



ToggleButton

O elemento UI ToggleButton representa o botão na tela. 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: ● Opção pode ser ativado (selecionado) ● Opção não pode ser ativada (não selecionado) ● Opção é indeterminado Exemplo: Selected

Not Selected

Not Specified

Complex ●

BreadCrumb

A BreadCrumb exibe a página atual no contexto de um caminho de navegação. Exemplo:



DateNavigator

O DateNavigator elemento UI permite aos usuários visualizar e introduzir datas. 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

Semelhante à do elemento UI RoadMap, o elemento UI PhaseIndicator exibe as etapas de um assistente. Exemplo:



RoadMap

O RoadMap elemento UI mostra os passos seguidos em um assistente. 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

Hierarquias definidas no contexto pode ser visualizada usando o elemento UI 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

Este elemento da interface do usuário fornece uma estrutura de navegação similar ao ContextualPanel com uma hierarquia de navegação de dois níveis. 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 O MessageArea elemento UI representa um espaço reservado que especifica onde as mensagens, e como mensagens de erro ou avisos, deve aparecer na view.



NavigationList

O NavigationList fornece uma área de navegação e é usado, por exemplo, no Contextual Panel. Exemplo:



PageHeader

Com o PageHeader, você pode criar um título para uma página. 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

O elemento UI HorizontalGutter ajuda a estruturar o layout e as partes do texto da tela Web Dynpro, semelhante à tag HTML. Exemplo:



InvisibleElement

O InvisibleElement elemento UI é um elemento invisível na tela. Usado para orgarnizar os controles na tela. ●

MultiPane

O Multipane elemento UI é usada para ordenar o conteúdo na forma de um GRID, semelhante ao MatrixLayout, mas com a diferença que o dataSource é obrigatório.

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

O TabStrip elemento UI permite a exibição em tabs. 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: Group with Primary Color

Group with Secondary Color and Tool Bar

Group mit SAP Color



TransparentContainer

O TransparentContainer é um container UI que não pode ser exibida.Usado para orgarnizar os controles dento de uma view. ●

Tray

O elemento UI Tray (IWDTray) é um conatiner de elementos UI como o elemento container Grupo UI que e pode ser usado para agrupar um conjunto de elementos de interface do usuário. Exemplo: Tray with Plain Design

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

Tray with Fill and Menu Design

Collapsed Tray with Transparent Design

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

Crontrole para exibir imagens. ●

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

FileDownload é usado para carregar arquivado a partir do servidor para o cliente. ●

FileUpload

O FileUpload elemeto UI pode fazer upload de arquivos do cliente para o servidor. ●

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

6.17 Fases do Processo de Execução Esta seção fornece informações sobre o transporte de dados durante o processamento de requisições Web Dynpro. O gráfico a seguir mostra esquematicamente o fluxo do processo durante o transporte de dados:

O fluxo do processo de manipulação de eventos é mostrado em detalhes no gráfico a seguir:

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

1) Transferencia de dados do cliente para o Data Container, é feita para um armazenamento temporário avaliado em tempo de execução. 2) Validação da entrada do usuário, todas as entradas são checadas, em caso de erros detectados a verificação não é interrompida, os dados validos são transportados e os invalidados não são. As validações são baseadas nos tipos de dados referenciados no context. Para as inconsistências encontradas uma mensagem de erro é gerada e exibida na aplicação. 3) Transporte dos dados do container é feita para o context. 4) O evento WDDOBEFOREACTION é executado, este pode ser usado para as validações customizadas. 5) O tratamento de actions e eventos é realizado, idependentemente se os houve o transporte dos dados container para o context. Quando erros são identificados o desenvolvedor tem acesso as mensagens e pode realizar um tratamento destes dados. 6) O evento WDDOAFTERACTION é executado, centralizando os códigos comuns que são executados em vários eventos, reduzindo o esforço na manutenção do código. 7) O método WDDOBEFORENAVIGATION é executado e pode ser usado para uma validação adicional dos contextos do controlador que são necessárias na aplicação, mas não foram validadas no ciclo de request/response. Isso é importante para aplicações mais complexas Web Dynpro, em particular. Este método só pode ser usado para o controlador de componente. 8) A navegação disparada por um evento correspondente é agora executada. O Plug Inbound da view posterior é chamado e o manipulador de eventos correspondente é processado. 9) O evento WDDOMODIFYVIEW da view é executado, neste momento a visualização é criada conforme a arvore de controles, o desenvolvedor pode usar este evento para manipular dinamicamente estes controles ou adicionar novos. 10) WDDOPOSTPROCESSING , este método é chamado na última etapa do processo antes da renderização. Portanto, permite que você adicione aplicações específicas de limpeza processos. 11) Renderização, durante o processamento, a interface do usuário é exibido na tela - ou seja, a estrutura da árvore de UI e do preenchimento dos elementos do contexto.

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

6.18 Programação Cross-Component Componentes Web Dynpro são módulos reutilizáveis. Isto permite construir aplicações Web Dynpro que consistem em diferentes componentes. De dentro de um componente, uma interface permite que você use os dados e as funções de outro componente. O pré-requisito para isto é que o segundo componente deve estar disponível em tempo de execução em uma versão ativa. Tipos de componentes que podem ser criados: •

Componentes Fornecedores de Dados

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 Os componentes quando referenciado em um componente Web Dynpro, podem ser das seguintes formas: - Componente com controlador de acesso Este permite ter acesso aos atributos e métodos do controlador além de visualizar as views do componente. - Componente sem controlador de acesso Este permite ter acesso somente a visualização das views do componente.

Chamando Componentes Para visualizar um componente externo dentro de um componente, deve ser incorporado um interface view em uma das views do componente. Conforme imagem a seguir:

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

Para inicializar o componente segue um código de exemplo: 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.

Você utiliza o assistente para ajudá-lo na criação de códigos Web Dynpro.

6.20 Classe de Assistência Para cada componente Web Dynpro, você pode criar uma classe de assistência. Esta classe deve herdar da classe abstrata CL_WD_COMPONENT_ASSISTANCE. 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 Chamadas a métodos da classe de assistência são melhores do ponto de vista de desempenho do que as chamadas de métodos de um controlador de Web Dynpro. ● A segunda função importante da classe de assistência é a gestão de textos dinâmicos. Textos que são combinados apenas em tempo de execução e/ou conter variáveis que podem ser armazenados no pool text da classe assistência como símbolos de texto. A classe de assistência é instanciado automaticamente quando um componente é chamado. A instância está disponível para cada controlador do componente através do atributo WD_ASSIST.

6.21 Trabalhando com Caixa de Dialogos (Popup) As janelas popup são usadas para exibir textos ou view com elementos UI, existem dois tipos: •

Modal Abre na mesma janela atual do navegador, a view principal é bloqueada e somente liberada após o fechamento da janela modal.



Externa Abre uma janela independente da janela atual do navegador, uma nova janela é aberta.

Chamando Janelas Popup 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.

6.22 Ajuda na Entrada de Dados No contexto de uma aplicação de negócio interativo, a entrada de dados pelo usuário é de grande importância. Em um grande número de variantes de diálogo, uma entrada válida representa um elemento de um conjunto limitado de valores. O usuário pode selecionar o valor desejado de uma tabela contendo os valores possíveis. 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. Modelo de ajuda a pesquisa (Search Help)

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

6.23 Mensagens da Aplicação No Web Dynpro ABAP você pode criar e exibir mensagens que contêm informações importantes para o usuário final da aplicação Web Dynpro. Mensagens são dependentes do idioma textos que são exibidos na tela se, por exemplo, ocorre um erro quando um aplicativo é executado, ou o usuário entrou dados no formato errado. 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

Mensagens são integrados no log de mensagens de um componente usando o Message Manager (interface IF_WD_MESSAGE_MANAGER). Metodos mais usados desta interface: • • • •

CLEAR_MESSAGES REPORT_SUCCESS REPORT_WARNING REPORT_ERROR_MESSAGE

6.24 ALV (ABAP List Viewer) SAP ABAP List Viewer (ALV) é uma ferramenta flexível usada para exibir listas e estruturas tabular. Ele fornece operações de lista comum como funções padrão e pode ser melhorada pelo usuário com funções específicas. Isso permite que você use ALV em uma grande variedade de programas de aplicação. Veja exemplos detalhados do uso deste componente no link abaixo: http://www.sdn.sap.com/irj/sdn/index?rid=/webcontent/uuid/f0b107e4-dc72-2c10-08a7b822c9abf0e2

6.25 Debugging Aplicações Web Dynpro ABAP O debugger ABAP é uma ferramenta de teste integrado no ABAP Workbench. Você usá-lo para verificar a lógica do programa e encontrar erros no código fonte de um programa ABAP. 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.

Breakpoints de usuário (anteriormente conhecido como pontos de interrupção externa) são válidas para todos os logons de usuário no servidor atual do sistema atual. Pontos de interrupção do usuário são especificamente exigidos para a depuração BSP ou aplicações Web Dynpro. Nestes casos, o logon não é feito utilizando o SAP GUI, mas através de um navegador(browser), portanto, qualquer ponto de interrupção deve ser definido antes de fazer o logon. Pontos de interrupção do usuário são válidas apenas por um período de duas horas. 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.

É possível mostrar e editar o conteúdo e atributos das tabelas.

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

6.26 Dicas de Performance Acesse a seção de notas de programação Web Dynpro ABAP no link a seguir: 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

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF