✒️ABAP POO - La creación de una clase global

ABAP POO La creación de una clase global

VIDEO - CREACION DE UNA CLASE GLOBAL

En este video veremos como crear una clase global para poder utilizar la misma en cualquiera de nuestros programas, para ello utilizamos la transaccion SE24.

En OBJECT TYPE introducimos el nombre de la nueva clase: Z_CL_VEHICULO y presionamos el boton CREATE

En la siguiente ventana de dialogo ingresamos la descripcion de la clase Description: Clase global de vehiculos, si presionamos el boton a la derecha de la clase podremos definir una relacion de herencia especificando el nombre de la superclase, en Instantiation: definimos la visibilidad de la clase, que puede ser PUBLICA, PRIVADA o PROTEGIDA por ultimo guardamos.

  • Vamos definir los atributos de la clase:

Definimos el atributo: SPEED que sera un atributo de instancia: Instance Attribute, definimos la Visibilidad del atributo: como publica, el tipo de atributo: sera Associated Type: i e introducimos una descripcion para el mismo, Description: Velocidad

Tambien creamos los atributos: MAX_SPEED (Velocidad maxima), STOP (Stop) y WRITE (Mostrar listado), con las mismas especificaciones que el atributo SPEED

  • Ahora definimos los [METODOS]:

Creamos el metodo INCREASE_SPEED el cual definimos como metodo de Leve: Instancia con visibilidad publica y con la descripcion: Aumento de visibilidad

Tambien creamos el metodo CALCULATE_STOP cuyo proposito sera Description: Resetear la velocidad a cero.

Y el metodo display DISPLY_WRITE que Description: Mostrar el listado de velocidades, para este metodo definimos [PARAMETROS]:

  • Definimos los [PARAMETERS]

Creamos el parametro P_PARAMETRO de entrada de tipo 'p' con la Descripcion: 'PARAMETRO'

Tambien creamos el parametro P_RESULTADO de entrada del tipo 'p' con la Descripcion: 'RESULTADO'

  • Definimos los [EXCEPTIONS]

Ahora creamos una [EXCEPTIONS] para el metodo DISPLY_WRITE que contendra como nombre de exception: VEHICULO_NO EXISTE, Description: El vehiculo no existe

  • Definimos los [EVENTOS]

Tambien creamos el evento CAMBIO_ESTADO_VEHICULO como de instancia con Visibilidad: publica y una descirpcion acorde de su proposito: Cambio del estado de un vehiculo

  • Definimos los [TYPES]

Por ultimo podemos crear los tipos para utilizar dentro de nuestra clase global, [TYPES]: MARCA_VEHICULO, Visibilidad: Publica, Associated: CHAR30, Description: Marca del vehiculo

Finalmente grabamos y activamos la clase

Como lo mencionamos anteriormente, para las interfaces cuando se define una clase en forma global, a traves del repositorio correspondiente de la transaccion SE24 se 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 comun y silvestre, las principales diferencias son:

Los programas ABAP tales como los REPORTES, los MODUL FULL, o MODULOS DE FUNCIONES usualmente tienen un parte de declaracion en donde se definen los datos globales, estos son visibles en todos los datos de procesamiento de programas, los POOL DE CLASES por otro lado tienen una parte de definicion, 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 los que solo visibles en la parte de implementacion de la clase global.

Por otro lado los unicos bloques de procesamiento que se pueden utilizar en un POOL DE CLASES son la parte de declaracion e implementacion de una clase global, la parte de impementacion solo podria implementar los metodos declarados en la clase global, no se pueden utilizar cualquiera de los otros bloques de procesmaiento ABAP, tales como LOS MODULOS DE DIALOGO, LOS BLOQUES DE EVENTOS, LAS SUBRUTINAS Y LOS MODULOS DE FUNCION, los bloques de procesamiento de POOL DE CLASES no son controlados por el entorno de ejecuion ABAP, no ocurren eventos y no se puede llamar a cualquiera de los modulos o procedimientos de dialogo, los POOL DE CLASES sirven exclusivamente para la programacion de las clases, solo se puede acceder a los datos y funciones de una clase utilizando su interfaz

Por otro lado debido a que los eventos y modulos de dialogo no estan permitidos en las clases, entonces no se pueden procesar las pantallas en las clases, no se pueden crear listados, ni pantallas de seleccion en las clases, debido a que estas no pueden reaccionar a los eventos adecuados, si el objetivo es hacer que las pantallas esten disponibles en las clases, en lugar de modulos de dialogo, podremos llamar a los metodos de la clase de la logica de proceso de la pantalla.


Sobre el autor

Publicación académica de Ixhel Magai Lopez Valencia, en su ámbito de estudios para el Máster ABAP POO.

SAP Master

Ixhel Magai Lopez Valencia

Mexico - Legajo: PM62E

✒️Autor de: 134 Publicaciones Académicas

🎓Egresado de los módulos:

Disponibilidad Laboral: PartTime

Presentación:

Soy ingeniera en telematica, estoy interesada en aprender programacion en sap, solo tengo conocimientos basicos en java

Certificación Académica de Ixhel Lopez

 

:: Al igual que Ixhel ¿Usted está dispuesto a aprender ABAP?

El lunes 29 Noviembre 2021 comenzamos la 🎓Carrera Consultor ABAP.
Juntos para realizar sus más grandes desafíos!

 Cargando presentación, aguarde unos instantes...

 

 

+Recursos Gratuitos en CVOSOFT:

¡Lo importante es aprender!, por eso en CVOSOFT la comunidad SAP más grande de habla hispana, ponemos a su alcance los siguientes recursos abiertos libres y gratuitos:

Buscador de Publicaciones:

 

 

Consultas y Soporte

👋Hola! Estamos listos para ayudarle con el soporte que su carrera merece.

Acceda sección contacto y seleccione canal de comunicación más cómodo para usted.

🤝Aguardamos su mensaje, ¡Éxitos!

 


 

👉Que las empresas tomen en serio sus estudios es muy importante para que su inversión educativa tenga sentido.
Las empresas líderes de United States y del Mundo confían a CVOSOFT su recurso más valioso, la formación de su gente.

¿Quieres conocerlas?