Skip to Content
Author's profile photo Former Member

Performance Improvement in HCM P&F

Nightmarish!!! that is what I would have answered if some one had asked “how is your project on HCM P&F going on?”, but not after you know how to tame the beast. Working on the HCM P&F for the last one year has been a very learning and adventorous experience. Yes, it is a difficult horse to control, sometimes you feel you have to unlearn certain things and throw your reasoning to the back burner..

Nevertheless, we are succesful in deploying some of the most complex forms. This blog primarily focuses on the performance aspect of huge forms which can extend up to 15 pages in size.

For those who are unaware of what HCM P&F is..I would say.. it is a technology from SAP and Adobe to automate HR processes by leveraging the Adobe paper like look and feel, and ofcourse, the robust SAP workflow engine. HCM P&F basically helps in reducing cycle time in the HR processes apart from its other benefits.

So, coming to the topic, Huge forms can be very sluggish and this makes it totally unusable even after you have put in tremendous effort in developing the same. Apart from the documentation provided by SAP and Adobe on the performance front, here are some pointers which can give some throttle to the forms.. But before that…one good news from SAP.. they have released a note..which is a great move by SAP. I have not tried this yet..but would definetly love to.

Note 1485956 – Optimization in user events – avoid calling all services

 So, here are some points to take care of.

1.       Avoid data refetch in round trips by storing in class attributes and populating back to help values. The drop downs in forms needs to be populated everytime a user event happens or it loses its value.

2.       Rules for executing generic services should be laid in place to execute only relevant generic service.

3.       Service flags should be set for each user event so that we need to execute code relevant only to that user event.

4.       Redundant loops should be avoided to get service fields.

5.       Hide certain sections which might not require frequent entry and thus avoiding generic service execution

6.       Hard coding of selected independent drop downs whose values do not change like country, currency and language can really bring down the rendering time.

7.       Drop downs can be  filled using reference drop downs by use of java script so that all drop downs need not be hard coded and changing single drop down reflects changes in all dependent, this improves maintainability also.

8.    Last but not the least, be a good programmer and fine tune your queries for optimal performance.

 Hope this tips were useful.

My special thanks to Chris Solomon and Otto Gold who were the inspiration for this blog. Chris.. your blogs have been really helpful..Thank you.

Assigned Tags

      You must be Logged on to comment or reply to a post.
      Author's profile photo Bhairavareddy Mudupu
      Bhairavareddy Mudupu
      Hi Raghavendra,

      Just now seen your blog...its very helpfull.
      Can you please share some screen shots and documents on this if possible..


      Author's profile photo Otto Gold
      Otto Gold
      I like your blog and when I saw my name in the text I knew I have to put a comment:)) First your blog is very insightful and useful. Many will hopefully find it, use it and will provide better user experience through their HCMPF Adobe forms.
      Second: I don´t think I helped you much before and you still mention my name. That is so nice. Now I can tell you I will point people here, to read your blog, learn from you knowledge. Because you have accepted the challenge, you started sharing and you help others.
      I would like you to remind of today when any other guy will come to you and say "hey, it was you, who inspired me to become awesome:))". This day will come, for sure. You will inspire people, they will inspire some more people and one day we will have an awesome library of knowledge. And hopefully we will gather somewhere one day, pat our shoulders and shake each others hands. That would be great...
      Keep going, you´re great!
      All the best, Otto
      Author's profile photo Otto Gold
      Otto Gold
      Any, by the way, Chris will like it as well. I am sure about it! Keep going, Otto
      Author's profile photo Christopher Solomon
      Christopher Solomon
      Sorry for just responding on this...just found it!!!! Many of us that blog about HCM P&F kind of adopted a naming convention of starting all blogs with "HCM Processes & Forms:" (maybe edit your title?) to make them MUCH easier to find.

      I did post this note up in the Adobe forms forum on here, but of course that got lost in the noise. Thanks for formalizing it much more and providing some EXCELLENT advice.

      From reading my blogs, you know you don't even have to get me started on "user events" and generic services and such. haha This note/fix from SAP was a STEP in the right direction, but as you probably know well by now (and have the bruises to prove it! haha), they still have some ways to go with the HCM P&F framework.

      One BIG area I want them to look into is the processing time. I have noticed that processes involving multiple scenarios with multiple services tend to take longer to render as the process moves along. In inspecting this, I was shocked to see that on each scenario step, it actually goes back and "processes" previous steps (and their services) for some CRAZY REASON! My thinking was that it would just pull the data from the Process Object (if there) and beging processing the current step based on that data and services config'd. Makes sense doesn't it? But no!, what I have seen is for instance if step 1 takes 20s to render, steps 2 might take 30s and step 3(which might contain no services itself!) could take 40-60s. It's all because it goes back through EVERY previous scenario(steps). Weird. Maybe I will blog on it with examples. =) Otto said....KEEP IT UP!!!! Now you dipped your toes in the pool, jump on in...the water's fine! haha