WD4A: Atributos del controlador

En el siguiente artículo vamos a hablar de los atributos que existen en todos los controladores de las aplicaciones Web Dynpro for Abap, para que sirven y cómo crear nuestros propios atributos.

Cualquier controlador de web dynpro (que es realmente un objeto abap) tiene una pestaña de atributos. Existen una serie de atributos que vienen definidos por defecto y también es posible crear otros a necesidad del programador. Sigue leyendo para aprender cómo hacerlo.

Atributos predefinidos

Existen una serie de atributos predefinidos en todos los controladores, que no pueden ser modificados ya que se crean cuando se crea el controlador correspondiente. Estos hacen referencia a los diferentes objetos que se utilizan en el controlador:

Web Dynpro for Abap, Categoría del controlador

WD_THIS

Este atributo es la instancia propia del controlador en el que se está programando. Como en cualquier programación orientada a objetos, es la instancia para poder utilizar todos los métodos y atributos privados de la clase. Así que siempre que desde nuestra aplicación WD4A se quiera llamar a un método de la clase, o utilizar otro atributo definido por el usuario, es necesario utilizar esta instancia.

*llamamos a un método del controlador
wd_this-><nombre_metodo>().
*o usamos un atributo
wd_this-><nombre_atributo> = 'ejemplo'.

El tipo de este atributo dependerá del controlador en el que estemos. Si estamos en el controlador del componente, hará referencia a la interfaz del mismo (IF_COMPONENTCONTROLLER), pero si estamos en una vista, hará referencia a la interfaz de esa vista (IF_NOMBRE_VISTA).

WD_CONTEXT

Todo controlador de Web Dynpro for Abap tiene un contexto con el que poder hacer bindings a los objetos UI para interactuar con el usuario. Como este contexto también es un objeto ABAP, es posible instanciarlo. Para ello en todos los controladores por defecto se crea este atributo, con el que podremos acceder a los diferentes nodos y atributos del contexto. Para ello, este atributo se instancia mediante la interfaz IF_WD_CONTEXT_NODE.

WD_COMP_CONTROLLER

Este atributo aparece en todos los controladores excepto en el controlador del componente, ya que es la referencia a este controlador. El controlador del componente es visible por el resto de controladores, y con este atributo es como se accede a sus atributos o métodos públicos. De esta manera, un método definido en el controlador del componente puede ser usado en varios controladores.

DATA lo_componentcontroller TYPE REF TO ig_componentcontroller.
lo_componentcontroller = wd_this->get_componentcontroller_ctr( ).
lo_componentcontroller-><nombre_metodo>().
*o también usando el atributo
wd_comp_controller-><nombre_metodo>().

WD_ASSIST

Como vimos en el artículo: WD4A: Clase de asistencia, cuando se utiliza una clase de asistencia en un componente, en todos sus controladores se crea automáticamente este atributo. Este atributo es la instancia de dicha clase, para que nos permita acceder a sus métodos y atributos de manera sencilla.

Atributos definidos por el programador

Como en cualquier clase que estamos definiendo, en cualquier controlador podremos crear nuestros propios atributos. Para ello, en la pestaña atributos podemos definir tantos atributos como queramos. Lo único a tener en cuenta es que si queremos un atributo que sea referencia a algún objeto, hay que marcar el check box RefTo. Si creamos uno de este tipo, después por programa habrá que instanciar dicho objeto, lo cual es conveniente hacerlo en el método Hook WDINIT, ya que es el constructor del controlador.

Web Dynpro for Abap, Componentes del contolador

Si creamos atributos en el controlador del componente, aparecerá un checkbox más, Public. Esto sirve para hacer el atributo público y así poder usarlo en el resto de controladores.

Esta es toda la información necesaria para que puedas manejar los atributos del controlador de tu aplicación Web Dynpro for Abap.

Esta entrada fue publicada en SAP España, SAPUI5, Web Dynpro for Abap. Guarda el enlace permanente.
Si te ha gustado...Compártelo!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *