• Nenhum resultado encontrado

Apostila WebDynpro for ABAP

N/A
N/A
Protected

Academic year: 2021

Share "Apostila WebDynpro for ABAP"

Copied!
92
0
0

Texto

(1)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 aizefler@grupomult.com.br Antônio Nicácio Consultor SAP NetWeaver WebDynpro for ABAP anicacio@grupomult.com.br. 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.

(2) 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.

(3) 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.

(4) 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.

(5) 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 <<extend>>. Atendente. Listar Clientes Consultar Voos. <<extend>>. <<extend>> 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.

(6) 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.

(7) 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.

(8) 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.

(9) 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.

(10) 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.

(11) 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) <pk> CHAR(3) <pk> CHAR(20) CUKY(5) CHAR(255). SBOOK. SFLIGHT SPFLI. MANDT CARRID CONNID FLDAT E. MANDT CLNT(3) <pk,fk> CARRID CHAR(3) <pk,fk> CONNID NUMC(4,0) <pk>. CLNT(3) CHAR(3) NUMC(4,0) DAT S. <pk,fk> <pk,fk> <pk,fk> <pk>. MANDT BOOKID CARRID CONNID FLDATE CUSTOMID. CLNT(3) NUMC(8,0) CHAR(3) NUMC(4,0) DATS NUMC(8,0). <pk,fk1,fk2> <pk> <fk1> <fk1> <fk1> <fk2>. ZRESERVA. ST RAVELAG MANDT CLNT (3) <pk> AGENCYNUM NUMC(8,0) <pk>. 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). <pk,fk1,fk2,fk3,fk4> <pk> <fk1> <fk1> <fk1> <fk2>. SCUSTOM MANDT CLNT(3) <pk> ID NUMC(8,0) <pk>. <fk4> <fk3>. 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.

(12) 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.

(13) 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.

(14) 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.

(15) 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.

(16) 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.

(17) 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.

(18) 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.

(19) 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.

(20) 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.

(21) 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.

(22) 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.

(23) 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.

(24) 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.

(25) 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.

(26) 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.

(27) 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.

(28) 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 <class>, você deve primeiro ter declarado uma variável referencial <cref> com referência a classe. Se a classe <class> implementa uma interface <intf>, 28 Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP Objects.

(29) Treinamento SAP Web Dynpro For ABAP você pode usar a seguinte atribuição entre a variável referencial da classe <cref> e uma referência de interface <iref> para fazer com que a referência de interface em <iref> indique o mesmo objeto da referência de classe <cref>: <iref> = <cref> Se a interface <intf> contém um atributo de instance <attr> e um método de instance <meth>, você pode endereçar os componentes da interface como a seguir: Usando a variável referencial de classe <cref>: Para acessar um atributo <attr>: <cref>-><intf~attr> Para chamar um método <meth>: CALL METHOD <cref>-><intf~meth> Usando a variável referencial de interface <iref>: Para acessar um atributo <attr>: < iref>-><attr> Para chamar um método <meth>: CALL METHOD <iref>-><meth> Em relação a componentes estáticos de interfaces, você pode apenas utilizar o nome da interface para acessar constants: Endereçando uma constante <const>: < intf>=><const> Endereçando um atributo estático <attr>: < class>=><intf~attr> Chamando um método estático <meth>: CALL METHOD <class>=><intf~meth> Assim como referênciais de classes, você pode atribuir referências de interfaces para diferentes variáveis referenciais. Você pode também fazer atribuições entre ariáveis referenciais de classes e variáveis referenciais de interfaces. Quando você usa o comando MOVE ou o operador de atribuição (=) para atribuir variáveis referenciais, o sistema deve estar apto a reconhecer na verificação de sintaxe se a tribuição é possível. Suponha que tenhamos uma referência de classe <cref> e referências de interfaces <iref>, <iref1>, e <iref2>. As seguintes atribuições com referências de interfaces podem ser checadas estaticamente: <iref1> = <iref2> Ambas referências de interfaces devem indicar à mesma interface, ou a interface de <iref1> deve conter a interface <iref2> como um componente. <iref> = <cref> A classe da referência de classe <cref> deve implementar a interface da referência de interface <iref>. <cref> = <iref> A classe de <cref> deve ser predefinida como a classe vazia OBJECT. Em todos os outros casos, você teria que trabalhar com o comando MOVE …?-TO ou o casting operator (?=). O casting operator substitui o operador de atribuição (=). No comando MOVE…?29 Desenvolvimento de Aplicações Web com a Tecnologia SAP Web Dynpro for ABAP com Introdução a ABAP Objects.

(30) Treinamento SAP Web Dynpro For ABAP TO, ou quando você utiliza o casting operator, não há verificação de tipo estático. Ao invés, o sistema verifica em tempo de execução se a referência do objeto na variável de origem indica um objeto cuja referência de objeto no alvo a variável também pode indicar. Se a atribuição é possível, o sistema a faz, senão, o erro em tempo de execução MOVE_CAST_ERROR ocorre. Você deve sempre usar casting para atribuir uma referência de interface a uma referência de classe se <cref> não indica a classe predifinida vazia OBJECT: <cref> ?= <iref> para o casting ter sucesso, o objeto o qual <iref> indica deve ser um objeto da mesma classe como o tipo da variável de classe <cref>. Classes persistentes Para usar o serviço de persistência para os objetos, as classes desses objetos devem ser criados como classes persistentes no Construtor da classe. O termo classe persistente não implica que uma classe é persistente. (Como um modelo de objetos, toda classe é persistente). Pelo contrário, significa que os objetos dessa classe e seu estado são geridos pelo Serviço de Persistência. Por exemplo, os objetos dessas classes são instanciados no programa ABAP com um método do serviço de persistência, o que garante que a inicialização está correta (não com utilização do comando CREATE OBJECT). Quando o Class Builder cria uma classe persistente, ele automaticamente gera uma classe associada, conhecido como classe ator ou classe agente, cujos métodos gerenciam os objetos de classes persistentes. Bem como a sua identidade, classes persistentes pode conter 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.

(31) 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.

(32) 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.

(33) 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.

(34) 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.

(35) 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.

(36) 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.

(37) 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.

Referências

Documentos relacionados

(grifos nossos). b) Em observância ao princípio da impessoalidade, a Administração não pode atuar com vistas a prejudicar ou beneficiar pessoas determinadas, vez que é

nesta nossa modesta obra O sonho e os sonhos analisa- mos o sono e sua importância para o corpo e sobretudo para a alma que, nas horas de repouso da matéria, liberta-se parcialmente

E ele funciona como um elo entre o time e os torcedores, com calçada da fama, uma série de brincadeiras para crianças e até área para pegar autógrafos dos jogadores.. O local

No entanto, maiores lucros com publicidade e um crescimento no uso da plataforma em smartphones e tablets não serão suficientes para o mercado se a maior rede social do mundo

3.3 o Município tem caminhão da coleta seletiva, sendo orientado a providenciar a contratação direta da associação para o recolhimento dos resíduos recicláveis,

Se você vai para o mundo da fantasia e não está consciente de que está lá, você está se alienando da realidade (fugindo da realidade), você não está no aqui e

O presente termo de adesão constitui-se no único instrumento válido entre as partes, no qual o(a) CONTRATANTE adere ao Plano Corporativo para uso do Serviço de Telefonia Móvel

Frente ao exposto, este trabalho teve por objetivo avaliar discentes da disciplina de Matemática Discreta nos conteúdos de lógica formal, teoria dos conjuntos e