Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results forย 
Search instead forย 
Did you mean:ย 

How to navigate into dev. object WDYA

OttoGold
Active Contributor
0 Kudos

Dear reader,

I have the following problem: I need my development tool to navigate to SE80/ development object type WDYA. Which is webDynpro ABAP application.

What I need is something like one of the following (to give the impression I tried before asking ๐Ÿ˜ž

a) option A I tried: use TR_OBJECT_JUMP_TO_TOOL for object WDYA is not supported (try single test the thing). Interestingly it works for object type WDCA (which is web dynpro configuration) and from there one could (via on-click on app.) jump to the application. That is where I got the code for the option B below.

b) option B: I tried to hack the editor and jump to the screen I want directly using the workbench classes. It is dirty and it does not always work. If you're interested, check my code:

What I need is something like RS_FUNCTION_SHOW function module to display a function module. There must be such thing for webdynpros too.

Thanks for reading that far, I will be glad if you have any pointers for me.

Have a nice day, 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
       ).

1 ACCEPTED SOLUTION

raymond_giuseppi
Active Contributor
0 Kudos

When TR_OBJECT_JUMP_TO_TOOL does not display object, I used to :

  • Try to find a main object (TR_CHECK_TYPE) and use this one in the FM
  • Try to convert to SEU workbench (TR_TRANSFORM_TADIR_TO_EU_TYPE) and use a FM like WB_NEW_WORKBENCH_START

(That was some time ago, so better tools may be available now, not yes converted old reports to CL_WB_REQUEST and similar classes.)

  

Regards,

Raymond

5 REPLIES 5

raymond_giuseppi
Active Contributor
0 Kudos

When TR_OBJECT_JUMP_TO_TOOL does not display object, I used to :

  • Try to find a main object (TR_CHECK_TYPE) and use this one in the FM
  • Try to convert to SEU workbench (TR_TRANSFORM_TADIR_TO_EU_TYPE) and use a FM like WB_NEW_WORKBENCH_START

(That was some time ago, so better tools may be available now, not yes converted old reports to CL_WB_REQUEST and similar classes.)

  

Regards,

Raymond

0 Kudos

Hello Raymond,

thanks for the idea. I've tried the following

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.

It sort of works, but not 100%. The good news is that things like "BACK button" work and it does not dump when clicking on some of the things. Much better in this regard. But it starts SE80 with the left pane on. If possible, I would prefer to see the right pane with the real content only. That is what I see for WDCA object for example. Do you know how to turn the "SE80 envelope" off? I would like to have my UI consistent and this WDYA problem makes it so obvious there is a problem. 

I tried your first suggestion too, but it does not make much sense to me. I don't understand what to do. The function module returned some data (which IMO proves the object exists and is ok). When I changed the data to make it incorrect (negative test), it didn't return anything. But how to use that to navigate into the editor I don't know. Any more pointers here, please?

I was also considering opening a OSS message, because I dont understand what is the difference between WDCA and WDYA so they can't be supported at the same time and consistently by TR_OBJECT_JUMP_TO_TOOL. Sigh.

Anyway thanks for the time and effort, much appreciated.

Cheers Otto

0 Kudos

Update. I tried with

p_in_new_window     = 'X'

and it shows what I want now. The only problem is that it opens a new window.
TR_OBJECT_JUMP_TO_TOOL I use for all other types does not behave like that.

Cheers Otto

0 Kudos

AFAIK SAP did not add new objects to TR_OBJECT_JUMP_TO_TOOL since Note 1682468 - SE09: Navigation for BW objects OSOA and OSOD in november 2012.

Regards,
Raymond

0 Kudos

Update: I opened a OSS message asking politely that they add this functionality, why it makes sense and how I would go about it. I also stated that the code is already there but not put together in an ideal way.

I was obviously way too polite, because they said they appreciate my feedback but I can... (add any of the reason you got in the past from OSS why things can't be done... in case you have never tried yourself and haven't heard that from friends either, think "it is a consulting request blah blah")

Cheers Otto