¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Cómo navegar a SE80 tipo de objeto de desarrollo WDYA en ABAP: Guía paso a paso

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

Estimado lector,

Tengo el siguiente problema: necesito que mi herramienta de desarrollo navegue a SE80/ tipo de objeto de desarrollo WDYA. Que es una aplicación webDynpro ABAP.

Lo que necesito es algo como una de las siguientes opciones (para dar la impresión de que intenté antes de preguntar): 😞

a) Opción A que intenté: usar TR_OBJECT_JUMP_TO_TOOL para el objeto WDYA no es compatible (intenta probar la cosa individualmente). Curiosamente funciona para el tipo de objeto WDCA (que es configuración de web dynpro) y desde allí se podría (a través de un clic en la aplicación) saltar a la aplicación. Ahí es donde obtuve el código para la opción B a continuación.

b) Opción B: Intenté hackear el editor y saltar directamente a la pantalla que quiero usando las clases del banco de trabajo. Es sucio y no siempre funciona. Si estás interesado, revisa mi código:

Lo que necesito es algo como la función RS_FUNCTION_SHOW para mostrar un módulo de función. Debe haber algo similar para los webdynpros también.

Gracias por leer hasta aquí, estaré encantado si tienes alguna pista para mí.

Que tengas un buen día, Otto

DATA lo_wb TYPE REF TO cl_wb_request.   DATA lo_wda TYPE REF TO cl_wdy_wb_appl_editor.   DATA lo_state TYPE REF TO if_wb_program_state.   DATA lv_object TYPE rseuap-obj_name.    lv_object = iv_name.    CALL METHOD cl_wb_request=>create_from_encl_name     EXPORTING       p_object_type       = 'YY'       p_encl_object_name  = ''       p_object_name       = lv_object       p_operation         = 'DISPLAY'       p_in_new_window     = ''     RECEIVING       p_wb_request        = lo_wb     EXCEPTIONS       illegal_object_type = 1       illegal_operation   = 2       cancelled           = 3.   IF sy-subrc <> 0.     MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno             WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.     EXIT.   ENDIF.    CREATE OBJECT lo_wda.    lo_wda->if_wb_program~process_wb_request(     p_wb_request       = lo_wb     p_wb_program_state = lo_state       ).
Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Actualización. Intenté con

p_in_new_window = 'X'

y ahora muestra lo que quiero. El único problema es que abre una nueva ventana.
TR_OBJECT_JUMP_TO_TOOL que uso para todos los otros tipos no se comporta así.

Saludos, Otto

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

Hola Raymond,

gracias por la idea. He probado lo siguiente

DATA lo_wb TYPE REF TO cl_wb_request. CALL METHOD cl_wb_request=>create_from_encl_name EXPORTING p_object_type = 'YY' p_encl_object_name = '' p_object_name = 'YMABITEST' p_operation = 'DISPLAY' p_in_new_window = '' RECEIVING p_wb_request = lo_wb EXCEPTIONS illegal_object_type = 1 illegal_operation = 2 cancelled = 3. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. EXIT. ENDIF. CALL FUNCTION 'WB_NEW_WORKBENCH_START' EXPORTING p_object_type = 'YY' p_object_name = 'YMABITEST' p_wb_tool_request = lo_wb.

Funciona más o menos, pero no al 100%. La buena noticia es que cosas como el "botón ATRÁS" funcionan y no se bloquea al hacer clic en algunas cosas. Mucho mejor en este sentido. Pero inicia SE80 con el panel izquierdo activado. Si es posible, preferiría ver el panel derecho con el contenido real solamente. Eso es lo que veo para el objeto WDCA, por ejemplo. ¿Sabes cómo desactivar el "sobre de SE80"? Me gustaría que mi interfaz de usuario sea consistente y este problema con WDYA hace que sea obvio que hay un problema.

También probé tu primera sugerencia, pero no tiene mucho sentido para mí. No entiendo qué hacer. El módulo de función devolvió algunos datos (lo que en mi opinión prueba que el objeto existe y está bien). Cuando cambié los datos para que fueran incorrectos (prueba negativa), no devolvió nada. Pero no sé cómo usar eso para navegar hasta el editor. ¿Alguna otra pista aquí, por favor?

También estaba considerando abrir un mensaje OSS, porque no entiendo cuál es la diferencia entre WDCA y WDYA para que no puedan ser compatibles al mismo tiempo y consistentemente por TR_OBJECT_JUMP_TO_TOOL. Suspiro.

De todos modos, gracias por el tiempo y el esfuerzo, muy apreciado.

Saludos, Otto

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

Cuando TR_OBJECT_JUMP_TO_TOOL no muestra el objeto, solía:

  • Intentar encontrar un objeto principal (TR_CHECK_TYPE) y usar este en la FM
  • Intentar convertirlo al banco de trabajo SEU (TR_TRANSFORM_TADIR_TO_EU_TYPE) y usar una FM como WB_NEW_WORKBENCH_START

(Eso fue hace algún tiempo, por lo que ahora pueden estar disponibles herramientas mejores, aún no he convertido los informes antiguos a CL_WB_REQUEST y clases similares.)

Saludos,

Raymond

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

Cuando TR_OBJECT_JUMP_TO_TOOL no muestra el objeto, solía:

  • Intentar encontrar un objeto principal (TR_CHECK_TYPE) y usarlo en la FM
  • Intentar convertirlo al banco de trabajo SEU (TR_TRANSFORM_TADIR_TO_EU_TYPE) y usar una FM como WB_NEW_WORKBENCH_START

(Eso fue hace algún tiempo, por lo que ahora pueden estar disponibles mejores herramientas, aún no he convertido informes antiguos a CL_WB_REQUEST y clases similares.)

Saludos,

Raymond

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?