cancel
Showing results for 
Search instead for 
Did you mean: 

Call custom wd into standdard POWL

Former Member
0 Kudos

Hi All,

Please answer if worked on WD POWL

I have requirement to enhance   standard WD component which is using POWL concept.

Requirement: Need to add button  “ BUTTON1” I std .

When button is pressed call one custom screen (WD) with some fields.

I have some idea of webdynpro but how to achieve this in feeder class of POWL concept.

My question is:

1) can I call normal WD in feeder class when button "BUTTON1"  pressed if yes how .

2) Or I need to build WD component using  POWL_UI_COMPONET  like FPM (OIF component) .

OIF concept link

http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/b52e13c3-0901-0010-8fa6-d11a51821...

I searched many sites but did not get full idea how to build a POWL end to end.

Powl sites i have visited the below sites.

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

http://benxbrain.com/en/APB_LPD_T_PARAMS-Custom-WD-application-from-POWL-Action-Button-thread-1-3282...

http://scn.sap.com/thread/3282712

http://scn.sap.com/thread/1245628

http://wiki.scn.sap.com/wiki/display/WDABAP/POWL

http://help.sap.com/saphelp_nw73ehp1/helpdata/en/a1/de054179214c4593a3b129ecf57f3d/content.htm

http://www.consolut.com/en/s/sap-ides-access/d/s/doc/N-CL_POWL_EASY_FEEDER

http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/60f1d5ee-84ab-2c10-ce97-97dfd89bc...

IF any one worked in the issue kindly guide me how to proceed.

My main question is how to call the WD component in feeder class  or any suggestions.

help full answers will be rewarded.

Thanks

GOPAL

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi Gopal,

In LPD_CUST, create a launchpad for the WD application which you want to call on click on button.

In your POWL feeder class enhance method 'GET_ACTIONS' and write code in Post-Exit of the method to add your custom button.

In Post-Exit of method 'HANDLE_ACTION' check if the action id is of the button you have added and

then launch WD by calling method 'NAVIGATE' of class 'CL_HR_NAVIGATION_SERVICES'.

Former Member
0 Kudos

HI Hitesh,

when I used lpd_cust    t-code

enter the values of the new launchpad.

Role

Instance

namespace

launchpad type

form where i can get the above details can you please help me out, as i have not worked on them and i new in this area.one more question can we call  normal webdynpro component feeder class.

Former Member
0 Kudos

Take help of a portal consultant for lpd_cust.

Role - Same Role from which your POWL application gets called.

Instance - NAVIGATION

NameSpace - sap

Launchtype type - Are you trying to call a WD?if yes then Webdynpro ABAP.

In LPD_CUST first check if the required role and instance as NAVIGATION are already present.

If found then create launchpad inside it.

I have never created a launchpad,its always created by our portal consultant thats why I advised to take help.

I not understood what exactly you mean normal webdynpro component feeder class?is that a FPM application having feeder classes?

Former Member
0 Kudos

Hi  thanks very much for your suggestion it’s worked out and very sorry for late remarks.

Just one more step to meet the requirement.

1)created  Role  with WD component  and  OBN type  with a method order num ,when I press custom button in NWBC screen action is triggered and opend ZWD component in new "TAB"  all fine .

2) Under ZWD component (implemented interfaces)

Added : POWL_DETAIL_COMP_IF and  re-implemented.

Now the problem is I need to carry order num form STD NWBC to my custom ZWD component which is not happening , can please suggest me how to get order num .

Answers (3)

Answers (3)

0 Kudos

Hello Gopal,

You might have solved it by now. But here is the simple way to achieve this:

1. In feeder class implement method GET_DETAIL_COMP. here provide the WD component name.

2. In the WD component, implement WD interface POWL_DETAIL_COMP_IF. In the COMPONENTCONTROLLER you will have the method UPDATE_DETAIL_DATA. you have the POWL lead selection here.

Thanks & Regards

Deepankar

Former Member
0 Kudos

Hi Gopal,

Incase if you still looking for solution then you can refer the below thread.

http://scn.sap.com/thread/3459258

At the end has mentioned how after getting the url of the wd application he opened

it without using LPD_CUST.

Former Member
0 Kudos

HI Hitesh,

Thanks for suggestion,

I will explain my problem in detail.

I have developed and wd component :ZWD_MFGRITS , Application: ZWD_MFGRITS_APP  which need to be called when user clicks on BUTTON (tech name B1) of std feeder class of POWL.

In ZWD_RITS I have 8  fields where business logic is dependent on order num which comes from powl ( ALV  lead selection)

Feeder class: CL_RPLM_QIMT_POWL_ORDER_PM

Copied to ZCL_RPLM_QIMT_POWL_ORDER_PM

Changes made as below.

I have created BUTTON (tech name B1 ) in method method get_actions_order_pm

working as expected.

Under Method IF_POWL_FEEDER~HANDLE_ACTION.

I_USERNAME

I_APPLID

I_TYPE

I_ACTIONID

I_CHANGED

I_ACTION_INDEX

I_ACTION_CONF

I_LANGU

I_ADDITIONAL_DATA

I_VISIBLE_FIELDS

E_PORTAL_ACTIONS

E_MESSAGES

E_DO_REFRESH

E_RESULT_LINES_CHANGED

E_CHANGES_PROCESSED

E_SELECTED_CHANGED

E_ACTIONS_CHANGED

C_SELECTED

C_RESULT_TAB

C_WORKFLOW_RESULT_COUNT

C_ACTION_DEFS

C_FIRST_VISIBLE_ROW

C_FIRST_VISIBLE_SCROLL_COL

Now I have written code.

If  i_actionid = 'B1'.

    READ TABLE c_selected INTO ls_index INDEX 1.

    READ TABLE c_result_tab INTO ls_result INDEX ls_index-tabix.

I got the lead selected data in variable l_ordernum = ls_result-aufnr.

  l_ordernum

Now problem is here-----------------------------

until every thing is working fine I got the order num.

how  to pass  l_ordernum  to ZWD_MFGRITS compoenet and call the ZWD_MFGRITS in new screen or window.

Endmethod.

I found some useful link, It would be grateful if you could help me in finding the solution.

http://scn.sap.com/community/web-dynpro-abap/blog/2011/07/06/navigation-from-powl-to-wda-without-obj...

In the above link .   

We can sent the selected data to portal through e_portal_actions-parameters.

ls_parameter-key = field name  

ls_parameter-value = value

append to e_portal_actions

Now to how to call my custom wd ZWD_MFGRITS component and import the value from e_portal_actions.

can you suggest me how to Proceed.

Thanks gopal.

Former Member
0 Kudos

In the link which you have provided, POWL has been embeded inside WD Comp.

If you are going for a standalone POWL class then you can proceed as follows.

In your WD appl 'ZWD_MFGRITS_APP' add one parameter as 'ORDER_NUM'.

Use method 'CONSTRUCT_WD_URL' of class 'CL_WD_UTILITIES'

Pass 'ORDER_NUM' and value of order number in parameter 'IN_PARAMETERS' of the above method.

You will get url in 'OUT_ABSOLUTE_URL'

After getting the url you can use the code which was provided in the thread I had mentioned earlier.

   CALL METHOD cl_powl_runtime_services=>get_powl_controller

    IMPORTING

      e_powl_int_controller = lv_wdcomp.

  CHECK NOT lv_wdcomp IS INITIAL.

  CALL METHOD lv_wdcomp->wd_get_api

    RECEIVING

      result = lv_wdcontr.

  CHECK NOT lv_wdcontr IS INITIAL.

  lr_api_component  ?=  lv_wdcontr.

  l_wnd = lr_api_component->get_window_manager( ).

  l_result = l_wnd->create_external_window(

url = l_url ). "----->pass your url here in l_url.

  l_result->open( ).   

This code should open your WD application in new window.

Inside your WD you can get the value of order num as below:

    LV_ORDERNUM = WDR_TASK=>CLIENT_WINDOW->GET_PARAMETER( 'ORDER_NUM ).

Let me know if you need help.

Former Member
0 Kudos

Hi Hitesh,

thanks for your suggestion, when I implement the code it’s throwing an error

Error:"Method  get_powl_controller does not exist .There is, however, a method with similar name   set_powl_controller."

when i see  get_powl_controller of  CL_POWL_RUNTIME_SERVICES (final class) it is  in  protected mode . so its throwing the above error as of my knowledge we cannot access "get_powl_controller " out side the class.

Rudy_Clement1
Participant
0 Kudos

Hi Gopal,

You can use the interface IF_FPM_NAVIGATE_TO to navigate to any another webdynpro application.

To get an instance, use this coding:

    lo_fpm = cl_fpm_factory=>get_instance( ).

    lo_navigate_to = lo_fpm->get_navigate_to( ).

Then call the LAUNCH_WEBDYNPRO_ABAP method and provide the details of your application to navigate to it.

Please note that the launched WD application is launched in a new window. But I believe that is conform requirement if I understand your question correctly.

Good luck!

Kind regards,

Rudy.

Former Member
0 Kudos

Hi Rudy,

thanks for you suggestion, I belive it works in FPM and do it hold good for POWL concept also.

Rudy_Clement1
Participant
0 Kudos

This message was moderated.