SAP Netweaver / ABAP                  Notas técnicas / Tips / Tutorials

Cómo determinar dinámicamente la vista inicial de una Web Dynpro ABAP

Conozca cómo implementar en una Web Dynpro ABAP una determinación dinámica de la vista inicial de la aplicación. El uso de parámetros en la URL de llamada de la aplicación Web Dynpro permite controlar el inicio, para mostrar una vista distinta a la vista por defecto.

Web Dynpro es una tecnología propietaria de SAP AG para el desarrollo de aplicaciones web. Las aplicaciones Web Dynpro pueden desarrollarse en Java o ABAP. (Para un entendimiento conceptual se sugiere la lectura del Tip: Entendiendo los fundamentos de las WebDynpro en SAP)

Están compuestas por un controlador global que encapsula la funcionalidad del negocio, un controlador de interfaz, que permite definir la estructura de la interfaz de usuario, al menos una vista utilizada para la interacción con el usuario, y una ventana, que contiene la/las vistas.

Las Web Dynpro ABAP tienen una vista por defecto, que será la primera vista creada, u otra seleccionada por el desarrollador, y es la vista que se mostrará inicialmente en el navegador al ejecutar la aplicación Web Dynpro. Sin embargo, a veces se requiere que al iniciar la aplicación se muestre una vista distinta a la vista por defecto.

En el presente tip se detalla cómo implementar una determinación dinámica de la vista inicial de una aplicación Web Dynpro.

 

Primero se indican los pasos necesarios para definir los enlaces o conexiones entre ventanas y vistas (Outbound/Inbound Plugs y Navigation Links), y luego se explica la implementación del método HANDLEDEFAULT que se ocupa de determinar si hay que mostrar una vista diferente a la vista por defecto.

 

La implementación paso a paso

El ejemplo se basa en una Web Dynpro ABAP ya creada, con nombre ZWEB_DYNPRO, que contiene una ventana con dos vistas: “EMPLEADO” y “JEFE”.

1) Desde la transacción SE80 se abre la Web Dynpro ABAP. Notar en las propiedades de la ventana que para este ejemplo se definió a la vista “JEFE” como vista por defecto, como se muestra en la imagen siguiente:

ABAP-Web-dynpro-vista-default-properties-1

Para que la Ventana 'ZWEB_DYNPRO' reconozca otra vista como posible Vista principal, se debe crear un enlace entre ambas.

2) Primero, desde la Ventana ZWEB_DYNPRO se crea un enlace de salida (seleccionando la solapa Outbound Plugs). En este caso se lo llamó O_EMPLEADO_OUT.

ABAP-Web-dynpro-outbound-plug-2

3) Posteriormente, desde la Vista 'EMPLEADO' se debe crear el enlace de entrada (seleccionando la solapa Inbound Plugs), en este caso llamado FROM_WINDOWS.

ABAP-Web-dynpro-inbound-plug-3

4) Luego, será necesario relacionar ambos enlaces creados previamente. Desde el enlace de salida TO_EMPLEADO_OUT de la ventana ZWEB_DYNPRO, se crea un link de navegación (Create Navigation Link), en donde se especifica la vista de destino EMPLEADO (campo Dest.View), y el enlace de entrada (Inbound Plug) que contendrá esa vista. En este caso llamado 'FROM_WINDOWS'.

ABAP-Web-dynpro-create-navigation-link-4

Además de los enlaces definidos en los pasos anteriores, es necesario implementar el método que posibilitará la determinación condicional de la vista inicial de la aplicación Web Dynpro. Para eso:

5) En la solapa “Methods”, existe un método llamado HANDLEDEFAULT. Es ahí donde implementaremos la lógica que determinará si, al iniciar la aplicación, se mostrará la vista por defecto (JEFE) o la vista EMPLEADO.

  • Para un mejor entendimiento de este punto, es importante mencionar que en las aplicaciones web en general es frecuente el uso de parámetros en las URL de llamada, como método para enviarle datos. Las Web Dynpro son aplicaciones web y como tales también permiten el uso de parámetros en las URL.
  • Particularmente, en este ejemplo se utiliza en la URL el parámetro VISTA para indicar que la vista inicial sea EMPLEADO. Para los fines de este tip no es necesario saber desde dónde se llama a la aplicación Web Dynpro. Podría llamarse por ejemplo desde SAP Portal, desde otra Web Dynpro o incluso podría ejecutarse ingresando directamente la URL en la barra de direcciones del navegador.

La lógica a implementar en el método HANDLEDEFAULT es la siguiente:

  • Buscar el parámetro VISTA en la URL de llamada de la Web Dynpro.
  • Si en la URL existe el parámetro VISTA, y si su valor es ‘EMPLEADO’, se ejecuta un método que despliega la vista EMPLEADO, caso contrario, el método HANDLEDEFAULT termina y se mostrará la vista por defecto JEFE.

La imagen siguiente muestra el método HANDLEDEFAULT y debajo se indica el código a implementar:

ABAP-Web-dynpro-metodo-5

El código del método:

method HANDLEDEFAULT .

 

DATA: l_url_parameters TYPE tihttpnvp,

l_url_parameter TYPE ihttpnvp.

 

wdevent->get_data( EXPORTING name = if_wd_application=>all_url_parameters

IMPORTING value = l_url_parameters ).

 

READ TABLE l_url_parameters WITH KEY name = 'VISTA'

INTO l_url_parameter.

IF sy-subrc IS INITIAL.

IF l_url_parameter-value EQ 'EMPLEADO'.

wd_this->fire_to_empleado_out_plg( ). "Método que redirecciona

ENDIF.

ENDIF.

endmethod.

6) Finalmente, ejecutar la aplicación Web Dynpro para comprobar su comportamiento.

  • La imagen siguiente muestra la salida correspondiente a la ejecución de la Web Dynpro 'ZWEB_DYNPRO' cuando la URL contiene el parámetro adicional VISTA=EMPLEADO.

 

ABAP-Web-dynpro-url-vista-empleado-6-1

  • Por el contrario, si la URL no contiene el parámetroVISTA, la vista por defecto JEFE será la desplegada al ejecutar la Web Dynpro:

ABAP-Web-dynpro-url-vista-default-jefe-7-1

Para tener en cuenta ...

Para aquéllos que aún no estén familizarizados con la construcción de las Web Dynpro ABAP, se recomienda la lectura del Tip: Tutorial ABAP paso a paso: Cómo crear una Web Dynpro ABAP


n_Ariel-Sondereguer Especialista ABAP
n_Celeste-Coopa Especialista ABAP

Copyright 2014 - Teknoda S.A.

IMPORTANTE:
“Notas técnicas de SAP ABAP" se envía con frecuencia variable y sin cargo como servicio a nuestros clientes SAP. Contiene notas/tutoriales/artículos técnicos desarrollados en forma totalmente objetiva e independiente. Teknoda es una organización de servicios de tecnología informática y NO comercializa hardware, software ni otros productos.
Si desea suscribir otra dirección de e-mail para que comience a recibir las Notas Técnicas SAP, envíe un mensaje desde esa direcciónsapping@teknoda.com, aclarando nombre, empresa, cargo y país del suscriptor.

SAP, Netweaver, R/3, Fiori,S4/HANA y ABAP son marcas registradas de SAP AG. SAP no es el editor de esta publicación y no es responsable de la misma en ningún aspecto. La información contenida en esta publicación ha sido generada por nuestros especialistas a partir de fuentes consideradas confiables y del ejercicio profesional cotidiano. No obstante, por la posibilidad de error humano, mecánico, cambio de versión u otro, Teknoda no garantiza la exactitud o completud de la misma.
COPYRIGHT TEKNODA S.A. PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL SIN CONSENTIMIENTO DE TEKNODA

 


Copyright © 2024 Teknoda Tech Portal & Training. Todos los derechos reservados.
Joomla! es software libre, liberado bajo la GNU General Public License.