✒️ABAP La creación de una clase global
ABAP La creación de una clase global
Unidad-5-Lección-6: Creación de una Clase Global
1. Utilizamos a la transacción SE24.
2. En el campo Object Type, introducimos el nombre de la clase (Z_CL_VEHICULO) y presionamos el botón Crear.
3. Seleccionamos Class y luego el botón de Continuar .
4. En la siguiente ventana de diálogo introducimos la descripción de la clase.
a. Si presionamos el botón a la derecha de la clase, podemos especificar la relación de herencia, especificando el nombre de la superclase y guardar.
b. En el campo Instantiation se selecciona si la clase es Pública, Privada o Protegida.
c. Guardar.
5. Seleccionamos en el botón Local Object (o la asignamos a un paquete).
6. En la pestaña Attributes definimos cada uno de los atributos de la clase (Atribute | Level | Visibility | Associated Type | Description | Initial Value)
a. Atributo: SPEED | Nivel: Instancia | Visibilidad: Pública - Tipo de atributo: I | Descripción
b. Atributo: MAX_SPEED | Nivel: Instancia | Visibilidad: Pública - Tipo de atributo: I | Descripción.
c. Atributo: STOP | Nivel: Instancia | Visibilidad: Pública - Tipo de atributo: I | Descripción.
d. Atributo: WRITE | Nivel: Instancia | Visibilidad: Pública - Tipo de atributo: I | Descripción.
7. En la pestaña Methods definimos los métodos (Method | Level | Visibility | Description)
a. Method: INCREASE_SPEED | Nivel: Instancia | Visibilidad: Pública
b. Method: CALCULATE_STOP | Nivel: Instancia | Visibilidad: Pública
c. Method: DISPLAY_WRITE | Nivel: Instancia | Visibilidad: Pública
i. Para este método definimos parámetros, haciendo click en el botón Parametrers:
1. Parameter: P_PARAMETRO | Type: Importing | Associated Type: P| Description:------
2. Parameter: P_RESULTADO | Type: Importing | Associated Type: P| Description:------
ii. Definimos una excepción, haciendo click en el botón Exceptions:
1. Exception: VEHICULO_NO_EXISTE
8. En la pestaña Events creamos el evento CAMBIO_ESTADO_VEHICULO:
a. Event: CAMBIO_ESTADO_VEHICULO | Type: Instance| Visibility: Public | Description: ---
9. En la pestaña Types, creamos tipos que podemos utilizar en nuestra clase global.
a. Type: MARCA_VEHICULO | Visibility: Public | Associated Type: CHAR30 | Description:---
10. Grabamos y activamos la clase
-
NOTA (Audio Tip): Tal como mencionamos anteriormente para las interfaces, cuando se define una clase en forma global, a través del repositorio correspondiente a la transacción SE24, CC genera un programa ABAP denominado Pool de Clases el cual es del tipo K. El Pool de Clases tiene una parte de definiciones y otra parte de implementaciones de la clase. Este programa tiene muchas diferencias con respecto a un programa ABAP común y corriente. Las principales diferencias son las siguientes:
· Los programas ABAP tales como los reportes, module pool, o los módulos de funciones, usualmente tienen una parte de declaración en donde se definen los datos globales; estos son visibles en todos los bloques de procesamiento de programa. Los Pool de Clases, por otro lado, tienen una parte de definición en donde se pueden definir datos y tipos de objetos pero no se pueden definir objetos de datos ni field symbols.
· Los tipos que se definen en el pool de clases son solo visibles en la parte de implementación de la clase global.
· Por otro lado, los únicos bloques de procesamiento que se pueden utilizar en un Pool de Clases son la parte de declaración e implementación de una clase global. La parte de implementación solo podría implementar los métodos declarados en la clase global.
· No se puede utilizar cualquiera de los otros bloques de procesamiento ABAP tales como los módulos de diálogo, los bloques de eventos, subrutinas y módulos de función.
· Los bloques de procesamiento del pool de clases no son controlados por el entorno de ejecución ABAP, no ocurren eventos y no se puede llamar a cualquiera de los módulos o procedimientos de diálogo, Los pool de clases sirven exclusivamente para la programación de las clases. Solo se puede acceder a los datos y funciones de una clase utilizando su interface.
· Por otro lado, debido a que los eventos y módulos de diálogo no están permitidos en las clases, entonces no se pueden procesar las pantallas en las clases, no se pueden crear listados y pantallas de selección en las clases debido a que a estas no pueden reaccionar a los eventos adecuados. Si el objetivo es hacer que las pantallas estén disponibles en las clases, en lugar de módulos de diálogo podremos llamar a los métodos de la clase de la lógica de proceso de la pantalla.
 
 
 
Agradecimiento:
Ha agradecido este aporte: Francisco Ortega Aguilar
Favorito:
Está publicación ha sido agregada a sus favoritos por: Francisco Ortega Aguilar
Sobre el autor
Publicación académica de Oscar Perez, en su ámbito de estudios para la Carrera Consultor ABAP.
Oscar Perez
Profesión: Ingeniero de Sistemas. Consultor y Desarrollador en Peoplesoft - Canada - Legajo: FD38F
✒️Autor de: 105 Publicaciones Académicas
🎓Cursando Actualmente: Master en Programación ABAP Orientado a Objetos
🎓Egresado de los módulos:
Certificación Académica de Oscar Perez