In my very recent project, we have used both Online and Offline Adobe Interactive Forms (AIF) with webservice incorporated in them (within an UI element of Webdynpro for Java). While using these forms we came across numerous technical issues and after achieving the complete functionality, we faced a major obstacle – the poor performance of AIF. When a large form (about 18 to 20 pages and of about 4 MB size) is submitted or opened from webdynpro UI, it is consuming around 20 minutes to get submitted which is a big set back for us as we know, no client would accept this, what so ever is the scenario whether it is due to technological limitations or environment problems or what ever. After using the Migration tool there is a drastic performance increase, unbelievably the Form Open time and Submission time came down to 30 Seconds from 15 to 20 minutes. Following the much heard saying within our Company – “Learn, Earn and Return” (I learned most of the basic things from SDN that was contributed by the community and it is paid back), thought of it’s time to return some thing back to the community, by sharing all the issues we faced in the course of our project implementation and the solutions we achieved with the help of SAP (through OSS note), so that it helps some one who is facing same kind of issues. At least, I believe, this relieves some one else from putting lot of time and effort in reinventing the wheel. Let me explain the solution we have achieved step wise.
SAP Portal 7.0 SP 15 with ADS configured, SAP R/3 4.6c, Netweaver Developer Studio 7.0.15 , Adobe Live Cycle Designer 8.0, Adobe Reader 8.0 & 9.0
Step–1: ACF and PDF Source
Initially, we have created Activex Adobe Interactive Form (ACF Forms) using Activex Controls in the form design and embedded it in Webdynpro Java user interface using the UI element “Adobe Interactive Form”. This UI element was bound to the Context attribute “PDF Source”. The PDF Source binding also puts extra load on Adobe Document Service and with out having this binding (Supported from Enterprise Portal SP9 only) improves Form performance. In our requirement we need to send the AIF as mail attachment to the vendors at run time when the product manager submits the form and hence we have to have the PDF Source binding. For ACF (Activex Component Framework) forms, ACF should be installed on every browser machine from where the Adobe Interactive Forms are accessed from. We could able to achieve the functionality, but the form is submitted very late (about 20 minutes for large forms of 20 pages). When the form is submitted, internally the ADS (Adobe Document Service) is called and this service will render the form and return back to webdynpro. Hence we got nothing to do with the business logic in webdynpro.
Step-2: Usage of Native Forms instead of Activex
In the course of improvising the Form’s performance, we started making the AIF to “Native” i.e. setting the Interactive Form UI Element’s “DisplayType” property to “Native”. Native Forms are recommended by SAP and they give much better performance than ACF and also they don’t need any software installed on browser machines. But when the form is displayed in webdynpro UI, either no data is displayed or we are getting empty form in spite of data is fetched properly from the RFC (R/3) and there is proper model binding, context mapping and UI binding or the Form is getting struck up while loading. After some investigation we found that this is because of the UI Elements used in the form (in our case we used Table UI element in the Form Design). When we use a table or other UI elements in a form of Native Type, the “Root UI Element” of the Adobe Interactive Form should be of “Flow Layout” and we should use only Webdynpro Native and Standard controls in the form design. Still the problem of delay in form submission or hanging while form load persists and then we contacted SAP by raising an OSS note.
Step-3: SAP’s Suggestions
The large forms with 15 – 20 pages and if they are dynamic, they are time consuming to open (While the ADS processing the form). To avoid this and more other issues SAP had suggested the following
A) Patch Upgrade
Apply Webdynpro Fix for Large Adobe Forms as per the SAP Note 1138102 (SAPJTECHS 15-9 and SAPJTECHF patch upgrades) if necessary for the patch level you are on.
B) Migrate the Form to ZCI using SAP’s ZCI Migration Tool
1) Download the “ZCIUpdater.ear” file from SAP Service Market Place.
2) Deploy it on Portal Server using Software Deployment Manager (SDM).
3) Once this ear files is deployed on to the Portal Server we can access this ZCI
Migration Tool using Webdynpro Console Administration. As an alternative we can use this
Change the Host Name and Port Number to that of your Server.
4) Once the Tool is launched, you can see the detailed instructions to be followed under the “Instruction” tab. Go through these instructions before you start migrating the ACF forms to ZCI.
5) Under the “Configuration” Tab, we have to configure the Updater Configurations, we need to configure the “Update Items” in the sequence of ( ZCI-004 à ZCI-003 à ZCI-001 à ZCI-002 ) only (i.e. ZCI-004 should be configured at first, then ZCI-003, then ZCI-001 and finally ZCI-002). Once done click on “Save Configuration” button.
6) Under the “Migration” tab upload the XDP file to be converted, which we have used in Webdynpro project (in our case it is the ACF Form) and click on the “Migrate” button.
7) At the end of the process (as per the detailed instructions under the “Instruction” tab), as a result we will get an Updated XDP File. The migration tool will take our Form (the XDP file of our Adobe Interactive Form used in webdynpro which needs to be converted to ZCI) and automatically injects the required Script Code into our form and gives us back the Migrated (i.e. converted to ZCI) Form as an XDP File.
8) To get the ZCI Converted form generated by this tool, Click on “Migrated XDP Download” Link and save it to local file system.
Step-4: Replace the XDP in Webdynpro and Rebuild the Project
Once we got the ZCI converted XDP file from the ZCI Migration tool, we replaced the old XDP file with this Migrated file in the Webdynpro Application at the path (C:\Documents and Settings\rameshk\.dtc\LocalDevelopment\DCs
Note :- After replacing the XDP, Choose Edit from the context menu of Webdynpro UI Element of our Form and do at least one change some where in the form (like changing a property’s value of any UI element and resetting it back to previous value etc..) and save the Project. This is a bit tricky, but should be done to enable the Webdynpro recognize the new XDP.
Then we rebuild the project and redeployed it.
Incredibly, now the form is opened and as well as submitted just in 30 Seconds for where it had taken 15 to 20 minutes before migration.
Step-5: Use of Adobe Reader 9.0
But, still even after this we faced a strange problem like – At times (occasionally) on click of Submit button, the form submission took 15 minutes to complete submitting the form. This is happening very rarely and even we could not reproduce the problem when SAP asked us to do so when we called them to help us. Eventually, using the Trace tools, SAP had found that there is a problem with Adobe Reader 8.0. They have asked us to upgrade the Adobe Reader from 8.0 to 9.0 and surprisingly, it solved the problem permanently. Can you believe Adobe Reader Version makes such a huge difference? Now both online and offline dynamic Adobe Interactive forms (of large size 10 to 15 pages and up to 4 MB in size) are working consistently with open and submission time of 30 seconds.
One last point
If you have both Acrobat 6.0 and Adobe Reader 9.0 installed on your machine, when you access the AIF from SAP (in our requirement, we have the Purchase Order Adobe Forms attached to the POs in ME22N), the system tries to open the form in Acrobat 6.0 than in Adobe Reader 9.0. Hence you have to uninstall all the Adobe Software on your machine and then install Acrobat 6.0.1 at first and then install Adobe Reader 9.0.
I will be discussing the technical details of Offline Dynamic Adobe Interactive Forms (webservice incorporated) implementation using java webservice and webdynpro, which can be submitted directly from desktop with out logging into portal, in my next blog.