cancel
Showing results for 
Search instead for 
Did you mean: 

Call dynamic URL from powl

Former Member
0 Kudos

Hi

I am using the powl to open a dynamic url createdin the backend.

I am passing the URl in field portal_nav_mode. The browser is opening the correct url, but the url parameters are missing.

It is a BSP application that are called.

Kim

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi All

I am able to pass the parameter using E_PORTAL_ACTION-PARAMETERS, but the receiving application does not support encoded url.

So I made a WDA, that were called from the POWL and then the WDA redirect to the URL.

Thanks

Answers (3)

Answers (3)

Former Member
0 Kudos

Dear Kim,

  How are you doing the navigation?

  The parameter E_PORTAL_ACTIONS of method IF_POWL_FEEDER~HANDLE_ACTION has a field E_PORTAL_ACTONS-PARAMETERS where you can add the parameters.

  Regards

nagarjun_kalletla
Participant
0 Kudos

*& Construct URL

CALL METHOD cl_wd_utilities=>construct_wd_url

   EXPORTING

     application_name              = '< Mention your Application Name here not the Component which is to be opened >'

*    in_host                       =

*    in_port                       =

*    in_protocol                   =

*    in_parameters                 =

*    in_client                     =

*    in_forward_accessibility_flag =

*    namespace                     = 'sap'

*    in_server                     =

   IMPORTING

*    out_host                      =

*    out_port                      =

*    out_protocol                  =

*    out_local_url                 =

     out_absolute_url              = lv_url.

*&construct_wd_url will return the url into lv_url.

*& Append Value to url

CALL METHOD cl_http_server=>if_http_server~append_field_url

   EXPORTING

     name   = 'EBELN'

     value  = lv_ebeln

   CHANGING

     url    = lv_url.

Append field URL will will take Field name , field value and url

and returns the lv_url . with name and value in Url

Here lv_ebeln will have the value(type string) , and name 'EBELN' is your field name 

lo_api_component  = wd_comp_controller->wd_get_api( ).

lo_window_manager = lo_api_component->get_window_manager( ).

CALL METHOD lo_window_manager->create_external_window

   EXPORTING

     url            = lv_url

*    title          =

*    modal          = ABAP_FALSE

*    has_menubar    = ABAP_TRUE

*    is_resizable   = ABAP_TRUE

*    has_scrollbars = ABAP_TRUE

*    has_statusbar  = ABAP_TRUE

*    has_toolbar    = ABAP_TRUE

*    has_location   = ABAP_TRUE

*    use_post       = ABAP_FALSE

   receiving

     window         = lo_window.

lo_window->open( ).

call the below method in Component which has to be opened

Data : client_window type REF TO cl_wdr_client_window.

*& Call Static Attribute of class wdr_task

  client_window  = wdr_task=>client_window.

*& Get the value of the Parameter

CALL METHOD client_window->if_wdr_client_info_object~get_parameter

   EXPORTING

     name   = 'EBELN'

   receiving

     value  = lv_ebeln.

Get parameter will take the Name and returns the value lv_ebeln (type string).

This will definitely Help you !! return me if you have Doubts !!!

Former Member
0 Kudos

Hi,

The URL Parameters are available in the  parameter WDEVENT in the window.

in your webdynpro component, you have a window for every application(URL).

in that window, you have an event handler HANDLEDEFAULT.

in the event handler, you will find an import parameter called  WDEVENT  type ref to CL_WD_CUSTOM_EVENT.

you can read the url parameter with get_data method.

wdevent->get_data( Exporting name = 'URL_Param'   importing value = lv_URL_param ).

even if the url paramenters are not visible in the URL, you can read them in the windoe method.

Thanks.

Uma