¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Controlador personalizado vs controlador de componente: diferencias y ejemplos explicados

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 9 Vistas
0
Cargando...

¿Qué diferencia hay entre un controlador personalizado y un controlador de componente?

¿Puede alguien explicar la diferencia con un ejemplo de muestra?

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Controlador de Componentes

El controlador de componentes proporciona datos y lógica de procesamiento que debería ser posible mostrar o cambiar para todas las vistas de un componente. Tiene tres interfaces:

· Interfaz IF_ para codificación entre componentes. En el nivel de lenguaje ABAP, representa el controlador de interfaz.

Dentro del componente, es posible mapear a cualquier elemento de contexto del controlador de componentes.

Los atributos de un controlador de componentes son conocidos por todos los métodos que se llaman dentro de un componente y pueden ser utilizados por ellos, siempre que tengan la propiedad Pública. De lo contrario, su visibilidad está restringida al controlador de componentes. Los eventos y métodos asignados al controlador de componentes son visibles en todo el componente. Por lo tanto, por ejemplo, cualquier acción de una vista del componente puede llamar a un método de ese controlador de componentes.

Controlador Personalizado

Las propiedades y el uso del controlador personalizado que se pueden agregar opcionalmente corresponden exactamente a las del controlador de componentes. Esto significa que es visible para todos los elementos del componente y la vida útil de los elementos es la vida útil del componente. El controlador personalizado le brinda la opción de estructurar funciones y datos dentro de un componente. Tiene sentido crear y mantener un controlador personalizado si un cierto subconjunto de vistas de un componente debe estar equipado con una función especial o con un conjunto especial de datos.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola,

Controlador de Componentes El controlador de componentes es el controlador principal de un componente Web Dynpro. Tan pronto como declares la existencia de un componente Web Dynpro, el controlador de componentes se crea automáticamente. No puedes tener un componente Web Dynpro sin un controlador de componentes correspondiente.

Este controlador se puede considerar jerárquicamente superior a todos los demás controladores en el componente. En consecuencia, la vida útil del componente siempre es igual a la vida útil del controlador de componentes.

Cuando el marco de trabajo Web Dynpro recibe una URL que corresponde a una aplicación Web Dynpro, se instancia el controlador de componentes del componente raíz. Aquí tienes un ejemplo de cómo el marco de trabajo Web Dynpro interactúa automáticamente con el código escrito por el desarrollador de Web Dynpro.

Dado que el controlador de componentes no tiene una interfaz visual, no puede presentar directamente ninguna información al usuario. Sin embargo, esta tarea no es de preocupación para el controlador de componentes. El controlador de componentes solo debe contener el código necesario para controlar la interacción con:

• Todos los demás controladores

• Instancias de componentes secundarios

• Objetos de modelo

Debes considerar el controlador de componentes como el punto central de control para el comportamiento del componente Web Dynpro.

Controladores personalizados son similares al controlador de componentes en el sentido de que tampoco tienen una interfaz visual. Sin embargo, la existencia de controladores personalizados está controlada completamente por el desarrollador de Web Dynpro en tiempo de diseño. Declarar la existencia de un componente Web Dynpro hace que el controlador de componentes se cree automáticamente, pero este no es el caso con los controladores personalizados. Los controladores personalizados solo se crean mediante una declaración explícita en tiempo de diseño.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola,

Controlador de componente:

Cada componente Web Dynpro tiene al menos un controlador global, llamado componentController. La vida útil del controlador de componente está determinada por la vida útil de toda la

Aplicación. Cada controlador Web Dynpro tiene un área de almacenamiento de datos conocida como contexto. El controlador de componente es el controlador principal de un componente Web Dynpro. Tan pronto como declares la existencia de un componente Web Dynpro, el controlador de componente se crea automáticamente.

Controlador personalizado:

Necesario para almacenar datos de contexto utilizados en varias vistas. Un controlador personalizado tiene una vida útil más larga que un controlador de vista. Los controladores personalizados pertenecen al componente y existen mientras el componente esté vivo en una aplicación.

¿Cuándo se debe usar un controlador personalizado?

Reutilización Crea un controlador personalizado si has identificado un caso de reutilización para una unidad específica de código requerida por varios otros controladores dentro del componente.

Separación de tareas Para evitar colocar demasiado código en el controlador de componente (y potencialmente aumentar su tiempo de inicialización), coloca el código dedicado a una tarea específica en un controlador personalizado separado.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

La principal diferencia entre el controlador personalizado y el controlador de componente es el papel que desempeñan durante la transferencia de datos.

a) El controlador personalizado se utiliza para la transferencia de datos entre dos vistas dentro de un componente. Para ello, es necesario vincular los nodos de contexto de vista al controlador personalizado ya sea a través del asistente o manualmente agregando el código en el método create_contextnode de la clase CTXT:

  • Configuración inicial para el nodo de modelo dependiente

coll_wrapper =

BTADMINH->get_collection_wrapper( ).

TRY.

entity ?= coll_wrapper->get_current( ).

CATCH cx_sy_move_cast_error.

ENDTRY.

IF entity IS BOUND.

BTOpportH->on_new_focus(

focus_bo = entity ).

ENDIF.

b) El controlador de componente se utiliza para la transferencia de datos entre dos vistas en dos componentes diferentes. Para esto, primero necesitamos definir el uso del componente y luego vincular los nodos de contexto en el método WD_USAGE_INITIALIZE de la clase de implementación del Controlador de Componente.

WHEN 'NombreDelUsoDelComponente'.

iv_usage->bind_context_node(

iv_controller_type = cl_bsp_wd_controller->co_type_custom

iv_target_node_name = 'NombreDelNodoDeContexto' "#EC NOTEXT

iv_node_2_bind = 'NombreDelNodoDeContexto' ). "#EC NOTEXT

¡Espero que esto aclare algunas de tus dudas!

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?