cancel
Showing results for 
Search instead for 
Did you mean: 

WebDynpro Java - Problemas de acceso

Former Member
0 Kudos

Hola,

Aún no domino el uso de las variables wdThis, wdContext, wdControllerAPI y wdComponentAPI.

Desde el método1 de un view1 como puedo llamar al método2 de un view2 que se encuentran en el mismo 'Web Dynpro Components'?

Desde un método de un view, como puedo acceder a las propiedades de sus UI Elements, como por ejemplo acceder a modificar el 'text' del título de un UI Element Tray?

Muchas gracias,

Rubén Gutiérrez

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

En cuanto a tu primer pregunta, para llamar a un método de otra vista puedes hacer esto:

1.- Crear un evento en el component controller.

2.- Crear un método en el component controller que dispare el evento.

3.- En la vista 2, crear un event handler que se suscriba al evento del component controller y que realice la acción que tu quieras.

4.- En la vista 1, llamar al método del cómponent controller.

De todas formas, yo te recomiendo que utilices esta opción con cuidado y con mucho criterio. Aunque no conozco tus requerimientos, en general no creo que sea necesario utilizarla. Las vistas deberían de tener poco código y nunca código de negocio, el cual debería estar en el component controller. Creo que todo lo que necesites hacer lo podrías hacer a través del component controller y a lo sumo vincular atributos a las vistas.

Saludos, Aldo.

Former Member
0 Kudos

Muchas gracias Aldo, buena contestación. Problema solucionado

Tendré muy en cuenta tus consejos.

Saludos,

Rubén Gutiérrez

Answers (2)

Answers (2)

Former Member
0 Kudos

Muchas gracias Aldo, muy bien explicado todo y la solución con dos alternativas. Esta explicación soluciona mi segunda pregunta.

Sobre mi primera pregunta, si alguien sabe como se hace.

Saludos,

Rubén Gutiérrez

Former Member
0 Kudos

Rubén, estos son los pasos para modificar dinámicamente el título de un Tray desde otra vista. Supongamos que tenemos la vista 1 y la vista 2. La vista 2 es la que contiene el tray y la vista 1 es desde la que queremos modificar el título.

1.- Crea un atributo en el contexto del component controller, por ejemplo: tituloTray.

2.- Vincula este atributo a la vista 2.

3.- Vincula el atributo a la propiedad text del Tray_Header.

4.- Crea un método en el component controller en la sección methods con un parámetro string titulo. Por ejemplo modificarTituloTray con el siguiente código:


  public void modificarTituloTray( java.lang.String titulo )  {
    //@@begin modificarTituloTray()
	  wdContext.currentContextElement().setTituloTray(titulo);
    //@@end
  }

5.- Vincula la vista 1 al component controller (no es necesario vincular ningún atributo).

6.- En la vista 1 en el lugar en que quieras cambiar el título del tray, pon el siguiente código:


    wdThis.wdGet<NombreComponent>Controller().modificarTituloTray("Mi título");

Otra opción es no hacer los pasos 4, 5 y 6 y en su lugar vincular el atributo de component controller a la vista 1 y desde esta modificar directamente el atributo con el código:


wdContext.currentContextElement().setTitulo("Mi título");

Cualquier aclaración que necesites estoy a las órdenes.

Saludos, Aldo.