Upload
afsalazarc
View
231
Download
0
Embed Size (px)
Citation preview
8/18/2019 ABAP - 2 - Funciones - Reportes - Objetos
1/38
8/18/2019 ABAP - 2 - Funciones - Reportes - Objetos
2/38
8/18/2019 ABAP - 2 - Funciones - Reportes - Objetos
3/38
8/18/2019 ABAP - 2 - Funciones - Reportes - Objetos
4/38
Página 4
pos y "ó#ulos #e %unciones
$rupos y "ó#ulos #e %uncionesLos módulos de funciones son procedimientos que se crean conla fnalidad de ser reutilizados en distintos programas, adierencia de los forms que se crean para ser utilizados dentrodel mismo programa que lo defne.Los módulos de unciones solo pueden ser creados en un tipo
especial de programa ABAP que se llaman grupos de funciones.
Los grupos de funciones actan como contenedores paramódulos de funciones que uncionalmente pertenecen a unmismo proceso de negocios. !stos no pueden ser e"ecutadosdirectamente.
#l grupo de unciones puede agrupar muc$os módulos deunciones % en &ste se pueden defnir datos glo'ales que puedenser compartidos por los dierentes módulos. (am'i&n se puedendefnir su'rutinas )orms* glo'ales dentro del grupo de uncionespara ser usada por los dierentes módulos.
8/18/2019 ABAP - 2 - Funciones - Reportes - Objetos
5/38
Página +
pos y "ó#ulos #e %unciones
(s)ue"a #e la relación entre rupos y
"ó#ulos #e %unción
rupo de unciones
-efnición de datos glo'ales
ódulo de unciones /
ódulo de unciones 2
ódulo de unciones 3
8/18/2019 ABAP - 2 - Funciones - Reportes - Objetos
6/38
rupo de unciones 01(#(
Página 5
pos y "ó#ulos #e %unciones
*o"bra"iento #e co"ponentes
1unction Pool APL01(#(
6nclude L01(#((7P
189:(679;P77L 01(#(.= -efnición de datos glo'ales
6nclude L01(#(8>>.
69:L8-# L01(#(8?/.69:L8-# L01(#(8?2.
6nclude L01(#(8?/
189:(679 017-/.
#9-189:(679.
6nclude L01(#(8?2
189:(679 017-2.#9-189:(679.
8/18/2019 ABAP - 2 - Funciones - Reportes - Objetos
7/38Página @
pos y "ó#ulos #e %unciones
Creación #el rupo y "ó#ulos #e %unciones
#n la transacción #? elegimos la opción rupo de unciones %escri'imos el nom're que queremos, iniciando con 0. #n estecaso 01(#(
i no eiste nos pide crearlo. Luego tenemos que darle unadescripción al grupo de uncionesC
8/18/2019 ABAP - 2 - Funciones - Reportes - Objetos
8/38Página
pos y "ó#ulos #e %unciones
Los o'"etos que se crean $asta a$ora, incluso sin que $a%amódulos de unciones son los siguientesC
Los includes que fguran en la lista están incluidos en el programade control que se llama APL01(#(.
8/18/2019 ABAP - 2 - Funciones - Reportes - Objetos
9/38Página D
pos y "ó#ulos #e %unciones
Para crear el grupo de unciones $acemos clicE derec$o en elnom're del grupo de unciones % elegimos :rear F ódulo de
uncionesC
#legimos el nom're % la descripciónC
8/18/2019 ABAP - 2 - Funciones - Reportes - Objetos
10/38Página /?
pos y "ó#ulos #e %unciones
Par+"etros #e los "ó#ulos #e %unciones
Los módulos de unciones tienen parámetros del tipo IMPORT,EXPORT, CHANGING, TABLES % EXCEPTION.
• Los parámetros IMPORT se utilizan para pasar Galores a lasunciones que pueden ser utilizados dentro de &sta en modo
lectura.• Los parámetros de EXPORT se utilizan para deGolGer Galores alprograma llamador del módulo de unciones.
• Los parámetros del tipo CHANGING se utilizan para pasarGaria'les del programa llamador que pueden ser modifcadasdentro del módulo de unciones.
•
Los parámetros del tipo TABLES se utilizan para pasar ta'lasinternas al módulo de unciones.• Los parámetros del tipo EXCEPTION sirGen para indicar los tipos
de errores que se pueden presentar dentro del módulo deunciones.
8/18/2019 ABAP - 2 - Funciones - Reportes - Objetos
11/38Página //
ulos #e %unciones para reportes AL
'ó#ulos #e %unciones para
reportes AL
u. es AL/
8/18/2019 ABAP - 2 - Funciones - Reportes - Objetos
12/38Página /2
ulos #e %unciones para reportes AL
'ó#ulos #e %unciones para
reportes AL
u. es AL/
ALH es una a'reGiación que signifca ABAP List HieIer. #s una$errmienta ABAP que nos permite el rápido desarrollo de reportesa%udandonos en el ormateo de la lista asi el desarrollador notiene que inGertir tanto tiempo en el armado del reporte.
Además nos presenta una interaz de usuario de reportesunifcada para todos los reportesJlistados de datos.
#l ALH tam'i&n nos proGee de $erramientas para tra'a"ar con ellistado una Gez en pantalla que inclu%en uncionalidades comoordenamiento, su'totales, fltrado de datos % doInload delistados a arc$iGos locales.
8/18/2019 ABAP - 2 - Funciones - Reportes - Objetos
13/38Página /3
ulos #e %unciones para reportes AL
(n resu"en AL nos o%rece0
1es#e el punto #e 2ista #el usuario
• ALH es un elemento de la interaz de usuario• Para mostrar listados de datos• ProGee un con"unto de uncionalidades estándares como
ordenamiento, fltro de inormación, sumarizaciones,personalización de la salida, etc.
1es#e el punto #e 2ista #el #esarrolla#or
•
ALH es un con"unto de AP6s• Puede ser usado en cualquier aplicación• 7rece una uncionalidad para listado de datos• 9os a$orra tiempo en el desarrollo del ormateo de la
inormación• 9os a$orra tiempo en el desarrollo de uncionalidades
8/18/2019 ABAP - 2 - Funciones - Reportes - Objetos
14/38Página /4
ulos #e %unciones para reportes AL
Herra"ientas AL #l con"unto de $erramientas ALH a cam'iado con el tiempo %eisten 3 $erramientas en la actualidadC
• La primer $erramienta que creó AP ue el con"unto demódulos de unciones REUSE_ALV* que llegaron con la Gersión
Basis release 4.0. #ste con"unto de $erramientas nació confnalidad de uso interno de AP, aunque los clientescomenzaron a usarla % AP permitió que se $iciera.
• Luego con la Gersión Basis release 4.6 AP li'eró otra$erramienta, %a 'asada en o'"etos. Parte de este con"unto de
$errmientas permaneció para uso interno de AP pero permitiópara uso de clientes la clase L_!U"_ALV_!R"#.
• 1inalmente en la Gersión AP 9etKeaGer2??4 )Basis 5.4?* APintru"o un nueGo con"unto de $erramientas llamado ALH 7'"ectodel, este con"unto de $erramientas ue li'erado por AP
tanto para uso interno como para uso de clientes.
8/18/2019 ABAP - 2 - Funciones - Reportes - Objetos
15/38
Página /+
ulos #e %unciones para reportes AL
R(3S(4AL4$RI141ISPLA5
:ALL 189:(679#8#ALH6--6PLAMN
#L#:( 16#L-:A(
-B (a'la6ntern
a
(a'la6ntern
a
Listado enPantalla
8/18/2019 ABAP - 2 - Funciones - Reportes - Objetos
16/38
Página /5
ulos #e %unciones para reportes AL
(je"plo #e in2ocación #e la %unción con los par+"etros "6ni"os0
#n este caso se inGoca la unción pasandole sólo losparámetros necesariosC• it47el#cat que representa la ta'la con las propiedades de
las columnas
• 84outtab que representa la ta'la con los registros delreporte
8/18/2019 ABAP - 2 - Funciones - Reportes - Objetos
17/38
Página /@
bjetos ABAP
Objetos ABAP#n la Gersión Basis 4.? AP introdu"o el concepto de orientación ao'"etos como parte del lengua"e de programación ABAP,etendiendo el mismo. #sta etensión se 'asa en el lengua"e %aeistente, siendo compati'le con &l. e pueden usar o'"etos enprogramas eistentes, de la misma manera que se pueden usar
sentencias ABAP conGencionales en programas ABAP orientados ao'"etos.
La programación orientada a o'"etos en ABAP utiliza loscomponentes LASE % $B%E&$ como la 'ase undamental deesta $erramienta como se $ace en la ma%orOa de los lengua"es de
programación que permiten este tipo de modelo deprogramación. Las clases en ABAP poseen 3 tipos decomponentesC
• A'ri(u'os• )'odos•
E+en'os
8/18/2019 ABAP - 2 - Funciones - Reportes - Objetos
18/38
Página /
bjetos ABAP
8na clase no es más que una serie de código que defne a todoslos elementos relacionados con ella. AsO, podrOamos escri'ir la
clase Perro colocando en ella todas las caracterOsticas que tienenlos perros )altura, peso, color, etc* esas caracterOsticas lasllamaremos a'ri(u'os.
Los perros poseen mecanismos para realizar acciones, comocomer, dormir, ladrar, etc. A estos mecanismos los llamamosm'odos.
Por ltimo, tam'i&n sa'emos que las perros reaccionan anteciertos sucesos, como peligro, atracción, $am're, etc. A esto lollamaremos e+en'os.
8na clase sim'oliza la defnición de un o(,e'o, pero no es elo'"eto en sO, del modo como una idea no es una cosa Osica. AsOque para sentarnos necesitaremos conGertir esa idea en algo, enun o'"eto real a ese o'"eto lo llamamos ins'ancia.
:ada Gez que creamos una nueGa instancia, &sta adquiereatri'utos, m&todos % eGentos de la clase a la que pertenece, sin
8/18/2019 ABAP - 2 - Funciones - Reportes - Objetos
19/38
Página /D
bjetos ABAP
8ipos #e clases
AP desarrolló esta uncionaliad de manera que las clases puedanser declaradas de dos maneras distintas, como clases locales ocomo clases glo(ales.
Las clases locales se defnen e implementan dentro del programa
donde queramos utilizarla % sólo puede ser accedida desde eseprograma.
Las clases glo'ales en cam'io se defnen en el generador declases, a traG&s de la transacción #24 en el ABAP KorE'enc$.#stas clases son almacenadas en el :lass Pools en la li'rerOa de
clases en el epositorio J3. (odos los programas ABAP en unsistema J3 pueden acceder a las clases glo'ales.
:uando se usa una clase en un programa ABAP el sistema 'uscaprimero una clase local con el nom're especifcado. i noencuentra ninguna entonces 'usca una clase glo'al. A parte de la
cuestión de la Gisi'ilidad, no $a% ninguna dierencia entre usaruna clase lo'al o una clase local. Lo ue si cam'ia
8/18/2019 ABAP - 2 - Funciones - Reportes - Objetos
20/38
Página 2?
bjetos ABAP
i se defne una clase que se Ga a usar en un nico programa,normalmente es sufciente con defnir los componentes Gisi'les
de manera que la clase se a"uste a nuestro programa. Por otrolado, las clases glo'ales de'en estar preparadas para ser usadasen cualquier parte.
1e7nición #e clases locales
Las clases locales son el con"unto de sentencias que están entrelas sentencias :LA...#9-:LA.
8na defnición completa de una clase constará de una partedeclaratiGa, lo que se conoce como defnición de la clase, en laque se defnen los componentes, % una parte de implementación,
lo que se conoce como implementación de la clase, en la que seimplementan estos componentes.
La parte declaratiGa o defnición de una clase está comprendidaentre las sentenciasC
CLASS DEFINITION.
8/18/2019 ABAP - 2 - Funciones - Reportes - Objetos
21/38
Página 2/
bjetos ABAP
La parte declaratiGa contiene la declaración de todos loscomponentes de la clase )atri'utos, m&todos % eGentos*. :uando
se defnen clases locales, la parte declaratiGa pertenece a losdatos glo'ales del programa, por tanto se $a'rá de situar alprincipio del programa.
i se declaran m&todos en la parte declaratiGa de una clase, sede'erá escri'ir tam'i&n su parte de implementación. !sta es la
que Ga incluida entre las siguientes sentenciasC
CLASS IMPLEMENTATION.
ENDCLASS.
La parte de implementación contiene la implementación de todoslos m&todos de la clase. #sta parte acta como un 'loque, estoquiere decir que cualquier sección de código que no orme partedel 'loque no será accesi'le.
8/18/2019 ABAP - 2 - Funciones - Reportes - Objetos
22/38
Página 22
bjetos ABAP
(structura y co"ponentes #e una claseLa estructura de una clase se defne principalmente 'asándoseenC
• 8na clase contiene componentes.• :ada componente se asigna a una sección de Gisi'ilidad
)p'lico, protegido o priGado*.•
Las clases implementan m&todos.Los componentes de una clase representan sus contenidos. (odoslos componentes son declarados en la parte declaratiGa de laclase. Los componentes defnen los atri'utos de los o'"etos enuna clase.
:uando se defne una clase, cada componente es asignado a unade las tres distintas secciones de Gisi'ilidad que defnen lainterace eterna de la clase. (odos los componentes de una claseson Gisi'les dentro de la clase. Además todos comparten elmismo espacio por lo que sus nom'res de'en ser nicos dentro
de la clase.
8/18/2019 ABAP - 2 - Funciones - Reportes - Objetos
23/38
Página 23
bjetos ABAP
Qa% dos tipos de componentes en una clase, aquellos que eistenseparadamente para cada o'"eto de una clase, % aquellos que
eisten sólo una Gez para la clase entera, independientementedel nmero de instancias. #stos componentes son conocidoscomo dependien'es de ins'ancia o es'-'icos respectiGamente.
Atributos#isten dos tipos de atri'utosC
• #ependien'es de ins'anciaC donde el contenido de losatri'utos es especOfco de cada o'"eto. e declaran usando lasentencia #A&A.
•
"ndependien'es de ins'ancia o es'-'icosC donde elcontenido de los atri'utos defne el estado de la clase % esGálido para todas las instancias de la clase. Los atri'utosestáticos eisten sólo una Gez para la clase. e declaranusando la sentencia LASS#A&A. on accesi'les desde todoel entorno de e"ecución de la clase. (odos los o'"etos de una
clase pueden acceder a sus atri'utos estáticos. i se cam'ia unatri'uto estático en un o' eto, el cam'io es Gisi'le en todos los
8/18/2019 ABAP - 2 - Funciones - Reportes - Objetos
24/38
Página 24
bjetos ABAP
'.to#os
Los m&todos pueden acceder a todos los atri'utos de una clase.#sto les permite cam'iar el contenido de los atri'utos de uno'"eto.
Los m&todos poseen tam'i&n una interace con parámetros queles permite reci'ir Galores cuando son inGocados % deGolGer
Galores despu&s de la llamada. Los atri'utos priGados de unaclase sólo pueden ser cam'iados por m&todos de la misma clase.La defnición % la interace de un m&todo son similares a las delos módulos de unciones. 8n m&todo se defne en la partedeclaratiGa de la clase % se implementa en la parte deimplementación usando las sentenciasC
-efniciónC
METHODS .
6mplementaciónC
8/18/2019 ABAP - 2 - Funciones - Reportes - Objetos
25/38
Página 2+
bjetos ABAP
e pueden declarar tipos de datos locales % o'"etos en losm&todos de la misma manera que en cualquier otro
procedimiento ABAP. Los m&todos se llaman mediante lasentencia :ALL #(Q7- .
#isten tres tipos de m&todosC
• #ependien'es de ins'anciaC estos m&todos se declaran
usando la sentencia #(Q7-. Pueden acceder a todos losatri'utos de una clase % pueden desencadenar todos loseGentos de una clase.=
• "ndependien'es de ins'ancia o es'-'icosC estos m&todos sedeclaran usando la sentencia :LA;#(Q7-. ólo puedenacceder a los atri'utos estáticos % desencadenar eGentosestáticos.
• EspecialesC además de los m&todos normales que se puedenllamar con la sentencia :ALL #(Q7-, $a% dos m&todosespeciales llamados :79(8:(7 % :LA:79(8:(7que son automáticamente llamados cuando se crea un o'"eto
8/18/2019 ABAP - 2 - Funciones - Reportes - Objetos
26/38
Página 25
bjetos ABAP
(2entos
Los eGentos son un mecanismo mediante el cual una clase puedellamar a m&todos de otras clases sin tener que instanciar lasmismas o incluso sin tener que conocer a tales clases.
#l mane"o de eGentos implica 4 pasosC• -eclaración del eGento en la clase.
• 6nstrucción EENTS • -isparo de un eGento desde algun m&todo de la clase.
• 6nstrucción "AISE EENT • :reación de un mane"ador de eGentos en la misma o una clase
distinta.• 6nstrucción METHODS FO" EENT
• egistro del mane"ador de eGento.• 6nstrucción SET HANDLE" FO"
8/18/2019 ABAP - 2 - Funciones - Reportes - Objetos
27/38
Página 2@
bjetos ABAP
isibili#a# #e una claseLa parte declaratiGa o defnición de una clase se diGide en tresáreas de distinta Gisi'ilidadC
CLASS DEFINITION. P$%LIC SECTION. P"OTECTED SECTION. P"IATE SECTION.ENDCLASS.
• /UBL" SE&"$C todos los componentes declarados en lasección p'lica son accesi'les para todos los usuarios de laclase % para todos los m&todos de la clase % de cualquier claseque $erede de ella. Los componentes p'licos conorman lainterace entre la clase % el usuario.
• /R$&E&E# SE&"$C todos los componentes declarados enla sección protegida son accesi'les para todos los m&todos dela clase % de las clases que $eredan de ella. Los componentesprotegidos conorman la interace entre una clase % todas sussu'clases.
• /R"VA&E SE&"$C los componentes declarados en la secciónpriGada son sólo Gisi'les en los m&todos de la misma clase. Los
8/18/2019 ABAP - 2 - Funciones - Reportes - Objetos
28/38
Página 2
bjetos ABAP
InstanciasLos o'"etos son instancias de las clases. :ada o'"eto tiene unaidentidad propia % tiene sus propios atri'utos. (odos los o'"etostransitorios residen en el conteto de una sesión interna ) área dememoria de un programa ABAP *. 8na clase puede tener unnmero indefnido de instancias.
Para acceder a un o'"eto se utilizan las reerencias. Lasreerencias son un tipo especial de Garia'le que apunta a uno'"eto en memoria )o se encuentra en estado inicial*. e declaranutilizando una Gariación de la instrucción -A(A de la siguientemaneraC
DATA T'PE "EF TO .
8na reerencia a clase permite al usuario crear una instancia, osea un o'"eto, de la clase % acceder a un componente Gisi'le dela siguiente maneraC
(>com)onente
bj
8/18/2019 ABAP - 2 - Funciones - Reportes - Objetos
29/38
Página 2D
bjetos ABAP
Antes de crear un o'"eto de una clase es necesario declarar unaGaria'le reerenciada con la reerencia a la clase. 8na Gez que se
$a declarado la reerencia a la clase , se puede crear el o'"etousando la sentencia C"EATE O%+ECT. #sta sentencia crea unainstancia de la clase % la Garia'le reerenciada contiene lareerencia al o'"eto.
#"emploC
DATA re)orte T'PE "EF TO cl_re)orte.
C"EATE O%+ECT re)orte.
:uando se instancia una clase se inGoca, si &ste se $a defnido, aun m&todo especial llamado :79(8:(7 que se utiliza parainicializar los atri'utos internos de la clase.
bj ABAP
8/18/2019 ABAP - 2 - Funciones - Reportes - Objetos
30/38
Página 3?
bjetos ABAP
Acceso a los co"ponetes #e un objeto
Los programas sólo pueden acceder a los componentes de lasinstancias usando las reerencias de las Garia'les reerenciadas.La sintais es la siguiente, siendo re la Garia'le reerenciadaC
• Para acceder al un atri'utoC re,(>atr&b*to.• Para llamar a un m&todoC CALL METHOD re,(>metodo.• anera alternatiGa de llamar a un m&todoC re,(>metodo-
)ólo uncionan para m&todos que no aceptan parametros oaceptan uno solo en modo importing*
-entro de una clase se puede acceder tam'i&n a loscomponentes indiGiduales mediante la reerencia a sO mismo MEC
• Para acceder al atri'uto attr en la propia claseC me(>atr&b*to.• Para llamar al m&todo met$ en la propia claseC CALL METHOD
me(>met/.
bj t ABAP
8/18/2019 ABAP - 2 - Funciones - Reportes - Objetos
31/38
Página 3/
bjetos ABAP
Acceso a los co"ponetes staticos #e una
clasePara los componentes estáticos o independientes de instancia,sólo dependientes de clase, se puede usar tanto el nom're de laclase como la Garia'le reerenciada. (am'i&n es posi'le acceder alos componentes estáticos de una clase antes de que un o'"eto
de la clase $a%a sido creado.
La sintais, siendo class la clase es la siguienteC
• Para acceder a un atri'uto estático C class(>atr&b*to.• Para llamar a un m&todo estáticoC CALL METHOD class(
>metodo.
bj t ABAP
8/18/2019 ABAP - 2 - Funciones - Reportes - Objetos
32/38
Página 32
bjetos ABAP
Herencia
La $erencia permite crear una nueGa clase a partir de unaeistente, $eredando la nueGa clase sus propiedades. #sto serealiza aRadiendo la adición 69Q#6(69 17 a la sentencia dedefnición de la claseC
CLASS DEFINITION INHE"ITIN0 F"OM.
La nueGa clase $ereda todos los componentes de la clase %aeistente. i no se aRade ninguna declaración a la su'clase, estacontiene los mismos componentes que la superclase. -e
cualquier manera, sólo los componentes p'licos % priGados de lasuperclase son Gisi'les a la su'clase. Aunque los componentespriGados de la superclase eisten en la su'clase, no son Gisi'les.
Las clases a las que no se le declara una super clase,automáticamente $eredan de una clase especial llamada 7BS#:(
la cual no tiene atri'utos ni m&todos.
# l # bj t AL
8/18/2019 ABAP - 2 - Funciones - Reportes - Objetos
33/38
Página 33
o#elo #e objetos AL
'o#elo #e Objetos AL #l con"unto de $erramientas ALH a cam'iado con el tiempo %eisten 3 $erramientas en la actualidadC
• La primer $erramienta que creó AP ue el con"unto demódulos de unciones REUSE_ALV* que llegaron con la Gersión
Basis release 4.0. #ste con"unto de $erramientas nació confnalidad de uso interno de AP, aunque los clientescomenzaron a usarla % AP permitió que se $iciera.
• Luego con la Gersión Basis release 4.6 AP li'eró otra$erramienta, %a 'asada en o'"etos. Parte de este con"unto de
$errmientas permaneció para uso interno de AP pero permitiópara uso de clientes la clase L_!U"_ALV_!R"#.
• 1inalmente en la Gersión AP 9etKeaGer2??4 )Basis 5.4?* APintru"o un nueGo con"unto de $erramientas llamado ALV$(,ec' )odel, este con"unto de $erramientas ue li'erado por
AP tanto para uso interno como para uso de clientes.
# l # bj t AL
8/18/2019 ABAP - 2 - Funciones - Reportes - Objetos
34/38
Página 34
o#elo #e objetos AL
Antes #el 'o#elo #e Objetos AL
o#elo #e objetos AL
8/18/2019 ABAP - 2 - Funciones - Reportes - Objetos
35/38
Página 3+
o#elo #e objetos AL
Con el 'o#elo #e Objetos AL
ulos #e %unciones para reportes AL
8/18/2019 ABAP - 2 - Funciones - Reportes - Objetos
36/38
Página 35
ulos #e %unciones para reportes AL
3tili9ación #e la %unciónR(3S(4AL4$RI141ISPLA5
:ALL 189:(679#8#ALH6--6PLAMN
#L#:( 16#L-:A(
-B (a'la6ntern
a
(a'la6ntern
a
Listado enPantalla
ulos #e %unciones para reportes AL
8/18/2019 ABAP - 2 - Funciones - Reportes - Objetos
37/38
Página 3@
ulos #e %unciones para reportes AL
3tili9ación #e la clase CL4SAL48ABL(
clsalGta'leTFactor%
#L#:(
-B (a'la6ntern
a
Listado enPantalla
instanciaalG;Fdispla%
ulos #e %unciones para reportes AL
8/18/2019 ABAP - 2 - Funciones - Reportes - Objetos
38/38
ulos #e %unciones para reportes AL
Relaciones #e objetos