Eventos en las interfaz global

Con el objetivo de entender cómo se utilizan los eventos en la interfaz global, vamos a modificar el ejemplo anterior. Declaramos el evento de instancia AVISAR_CANAL_DISTRIBUICION en la interfaz global del artículo anterior “Crear interfaz global con Class Builder”, ZIF_GRUPO_LOGALI. El evento exporta el parámetro CANAL_DIST del tipo VTWEG. Para ello: Accedemos a la pestaña […]

Crear interfaz global con Class Builder

En este artículo vamos a aprender a crear interfaz global con Class Builder. Para ello creamos la interfaz global ZIF_GRUPO_LOGALI utilizando la transacción Generador de clases (SE24). Después, creamos el atributo estático GRUPO_CLIENTES de tipo KDGRP y el atributo de instancia DEST_MERCANCIA de tipo KUNWE. Por último, declaramos un método de instancia que establece el […]

Patrón de diseño Observer

En este ejercicio vamos a solucionar la siguiente petición: Tenemos un blog donde se publican artículos y es necesario añadir una nueva funcionalidad para que el administrador del blog sea notificado cada vez que se publica un artículo. Además, una vez que el administrador está avisado, los usuarios del blog tienen que ser notificados de […]

Patrón de diseño Template Method

En este ejercicio vamos a solucionar la siguiente petición: Una agencia de viajes ofrece varios paquetes de tres días para sus clientes. Cada paquete debe seguir los mismos pasos para la realización del viaje, pero con distinta funcionalidad dependiendo del paquete ofertado. Creamos la clase local LCL_VIAJE que implementa el método final REALIZAR_VIAJE. En la […]

Patrón de diseño Factory Method

En este artículo vamos a aprender a utilizar e implementar en patrón de diseño Factory Method. Implementamos el patrón de diseño Factory Method creando la interfaz local LIF_EXPEDIENTE que declara el método TIPO_EXPEDIENTE. Creamos dos clases locales LCL_EXPEDIENTE_OBRA y LCL_EXPEDIENTE_SUMINISTRO que implementan la interfaz. Para cumplir con los requerimientos del patrón Factory Method creamos la […]

Patrón de diseño Singleton – ABAP OO

Introducción El patrón de diseño Singleton (instancia única) está diseñado para restringir la creación de objetos pertenecientes a una clase o el valor de un tipo a un único objeto. Su intención consiste en garantizar que una clase sólo tenga una instancia y proporcionar un punto de acceso global a ella. El patrón Singleton se implementa creando en nuestra […]

Patrón de diseño Model-View-Controller

Vamos a crear un programa ejecutable implementamos el código fuente del patrón de diseño MVC creando las clases locales LCL_MODELO, LCL_VISTA y LCL_CONTROLADOR. La clase modelo accede a la tabla de maestros de proveedores (LFA1) para obtener los datos. Creamos un SELECT-OPTIONS para filtrar los datos por el campo LIFNR. En la clase que representa […]

ALL INSTANCE

Si se han registrado varios métodos en un evento, la secuencia en la que los métodos de programa de control se llaman no está definida, es decir, no existe ninguna secuencia garantizada en la que se llamen los métodos de programa de control. Con el suplemento ALL INSTANCES, un control de eventos puede registrarse para […]

Eventos estáticos

¿Cómo se utilizan los eventos estáticos? Con el fin de ver cómo se utilizan los eventos estáticos, vamos a crear un ejemplo práctico. En un programa ejecutable creamos la clase CL_OPERADORA que declara el evento estático NUEVA_LLAMADA que exporta el parámetro TELEFONO_CLIENTE y el método ASIGNAR_LLAMADA que levanta el evento. A continuación, creamos la clase […]

Desactivar objeto manejador

Ampliamos el programa del artículo anterior “Definir eventos en las interfaces” y en el evento START-OF-SELECTION desactivamos el manejador de la referencia que trata el evento y llamamos de nuevo al método MOVIMIENTO_RATON que levanta el evento. ¿Se ha llamado al método que ha registrado el evento? Al utilizar ACTIVATION abap_false sobre la sentencia SET […]