SlideShare una empresa de Scribd logo
1 de 115
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
Welcome to
SAP Inside Track Sao Paulo ’09
SAP Inside Track Sao Paulo ’09




Welcome to
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
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
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
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)
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
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
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.
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
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)
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
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.
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
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
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
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
Class Definition   SAP Inside Track Sao Paulo ’09


Exemplo
Class Definition   SAP Inside Track Sao Paulo ’09


Exemplo
Class Definition   SAP Inside Track Sao Paulo ’09


Exemplo
Class Definition   SAP Inside Track Sao Paulo ’09


Exemplo
Class Definition   SAP Inside Track Sao Paulo ’09


Exemplo
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
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
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
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 ( ->).
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
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.
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].
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.
Class Definition   SAP Inside Track Sao Paulo ’09


Exemplo
Class Definition   SAP Inside Track Sao Paulo ’09


Exemplo
Class Definition   SAP Inside Track Sao Paulo ’09


Exemplo
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.
Class Definition   SAP Inside Track Sao Paulo ’09


Exemplo
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.
Class Definition   SAP Inside Track Sao Paulo ’09


Exemplo
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.
Class Definition   SAP Inside Track Sao Paulo ’09


Exemplo
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”.
Class Definition   SAP Inside Track Sao Paulo ’09


Exemplo
Class Definition   SAP Inside Track Sao Paulo ’09


Exemplo
Class Definition   SAP Inside Track Sao Paulo ’09


Exemplo
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.
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.
Class Definition   SAP Inside Track Sao Paulo ’09


Exemplo
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.
Class Definition   SAP Inside Track Sao Paulo ’09


Exemplo
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.
Class Definition   SAP Inside Track Sao Paulo ’09


Exemplo
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.
Class Definition   SAP Inside Track Sao Paulo ’09


Exemplo
Class Definition   SAP Inside Track Sao Paulo ’09


Exemplo
Class Definition   SAP Inside Track Sao Paulo ’09


Exemplo
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.
Class Definition   SAP Inside Track Sao Paulo ’09


Exemplo
Class Definition   SAP Inside Track Sao Paulo ’09


Exemplo
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.
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.
Class Definition   SAP Inside Track Sao Paulo ’09


Exemplo
Class Definition   SAP Inside Track Sao Paulo ’09


Exemplo
Class Definition   SAP Inside Track Sao Paulo ’09


Exemplo
Class Definition   SAP Inside Track Sao Paulo ’09


Exemplo
Class Definition   SAP Inside Track Sao Paulo ’09


Exemplo
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
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
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.
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)
Class Definition      SAP Inside Track Sao Paulo ’09




        Atributtes
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].
Class Definition   SAP Inside Track Sao Paulo ’09
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
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 ...].
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 ...].
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.
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:
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.
Class Definition   SAP Inside Track Sao Paulo ’09


Exemplo
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.
Class Definition   SAP Inside Track Sao Paulo ’09


Exemplo
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.
Class Definition   SAP Inside Track Sao Paulo ’09


Exemplo
Class Definition   SAP Inside Track Sao Paulo ’09


Exemplo
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.
Class Definition   SAP Inside Track Sao Paulo ’09


Exemplo
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
Class Definition   SAP Inside Track Sao Paulo ’09


Exemplo
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.
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.
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 ...].
Class Definition   SAP Inside Track Sao Paulo ’09


Exemplo
Class Definition   SAP Inside Track Sao Paulo ’09


Exemplo
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.
Class Definition   SAP Inside Track Sao Paulo ’09


Exemplo
Class Definition   SAP Inside Track Sao Paulo ’09


Exemplo
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.
Class Definition   SAP Inside Track Sao Paulo ’09


Exemplo
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.
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
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}].
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]].
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].
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 ...
Class Definition   SAP Inside Track Sao Paulo ’09


Exemplo
Class Definition   SAP Inside Track Sao Paulo ’09


Exemplo
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}].
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]].
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].
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 ...
Class Definition   SAP Inside Track Sao Paulo ’09


Exemplo
Class Definition   SAP Inside Track Sao Paulo ’09


Exemplo
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.
Class Definition   SAP Inside Track Sao Paulo ’09


Exemplo
Thank You !

Más contenido relacionado

Destacado

Abap 7 02 new features - new string functions
Abap 7 02   new features - new string functionsAbap 7 02   new features - new string functions
Abap 7 02 new features - new string functionsCadaxo GmbH
 
Comandos e funções em abap
Comandos e funções em abapComandos e funções em abap
Comandos e funções em abapalienscorporation
 
Funções - Tutorial ABAP
Funções - Tutorial ABAPFunções - Tutorial ABAP
Funções - Tutorial ABAPRicardo Ishida
 
Abap coding standards
Abap coding standardsAbap coding standards
Abap coding standardssurendra1579
 
Manikanta Sai Kumar Karri SAP ABAP and OO ABAP 3 Years.doc
Manikanta Sai Kumar Karri SAP ABAP and OO ABAP 3 Years.docManikanta Sai Kumar Karri SAP ABAP and OO ABAP 3 Years.doc
Manikanta Sai Kumar Karri SAP ABAP and OO ABAP 3 Years.docmanikanta sai kumar karri
 
ABAP Qualitäts-Benchmark: Eine Analyse von über 200 SAP Installationen
ABAP Qualitäts-Benchmark: Eine Analyse von über 200 SAP InstallationenABAP Qualitäts-Benchmark: Eine Analyse von über 200 SAP Installationen
ABAP Qualitäts-Benchmark: Eine Analyse von über 200 SAP InstallationenVirtual Forge
 
SAP ABAP Proxy Objects: Configuración del entorno
SAP ABAP Proxy Objects: Configuración del entornoSAP ABAP Proxy Objects: Configuración del entorno
SAP ABAP Proxy Objects: Configuración del entornoOreka IT
 
Abap course chapter 6 specialities for erp software
Abap course   chapter 6 specialities for erp softwareAbap course   chapter 6 specialities for erp software
Abap course chapter 6 specialities for erp softwareMilind Patil
 

Destacado (13)

Web dynpro for abap
Web dynpro for abapWeb dynpro for abap
Web dynpro for abap
 
View - Tutorial ABAP
View - Tutorial ABAPView - Tutorial ABAP
View - Tutorial ABAP
 
Abap 7 02 new features - new string functions
Abap 7 02   new features - new string functionsAbap 7 02   new features - new string functions
Abap 7 02 new features - new string functions
 
Comandos e funções em abap
Comandos e funções em abapComandos e funções em abap
Comandos e funções em abap
 
Icones - ABAP
Icones - ABAPIcones - ABAP
Icones - ABAP
 
Sap abap Q&A
Sap abap Q&A Sap abap Q&A
Sap abap Q&A
 
Funções - Tutorial ABAP
Funções - Tutorial ABAPFunções - Tutorial ABAP
Funções - Tutorial ABAP
 
Abap coding standards
Abap coding standardsAbap coding standards
Abap coding standards
 
Manikanta Sai Kumar Karri SAP ABAP and OO ABAP 3 Years.doc
Manikanta Sai Kumar Karri SAP ABAP and OO ABAP 3 Years.docManikanta Sai Kumar Karri SAP ABAP and OO ABAP 3 Years.doc
Manikanta Sai Kumar Karri SAP ABAP and OO ABAP 3 Years.doc
 
Basic abap oo
Basic abap ooBasic abap oo
Basic abap oo
 
ABAP Qualitäts-Benchmark: Eine Analyse von über 200 SAP Installationen
ABAP Qualitäts-Benchmark: Eine Analyse von über 200 SAP InstallationenABAP Qualitäts-Benchmark: Eine Analyse von über 200 SAP Installationen
ABAP Qualitäts-Benchmark: Eine Analyse von über 200 SAP Installationen
 
SAP ABAP Proxy Objects: Configuración del entorno
SAP ABAP Proxy Objects: Configuración del entornoSAP ABAP Proxy Objects: Configuración del entorno
SAP ABAP Proxy Objects: Configuración del entorno
 
Abap course chapter 6 specialities for erp software
Abap course   chapter 6 specialities for erp softwareAbap course   chapter 6 specialities for erp software
Abap course chapter 6 specialities for erp software
 

Similar a SAP Inside Track Sao Paulo '09 - ABAP Objects Overview

Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POODaniel Brandão
 
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...Manuel Menezes de Sequeira
 
SAP Fiori Development from Scratch
SAP Fiori Development from ScratchSAP Fiori Development from Scratch
SAP Fiori Development from ScratchJose Nunes
 
Reutilização
ReutilizaçãoReutilização
Reutilizaçãoemjorge
 
Dev401 novos recursos do microsoft visual basic 2010
Dev401 novos recursos do microsoft visual basic 2010Dev401 novos recursos do microsoft visual basic 2010
Dev401 novos recursos do microsoft visual basic 2010Alexandre Tarifa
 
Sap Inside Track Sao Paulo 09 Classes De Negócio Em Abap Orientado A Objetos
Sap Inside Track Sao Paulo 09 Classes De Negócio Em Abap Orientado A ObjetosSap Inside Track Sao Paulo 09 Classes De Negócio Em Abap Orientado A Objetos
Sap Inside Track Sao Paulo 09 Classes De Negócio Em Abap Orientado A ObjetosMarcelo Ramos
 
Principais novidades do Entity Framework 5.0
Principais novidades do Entity Framework 5.0Principais novidades do Entity Framework 5.0
Principais novidades do Entity Framework 5.0Fernando Henrique
 
Conceitos Básicos de OO e Java
Conceitos Básicos de OO e JavaConceitos Básicos de OO e Java
Conceitos Básicos de OO e JavaCharles Jungbeck
 
Apresentação java
Apresentação javaApresentação java
Apresentação javamunosai
 
ITSS Trainning | Curso de SAP ABAP Foundations
ITSS Trainning | Curso de SAP ABAP FoundationsITSS Trainning | Curso de SAP ABAP Foundations
ITSS Trainning | Curso de SAP ABAP FoundationsCharles Aragão
 
Observable Binding Para Atualização na UI Android
Observable Binding Para Atualização na UI AndroidObservable Binding Para Atualização na UI Android
Observable Binding Para Atualização na UI AndroidVinícius Thiengo
 
Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos Luis Ferreira
 
SAP Process Integration 7 4 otimizado para SAP HANA
SAP Process Integration 7 4 otimizado para SAP HANASAP Process Integration 7 4 otimizado para SAP HANA
SAP Process Integration 7 4 otimizado para SAP HANABlend IT Consultoria
 

Similar a SAP Inside Track Sao Paulo '09 - ABAP Objects Overview (20)

Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POO
 
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...
 
SAP Fiori Development from Scratch
SAP Fiori Development from ScratchSAP Fiori Development from Scratch
SAP Fiori Development from Scratch
 
Reutilização
ReutilizaçãoReutilização
Reutilização
 
AOP - ESJUG - 2005
AOP - ESJUG - 2005AOP - ESJUG - 2005
AOP - ESJUG - 2005
 
Programação Orientada por Objectos - Aula 1
Programação Orientada por Objectos - Aula 1Programação Orientada por Objectos - Aula 1
Programação Orientada por Objectos - Aula 1
 
Dev401 novos recursos do microsoft visual basic 2010
Dev401 novos recursos do microsoft visual basic 2010Dev401 novos recursos do microsoft visual basic 2010
Dev401 novos recursos do microsoft visual basic 2010
 
Sap Inside Track Sao Paulo 09 Classes De Negócio Em Abap Orientado A Objetos
Sap Inside Track Sao Paulo 09 Classes De Negócio Em Abap Orientado A ObjetosSap Inside Track Sao Paulo 09 Classes De Negócio Em Abap Orientado A Objetos
Sap Inside Track Sao Paulo 09 Classes De Negócio Em Abap Orientado A Objetos
 
Academia java intensivo
Academia java intensivoAcademia java intensivo
Academia java intensivo
 
Principais novidades do Entity Framework 5.0
Principais novidades do Entity Framework 5.0Principais novidades do Entity Framework 5.0
Principais novidades do Entity Framework 5.0
 
Conceitos Básicos de OO e Java
Conceitos Básicos de OO e JavaConceitos Básicos de OO e Java
Conceitos Básicos de OO e Java
 
Palestra
PalestraPalestra
Palestra
 
Apresentação java
Apresentação javaApresentação java
Apresentação java
 
ITSS Trainning | Curso de SAP ABAP Foundations
ITSS Trainning | Curso de SAP ABAP FoundationsITSS Trainning | Curso de SAP ABAP Foundations
ITSS Trainning | Curso de SAP ABAP Foundations
 
Observable Binding Para Atualização na UI Android
Observable Binding Para Atualização na UI AndroidObservable Binding Para Atualização na UI Android
Observable Binding Para Atualização na UI Android
 
Iniciando com realm
Iniciando com realmIniciando com realm
Iniciando com realm
 
Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos
 
SAP Process Integration 7 4 otimizado para SAP HANA
SAP Process Integration 7 4 otimizado para SAP HANASAP Process Integration 7 4 otimizado para SAP HANA
SAP Process Integration 7 4 otimizado para SAP HANA
 
JAVA REFLETCION
JAVA REFLETCIONJAVA REFLETCION
JAVA REFLETCION
 
Specflow - Criando uma ponte entre desenvolvedores.
Specflow - Criando uma ponte entre desenvolvedores.Specflow - Criando uma ponte entre desenvolvedores.
Specflow - Criando uma ponte entre desenvolvedores.
 

Último

ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 
Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfNatalia Granato
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 

Último (6)

ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 

SAP Inside Track Sao Paulo '09 - ABAP Objects Overview

  • 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

Notas del editor

  1. test