HCM Processes & Forms – Moving from Adobe to WD ABAP – Part 3
In my last blog I had elaborated on creating the component interface and the WDA form component, in this blog I will cover the integration of standalone web dynpro application with the ISR framework.
My first priority was to disable the Adobe view and plant my WDA application in that place, so I identified the view in the QISR_UI component where the Adobe form gets embeded, and then I enhanced the view by adding a view contiainer element in that, this view container is the one which will hold my web dynpro application.
But before anything else, I needed to check the switch in the z-table I have created and store the value in an attribute.
I created a post exit method for the SET_EXTERNAL_DATA of component controller and set the switch attribute based on it.
The view contianer created in the view VIEWSHOWFORM.
Next, I created a component usage of component interface in the properties and then did override of the view method INIT and inserted the code for dynamic component use.
And then, overided the WDMODIFYVIEW method and inserted the following code to remove the UI node of adobe form with the reference of the UI root container. So now that the Adobe form is removed, my WD component can sit comfortably in that space.
The method CREATE_GENERIC_CONTEXT of the component controller is the one where data from ISR is fetched for creating the context of the main webdynpro compnent, so I override this method too, and called the set_data method of my web dynpro component interface to push data to the WDA app.
Note that the long text data for the comments needs to be set separately.
The override method of create_generic_context was not getting called in the ADJUST_CONTEXT method for reason unknown, so I just overrode the ADJUST_CONTEXT method and called the override method of CREATE_GENERIC_CONTEXT.
Once the set_data calls are done at the appropriate points, the web dynpro application will be able to display all the data from the ISR on the screen, we already had a generic service in place which populates ISR data before our WD method calls to set data.
In the screen shots below you can see all the fields populated on lauch of the screen.
After the user enters the data, the data needs to be sent back to the ISR framework from the context of the web dynpro. This can be done by overriding the method
FILL_INPUT_P_FROM_GENERIC_CTX, For tables, we need to fetch all the elements and then populate the lt_elements, if we dont do that then only the first line of the table gets populated in the ISR.
Screen shot of code changes for setting data.
For the current comments to be passed to ISR I needed to override the method SET_TEXT_EDITS_TO_INPUT_P, and that should be it and I was good to go with the new screens.
The performance is miles ahead of Adobe and the form is quicker to complete.
For the showing up the forms in Adobe we had built a custom program in ABAP which shows all pending and executed forms, the user can fire a printout if required.
So next time you are implementing HCM Processes and Forms with performance in mind take a relook, it is possible through Web Dynpro ABAP.
I hope this blog series is helpful to many who work in this area and thanks for reading.
Explore, Learn, and Share – Let that be our SAP Mantra.
Raghavendra Prabhu
Nice work! This series will serve as a great source of information and hold over until folks move over to the "new" HCM P&F where this is supported natively.
Chris, Thanks for reading and those inspiring words. Your contribution in this area is unparalleled.
haha I don't know about "unparalleled". I just try to help save people from going through the pains/learning curves/etc I went through with HCM P&F. Glad to know you are on board now and helping fight the good fight too! I look forward to more from you.
Hi Raghvendra,
Extremely useful post and great work done i must say!
Just had an update regarding this. From my knowledge, SAP is coming out very soon with a standard system where in a customer has the option to choose from Web-dynpro form or an Adobe form.
Much of the configuration remains quite similar and the form also looks very nice.
thanks and regards,
Utsav Shah
Hi Raghavendra,
Great blog series and really cool to see how another developer approached this. There are so many ways to skin a cat, and fundamentally you have done it a very similar way to how I did it.
I came across your blog as I have been in the process of writing up the long overdue technical sequal to my initial blog, with the intent of releasing a how to guide for doing the enhancement. Looks like you beat me to it! Great job.
I'm still going to try and finish it off to give a second perspective.
Keep up the good work and brilliant work solving the puzzel 🙂
Cheers,
Brad
Hello Raghavendra Prabhu,
Some of your images are not visible in your blog.
Could you add them back?
Thank you in advance.
Lola
nb: Thanks for the blog 🙂
Thanks for the images I can see all of them now.
Kr,
Lola
Hello,
I have a question for you concerning the use of table in the WD form.
I see you have a table with wagetype.
Could you give us some more information about it.
How this you manage it in term of context? where did you used set_initial_values and get_elements?
Thanks in advance.
Lola
Hi Karen, As I understand you are going to start new project using WD ABAP in EHP5 instead of Adobe. Also, I believe you are aware of SAP's New EHP6 HRP&F changes. So I would recommend you to check & consider EHP6 new FPM WD ABAP Form designer which is easy & no programming involve. You can use your older HR P&F Logic with New FPM Forms.If you have little room to consider EHP6 then you can avoid big upgrade efforts regarding converting WD ABAP with new EHP6 FLUID FPM WD ABAP forms. Regards, Arpit