Launch Pad Customization in SAP ESS:Step by Step
As most of us are aware that SAP has come up with a new UI buiding tool using Webdynpro ABAP as platform.Launch Pads though have been available for sometime now but with EhP 5 they enter into mainstream project development.SAP has added a Webdynpro ABAP flavour to SAP ESS with development of most of the services in WDA.Homepage Framework has been replaced with Launch Pad customization.
This blog will talk about how to use the existing SAP supplied launch pad for ESS and configure it to customer requirement.You must be on EhP5 and using ESS(WDA) role.
Navigate to Launch Pad Customizing using Tx LPD_CUST and select Role ESS Instance Menu.Open the role as make a copy by using Launchpad->Save as.(Very conventional 🙂 ) .Make sure you put a Custom namespace and a Custom role Name.
Now if you have used Homepage Framework in past then this might be a bit confusing because you actually do not need to do much.For adding New Area just add A New Folder; for creating Services use New Application;use Column Break for Segregating areas.You can hide services by dragging them into Inactive Application folder.For example i have hidden services Time Statement and added a new area Employee Search below.
The transport has to be triggered from the menu.In the launchpad you made the changes in, call from the menu ‘Launchpad’ -> ‘Transport’.Use a Z Package or a Standard one (which might be deleted on upgrade) to save the request.
Note:If you have issues in Transport check note 1584026.
And you are done with launch pad. 😉
Now you just need to point your Portal role to this Custom Role.And for that you need not log into portal 😕 .Since the application is hosted on ABAP stack ,so we can customize it from ABAP side.Employee Self Service uses Application HRESS_A_MENU Application Configuration HRESS_AC_MENU.You can make a Z copy of the same and make the changes(will not discuss how to do application configuration in detail here,may be another blog).
Open the Webdynpro Application config from ABAP Workbench Tx SE80 and Execute it in administrator mode (Shift+F8) .
Now go to Configure and provide the Custom Role Name you created earlier.
It will prompt you to create a request.Save in a custom package.Now you are truly done from ABAP side.Now if you have made a Z copy of the application configuration (You should !)than you have to use the same in the portal ESS role.Just change the highlighted properties accordingly.
And you are done.
Those who have worked with Homepage Framework will appreciate the simplicity,still Homepage Framework is supported and we can use it but then why should we 😛 .
Will talk more about application configuration and application integration in another blog.
This blog has been created while exploring the features of EhP5.There can be better ways to achieve the same.Please post your suggestions
Nice one Shankar. I was looking for something like this and found it after figuring it out. But still have a question. I was able to do a custom overview page, but the sub area services are not showing when navigated from the overview page. Am I missing something
Thanks, Raj
In default few services are deactivated.Try setting "Set Enable".
Thanks Shankar. I missed to provide the custom configuration in the area page. It works perfectly fine now.
Thanks,..
I have created folder(xxx) and application(xxx) with complete properties. In portal displaying, service is displaying two times like this
xxx
xxx
I am not expecting this above disply
I am expecting like this xxx, if we click this xxx, should open next page.
Could you please guide on this.
I was searching some simple document on this new Launchpad. Nice blog to begin with. Thank you, much appreciated.
Thanks... i had been looking for something like this for a while...
Nice blog!
However I prefer to enhance the method IF_FPM_GUIBB_LAUNCHPAD~OVERWRITE_LAUNCHPAD_KEY of the feeder class CL_HRESS_LPD_MENU instead of changing the role content on the portal side
It definitely gives me more flexibility and all the customization is on ABAP side
Thanks.
Once you divulge into code than it's always the stronger tool.But then making customer copy of the app config and incorporating changes is easy and can be accomplished with very little knowledge of the underlying architecture.Unless there is some unique requirement on the UI side simple personalization works great.
Good one Shankar.
Hello Shankar, you are Rocking, Good work..
Just getting to grips with deploying EHP5 ESS.
One thing I'd add that if you change the text descriptions against the launchpad folders and applications via LPD_CUST its far easier than via customising as you have a multi line editor.
Any text changes made via LPD_CUST apply to the Map, Directory and Index views whereas changes made via customising have to be done separately for each page. Also if you rename a service via customising it doesn't change the sort in the Index view, whereas making the change via LPD_CUST updates the Index properly.
I've also enabled customising (sap-config-mode=X on Application Parameters of the ABAP WebDynpro ESS portal role) and see that this appears to feed through to the called applications e.g. Leave Request
Therefore using customising for renaming, hiding etc. within application pages. Also you can use the "Add decorative element" to a Group of elements in the page layout to add supporting text, URL links to external supporting information etc. via customising. Though its also possible to add URLs via LPD_CUST if links are needed in the service map/directory/index.
Loving the Launchpad. So much faster than the old homepage framework and nice to have things in one place.
Hi Shankar,
Appreciate your post,
I was searching such kind of stuff related to ESS & MSS on EP 7.3 version as I am going to work on this soon, really good work.
Additions are much appreciated.
Hi!
Do you have experience how to handle a global ESS. I plan to use one Launchpad for all countries - but I don't know if this is the best way.
If you or anyone else has experience please write.
Thank you!
Gregor
Hi Gregor
I did a project with for US and Canada. Followed the same procedure creating two launchpad entries for each country and corresponding webdynpro configruation and portal content.
Thanks, Raj
Excellent blog! This is just the information I was looking for.
Hi Shankar,
I am using EHP4.0 and I don't have any role with "ESS" name! Is it because of my version is EHP4 and not EHP5? Which rule I should look for in my version or what should I do?
Regards,
Omid
Hi Omid,
I think ESS launchpad menu is available as of ehp5. Prior to ehp5, you may need to work with Homepage Framework to customize ESS menu
Hope this helps.
Qi
Thanks Qi,
What about the other parts? Is there big difference between EHP 4 and 5? Do you recommend me to upgrade from 4 to 5?
By the way how we can customize content of pages? For example the part I have selected in below screenshot.
Regards,
Omid
Hi Omid,
With ehp5, you will get WDA based ESS applications, as well as Launchpad based ESS menus.
The ESS menu (Working Time in your example) can be customized through Homepage Framework. The 'requested resource is not found' error is because that configurations in Homepage Framework is not complete. Check the configuration for the Services and Resource.
Regards
Qi
Hi,
I'd advise all reading this post to look at Sagar's post:
Tips & Recommendations for customizing ESS Menu (WD ABAP)
There are some very good reasons to just update the standard ESS menu rather than creating a custom copy. There are also reasons to create a custom copy. Sagar Joshi and I debate these in the comments of his excellent post.
I'd make yourself aware of both before making a decision.
Cheers,
Chris
Hi,
I modified the menu as instructed, but the problem. I kept only the employee benefits a folder payslip. When I click on the link payslip, nothing happens, not take me another page with application payslip. Down Lists javascript: void (0);
Please advise me what happened
Dear Shankar,
Nice document.
Currently I am working on Ehp7 and ESS/MSS is set up recently. As we have implemented Learning Solutions (LSO ) module in R/3 wanted to check the functionalities from Portal side. But unfortunately Learning Launchpad not available in ESS.
Do I've to above said steps to achieve this?
Regards,
Niladri
Hi Shankar - When I open the application HRESS_A_MENU in Administrator mode, I get an error
500 SAP Internal Server Error
Error: Type conflict when calling a function module. (termination: RABAX_STATE).
Did I miss out anything?
Hi,
This sounds like a short dump occurring. Check ST22 to find more information because it could be a number of things (SAP Issue, Customizing issue, missing configuration etc).
If you have more questions you should open a new thread posing the question and provide all the details in that question.
Thanks,
Imran
Imran - Thanks for your response. Below is the short dump, can please take a look and let me know what I am missing.
If the error occurred in your own ABAP program or in an SAP
program you modified, try to remove the error.
If the error occures in a non-modified SAP program, you may be able to
find an interim solution in an SAP Note.
If you have access to SAP Notes, carry out a search with the following
keywords:
"CALL_FUNCTION_CONFLICT_TYPE" "CX_SY_DYN_CALL_ILLEGAL_TYPE"
"CL_HRASR00_SET_PERNR_MEMID_ESSCP" or "CL_HRASR00_SET_PERNR_MEMID_ESSCM001"
"IF_EX_HRESS_MENU~MODIFY_APPLICATION_ATTRIBUTES"
Termination occurred in the ABAP program "CL_HRASR00_SET_PERNR_MEMID_ESSCP" -
in "IF_EX_HRESS_MENU~MODIFY_APPLICATION_ATTRIBUTES".
The main program was "SAPMHTTP ".
In the source code you have the termination point in line 15
of the (Include) program "CL_HRASR00_SET_PERNR_MEMID_ESSCM001".
The termination is caused because exception "CX_SY_DYN_CALL_ILLEGAL_TYPE"
occurred in
procedure "IF_EX_HRESS_MENU~MODIFY_APPLICATION_ATTRIBUTES" "(METHOD)", but it
was neither handled locally nor declared
in the RAISING clause of its signature.
The procedure is in program "CL_HRASR00_SET_PERNR_MEMID_ESSCP "; its source
Line SourceCde
1 METHOD if_ex_hress_menu~modify_application_attributes.
2 DATA p0001 TYPE STANDARD TABLE OF p0001.
3 DATA p0001_wa TYPE p0001.
4 DATA employee_name TYPE emnam.
5 DATA p0105 TYPE p0105.
6 DATA pernr TYPE pernr_d.
7 DATA userid TYPE sysid.
8
9 * pernr = personnelnumber.
10 * molga = countrygrouping.
11 * datum = sy-datum.
12 * service = proxyservicekey.
13 userid = sy-uname.
14
>>>>> CALL FUNCTION 'RP_GET_PERNR_FROM_USERID'
16 EXPORTING
17 begda = sy-datum
18 endda = sy-datum
19 usrid = userid
20 usrty = '0001'
21 IMPORTING
22 usr_pernr = pernr
23 EXCEPTIONS
24 retcd = 1
25 OTHERS = 2.
26
27 CHECK sy-subrc EQ 0.
28
29
30 CALL FUNCTION 'HR_READ_INFOTYPE'
31 EXPORTING
32 pernr = pernr
33 infty = '0001'
34 begda = sy-datum
Contents of system fields
Name Val.
SY-SUBRC 0
SY-INDEX 2
SY-TABIX 1
SY-DBCNT 1
SY-FDPOS 1
SY-LSIND 0
SY-PAGNO 0
SY-LINNO 1
SY-COLNO 1
SY-PFKEY
SY-UCOMM
SY-TITLE HTTP Control
SY-MSGTY I
SY-MSGID APB_LAUNCHPAD
SY-MSGNO 068
SY-MSGV1 WDA
SY-MSGV2 COUNTRYGROUPING
SY-MSGV3
SY-MSGV4
SY-MODNO 0
SY-DATUM 20150307
SY-UZEIT 131547
SY-XPROG
SY-XFORM
Active Calls/Events
No. Ty. Program Include Line
Name
22 METHOD CL_HRASR00_SET_PERNR_MEMID_ESSCP CL_HRASR00_SET_PERNR_MEMID_ESSCM001 15
CL_HRASR00_SET_PERNR_MEMID_ESS=>IF_EX_HRESS_MENU~MODIFY_APPLICATION_ATTRIBUTES
21 METHOD CL_HRESS_LPD_MENU=============CP CL_HRESS_LPD_MENU=============CM001 118
CL_HRESS_LPD_MENU=>IF_FPM_GUIBB_LAUNCHPAD~MODIFY
20 METHOD CL_FPM_LAUNCHPAD_UIBB_ASSIST==CP CL_FPM_LAUNCHPAD_UIBB_ASSIST==CM001 74
CL_FPM_LAUNCHPAD_UIBB_ASSIST=>INIT_FEEDER
19 METHOD /1BCWDY/QU46274ZW0645FKEYFYF==CP /1BCWDY/B_QU462VNYHQSNLLER8HX4 532
CL_COMPONENTCONTROLLER_CTR=>FPM_INITIALIZE
Web Dynpro Component FPM_LAUNCHPAD_UIBB
Controller COMPONENTCONTROLLER
18 METHOD /1BCWDY/QU46274ZW0645FKEYFYF==CP /1BCWDY/B_QU462VNYHQSNLLER8HX4 112
CLF_COMPONENTCONTROLLER_CTR=>IWCI_IF_FPM_MULTI_INSTANTIABLE~FPM_INITIALIZE
Web Dynpro Component FPM_LAUNCHPAD_UIBB
Controller COMPONENTCONTROLLER
17 METHOD CL_FPM_COMPONENT_MANAGER======CP CL_FPM_COMPONENT_MANAGER======CM003 128
CL_FPM_COMPONENT_MANAGER=>ADD_COMPONENT
16 METHOD CL_FPM_COMPONENT_MANAGER======CP CL_FPM_COMPONENT_MANAGER======CM004 20
CL_FPM_COMPONENT_MANAGER=>ATTACH_COMPONENT_TO_USAGE
15 METHOD CL_FPM_FLOORPLAN_ASSIST=======CP CL_FPM_FLOORPLAN_ASSIST=======CM01G 61
CL_FPM_FLOORPLAN_ASSIST=>INITIALIZE_APP_CC
14 METHOD /1BCWDY/QU46A35ISYYN7LADKILM==CP /1BCWDY/B_QU46AROHEOL6NR4PUKKC 864
CL_COMPONENTCONTROLLER_CTR=>WDDOINIT
Web Dynpro Component FPM_OVP_COMPONENT
Controller COMPONENTCONTROLLER
13 METHOD /1BCWDY/QU46A35ISYYN7LADKILM==CP /1BCWDY/B_QU46AROHEOL6NR4PUKKC 370
CLF_COMPONENTCONTROLLER_CTR=>IF_WDR_COMPONENT_DELEGATE~WD_DO_INIT
Web Dynpro Component FPM_OVP_COMPONENT
Controller COMPONENTCONTROLLER
12 METHOD CL_WDR_DELEGATING_COMPONENT===CP CL_WDR_DELEGATING_COMPONENT===CM004 9
CL_WDR_DELEGATING_COMPONENT=>DO_INIT
11 METHOD CL_WDR_CONTROLLER=============CP CL_WDR_CONTROLLER=============CM00Q 3
CL_WDR_CONTROLLER=>INIT_CONTROLLER
10 METHOD CL_WDR_COMPONENT==============CP CL_WDR_COMPONENT==============CM00U 24
CL_WDR_COMPONENT=>INIT_CONTROLLER
9 METHOD CL_WDR_CONTROLLER=============CP CL_WDR_CONTROLLER=============CM002 7
CL_WDR_CONTROLLER=>INIT
8 METHOD CL_WDR_CLIENT_COMPONENT=======CP CL_WDR_CLIENT_COMPONENT=======CM00D 24
CL_WDR_CLIENT_COMPONENT=>INIT
7 METHOD CL_WDR_CLIENT_APPLICATION=====CP CL_WDR_CLIENT_APPLICATION=====CM00I 17
CL_WDR_CLIENT_APPLICATION=>INIT
6 METHOD CL_WDR_MAIN_TASK==============CP CL_WDR_MAIN_TASK==============CM00Z 11
CL_WDR_MAIN_TASK=>IF_WDR_RUNTIME~CREATE
5 METHOD CL_WDR_CLIENT_ABSTRACT_HTTP===CP CL_WDR_CLIENT_ABSTRACT_HTTP===CM01A 90
CL_WDR_CLIENT_ABSTRACT_HTTP=>HANDLE_REQUEST
4 METHOD CL_WDR_MAIN_TASK==============CP CL_WDR_MAIN_TASK==============CM00J 85
CL_WDR_MAIN_TASK=>IF_HTTP_EXTENSION~HANDLE_REQUEST
3 METHOD CL_HTTP_SERVER================CP CL_HTTP_SERVER================CM00D 627
CL_HTTP_SERVER=>EXECUTE_REQUEST
2 FUNCTION SAPLHTTP_RUNTIME LHTTP_RUNTIMEU02 1221
HTTP_DISPATCH_REQUEST
1 MODULE (PBO) SAPMHTTP SAPMHTTP 13
%_HTTP_START
Please open a new thread for these type of issues and questions in the correct forum (ESS in this case). If you open the question you can just send the link to the question.
Posted the message in ESS forum, please comment if you can.
Hello,
I did not see the thread that you created in the ESS page. I also looked at your profile and did not see it under your "Content". Are you sure you created it?
If so can you send me the direct link?
Thanks,
Imran
I already posted the question but it needs to be reviewed by moderator so it has not been visible yet. Can you take a look here and give me some direction?
Thanks,
-Ashwani
Hi Shankar,
We want to achieve a similar scenario, where I want to activate only Travel and expense, and hide all other applications. I am just a beginner to WDA. As Per your blog, I understood that we need to do following steps:
1) Create a z role ZESS and hide all the applications by dragging them to inactive folder.
2) create a Z of area group and assign ZESS.
3) Create a Z application config of HRESS_AC_MENU and assign z area group (step 2).
4) Create z application og HRESS_A_MENU, which defines z app config of step 3.
5) In portal change the app name and config name.
Portal version: 7.4
following are my doubts
1) Is my understanding correct?
2) Do we need to prepare z of HRESS_CC_OVP_MENU too?
Will appreciate your quick response.
Regards,
Khushboo
Please raise a new thread of your query in content space , enterprise and portal administration.