Академический Документы
Профессиональный Документы
Культура Документы
Capacitacin SAP
Proyecto Soporte Foscal
apacitacin SAP
royecto Soporte Foscal
Pgina 2
Contenido
Pgina 3
Mdulo de funciones 1
Mdulo de funciones 2
Mdulo de funciones 3
Pgina 5
Nombramiento de componentes
Grupo
Grupo de
de funciones
funciones ZFGR_TEST
ZFGR_TEST
Function Pool SAPLZFGR_TEST
Include LZFGR_TESTTOP
FUNCTION-POOLZFGR_TEST.
* Definicin de datos globales
Include LZFGR_TESTUXX.
INCLUDELZFGR_TESTU01.
INCLUDELZFGR_TESTU02.
Include LZFGR_TESTU01
FUNCTIONZFMOD_1.
ENDFUNCTION.
Include LZFGR_TESTU02
FUNCTIONZFMOD_2.
ENDFUNCTION.
Pgina 6
Pgina 7
Pgina 8
Pgina 9
Pgina 11
Herramientas ALV
El conjunto de herramientas ALV a cambiado con el tiempo y
existen 3 herramientas en la actualidad:
La primer herramienta que cre SAP fue el conjunto de
mdulos de funciones REUSE_ALV* que llegaron con la versin
Basis release 4.0. Este conjunto de herramientas naci con
finalidad de uso interno de SAP, aunque los clientes
comenzaron a usarla y SAP permiti que se hiciera.
Luego con la versin Basis release 4.6 SAP liber otra
herramienta, ya basada en objetos. Parte de este conjunto de
herrmientas permaneci para uso interno de SAP pero permiti
para uso de clientes la clase CL_GUI_ALV_GRID.
Finalmente en la versin SAP NetWeaver2004 (Basis 6.40) SAP
intrujo un nuevo conjunto de herramientas llamado ALV Object
Model, este conjunto de herramientas fue liberado por SAP
tanto para uso interno como para uso de clientes.
Pgina 14
REUSE_ALV_GRID_DISPLAY
SELECT
SELECT
DB
DB
Tabla
Tabla
Intern
Intern
aa
Tabla
Tabla
Intern
Intern
aa
FIELDCAT
FIELDCAT
CALL
CALL FUNCTION
FUNCTION
REUSE_ALV_GRID_DISPLAY
REUSE_ALV_GRID_DISPLAY
Listado
Listado en
en
Pantalla
Pantalla
Pgina 15
las columnas
T_outtab que representa la tabla con los registros del
reporte
Pgina 16
Objetos ABAP
Objetos ABAP
En la versin Basis 4.0 SAP introdujo el concepto de orientacin a
objetos como parte del lenguaje de programacin ABAP,
extendiendo el mismo. Esta extensin se basa en el lenguaje ya
existente, siendo compatible con l. Se pueden usar objetos en
programas existentes, de la misma manera que se pueden usar
sentencias ABAP convencionales en programas ABAP orientados a
objetos.
La programacin orientada a objetos en ABAP utiliza los
componentes CLASE y OBJETO como la base fundamental de
esta herramienta como se hace en la mayora de los lenguajes de
programacin que permiten este tipo de modelo de
programacin. Las clases en ABAP poseen 3 tipos de
componentes:
Atributos
Mtodos
Eventos
Pgina 17
Objetos ABAP
Una clase no es ms que una serie de cdigo que define a todos
los elementos relacionados con ella. As, podramos escribir la
clase Perro colocando en ella todas las caractersticas que tienen
los perros (altura, peso, color, etc) esas caractersticas las
llamaremos atributos.
Los perros poseen mecanismos para realizar acciones, como
comer, dormir, ladrar, etc. A estos mecanismos los llamamos
mtodos.
Por ltimo, tambin sabemos que las perros reaccionan ante
ciertos sucesos, como peligro, atraccin, hambre, etc. A esto lo
llamaremos eventos.
Una clase simboliza la definicin de un objeto, pero no es el
objeto en s, del modo como una idea no es una cosa fsica. As
que para sentarnos necesitaremos convertir esa idea en algo, en
un objeto real; a ese objeto lo llamamos instancia.
Cada vez que creamos una nueva instancia, sta adquiere
atributos, mtodos y eventos de la clase a la que pertenece,
sin 18
Pgina
Objetos ABAP
Tipos de clases
SAP desarroll esta funcionaliad de manera que las clases puedan
ser declaradas de dos maneras distintas, como clases locales o
como clases globales.
Las clases locales se definen e implementan dentro del programa
donde queramos utilizarla y slo puede ser accedida desde ese
programa.
Las clases globales en cambio se definen en el generador de
clases, a travs de la transaccin SE24 en el ABAP Workbench.
Estas clases son almacenadas en el Class Pools en la librera de
clases en el Repositorio R/3. Todos los programas ABAP en un
sistema R/3 pueden acceder a las clases globales.
Cuando se usa una clase en un programa ABAP el sistema busca
primero una clase local con el nombre especificado. Si no
encuentra ninguna entonces busca una clase global. A parte de la
cuestin de la visibilidad, no hay ninguna diferencia entre usar
Pgina 19
una clase global o una clase local. Lo que si cambia
Objetos ABAP
Si se define una clase que se va a usar en un nico programa,
normalmente es suficiente con definir los componentes visibles
de manera que la clase se ajuste a nuestro programa. Por otro
lado, las clases globales deben estar preparadas para ser usadas
en cualquier parte.
Pgina 20
Objetos ABAP
La parte declarativa contiene la declaracin de todos los
componentes de la clase (atributos, mtodos y eventos). Cuando
se definen clases locales, la parte declarativa pertenece a los
datos globales del programa, por tanto se habr de situar al
principio del programa.
Si se declaran mtodos en la parte declarativa de una clase, se
deber escribir tambin su parte de implementacin. sta es la
que va incluida entre las siguientes sentencias:
CLASS <nombre_clase> IMPLEMENTATION.
ENDCLASS.
La parte de implementacin contiene la implementacin de todos
los mtodos de la clase. Esta parte acta como un bloque, esto
quiere decir que cualquier seccin de cdigo que no forme parte
del bloque no ser accesible.
Pgina 21
Objetos ABAP
Pgina 22
Objetos ABAP
Hay dos tipos de componentes en una clase, aquellos que existen
separadamente para cada objeto de una clase, y aquellos que
existen slo una vez para la clase entera, independientemente
del nmero de instancias. Estos componentes son conocidos
como dependientes de instancia o estticos
respectivamente.
Atributos
Existen dos tipos de atributos:
Dependientes de instancia: donde el contenido de los
atributos es especfico de cada objeto. Se declaran usando la
sentencia DATA.
Independientes de instancia o estticos: donde el
contenido de los atributos define el estado de la clase y es
vlido para todas las instancias de la clase. Los atributos
estticos existen slo una vez para la clase. Se declaran
usando la sentencia CLASS-DATA. Son accesibles desde todo
el entorno de ejecucin de la clase. Todos los objetos de una
clase pueden acceder a sus atributos estticos. Si se cambia un
Pgina 23
atributo esttico en un objeto, el cambio es visible en todos los
Objetos ABAP
Mtodos
Los mtodos pueden acceder a todos los atributos de una clase.
Esto les permite cambiar el contenido de los atributos de un
objeto.
Los mtodos poseen tambin una interface con parmetros que
les permite recibir valores cuando son invocados y devolver
valores despus de la llamada. Los atributos privados de una
clase slo pueden ser cambiados por mtodos de la misma clase.
La definicin y la interface de un mtodo son similares a las de
los mdulos de funciones. Un mtodo se define en la parte
declarativa de la clase y se implementa en la parte de
implementacin usando las sentencias:
Definicin:
METHODS <nombre_metodo>.
Implementacin:
Pgina 24
Objetos ABAP
Se pueden declarar tipos de datos locales y objetos en los
mtodos de la misma manera que en cualquier otro
procedimiento ABAP. Los mtodos se llaman mediante la
sentencia CALL METHOD .
Existen tres tipos de mtodos:
Dependientes de instancia: estos mtodos se declaran
usando la sentencia METHODS. Pueden acceder a todos los
atributos de una clase y pueden desencadenar todos los
eventos de una clase.*
Independientes de instancia o estticos: estos mtodos se
declaran usando la sentencia CLASS-METHODS. Slo pueden
acceder a los atributos estticos y desencadenar eventos
estticos.
Especiales: adems de los mtodos normales que se pueden
llamar con la sentencia CALL METHOD, hay dos mtodos
especiales llamados CONSTRUCTOR y CLASS_CONSTRUCTOR
que son automticamente llamados cuando se crea un objeto
Pgina 25
Objetos ABAP
Eventos
Los eventos son un mecanismo mediante el cual una clase puede
llamar a mtodos de otras clases sin tener que instanciar las
mismas o incluso sin tener que conocer a tales clases.
El manejo de eventos implica 4 pasos:
Declaracin del evento en la clase.
Instruccin EVENTS <evento>
Disparo de un evento desde algun mtodo de la clase.
Instruccin RAISE EVENT <evento>
Creacin de un manejador de eventos en la misma o una clase
distinta.
Instruccin METHODS <nombre> FOR EVENT <evento>
Registro del manejador de evento.
Instruccin SET HANDLER <manejador> FOR <objeto>
Pgina 26
Objetos ABAP
Objetos ABAP
Instancias
Los objetos son instancias de las clases. Cada objeto tiene una
identidad propia y tiene sus propios atributos. Todos los objetos
transitorios residen en el contexto de una sesin interna ( rea de
memoria de un programa ABAP ). Una clase puede tener un
nmero indefinido de instancias.
Para acceder a un objeto se utilizan las referencias. Las
referencias son un tipo especial de variable que apunta a un
objeto en memoria (o se encuentra en estado inicial). Se declaran
utilizando una variacin de la instruccin DATA de la siguiente
manera:
DATA <instancia> TYPE REF TO <clase>.
Una referencia a clase permite al usuario crear una instancia, o
sea un objeto, de la clase y acceder a un componente visible de
la siguiente manera:
<instancia>->componente
Pgina 28
Objetos ABAP
Antes de crear un objeto de una clase es necesario declarar una
variable referenciada con la referencia a la clase. Una vez que se
ha declarado la referencia a la clase , se puede crear el objeto
usando la sentencia CREATE OBJECT. Esta sentencia crea una
instancia de la clase y la variable referenciada contiene la
referencia al objeto.
Ejemplo:
DATA reporte TYPE REF TO cl_reporte.
CREATE OBJECT reporte.
Cuando se instancia una clase se invoca, si ste se ha definido, a
un mtodo especial llamado CONTRUCTOR que se utiliza para
inicializar los atributos internos de la clase.
Pgina 29
Objetos ABAP
Pgina 30
Objetos ABAP
Pgina 31
Objetos ABAP
Herencia
La herencia permite crear una nueva clase a partir de una
existente, heredando la nueva clase sus propiedades. Esto se
realiza aadiendo la adicin INHERITING FROM a la sentencia de
definicin de la clase:
CLASS <subclase> DEFINITION INHERITING FROM
<superclase>.
La nueva clase hereda todos los componentes de la clase ya
existente. Si no se aade ninguna declaracin a la subclase, esta
contiene los mismos componentes que la superclase. De
cualquier manera, slo los componentes pblicos y privados de la
superclase son visibles a la subclase. Aunque los componentes
privados de la superclase existen en la subclase, no son visibles.
Las clases a las que no se le declara una super clase,
automticamente heredan de una clase especial llamada OBJECT
la cual no tiene atributos ni mtodos.
Pgina 32
Pgina 33
Pgina 34
Pgina 35
Utilizacin de la funcin
REUSE_ALV_GRID_DISPLAY
SELECT
SELECT
DB
DB
Tabla
Tabla
Intern
Intern
aa
Tabla
Tabla
Intern
Intern
aa
FIELDCAT
FIELDCAT
CALL
CALL FUNCTION
FUNCTION
REUSE_ALV_GRID_DISPLAY
REUSE_ALV_GRID_DISPLAY
Listado
Listado en
en
Pantalla
Pantalla
Pgina 36
Tabla
Tabla
Intern
Intern
aa
cl_salv_table=>factory
cl_salv_table=>factory
instancia_alv->display
instancia_alv->display
Listado
Listado en
en
Pantalla
Pantalla
Pgina 37
Relaciones de objetos
Pgina 38