cancel
Showing results for 
Search instead for 
Did you mean: 

Call POWL list with application confguration from ABAP webdynpro

Former Member
0 Kudos

I created a powl list (= YL_LOG_PLATFORM)  and a webdynpro application.

In my webdynpro application I call my powl list via following code (as described in several documents):

*  lv_qname = 'YL_LOG_PLATFORM1' .
  CALL FUNCTION 'POWL_ENCODE_SELPARA'
    EXPORTING
      i_selpara        = lt_query_params
*     I_ESCAPE         = '_line'
    IMPORTING
      e_selpara_string = lv_inbox_query.

  wd_this->fire_out_plg(
       applid    = 'YL_LOG_PLATFORM'
       qname     = ' '                  " lv_qname
       forallq   = 'X'
       qselpara  = lv_inbox_query
       refreshq  = 'X'
       refresha  = 'X'
       srvgroup  = ' '
        ).

This works fine.

Then I created an application configuration for the powl list.  Calling the powl list immediately via the application configuration works as well.

But now I want to call the powl list WITH the application configuration in the webdynpro. I do not see how I can give my application configuration name in the call. 

Ter info: I call the powl in a webdynpro because there are buttons on the powl that starts some webdynpro apllications.  Also the 'development' should work in the portal AND in R/3.

Any suggestions?

Accepted Solutions (1)

Accepted Solutions (1)

former_member213957
Participant
0 Kudos

Hi Martine,

Just follow my code.

method WDDOINIT .

* delete FPM component if already existing

data: lo_usage type ref to if_wd_component_usage,

ls_conf_key type wdy_config_key.

lo_usage = wd_this->wd_cpuse_fpm_usage( ).

if lo_usage->has_active_component( ) = abap_true.

lo_usage->delete_component( ).

endif.

ls_conf_key-config_id = <ID configuration of FPM component>.

* recreate component using new configuration ID

try.

call method lo_usage->create_component

EXPORTING

component_name = 'FPM_OIF_COMPONENT' ""component name

FPM Cookbook

Page 58

configuration_id = ls_conf_key. "" component configuration not application configuration

catch cx_wd_runtime_api .

endtry.

Application configuration is only for  execute the application. Any way you executing from the webdynpro component . so no matter of application configuration because it will execute from webdynpro application.

And before creating application confg. definitely you would create component configuration.

Just pass the same component config to the above code .

I hope you solve the this issue.

Former Member
0 Kudos

Thanks a lot!!

It works!!

I only had to take component name = 'POWL_UI_COMP'.

Regards, Martine

Answers (4)

Answers (4)

Former Member
0 Kudos

Dear Martine,

  I'm not sure if it's going to work but you can try this:

  1. Create an enhanchement on POWL_UI_COMP and add a custom inbound plug on window POWL_MASTER with the same parameters as the default plug and add a new parameter for your configuration.

  2. On the handle method of your custom plug add the same code as HANDLEDEFAULT method but when it gets the aditional URL parameters on table LT_URL_PARAS add the parameter

SAP-WD-CONFIGID with the value passed on the pulg parameter.

   * get addition ULR paras
  wdevent->get_data(
    EXPORTING
      name = '_ALL_URL_PARAMETERS'
    IMPORTING
      value = lt_url_paras
      )
      .

  Please, Let me know if it works.

  Regards

Former Member
0 Kudos

Hi Yaiza,

It was a good idea but it did not work.

I added my parameter in LT_URL_PARAS (via debug) but it did not take it into account.

Other ideas?

Regards,

Martine

Former Member
0 Kudos

Dear Martine,

   I have not found a way to call to an specific application configuration and/or component configuration with the POWL embeded on the view. If anyone knows how to do it, please share it

If you can call the powl in a different window you can try the following:

  DATA: lt_all_url  TYPE tihttpnvp.
  DATA: ls_all_url TYPE ihttpnvp.
  DATA: lv_url TYPE string.
  DATA: l_cmp_api TYPE REF TO if_wd_component,
        l_window_man TYPE REF TO if_wd_window_manager,
        l_result_win TYPE REF TO if_wd_window.


  CLEAR: ls_all_url.
  ls_all_url-name = 'SAP-WD-CONFIGID'.
  ls_all_url-value = <your application id configuration>
  APPEND ls_all_url TO lt_all_url.

  CALL METHOD cl_wd_utilities=>construct_wd_url
    EXPORTING
      application_name = 'POWL'

*     in_host          =
*     in_port          =
*     in_protocol      =
      in_parameters    = lt_all_url
*      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
  .

  l_cmp_api = wd_comp_controller->wd_get_api( ).
  l_window_man = l_cmp_api->get_window_manager( ).

  l_result_win = l_window_man->create_external_window(
    url = lv_url
  ).
  l_result_win->open( ).

  You can follow this tutorial

http://scn.sap.com/docs/DOC-2609

I hope it helps

  Regards

Former Member
0 Kudos

Thanks Yaiza.

But if I call it that way I can not react on the event POWL_FOLLOW_UP of the POWL list in my webdynpro. And it's via this event I can call my other webdynpro's.

Regards,

Martine

Former Member
0 Kudos

Dear Martine,

  Currently my system is not working so I have not tested it but you can try the following:

Option 1: Add standard webdynpro application parameter WDCONFIGURATIONID when you call method fire_out_plg.

Option 2: The idea is to add the additional parameter ALL_URL_PARAMETERS  of type TIHTTPNVP. On this table add the parameter

Name = SAP-WD-CONFIGID

Value = <your confirguration ID>.

When you call to method fire_out_plg add the parameter ALL_URL_PARAMETERS  .

I hope it helps

Former Member
0 Kudos

Hi Yaiza,

I already tried option 1 before but's impossible to add a parameter starting with WD.. in the outbound plug.

You get an error message.

Now I tried option 2. I added the table to the outbound plug.

I filled the table in method 'handledefault' as follows:

  DATA: lt_all_url_parameters TYPE tihttpnvp,
        ls_all_url_parameters LIKE LINE OF lt_all_url_parameters.

  ls_all_url_parameters-name  'sap-wd-configid'. "'SAP-WD-CONFIGID'.
  ls_all_url_parameters-value = 'YL_LOG_PLATFORM'.
  APPEND ls_all_url_parameters TO lt_all_url_parameters.

  lv_qname = 'YL_LOG_PLATFORM1' .
  CALL FUNCTION 'POWL_ENCODE_SELPARA'
    EXPORTING
      i_selpara        = lt_query_params
*     I_ESCAPE         = '_line'
    IMPORTING
      e_selpara_string = lv_inbox_query.

  wd_this->fire_out_plg(
       applid    = 'YL_LOG_PLATFORM'
       qname     = ' '  " lv_qname
       forallq   = 'X'
       qselpara  = lv_inbox_query
       refreshq  = 'X'
       refresha  = 'X'
       srvgroup  = ' '
       all_url_parameters = lt_all_url_parameters
        ).

(I tried it in upper and lowercase.)

But the configuration is not taken into account.  When I look at the 'technical help' on the POWL list  I dont' see the config info as well.

Other ideas?  Or did I miss something?

Regards,

Martine

guillaume-hrc
Active Contributor
0 Kudos

Hi,

Usually, you call your application using this syntax:

http://<hostname>:<port>/sap/bc/webdynpro/sap/<application>?WDCONFIGURATIONID=<configuration>

If you call it from the Portail you can add the configuration in the URL parameters.

If you call it from a favorite in SAP Gui, there is a dedicated entry for this.

How do call the WDA application in the outboun plug?

Best regards,

Guillaume

Former Member
0 Kudos

Guillaume,

I do not call the POWL immediately.  It's embedded in a webdynpro application (with the code described above).  But I do not see how to add the configuration name.

Martine.