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
Avalados por :
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 ).
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
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
Quando TR_OBJECT_JUMP_TO_TOOL não exibe o objeto, costumava:
(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
Quando TR_OBJECT_JUMP_TO_TOOL não exibe o objeto, costumava:
(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
contacto@primeinstitute.com
(+51) 1641 9379
(+57) 1489 6964
© 2024 Copyright. Todos los derechos reservados.
Desarrollado por Prime Institute