• Save
SAP Inside Track Sao Paulo '09 - ABAP Objects Overview
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

SAP Inside Track Sao Paulo '09 - ABAP Objects Overview

on

  • 2,636 views

 

Statistics

Views

Total Views
2,636
Views on SlideShare
2,623
Embed Views
13

Actions

Likes
5
Downloads
0
Comments
1

2 Embeds 13

http://www.slideshare.net 12
http://twitter.com 1

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • Como esperado de um excelente profissional, uma apresentação impecável.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • test

SAP Inside Track Sao Paulo '09 - ABAP Objects Overview Presentation Transcript

  • 1. SAP Inside Track Sao Paulo ’09 ABAP Objects Overview Marcelo Ramos SAP Netweaver Application Developer SAP Mentor for 2009 SDN Blogger SDN Blog & Forum Moderator
  • 2. Welcome to SAP Inside Track Sao Paulo ’09
  • 3. SAP Inside Track Sao Paulo ’09 Welcome to
  • 4. Introdução SAP Inside Track Sao Paulo ’09 Evolução do ABAP Objects Principais recursos Benefícios ao utilizar o ABAP Objects Integração com outras Tecnologias Uso de Conceitos em ABAP Objects Conceitos Básicos de Construção em ABAP Objects Conceitos Detalhados de Construção ABAP Objects
  • 5. Evolução do ABAP Objects SAP Inside Track Sao Paulo ’09 ABAP Objects foi Introduzido no SAP Basis Realease 4.5 Classes Interfaces Events ABAP Objects foi complementado no SAP Basis Realease 4.6 Inheritance Compound Interfaces Dynamic Invoke Algumas funcionalidades foram incluídas no SAP Application Server Release 6.10 e 6.20 Friends Objects Services Algumas funcionalidades foram incluídas no SAP Application Server Release 6.40 Shared Objects
  • 6. Principais Recursos SAP Inside Track Sao Paulo ’09 O Abap pode ser considerada uma linguagem orientada a objeto pelo fato de disponibilizar os principais recursos OO, dentre eles: Classes e Objetos Encapsulamento Herança Interface Evento
  • 7. Os Benefícios ao Utilizar ABAP Objects SAP Inside Track Sao Paulo ’09 A implementação do modelo orientado a objetos do ABAP é baseada em modelos de Java e C++. A implementação de elementos orientados a objeto no kernel da linguagem ABAP tem aumentado consideravelmente os benefícios quando se trabalha com objetos ABAP. Dentre os benefícios estão: Reutilização de Código de Forma Simples Clareza no Código devido ao Encapsulamento Facilidade de Manutenção Aplicações mais Seguras Puro ABAP Suporte a Programação Dinâmica Aplicações Modernas (State-Of-The-Art)
  • 8. Os Benefícios ao Utilizar ABAP Objects SAP Inside Track Sao Paulo ’09 Os Conceitos de Orientação a Objetos suportados pelo ABAP são muito parecidos aos presentes na Linguagem JAVA
  • 9. Os Benefícios ao Utilizar ABAP Objects SAP Inside Track Sao Paulo ’09 Os Conceitos de Orientação a Objetos suportados pelo ABAP são muito parecidos aos presentes na Linguagem JAVA ABAP Java
  • 10. O Uso do ABAP Objects SAP Inside Track Sao Paulo ’09 Global Class Global Class podem ser criadas e/ou visualizadas via ABAP Class Builder (SE24), Onde há uma grande variedade de classes declaradas.
  • 11. O Uso do ABAP Objects SAP Inside Track Sao Paulo ’09 Local Class Local Class podem ser criadas e/ou visualizadas via SE38 ou SE80
  • 12. O Uso do ABAP Objects SAP Inside Track Sao Paulo ’09 Web Dynpro for ABAP Aplicações Web Dynpro for ABAP utilizam ABAP Objetcs e podem ser Criados ou Visualizados via Web Dynpro Explorer (SE80)
  • 13. O Uso do ABAP Objects SAP Inside Track Sao Paulo ’09 Business Application Page (BSP) O ABAP Objects pode ser utilizado em Aplicações BSP através da Transação SE80
  • 14. O Uso do ABAP Objects SAP Inside Track Sao Paulo ’09 Kernel-BAdI BAdI’s são criadas e/ou implementadas utilizando o conceito de Orientação a Objects.
  • 15. Conceitos Básicos de Construção em ABAP SAP Inside Track Sao Paulo ’09 Objects Class Definition Class Implementation Object Definition Instance Creation Object Components Access
  • 16. Conceitos Básicos de Construção em ABAP SAP Inside Track Sao Paulo ’09 Objects Class Definition Local onde são declarados os componentes da Classe, que podem ser: Attributes Methods Events Interfaces
  • 17. Class Definition SAP Inside Track Sao Paulo ’09 Visibility Section Cada um dos Componentes devem ser definidos em uma Sessão de visibilidade, que pode ser: Public Section Protected Section Private
  • 18. Class Definition SAP Inside Track Sao Paulo ’09 Visibility Section Cada um dos Componentes devem ser definidos em uma Sessão de visibilidade, que pode ser: Public Section Protected Section Private Acessos Public Section Protected Section Private Section Própria Classe √ √ √ Sub-Classe(Herdada) √ √ X Classe Externas √ X X
  • 19. Class Definition SAP Inside Track Sao Paulo ’09 Exemplo
  • 20. Class Definition SAP Inside Track Sao Paulo ’09 Exemplo
  • 21. Class Definition SAP Inside Track Sao Paulo ’09 Exemplo
  • 22. Class Definition SAP Inside Track Sao Paulo ’09 Exemplo
  • 23. Class Definition SAP Inside Track Sao Paulo ’09 Exemplo
  • 24. Conceitos Básicos de Construção em ABAP SAP Inside Track Sao Paulo ’09 Objects Class Implementation Local onde são implementados os métodos da classe, ou seja, onde é atribuída a funcionalidade do método
  • 25. Conceitos Básicos de Construção em ABAP SAP Inside Track Sao Paulo ’09 Objects Object Definition A Definição de um objeto consiste em Declarar uma variável contendo uma referência na qual é apontada para uma Classe. Classe Local Classe Global
  • 26. Conceitos Básicos de Construção em ABAP SAP Inside Track Sao Paulo ’09 Objects Instance Creation Um Objeto após ser definido, ainda não está pronto para ser utilizado, antes, é necessário que este Objeto seja Instanciado, que consiste em alocar em memória uma referência à classe informada no momento da Definição do Objeto Classe Local Classe Global
  • 27. Conceitos Básicos de Construção em ABAP SAP Inside Track Sao Paulo ’09 Objects Object Components Access Os componentes definidos na classe podem ser acessados através de Objeto já Instanciado. Para acessar um componente fora da classe em que foi definido é necessário utilizar o Object Component Selector ( ->).
  • 28. Conceitos Detalhado de Construção em SAP Inside Track Sao Paulo ’09 ABAP Objects Class Definition Class Implementation Object Definition Instance Creation Object Components Access
  • 29. Conceitos Detalhado de Construção em SAP Inside Track Sao Paulo ’09 ABAP Objects Class Definition A definição de uma classe pode ser feita de duas formas, Global e Local. Uma classe declarada através do Class Builder( SE24 ) é chamada de Global Class e toda classe difinida desta torna-se visível em todo o sistema, ou seja, esta classe pode ser acessada por qualquer programa em todo o ambiente. Enquanto uma classe declarada de forma local torna-se acessível apenas no local onde foi definida, podendo ser acessada apenas pelo próprio programa ou Classe Global na qual a classe foi definida.
  • 30. Class Definition SAP Inside Track Sao Paulo ’09 Sintaxe CLASS class DEFINITION [INHERITING FROM superclass] [PUBLIC] [ABSTRACT] [FINAL] [DEFERRED [PUBLIC]] [LOAD] [[GLOBAL] FRIENDS <global_class1> <global_class2> ... <global_ifac1> <global_ifac2> ...]] [LOCAL FRIENDS <local_class1> <local_class2> ... <local_ifac1> <local_ifac2> ...] [CREATE {PUBLIC|PROTECTED|PRIVATE}] [SHARED MEMORY ENABLED] [FOR TESTING] [PUBLIC SECTION. [components]] [PROTECTED SECTION. [components]] [PRIVATE SECTION. [components]] [ENDCLASS].
  • 31. Class Definition SAP Inside Track Sao Paulo ’09 ... INHERITING FROM <superclass> Comando utilizado para indicar que a classe que está sendo definida é uma subclasse, ou seja, herdará componentes públicos e protegidos de uma superclasse(Classe herdada). Todas as classes dentro do ABAP Objects formam uma arvore hierárquica que tem como classe principal (root), a classe OBJECT. Uma superclasse é denominada GENERAL CLASS enquanto uma subclasse é chamada de SPECIALIZED CLASS.
  • 32. Class Definition SAP Inside Track Sao Paulo ’09 Exemplo
  • 33. Class Definition SAP Inside Track Sao Paulo ’09 Exemplo
  • 34. Class Definition SAP Inside Track Sao Paulo ’09 Exemplo
  • 35. Class Definition SAP Inside Track Sao Paulo ’09 ... ABSTRACT Define a classe como uma abstrata, ou seja, não pode ser instanciada diretamente. O acesso à seus atributos deve ser feito através de uma subclasse “não abstrata”. Uma classe é obrigatoriamente ABSTRACT sempre que haver pelo menos um método ABSTRACT.
  • 36. Class Definition SAP Inside Track Sao Paulo ’09 Exemplo
  • 37. Class Definition SAP Inside Track Sao Paulo ’09 ... FINAL Define a classe como uma classe final, ou seja, neste caso, não se pode gerar uma subclasse. Todos os métodos definidos em uma classe final são implicitamente definidos como final.
  • 38. Class Definition SAP Inside Track Sao Paulo ’09 Exemplo
  • 39. Class Definition SAP Inside Track Sao Paulo ’09 ... DEFERRED Comando utilizados para a publicação da classe. Isto é, torna a classe conhecida ao programa antes mesmo de ser definida, desta forma é possível que sejam criadas referências à classe antes de sua definição.
  • 40. Class Definition SAP Inside Track Sao Paulo ’09 Exemplo
  • 41. Class Definition SAP Inside Track Sao Paulo ’09 ... [GLOBAL] FRIENDS O comando FRIENDS torna as classes locais class1 e class2 / interfaces ifac1 e ifac2 unidas a uma classe que se deseja compartilhar. Desta forma as classes/ interfaces unidas à classe compartilhada têm acesso ilimitado aos componentes privados e protegidos da classe e ainda podem criar instâncias sem problemas. O comando GLOBAL FRIENDS torna as classes Globais class1 e class2 / interfaces ifac1 e ifac2 unidas a uma classe global que se deseja compartilhar. Este comando é gerado automaticamente ao definirmos uma lista de “FRIENDS”.
  • 42. Class Definition SAP Inside Track Sao Paulo ’09 Exemplo
  • 43. Class Definition SAP Inside Track Sao Paulo ’09 Exemplo
  • 44. Class Definition SAP Inside Track Sao Paulo ’09 Exemplo
  • 45. Class Definition SAP Inside Track Sao Paulo ’09 ... CREATE {PUBLIC|PROTECTED|PRIVATE} Especifica onde a classe pode ser instanciada, ou seja, onde o comando Create object pode ser executado para gerar uma instância da classe.
  • 46. Class Definition SAP Inside Track Sao Paulo ’09 ... CREATE PUBLIC A classe pode ser instanciada tanto em métodos da própria classe e de suas subclasses como em classes externas. É possível inserir qualquer adição CREATE PUBLIC | PRIVATE | PROTECTED para reescrever o comando herdado.
  • 47. Class Definition SAP Inside Track Sao Paulo ’09 Exemplo
  • 48. Class Definition SAP Inside Track Sao Paulo ’09 ... CREATE PROTECTED A classe pode ser instanciada somente em métodos da própria classe ou de suas subclasses. É possível inserir qualquer adição CREATE PUBLIC | PRIVATE | PROTECTED para reescrever o comando herdado.
  • 49. Class Definition SAP Inside Track Sao Paulo ’09 Exemplo
  • 50. Class Definition SAP Inside Track Sao Paulo ’09 ... CREATE PRIVATE Indica que a classe somente pode ser instanciada por seus próprios métodos. Com isto esta classe não pode ser instanciada como um componente herdado. Não possível inserir qualquer adição CREATE PUBLIC | PRIVATE | PROTECTED para reescrever o comando herdado. Também não é possível instanciar esta classe.
  • 51. Class Definition SAP Inside Track Sao Paulo ’09 Exemplo
  • 52. Class Definition SAP Inside Track Sao Paulo ’09 ... SHARE MEMORY ENABLED Comando introduzido no release 6.40. Indica a possibilidade de armazenar instâncias em shared memory (área de memória presente no application server, na qual os programas ABAP têm acesso) e shared memory objects (Área de memória na qual os objetos são armazenados através da adição AREA HANDLE do comando CREATE OBJECT). É possível inserir novos objetos à memória, alterar o objeto armazenado ou até mesmo apagá-lo.
  • 53. Class Definition SAP Inside Track Sao Paulo ’09 Exemplo
  • 54. Class Definition SAP Inside Track Sao Paulo ’09 Exemplo
  • 55. Class Definition SAP Inside Track Sao Paulo ’09 Exemplo
  • 56. Class Definition SAP Inside Track Sao Paulo ’09 Para que a classe gerada seja compartilhada em memória é necessário informar a área de memória na qual os objetos da classe poderão ser alocados. Esta tarefa é realizada na transação SHMA, que é utilizada para manipular áreas de memórias, permitindo o monitorar as atualizações realizadas na área, volume alocado na área, limite de alocação, etc.
  • 57. Class Definition SAP Inside Track Sao Paulo ’09 Exemplo
  • 58. Class Definition SAP Inside Track Sao Paulo ’09 Exemplo
  • 59. Class Definition SAP Inside Track Sao Paulo ’09 ... FOR TESTING Comando introduzido no release 6.40, For Testing define a classe como uma classe de teste, na qual interage com a ferramenta ABAP Unit e é Utilizada para efetuar testes Unitários. Classes de teste podem conter Tests Methods que são executados durante o teste do programa.
  • 60. Class Definition SAP Inside Track Sao Paulo ’09 Este tipo de classe pode conter métodos especiais que implementam o Fixture (Repositório de dados do teste) para o teste da classe. Estes métodos podem ser: SETUP - Método de instância que pode ser executados antes de cada teste individual da classe. TEARDOWN - Método de instância que pode ser executados depois de cada teste individual da classe. CLASS_SETUP - Método de estático que pode ser executados uma única vez antes de todos os testes da classe. CLASS_TEARDOWN - Método de estático que pode ser executados uma única vez depois de todos os testes da classe.
  • 61. Class Definition SAP Inside Track Sao Paulo ’09 Exemplo
  • 62. Class Definition SAP Inside Track Sao Paulo ’09 Exemplo
  • 63. Class Definition SAP Inside Track Sao Paulo ’09 Exemplo
  • 64. Class Definition SAP Inside Track Sao Paulo ’09 Exemplo
  • 65. Class Definition SAP Inside Track Sao Paulo ’09 Exemplo
  • 66. Class Definition SAP Inside Track Sao Paulo ’09 Visibility Section Acessos Public Section Protected Section Private Section Própria Classe √ √ √ Sub-Classe(Herdada) √ √ X Classe Externas √ X X
  • 67. Class Definition SAP Inside Track Sao Paulo ’09 Visibility Section Acessos Public Section Protected Section Private Section Própria Classe √ √ √ Sub-Classe(Herdada) √ √ X Classe Externas √ X X
  • 68. Class Definition SAP Inside Track Sao Paulo ’09 Components Como já citado anteriormente uma classe é composta por componentes que devem ser declarados dentro das respectivas visibilidades; Public, Protected ou Private. Atributos - Formado por declarações de TYPE-POOLS, TYPES, DATA, CLASS-DATA, CONSTANTS e STATICS . Métodos – Bloco de processamento na qual define as ações da classe. Eventos – Tem como função executar métodos chamados de EVENT HANDLER. Interfaces - Interfaces são construções independentes que complementa a seção publica de uma classe.
  • 69. Class Definition SAP Inside Track Sao Paulo ’09 Attributes Os atributos de uma classe podem ser definidos com o auxílio de tipos de dados definidos (Complete types) ou tipos genéricos (Generic types)
  • 70. Class Definition SAP Inside Track Sao Paulo ’09 Atributtes
  • 71. Class Definition SAP Inside Track Sao Paulo ’09 Os atributos de uma classe podem ser divididos em duas categorias: Instance – Define componentes de instância, na qual terá uma área de memória para cada instância da classe. DATA <nome> [opções]. Static – Define componentes estáticos, não importando quantas instâncias a classe possui, uma única área de memória é compartilhada por todos os componentes estáticos. CLASS-DATA <nome> [opções]. CONSTANTS <nome> [opções]. STATICS <nome> [opções].
  • 72. Class Definition SAP Inside Track Sao Paulo ’09
  • 73. Class Definition SAP Inside Track Sao Paulo ’09 Methods Um método se comporta de forma semelhante aos performs, são processados em bloco podendo ter parâmetros de interface (I/O parâmetros). Dentro do bloco de processamento é possível declarar tipos de dados, na qual será visível apenas dentro de bloco. Ao contrário de forms, um método é declarado e implementado separadamente. Os métodos podem ser classificados de varias formas: General Methods e Functional Methods General Methods e Functional Methods podem ser definidos como Instance Methods e Static Methods Instance constructor e Static Constructor
  • 74. Class Definition SAP Inside Track Sao Paulo ’09 General Methods Permite um número indeterminido de parâmentros, tanto IMPORTING, ou CHANGING como EXPORTING Sintaxe METHODS meth [ABSTRACT|FINAL]    [IMPORTING parameters [PREFERRED PARAMETER p]]    {[EXPORTING parameters]    [CHANGING  parameters]    [{RAISING|EXCEPTIONS} exc1 exc2 ...].
  • 75. Class Definition SAP Inside Track Sao Paulo ’09 Functional Methods Permite um número indeterminado de parâmetros de Importação, e apenas um parâmetro de exportação (RETURNING). Sintaxe METHODS meth [ABSTRACT|FINAL]    [IMPORTING parameters ]    RETURNING VALUE(r) typing    [{RAISING|EXCEPTIONS} exc1 exc2 ...].
  • 76. Class Definition SAP Inside Track Sao Paulo ’09 ... RETURNING Define um parâmetro de retorno na qual deve ser passado por valor. A chamada de um método contendo um parâmetro returning pode ser de diversas maneiras.
  • 77. Class Definition SAP Inside Track Sao Paulo ’09 Via call method. Como atribuição, onde a chamada do método é feita por um comando de atribuição Como operação, onde a chamada do método é feita por um comando de operação. Dentre eles:
  • 78. Class Definition SAP Inside Track Sao Paulo ’09 ... ABSTRACT Define um método como abstrato, desta forma o método não é implementado na própria classe, e sim redefinido na subclasse utilizando o comando REDEFINITION. Um método abstrato deve ser definido apenas em uma classe abstrata.
  • 79. Class Definition SAP Inside Track Sao Paulo ’09 Exemplo
  • 80. Class Definition SAP Inside Track Sao Paulo ’09 ... FINAL Define um método como final, desta forma o método deve ser implementado na própria classe e não é permitida sua redefinição em subclasses. Uma classe “não final” pode conter um ou mais métodos final, porém se uma classe é declarada como final o método não pode ser declarado como abstract já que todos os métodos são implicitamente final.
  • 81. Class Definition SAP Inside Track Sao Paulo ’09 Exemplo
  • 82. Class Definition SAP Inside Track Sao Paulo ’09 ... RAISING Define uma lista de classes de exceção (class-based exceptions) que se tornaram visíveis sempre que um erro ocorrer. O que torna mais dinâmico o tratamento de erros.
  • 83. Class Definition SAP Inside Track Sao Paulo ’09 Exemplo
  • 84. Class Definition SAP Inside Track Sao Paulo ’09 Exemplo
  • 85. Class Definition SAP Inside Track Sao Paulo ’09 Instance Methods Instance methods são definidos através do comando METHODS e acessíveis somente através de uma instância da classe O acesso a métodos de instância deve ser feito com o auxilio do “->“ denominado Object component selector sempre após um objeto de referência da classe a ser instanciada.
  • 86. Class Definition SAP Inside Track Sao Paulo ’09 Exemplo
  • 87. Class Definition SAP Inside Track Sao Paulo ’09 Static Methods Static Methods são definidos através do comando CLASS-METHODS e acessíveis mesmo sem uma instância da classe O acesso a métodos estáticos não depende de uma instância da classe, neste caso deve ser feito com o auxilio do “=>“ denominado Class component selector
  • 88. Class Definition SAP Inside Track Sao Paulo ’09 Exemplo
  • 89. Class Definition SAP Inside Track Sao Paulo ’09 Constructor Method ABAP Objects possui um método especial denominado Constructor. Especial porque se diferencia dos outros pelo fato de ser executado automaticamente.
  • 90. Class Definition SAP Inside Track Sao Paulo ’09 Instance Constructor Um Construtor de Instância é executado automaticamente sempre que o objeto na qual o método faz parte for instanciado. O método deve ser definido com o nome construtor. Cada classe pode ter um método construtor declarado explicitamente na seção publica de uma classe. Caso não haja um método declarado, implicitamente o sistema chama o método construtor da classe pai (superclasse), caso exista uma relação de herança. Ao contrário de outros métodos, o construtor permite apenas parâmetros IMPORTING, além de EXCEPTIONS e RAISING. Um método construtor é implicitamente FINAL por isso não há a necessidade de utilização do comando FINAL.
  • 91. Class Definition SAP Inside Track Sao Paulo ’09 Instance Constructor Não é possível chamar um método construtor utilizando o comando call method, exceto em caso onde é definido um método construtor em uma subclasse, neste caso é necessário utilizar o super pseudo reference ‘SUPER->’ da seguinte forma: call method super->constructor. Este assunto será explicado com mais detalhes em herança. Um método construtor não pode sofrer uma REDEFINIÇÃO com o auxilio de REDEFINITION. Isto porque ao definir um método construtor na subclasse, implicitamente estamos redefinindo o método construtor da classe superclasse. Sintaxe METHODS constructor [FINAL]  [IMPORTING parameters]    [{RAISING|EXCEPTIONS} exc1 exc2 ...].
  • 92. Class Definition SAP Inside Track Sao Paulo ’09 Exemplo
  • 93. Class Definition SAP Inside Track Sao Paulo ’09 Exemplo
  • 94. Class Definition SAP Inside Track Sao Paulo ’09 Static Constructor Da mesma forma que construtores de instância os construtores estáticos são executados automaticamente, com uma diferença, construtores estáticos são executados uma única vez para cada classe, antes da classe sofrer seu primeiro acesso. Isto porque, como explicado anteriormente, métodos estáticos não dependem de instância. Cada classe pode ter um método construtor declarado explicitamente na seção publica de uma classe. Caso não haja um método declarado, implicitamente o sistema define o método construtor sem qualquer conteúdo. Da mesma forma que método estático, construtores estático podem acessar apenas componentes estáticos. Um método construtor estático não pode sofrer uma REDEFINIÇÃO. Ao instanciar um objeto, automaticamente o sistema executa o método mais distante na hierarquia de classe. Ao contrário dos métodos de Instância, o construtor Estático não permite qualquer parâmetro. Sintaxe CLASS-METHODS class-constructor.
  • 95. Class Definition SAP Inside Track Sao Paulo ’09 Exemplo
  • 96. Class Definition SAP Inside Track Sao Paulo ’09 Exemplo
  • 97. Class Definition SAP Inside Track Sao Paulo ’09 Redefinition A redefinição do método é feita através da subclasse, e somente é permitida para métodos de instância não definidos como final, ou seja, um método de instância herdado da classe pai pode ser redefinido na classe filha. Desta forma o mesmo método tem funcionalidade diferente para a superclasse e subclasse. Sintaxe METHODS meth [FINAL] REDEFINITION.
  • 98. Class Definition SAP Inside Track Sao Paulo ’09 Exemplo
  • 99. Class Definition SAP Inside Track Sao Paulo ’09 Events Evento é um componente de uma classe que tem como função disparar o EVENT HANDLER, que por sua vez tem a função de manipular o evento. Para que seja executado, o evento precisa ser disparado por um método com o auxilio de RAISING EVENT que funciona como um “gatilho”. O EVENT HANDLER é executado após ser ativado através do comando SET HANDLER. É possível executar uma série de métodos (event Handler) a partir de um único evento. Eventos podem ser divididos em dois tipos , Instance Event e Static Event, que se diferenciam um do outro pelo fato de Instance events somente poder ser ativados a partir de uma instância da classe, enquanto Static event não depende de instância para ser utilizado. Eventos podem ter apenas parâmetros de exportação, incluindo um o parâmetro SENDER que somente é utilizado para os eventos de instância.
  • 100. Class Definition SAP Inside Track Sao Paulo ’09 Definição do Evento Definição e implementação do Event Handler Associação do Evento como o Event Handler que é feita através do SET HANDLER Chamada do evento através do Comando RAISE EVENT
  • 101. Class Definition SAP Inside Track Sao Paulo ’09 Instance Events Instance events somente poder ser ativados a partir de uma instância da própria classe. Eventos podem ter apenas parâmetros de exportação, incluindo um o parâmetro SENDER que somente é utilizado para os eventos de instancia. Este parâmetro é definido de forma implícita em todos os eventos de instância, não sendo possível sua definição explicita. Ao disparar o event handler, automaticamente o sistema define o SENDER com referência a classe definida no evento handler após o comando FOR EVENT evt OF <ref_para_classe> durante a definição do event handler. Ou seja, é atribuída ao SENDER a própria referência do objeto que executa o comando RAISE EVENT. Sintaxe EVENTS evt EXPORTING VALUE(p1) typing [OPTIONAL|{DEFAULT def1}]      VALUE(p2) typing [OPTIONAL|{DEFAULT def2}].
  • 102. Class Definition SAP Inside Track Sao Paulo ’09 Instance Event Handler Depois de disparados, os Eventos de Instância são manipulados através dos métodos manipuladores denominados de instance Event Handler, ou seja, event handlers são executados quando um evento é executado, podendo também ser executado através de CALL METHOD. Sintaxe METHODS meth [ABSTRACT|FINAL]    FOR EVENT evt OF {class|intf}    [IMPORTING p1 p2 ... [sender]].
  • 103. Class Definition SAP Inside Track Sao Paulo ’09 Set Handler SET HANDLER tem a função de gerenciar os registros de eventos de instância e seus respectivos métodos manipuladores, isto é feito através de diversas tabelas de sistema. Cada registro de evento corresponde a uma linha na tabela de sistema na qual tem a informação de evento e event handler. Cada instance event handler pode manipular apenas um evento, porém cada evento pode ser manipulado por vários instance event handlers. Sintaxe SET HANDLER handler1 handler2 ... FOR { oref | { ALL INSTANCES} } [ACTIVATION act].
  • 104. Class Definition SAP Inside Track Sao Paulo ’09 Raise Event Eventos são disparados através de métodos com o auxilio de RAISING EVENT que funcionam como gatilhos. Isto é, ao executar o comando RAISE EVENT todos os event handlers registrados para o evento com o auxilio de SET HANDLER são executados. A execução dos event handlers segue a mesma ordem definida durante o registro do evento em set handler. Sintaxe RAISE EVENT evt EXPORTING p1 = a1 p2 = a2 ...
  • 105. Class Definition SAP Inside Track Sao Paulo ’09 Exemplo
  • 106. Class Definition SAP Inside Track Sao Paulo ’09 Exemplo
  • 107. Class Definition SAP Inside Track Sao Paulo ’09 Static Events Static Evento tem a mesma função de Instance event, porém não depende de nenhuma instância para ser executado. Sintaxe CLASS-EVENTS evt EXPORTING VALUE(p1) typing [OPTIONAL|{DEFAULT def1}]      VALUE(p2) typing [OPTIONAL|{DEFAULT def2}].
  • 108. Class Definition SAP Inside Track Sao Paulo ’09 Static Event Handler Depois de disparados, os Eventos Estáticos são manipulados através dos métodos manipuladores denominados de Static Event Handler, ou seja, event handlers são executados quando um evento é executado, podendo também ser executado através de CALL METHOD. Sintaxe CLASS-METHODS meth   FOR EVENT evt OF {class|intf}   [IMPORTING p1 p2 ...[sender]].
  • 109. Class Definition SAP Inside Track Sao Paulo ’09 Set Handler SET HANDLER tem a função de gerenciar os registros de eventos Estáticos e seus respectivos métodos manipuladores, isto é feito através de diversas tabelas de sistema. Cada registro de evento corresponde a uma linha na tabela de sistema na qual tem a informação de evento e event handler. Cada Static event handler pode manipular apenas um evento, porém cada evento pode ser manipulado por vários instance event handlers. Sintaxe SET HANDLER handler1 handler2 ... [ACTIVATION act].
  • 110. Class Definition SAP Inside Track Sao Paulo ’09 Raise Event Eventos são disparados através de métodos com o auxilio de RAISING EVENT que funcionam como gatilhos. Isto é, ao executar o comando RAISE EVENT todos os event handlers registrados para o evento com o auxilio de SET HANDLER são executados. A execução dos event handlers segue a mesma ordem definida durante o registro do evento em SET HANDLER. Sintaxe RAISE EVENT evt EXPORTING p1 = a1 p2 = a2 ...
  • 111. Class Definition SAP Inside Track Sao Paulo ’09 Exemplo
  • 112. Class Definition SAP Inside Track Sao Paulo ’09 Exemplo
  • 113. Class Definition SAP Inside Track Sao Paulo ’09 Interface Interfaces são construções independentes que complementa a seção publica de uma classe. A definição de uma Interface é similar à definição de uma classe que contém somente métodos abstratos. Ao contrário de uma classe, interfaces não possuem implementação. Isto porque a implementação é feita na classe que utiliza a interface. A implementação de uma interface em uma classe é feita após o comando PUBLIC SECTION e o acesso aos componentes de uma interface deve ser feito com o auxilio de ‘~’, denominado interface component selector, que deve ser utilizado da seguinte maneira: Interface~componente. Sintaxe INTERFACE ifac [PUBLIC] [DEFERRED [PUBLIC]] [LOAD].    [components] ENDINTERFACE.
  • 114. Class Definition SAP Inside Track Sao Paulo ’09 Exemplo
  • 115. Thank You !