¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Como navegar para o tipo de objeto de desenvolvimento WDYA no ABAP na SE80: Guia passo a passo

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

Prezado leitor,

Estou com o seguinte problema: preciso que minha ferramenta de desenvolvimento navegue até SE80/tipo de objeto de desenvolvimento WDYA. Que é uma aplicação webDynpro ABAP.

O que eu preciso é algo como uma das seguintes opções (para dar a impressão de que tentei antes de perguntar): ?

a) Opção A que tentei: usar TR_OBJECT_JUMP_TO_TOOL para o objeto WDYA não é compatível (tentei testar a coisa individualmente). Curiosamente, funciona para o tipo de objeto WDCA (que é configuração de web dynpro) e a partir daí poderia (através de um clique na aplicação) pular para a aplicação. Foi aí que obtive o código para a opção B abaixo.

b) Opção B: Tentei hackear o editor e pular diretamente para a tela que quero usando as classes do banco de trabalho. É sujo e nem sempre funciona. Se estiver interessado, confira meu código:

O que eu preciso é algo como a função RS_FUNCTION_SHOW para mostrar um módulo de função. Deve haver algo semelhante para os webdynpros também.

Obrigado por ler até aqui, ficarei feliz se tiver alguma dica para mim.

Tenha um bom dia, 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...

Atualização. Tentei com

p_in_new_window = 'X'

e agora mostra o que eu quero. O único problema é que abre uma nova janela.
TR_OBJECT_JUMP_TO_TOOL que uso para todos os outros tipos não se comporta assim.

Saudações, Otto

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

Olá Raymond,

obrigado pela ideia. Eu testei o seguinte

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. CALL FUNCTION 'WB_NEW_WORKBENCH_START' EXPORTING p_object_type = 'YY' p_object_name = 'YMABITEST' p_wb_tool_request = lo_wb.

Funciona mais ou menos, mas não a 100%. A boa notícia é que coisas como o "botão VOLTAR" funcionam e não trava ao clicar em algumas coisas. Muito melhor nesse sentido. Porém, ele inicia o SE80 com o painel esquerdo ativado. Se possível, eu preferiria ver o painel direito com o conteúdo real apenas. É isso que vejo para o objeto WDCA, por exemplo. Você sabe como desativar o "envelope do SE80"? Eu gostaria que minha interface do usuário fosse consistente e esse problema com WDYA torna óbvio que há um problema.

Também testei sua primeira sugestão, mas não faz muito sentido para mim. Não entendo o que fazer. O módulo de função retornou alguns dados (o que, na minha opinião, prova que o objeto existe e está correto). Quando alterei os dados para estarem incorretos (teste negativo), não retornou nada. Mas não sei como usar isso para navegar até o editor. Alguma outra dica aqui, por favor?

Também estava considerando abrir um chamado OSS, porque não entendo qual é a diferença entre WDCA e WDYA para que não possam ser compatíveis ao mesmo tempo e consistentemente por TR_OBJECT_JUMP_TO_TOOL. Suspiro.

De qualquer forma, obrigado pelo tempo e esforço, muito apreciado.

Saudações, Otto

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

Quando TR_OBJECT_JUMP_TO_TOOL não exibe o objeto, costumava:

  • Tentar encontrar um objeto principal (TR_CHECK_TYPE) e usá-lo na FM
  • Tentar convertê-lo para o banco de trabalho SEU (TR_TRANSFORM_TADIR_TO_EU_TYPE) e usar um FM como WB_NEW_WORKBENCH_START

(Isso foi há algum tempo, então agora podem haver ferramentas melhores disponíveis, ainda não converti os relatórios antigos para CL_WB_REQUEST e classes similares.)

Saudações,

Raymond

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

Quando TR_OBJECT_JUMP_TO_TOOL não exibe o objeto, costumava:

  • Tentar encontrar um objeto principal (TR_CHECK_TYPE) e usá-lo na FM
  • Tentar convertê-lo para a área de trabalho SEU (TR_TRANSFORM_TADIR_TO_EU_TYPE) e usar uma FM como WB_NEW_WORKBENCH_START

(Isso foi há algum tempo, então agora podem estar disponíveis ferramentas melhores, ainda não converti relatórios antigos para CL_WB_REQUEST e classes similares.)

Saudações,

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?