Skip to Content

     I have been sitting on this blog for quite a while…I was not sure if this should be shared…my own little secret (haha). However, as I see more and more push back, complaining, negative posts, etc. saying things like “oh I can’t wait till WebDynpro ABAP replaces the Adobe forms in HCM P&F” or “I sure am glad there are 3rd parties that have WDA replacements for the Adobe forms in HCM P&F” or “well, our company is just going to wait till EhP6/HR Renewal 1.0 so we can just make WebDynpro ABAP views for HCM P&F”…I thought “why is it Adobe OR WebDynpro? Why not both?” (and yes, I think my track record/past blogs/dust up I caused does point to the fact that I do understand the licensing side of this issue, but let’s take that out of it). So here goes…

     Back in the early days of HCM P&F, you almost felt like a cave man with crude wooden tools and maybe one stone wheel. Times were hard. You had to make due with what you were given (ie. not much).

     If you wanted to give the users “help” on possible entries for fields, you had not much more than a drop-down list to offer them. Often times, you had to code your own generic service in order to populate your drop down list because the SAP “automatic” way of doing it left a lot to be desired or did not handle your own “business logic” (for instance, say your field has a check table with 15 valid entries in it. However, on the form, your business rules say that of those 15, only 6 should show on the form…that is where a custom generic service comes in). Furthermore, if you wanted to make your form “interactive” and “web like”, you had to implement “user events” (a misnomer in my opinion) in your configuration….and then, you began to “jump hurdles while juggling and balancing an egg on the end of a spoon held in your mouth” because you usually had to make creative use of “trigger” or “flag” fields and configure “rules” in order to make your “user events” actually behave like what I (and many others) imagine “events” to behave like.

     But again….those were “dark” times for us all in HCM P&F. With EhP4, we became a little more evolved. We got SAP_PD which opened up the world of PD/OM processes to us. Likewise, SAP slipped in a new “event”….along with “initialize” and “check”, we now got USER_EVENT_POPUP. You see this most often used with things like WebDynpro ABAP “Search Help” pop-up windows. This was perfectly blogged by Ian Stubbing in HCM Processes & Forms: Web Dynpro ABAP Search Helps. His blog really got me thinking….and thinking….and thinking some more….

    I thought, wouldn’t it be nice if I could just pop-up any old WebDynpro ABAP I had written from within a HCM P&F form? Something like…oh I don’t know…This?!?!?

helloworld.JPG

Ahhh yeh! Pretty sweet!

But then I thought, wouldn’t it be cool if on the form I had some input field for the user….

step_1.JPG

…that the user filled in…

step_2.JPG

…and then clicked some button that would trigger a pop-up window of my own custom WebDynpro ABAP application that could read that field from the form…

step_3.JPG

…and then in my custom WebDynpro ABAP application window, I could enter whatever data there….

step_4.JPG

…click “OK” on the pop-up window and send it back to the form to any field over there ?

step_5.JPG

Oh yeh…Something like ALL of that? That WOULD be cool!!! haha

It actually was much easier than I thought. Using the lessons learned of reverse engineering the “Search Helps” as  I blogged about before (HCM Processes & Forms: The Secrets of Search Helps and OADP….REVEALED! – part 1), I was able to make it all work….in about 15-20 minutes.

The first “key” is understanding the “Call Pop Up” method of your WebDynpro ABAP’s component controller. This is where you will handle reading in whatever fields from the form you like. SAP has provided us with a very nice “importing” structure SPECIAL_DATA as part of the “Call Pop Up” method in the IF_HRASR00_FORM_WINDOW WDA interface.

if_hrasr000_form_window_se80.JPG

if_hrasr000_form_window_se80_2.JPG

This SPECIAL_DATA structure has ALL of our form fields and their values. We can then simple read through it, find the fields we need, and set our own context fields in our WDA as we wish. After that, the component controller handles firing the call to pop-up the actual window.

In the first part of this code, you can see how we are looking through the SPECIAL_DATA form fields for one particular field. From this, we can read that value and then set our own context values as we like.

callpop_code_1.JPG

After this, we simply are going to find the “title” for our pop-up window and then call the code to launch the pop-up (this is normal code you will see in the standard SAP search helps for HCM P&F).

callpop_code_2.JPG

The next “key” to this is the method in our actual “view” of our WDA. In our view’s “WDOINIT” method, we already “subscribed” to listen for the event that occurs when the user clicks the “OK” button on our pop-up window (we can listen for “cancel” as well).

view_wdoinit_code_1.JPG

Now, when our view “catches” this event in our ONACTIONOK event handler method, this is our chance to set fields to send back to our form.

onactionok_handler.JPG

onactionok_code.JPG

So…there you have it…mixing a little custom WebDynpro ABAP into HCM P&F’s Adobe Interactive Forms was never easier!

One last note…in our testing, my co-worker, Philip Johnston, did discover a “bug” in our version in which continuous uses of the “pop up” event seemed to make our form fields passed to the ISR interface DOUBLE on EACH use….so it grew exponentially! The problem was found to be in the WDA component QISR_UI in it’s component controller method SET_EXTERNAL_DATA_TO_INPUT_P. After the loop, they left off the simple line:

     delete adjacent duplicates from cr_model->external_data comparing fieldindex fieldname.

We added this in an “overwrite” enhancement of the whole method and it works perfectly well now.

I hope as Ian Stubbing did for me on my (fanatical? haha) search into this solution that I too might spurn on others to push this further. Trust me…once I figured this out, it had my mind spinning on how much more was possible….which is where my next blog was born from……HCM Processes & Forms: Good-bye User Events!!!!…..hello windowless WDA events!

As always….till next time..enjoy!!!!

To report this post you need to login first.

13 Comments

You must be Logged on to comment or reply to a post.

  1. Jarret Pazahanick

    Lets just say I have never seen ANYONE release 8 blogs in 1 hour so you definitely have the Guinness record and one that I will never attempt to beat πŸ™‚

    I think it is hard to take the licensing issue off the table as that is the MAIN reason I hear customers so excited about much of the new functionality in the HR Renewal including the new WDA form offering.

    Good stuff and you have really represented the SAP HCM community with blogs this year so kudos for that.

    (0) 
    1. Christopher Solomon Post author

      Understood Jarret….the licensing thing is, has and always will be the 800 lb Gorilla in the room….BUT hopefully, this blog will help those folks that are not worrying over those issues…the ones actually “in the trenches” and doing the work….and/or at sites that have Adobe in place and want a way to make it more robust……….and developing WDA skills now while doing so as they wait for HR Renewal to be in place does not hurt either….and even gives them a leg up. Sooooo….there is that angle too. haha

      8 blogs in an hour? Seems so, eh? Just like those “overnight success” folks that work at it for 20+ years. haha Nope….just had some drafts lying around and finished them all up…and they all tied together/linked so I figured it best to release them at once. BUT if you like to imagine me as a superhuman of sorts, I will let you. haha

      (0) 
  2. Graham Robinson

    Great blog Chris – very much in the tradition of what SDN used to be and hopefully SCN will be again.

    You almost make me want to take another look at WDA & Adobe forms. Almost but not quite! πŸ˜‰

    Cheers

    Graham Robbo

    (0) 
    1. Christopher Solomon Post author

      Thanks, Graham! Coming from you, that means a lot. If you liked this one, you should LOVE my other one on “windowless WDA”…..talk about the ol’ SDN hack-it spirit! hahaha

      (0) 
  3. satish reddy

    Hello Chris,

    Following this blog of yours, I replicated this scenario without any issues. Thank you very much.

    Your HCM P & F blogs are The Bible for me.  I have learnt a great deal from your blogs.

    Cant wait to try out the tricks in your other recent blogs.

    (0) 
  4. RamMohan Reddy

    Hi Chris,

    Great blog. I have been running through all your blogs and trying out.

    Here is the question I have.

    For P&F based on Adobe forms to call a pop up we link the WD based component as below

    $record.CONTROL_PARAM.ISR_EVENT = “USER_EVENT_POPUP”

    $record.HRASR_FORM_WINDOW.DATA[*].FIELD.value = “ZPOPUP_COMPONENT”


    For FPM based P&F where do we bind the component. I know that for a F4 help we can bind the ZPOPUP_COMPONENT in the configurations but say if I click on “CHECK” button, I need a popup.

    (0) 
    1. Christopher Solomon Post author

      Look at how SAP code does it when you assign a WDA for “input help”. Same thing. Though I would be hard pressed to find a reason other than “help” to do one. I also did a recent blog on how input helps are done.

      (0) 
      1. Tal Tzafriri-Adi

        I read your blogs regarding search helps (related to P&F with FPM forms) and I still wondering how to display a pop-up (with input fields from my P&F process) which is triggered by my generic service.

        Your guidance will be very appreciated!

        (0) 
  5. BISWABRATA CHOWDHURY

    Hi Chris,

    I have went through your blogs which have been of great help to me during my development of process and forms through FPM (WDA). I am little stuck while I am trying to approve the form through Workflow (I have used task TS33700022 ).
    I have used the composite type configuration inside the form to display the family details of the employee. But when I am trying to approve the form through Workflow the details in the composite type is not getting displayed to the Manager for approval. Β Can you please help so that the requirement can be achieved.

    Thanks and Regards
    Biswa

    (0) 

Leave a Reply