Sie sind auf Seite 1von 22

Tutorial ABAP Objects: Parte 1

inShare12

Conozca el universo de la programacin


orientada a objetos en SAP implementada
con ABAP Objects. En este tip, el
primero de la serie de Tutoriales de ABAP
Objects, veremos conceptualmente cmo
se implementa el paradigma de objetos en
el mundo SAP. En los prximos artculos
se tratarn en detalle ejemplos de
programacin paso a paso, y otras
caractersticas del entorno.
La programacin orientada a objetos (POO) es una filosofa de diseo y desarrollo de
software donde el modelo informtico es un reflejo de las entidades del mundo real. A
diferencia de los lenguajes tradicionales, donde existen procedimientos por un lado y datos
por el otro, la POO permite a los programadores representar cada entidad del problema
como un objeto encapsulado que contiene tanto sus datos y cmo los comportamientos
gestionan sobre ellos.
Valindose de un lenguaje y entorno que respete los principios de la teora de objetos, los
objetos se crean a partir de una definicin abstracta de los mismos, denominada clase,
que describe sus caractersticas y comportamientos. Los objetos concretos luego sern
ejemplares o instancias de esa "plantilla" abstracta que es la clase. Por ejemplo,
clases y objetos tpicos del entorno de negocios son "Clientes", "Materiales", "Ordenes de
compra", etc.
La teora de objetos se estructura alrededor en un conjunto de propiedades y paradigmas
conceptuales (que exceden el alcance de este artculo), implementados luego en los
distintos entornos de programacin. Existen, numerosas y probadas ventajas asociadas a la
programacin orientada objetos que incluyen el encapsulamiento de la complejidad, la
reusabilidad del cdigo, la modularidad, entre otros.
La programacin orientada a objetos represent una verdadera revolucin en el universo
del desarrollo de software, impulsando a programadores, analistas y arquitectos de sistemas

a re-aprender su forma de concebir cdigo y aplicaciones. En una primera instancia,


lenguajes como C++, y luego JAVA, se convirtieron en los entornos de programacin OO
ms emblemticos.
En el mundo SAP, el instrumento que disponemos en ABAP para trabajar de acuerdo
a este paradigma son los "ABAP Objects".
La introduccin de ABAP Objects en el Release 4.6 represent un avance fundamental para
incorporar tcnicas de programacin contemporneas en un lenguaje tradicionalmente
procedural. Sin embargo, la plena materializacin del paradigma de objetos en el mundo
SAP, lleg recin a partir de la versin 6.10, con el advenimiento del Web Application
Server como sucesor de SAP Basis.
El concepto de ABAP Objects representa dos cosas distintas en el mundo SAP. Por un lado,
designa a la concepcin de toda la plataforma de ejecucin como un nuevo paradigma de
trabajo. Por otro lado, designa a la nueva extensin del lenguaje ABAP.
El propsito de este tip, el primero de la serie de Tutoriales de ABAP Objects, es
entender conceptualmente cmo se refleja el paradigma de objetos en el mundo SAP.
No es el propsito de este tutorial definir en detalle la teora de objectos en su vasta
dimensin, sino discutir su implementacin en el universo de ABAP Objects.
En los prximos artculos se tratarn en detalle ejemplos de programacin paso a paso, y
otras caractersticas del entorno.

Los paradigmas de Orientacin a Objetos


en ABAP Objects
Como se dijo anteriormente, el lenguaje ABAP y el entorno de programacin SAP, logra a
partir de una nueva versin con extensin orientada a objetos, el diseo de nuevas
aplicaciones, basadas en la teora de objetos.
Comparado con otros, ABAP no es un lenguaje puro orientado a objetos. El runtime de
ABAP soporta tanto el modelo de programacin procedural como el de ABAP Objects en
cualquier programa ejecutable, mdulos o funciones.
Esto permite la utilizacin de nuevas tcnicas basadas en ABAPsin necesidad de re-escribir
todo el cdigo.

Propiedades de un paradigma orientado a objetos:


Son precisamente las propiedades del paradigma de objetos lo que le otorga su singularidad

y todas las ventajas de modularidad cuando se plasman en la programacin.

Encapsulamiento: Es el trmino que define formalmente la fusin dentro del mismo


objeto de sus datos y mtodos (comportamiento). Los objetos son tratados como caja
negra, de manera que slo sus mtodos pueden actuar sobre sus datos, brindando
independencia en la implementacin de los mismos..
Abstraccin: Permite a un objeto comunicarse y desconocer el forma en que se lleva a
cabo el mensaje.
Polimorfismo: Capacidad que tienen objetos de distintas clases de responder a un mismo
mtodo y obtener diferentes reacciones.
Herencia: Se produce cuando una clase (la subclase) comparte la estructura (atributos) y el
comportamiento (mtodos) definidos en una o ms clases (superclases). (Nota: En ABAP
slo est permitida la herencia simple.)
Obviamente, estas propiedades se ven reflejadas en la implementacin de POO que hace
ABAP Objects.
Es interesante contrastar las capacidades de ABAP Objects con las de otros lenguajes OO
populares, en trminos de cmo se cie al modelo POO.

Cuadro de diferencia entre los lenguajes de programacin orientado a


objetos:
Caractersticas

ABAP

JAVA

C++

Se permite
herencia mltiple

No

No

Si

Es un lenguaje
puro orientado a
objetos

NO

SI

NO

Liberacin de
objetos de forma
automtica

SI

SI

NO

Existe el concepto
interfaz

SI

SI

NO

Heredan de la
clase OBJECT

SI

SI

NO

Manejo de
parmetros
opciones de forma
explicita

Si

NO

NO

Procesador
virtual JMV
(Java Virtual
Machine)

Sobre el
sistema
operativo

Los programas se Application


ejecutan sobre Server ABAP

Describiremos a continuacin las principales sentencias que se utilizan en ABAP para


trabajar con objetos.

A Clases en ABAP Objects


En la programacin orientada a objetos, la nica unidad de estructuramiento son las clases.
En lugar de trabajar sobre datos y procedimientos, como en un lenguaje convencional,
trabajamos con objetos que encapsulan y auto-contienen sus datos y la forma de gestionar
sobre los mismos.
Las clases son una definicin abstracta de objetos. Esto significa que la definicin o
declaracin de un objeto es la clase. Luego, los objetos propiamente dichos sern
"ejemplares" de una clase cualquiera. Esta accin de crear un objeto a partir de una clase se
llama instanciar, por eso se conocen a los objetos como instancias de una clase.
Las propiedades o atributos de una clase en una clase conforman las caractersticas de los
objetos. Estos atributos estn definidos por las componentes de la clase que describe el
estado (los datos).

Tipos de clases: Globales Vs. Locales


Las clases en ABAP Objects pueden ser declaradas globalmente o localmente. As como
existe una manera de definir un Function Group o un Function Module desde el ABAP
Workbench para ser usados en la programacin ABAP tradicional, tambin es posible
definir las clases globales y las interfaces en el ABAP Workbench mediante el Class
Builder (Transaction SE24). Estas clases son almacenadas centralmente en pools de clases
en la biblioteca de clases dentro del repositorio de SAP.
Todos los programas ABAP en un sistema SAP pueden acceder a las clases globales. Las
clases locales son las que se definen dentro de un programa ABAP. De esta manera, las
interfaces y las clases locales pueden ser usadas solamente en el programa en donde estn
definidas. Cuando se usa una clase en un programa ABAP, el sistema primero busca una
clase local con el nombre especificado. Si no se encuentra ninguna, busca una clase global.

Definicin de una clase local


La definicin completa de una clase en ABAP Objects consiste en una seccin de
declaracin, y otra de implementacin, ambas iniciadas con la sentencia CLASS.

Sentencia para la declaracin de una clase local:


CLASS <class> DEFINITION.

ENDCLASS.

Sentencia para la implementacin de una clase local:


CLASS <class> IMPLEMENTATION.

ENDCLASS.

B - Componentes de una clase


Los componentes de una clase conforman su contenido, y se declaran en la parte
declarativa del cdigo. Definen las propiedades de los objetos de esa clase.
Cuando la clase se define, cada componentes se asocia a una de las tres posibles secciones
de visibilidad: pblico, protegido o privado. Las secciones de visibilidad definen la
interfaz externa de la clase.(ver apartado sobre visibilidad ms abajo)
Todos los componentes son visibles dentro de la clase, y comparten el mismo espacio de
nomenclatura, por lo que cada componente debe tener un nombre unvoco dentro de su
clase.
Se implementan en ABAP dos tipos de componentes en una clase, aquellos que existirn
en cada uno de los objetos o instancias de clase, adquiriendo valor separadamente uno
para cada objeto, y aquellos que existen slo una vez para la clase entera,
independientemente de la cantidad de instancias, denominados componentes
ESTATICOS. A los primeros, en cambio, se los llama componentes especficos de
instancia.
Las componentes de una clase son los atributos, los mtodos, los eventos, los tipos y las
constantes.

B-1 Atributos
En ABAP los atributos son los campos internos de DATOS definidos para la clase.
Pueden declararse a partir de cualquier tipo de dato vlido en ABAP. En cada instancia de
clase los atributos reflejarn el estado del objeto (es decir, los datos del objeto).
Respetando la clasificacin general enunciada para los componentes de clase, tendremos
dos tipos de atributos: los especficos de instancia, y los estticos.

Atributos dependientes de instancia. El contenido de estos atributos define el


estado propio e individual de cada objeto en cada instancia de clase. Se declaran
usando la sentencia DATA.

Los atributos ESTATICOS. Definen el estado de la clase vlido para todas las
instancias de la mismo. Existen, por lo tanto, slo una vez para la clase, y son
accesibles durante todo el runtime de la clase. Todos los objetos pueden acceder a
sus atributos estticos de su clase, y si se cambia un atributo esttico en un objeto,
el cambio es visible en todos los dems objetos de la clase.

B 2 Mtodos
Las funcionalidades asociadas a los objetos se definen a travs de los mtodos, que de esa
forma determinan el comportamiento de los objetos. Los mtodos son procedimientos que
definen el comportamiento de un objeto, su funcionalidad asociada. Se utilizan para
acceder a los atributos privados de una clase, como tambin modificarlos mediante una
interfaz con parmetros que les permite recibir valores y devolver valores despus de la
llamada.
En ABAP, un mtodo se define en la parte declarativa de la clase y luego se implementa en
la parte de implementacin. Nuevamente, por ser componentes de clase, cabe la misma
diferenciacin en mtodos dependientes de instancia, y estticos.

METODOS dependientes de la instancia: Se declaran usando la sentencia


METHODS y pueden acceder a todos los atributos de una clase y desencadenar
algn evento de la misma.

Mtodos estticos (independientes de instancia): Se declaran usando la sentencia


CLASS-METHODS. Slo pueden acceder a los atributos estticos y desencadenar
eventos estticos.

Declaracin de mtodos

Mtodos dependientes de instancia


METHODS <meth>
IMPORTING.. [VALUE(]<ii>[)] TYPE type [OPTIONAL]..
EXPORTING.. [VALUE(]<ei>[)] TYPE type [OPTIONAL]..
CHANGING.. [VALUE(]<ci>[)] TYPE type [OPTIONAL]..
RETURNING VALUE(<r>)
EXCEPTIONS.. <ei>..

Para declarar mtodos estticos se usa se usa la siguiente sentencia:


CLASS-METHODS <meth>..
IMPORTING.. [VALUE(]<ii>[)] TYPE type [OPTIONAL]..
EXPORTING.. [VALUE(]<ei>[)] TYPE type [OPTIONAL]..
CHANGING.. [VALUE(]<ci>[)] TYPE type [OPTIONAL]..
RETURNING VALUE(<r>)
EXCEPTIONS.. <ei>..

Implementacin de mtodos
Cuando se implementa un mtodo no es necesario especificar los tipos de datos de los
parmetros, debido a que se encuentran ya se encuentran definidos en la declaracin. En un
mtodo se pueden declarar tanto las variables locales, como tambin usar las sentencias
RAISE <exception> y MESSAGE RAISING para controlar los errores.
METHOD <meth>
IMPORTING..[VALUE(]<ii>[)]
EXPORTING..[VALUE(]<ei>[)]

CHANGING.. [VALUE(]<ci>[)]
RETURNING VALUE(<r>)
EXCEPTIONS.. <ei>..

ENDMETHOD.

Nota: Los mtodos estticos slo pueden trabajar con los atributos estticos de la clase.

Llamadas al mtodo
Las llamadas al mtodo dependern de dnde se lo invoque:

En la parte de implementacin de una clase se pueden llamar directamente mtodos


de la misma clase simplemente usando su nombre.

CALL METHOD <meth>.

Desde fuera de la clase, slo se llama a los mtodos cuya visibilidad nos permite
hacerlo.

CALL METHOD <cref>-><meth>.


A partir de 6.10 se puede llamarlo as: <cref>-><meth> directamente, sin la palabra
clave CALL METHOD
donde <cref> es una variable de referencia cuyo valor apunta a una instancia de la clase.

Los mtodos visibles estticos tambin pueden ser llamados

CALL METHOD <class>=><meth>.


A partir de 6.10 se puede llamarlo as: <class>=><meth>

donde <class> es el nombre de la clase.

En un mtodo los pasajes de parmetros de entrada son opcionales; dentro del mtodo se
declaran con el tipo IMPORTING. En cambio los de salida, no son optativos y se utiliza
como tipo a EXPORTING o RETURNING. En el caso de RETURNING slo se admite un
nico parmetro de salida y se puede combinar nicamente con parmetros declarados
como IMPORTING. El caso de CHANGING tambin puede ser opcional.

B-3 Constructores
Los constructores son un tipo especial de mtodos y su definicin e implementacin es
igual que cualquier otro mtodo. Son llamados automticamente por el sistema (cuando se
crea un objeto, es decir, cuando se crea una instancia, mediante la sentencia CREATE
OBJECT), para fijar el estado inicial de un nuevo objeto o clase (constructor esttico).
Los constructores, tanto si estn parametrizados como si no lo estn, para ser
implementados deben estar declarados explcitamente, y en su declaracin se puede
contemplar el manejo de errores.

Declaracin de constructor:

El constructor dependiente de instancia

METHODS CONSTRUCTOR
IMPORTING..[VALUE(]<ii>[)] TYPE type [OPTIONAL].
EXCEPTIONS..<ei>.

El constructor esttico, no contiene parmetros y es llamado una vez por cada clase

CLASS-METHODS CLASS_CONSTRUCTOR.

Implementacion de un constructor:

Dependiente de la instancia

METHOD CONSTRUCTOR.

ENDMETHOD.

Independiente esttico.

METHOD CLASS_CONSTRUCTOR.

B-4 Eventos
Un evento es una accin que se ejecuta dinmicamente. Son usados por los objetos o las
clases para desencadenar mtodos en otros objetos o clases, llamados por los usuarios. Son
semejantes de los mtodos, sin embargo solo poseen parmetros de salida pasados por el
disparador y el mtodo manejador los recibe como entrada.
Cuando un evento es disparado por un disparador de evento (trigger), el correspondiente
mtodo manejador de eventos (event handler methods) es ejecutado en todas las clases
registradas por ese manejador (son los objetos registrados; clases es en el caso que sea
estatico pero es poco comn. Puede haber 2 objetos de una misma clase en el cual el
primero est registrado/subscripto al evento de un tercer objeto pero el segundo no), el cual
determina los eventos que deben reaccionar. La relacin entre el disparador y el mtodo
manejador de eventos se realiza en tiempo de ejecucin.

Lanzamiento de un evento
RAISE EVENT <evt>.

Declaracin de un mtodo manejador de eventos para la misma o diferente clase


FOR EVENT <evt> OF <class>.

Vinculo entre el disparador y el manejador (trigger y handler):


SET HANDLER.

Clasificacin de eventos

Eventos dependientes de instancia: Son declarados con la sentencia EVENTS

<evt> y solo pueden ser desencadenados en un mtodo dependiente de instancia.

Eventos estticos o independientes de instancia: Se declaran con la sentencia


CLASS-EVENTS y solo pueden desencadenarse por un mtodo esttico de la
clase.

B-5 Tipos y Constantes


Los tipos se datos se declaran dentro de la clase por nica vez y se realiza utilizando la
sentencia TYPES.

Las constantes permiten que dar a un objeto de dato interno un valor fijo durante su
declaracin y ste no puede ser modificado. La sentencia usada es CONSTANTS.

B-6 Visibilidad
Los componentes de una clase se pueden declarar en tres reas de distinta
visibilidad: Cuando la clase se define, cada componentes se asocia a una de las tres
posibles secciones de visibilidad: pblico, protegido o privado. Las secciones de
visibilidad definen la interfaz externa de la clase.
CLASS <class> DEFINITION.
PUBLIC SECTION.

PROTECTED SECTION.

PRIVATE SECTION.

ENDCLASS.

Tipos de visibilidad:

Public section: Permite que los componentes pueden ser accedidos por todos los
usuarios de la clase, mtodos de la clase y adems por cualquier clase que herede de
ella.

Protected section: Los componentes solo logran ser accedidos por los mtodos de
la clase y de las clases que heredan de ella

Private section: Los componentes slo sern accedidos por mtodos de la misma
clase.

Todos los componentes son visibles dentro de la clase, y comparten el mismo espacio de
nomenclatura, por lo que cada componente debe tener un nombre unvoco dentro de su
clase.

C- Objetos
Los objetos son entidades tangibles de una clase que residen dentro de un contexto de una
sesin interna (rea de memoria de un programa ABAP).

Caractersticas de un objeto:

El estado, los valores concretos (datos) asignados a los atributos.

El comportamiento, se define por los procedimientos que puede realizar un objeto.

La identidad es una propiedad de un objeto que lo diferencia del resto, como es el


nombre.

Creacin de un objeto
La sentencia CREATE OBJECT <cref> crea una instancia de una clase. La variable
referenciada <cref> contiene la referencia al objeto.

Acceder a los componentes de un objeto


Para acceder a un componente de un objeto depender del tipo de componente y desde
dnde se quiere invocar. Se detallas las 3 maneras distintas de lograrlo.
Los programas ABAP slo pueden acceder a los componentes de las instancias de un
objeto usando las variables referenciadas <cref>.

Para acceder al atributo attr: class->attr.

Para llamar al mtodo meth: CALL METHOD cref->meth.

Para los componentes estticos (dependientes de clase) se puede usar tanto el nombre de la
clase como la variable referenciada.

Para acceder al atributo esttico attr: class=>attr.

Para llamar al mtodo esttico meth: CALL METHOD class=>meth.

Dentro de una clase se puede acceder tambin a los componentes individuales mediante la
referencia a s mismo ME:

Para acceder al atributo attr en la propia clase: me->attr. (tambin se acepta slo
attr)

Para llamar al mtodo meth en la propia clase: CALL METHOD me->meth.

Tiempo de vida de un objeto


Un objeto solo puede seguir existiendo siempre y cuando haya una referencia a un objeto

cuando un objeto maneja el evento de otro objeto (handler). De lo contrario el objeto es


borrado de la memoria automticamente.

Referencias
Las variables de referencia permiten acceder a los objetos. En vez de crear variables de
referencia con referencia a una clase, se las puede definir con referencia a una interfaz. Este
tipo de variables nicamente puede contener referencias a objetos de clases que
implementan la interfaz correspondiente.
Se la define mediante la adicin TYPE REF TO <intf>.
Si se desea crear una nueva instancia de la clase que implementa esta interfaz, se lo debe
hacer mediante la sentencia:
CREATE OBJECT <iref> TYPE <aclass>, donde <iref> es una variable de referencia a
interfaz y <aclass> la clase que implementa a <intf>
Si la instancia ya existe se puede hacer la siguiente asignacin entre la variable de
referencia a clase y la variable de referencia a interfaz:
<iref> = <cref>.
Cuando se quiere acceder a un componente definido en la interfaz <intf> mediante la
variable de referencia a clase <cref> se lo debe hacer mediante la siguiente forma:
<cref>-><intf~compi>
Pero cuando se accede mediante <iref> se lo hace a travs de la forma:
<iref>-><compi>.

Definicin de una referencia a un objeto:


TYPE REF TO <class>.

D- Herencia de clases

La herencia se realiza entre dos clases (una superclase y una subclase). La subclase
heredar los componentes pblicos y privados de la superclase, logrando el mismo
comportamiento. Teniendo la posibilidad de extender o limitar ese comportamiento para
proveer una accin requerida.
Cabe aclarar que aunque hereda los componentes privados, stos NO son visibles dentro de
la subclase. Es decir, no puede hacer referencia directamente a atributos privados y
alterarlos. Se van a poder manipular nicamente si en la superclase hay mtodos public o
protected que lo permiten.

El nodo raz de todos los rboles de herencia en ABAP Objects es la clase predefinida
vaca OBJECT.
Definicin para una herencia:
CLASS <subclass> DEFINITION INHERITING FROM <superclass>.

Nota: Los atributos estticos slo existen una vez y son visibles en todas las clases del
rbol de herencia.

Debido a que los constructores no se heredan, hay existen dos maneras de implementarlo
que depender de si existe dependencia no a una instancia.

Constructores dependientes de instancia


Un constructor dependiente de instancia de una subclase solo se ejecutara si todos los
constructores dependientes de la superclase son llamados.
Llamado al constructor de la superclase.
CALL METHOD SUPER->CONSTRUCTOR EXPORTING

Constructores estticos
Se ejecuta de la misma manera que los constructores dependientes de la instancia solo varia
en la declaracin de la implementacin.
Llamado al constructor de la superclase.
CLASS_CONSTRUCTOR.

Clases y mtodos abstractos y finales


Las sentencias METHODS y CLASS mediante las adiciones ABSTRACT y FINAL
permiten definir tanto a los mtodos como a las clases de forma abstracta o final.
Diferencias:

Un mtodo abstracto solo se puede definirse en una clase abstracta y puede ser
implementado en sus respectivas subclases.

Las clases abstractas no pueden ser instanciadas. Son utilizadas para la declaracin
de mtodos no abstracto, pero al menos debe contener un mtodo abstracto.

Un mtodo final es la manera de proteger mtodos para no ser redefinidos por las
subclases.

Las clases finales no pueden tener subclases, debido a que son las que finalizan el
rbol de herencia. De forma implcita todos sus mtodos son final.

E- Interfaz
El objetivo de una interfaz es establecer relaciones entre clases sin usar herencia, ya que a
veces no hay una super-clase adecuada para establecer una relacin de herencia.
Una interfaz no puede instanciar objetos, sin embargo pueden definirse atributos static y
final. Se utiliza principalmente para la definicin de mtodos abstractos, por lo cual la
implementacin se realiza en otras clases. Todos los componentes son visibles para las
clases en donde se implementan los mtodos definidos.

Definicin de interfaz
INTERFACE <intf>.

ENDINTERFACE.

Implementacin de la interfaz (la implementacin debe estar dentro de una


clase que usa esta interfaz)
METHOD <intf~imeth>.

ENDMETHOD.

Referencias a interfaces
Las variables de referencia permiten acceder a los objetos. En vez de crear variables de
referencia con referencia a una clase, se las puede definir con referencia a una interfaz. Este
tipo de variables nicamente puede contener referencias a objetos de clases que
implementan la interfaz correspondiente.
Se la define mediante la adicin TYPE REF TO <intf>.
Si se desea crear una nueva instancia de la clase que implementa esta interfaz, se lo debe
hacer mediante la sentencia:
CREATE OBJECT <iref> TYPE <aclass>, donde <iref> es una variable de referencia a
interfaz y <aclass> la clase que implementa a <intf>
S la instancia ya existe se puede hacer la siguiente asignacin entre la variable de
referencia a clase y la variable de referencia a interfaz:

<iref> = <cref>.
Cuando se quiere acceder a un componente definido en la interfaz <intf> mediante la
variable de referencia a clase <cref> se lo debe hacer mediante la siguiente forma:
<cref>-><intf~compi>
Pero cuando se accede mediante <iref> se lo hace a travs de la forma:
<iref>-><compi>.

F- Exception
Es una situacin que ocurre durante la ejecucin de un programa que interrumpe o cambia
su normal comportamiento. La idea fundamental es que tales situaciones puedan ser
manejadas de alguna forma. Las excepciones son representadas por una instancia de una
clase excepcin. Los atributos de tal objeto van a contener informacin acerca de la
situacin ocurrida.
Una excepcin puede ser levantada con la sentencia RAISE EXCEPTION. Cuando esto
ocurre, el sistema busca un manejador adecuado que se haga cargo y en el caso de no
encontrarlo, se produce un error en tiempo de ejecucin. Este manejo se puede llevar
nicamente a cabo si la sentencia que podra ocasionar que se levante la excepcin, se
encuentra encerrada por el bloque TRY-ENDTRY. Especficamente, el manejo de la
excepcin se realiza con la sentencia CATCH que se encuentra dentro del bloque.
TRY.
SENTENCIA_X.
CATCH cx_exc_1 INTO ref_exc_1.

CATCH cx_exc_2 INTO ref_exc_2.

CLEANUP.

ENDTRY.
SENTENCIA_X puede ser una subrutina, un modulo de funcin, el mtodo de un objeto
o algo que pueda lanzar una o ms excepciones. Cada cx_exc_i es una clase excepcin
que puede ser lanzada dentro de SENTENCIA_X. ref_exc_i es una instancia de la
clase cx_exc_i o de alguna. Lo que se encuentra dentro del bloque CLEANUP se
produce cuando el sistema no encuentra un manejador para la excepcin que fue levantada.
Si SENTENCIA_X levanta la excepcin cx_exc_3 y no existe un CATCH para la misma,
se ejecutar las instrucciones que se encuentren en el bloque CLEANUP.
Estos conceptos definen las generalidades de la implementacin del paradigma orientado a
objetos en el mundo SAP a travs de ABAP Object. En el prximo tip de la serie de
tutoriales, abordaremos un ejemplo concreto.

- Especialista ABAP

Copyright 2012 - Teknoda S.A.


IMPORTANTE:
Notas tcnicas de SAP ABAP" se enva con frecuencia variable y sin
cargo como servicio a nuestros clientes SAP. Contiene
notas/tutoriales/artculos tcnicos desarrollados en forma totalmente
objetiva e independiente. Teknoda es una organizacin de servicios
de tecnologa informtica y NO comercializa hardware, software ni
otros productos.
Si desea suscribir otra direccin de e-mail para que comience a
recibir las Notas Tcnicas SAP, enve un mensaje desde esa
direccin a sapping@teknoda.com, aclarando nombre, empresa,
cargo y pas del suscriptor.
SAP, SAP Netweaver, R/3 y ABAP son marcas registradas de SAP
AG. SAP no es el editor de esta publicacin y no es responsable de la
misma en ningn aspecto. La informacin contenida en esta
publicacin ha sido generada por nuestros especialistas a partir de
fuentes consideradas confiables y del ejercicio profesional cotidiano.
No obstante, por la posibilidad de error humano, mecnico, cambio de
versin u otro, Teknoda no garantiza la exactitud o completud de la
misma.
COPYRIGHT TEKNODA S.A. PROHIBIDA SU REPRODUCCION
TOTAL O PARCIAL SIN CONSENTIMIENTO DE TEKNODA

Reciba por mail los mejores tips, notas tcnicas, tutoriales paso a paso, etc. Los

suscriptores recibirn ADEMAS Quick Reference Charts, material de Workshops, y otros


documentos publicados NO accesibles en el sitio.
Correo

Comentarios
#6 Elvis 24-09-2013 21:50
Eres una bendicin!!!
Citar
#5 Yomy 20-09-2013 15:58
Excelente articulo, me ayudo a aclarar muchas dudas!!!
He visto muchos artculos sobre ABAP OBJECT pero ninguno tan claro como este.
Citar
#4 Juan 19-07-2013 16:57
Excelente!
Citar
#3 David Urquin 16-01-2013 12:29
Facil de entender!!!
Gracias por los tutoriales.
Saludos desde Mexico.
Citar
#2 Rafa rafa 06-09-2012 14:45
Hola Celeste.
Apreciable y recomendadsimo artculo. Noms una consideracin: Java y ABAP a pesar de
no tener herencia mltiple de clases, s la hay en cambio de interfaces.
Citar
#1 Roberto 04-09-2012 19:39
Exelente tutorial celeste, soy consultor abap 4 y quiero aprender mas sobre Abap Objects.
Esperare para el ejemplo de esta teoria. Consulta: para hacer practicas sobre esto tengo que
bajar el minisap?. Gracias.
Citar

Das könnte Ihnen auch gefallen