How to deal with SAP-standard Adobe forms
First of all I would like to warn you that quite many SAP standard forms are a little crazy. No guidelines and best practices for the Adobe forms development were followed and thus it is a little troublesome to use or even change some of the forms (of course only few are not that good in my opinion and of course I didn´t have the “pleasure” to check all the available forms). Because of that it is important to decide if you can accomplish your task with the standard form (with some LITTLE enhancements) or if it would be better to start from scratch.
Which part of the form printing scenario to reuse
If the standard form suits your needs and you only need to realign the layout a little, translate the texts, add a logo, add a note for the user or add a field or two, definitely use the SAP-standard form. I would recommend using the standard form for the complex and difficult finance or logistics problems as well.
Even if the form is not too complex, you must always keep in my there is a printing program associated with the form which extracts and transforms the data needed for the form.
If you would use only a small part of the delivered functionality, consider starting from scratch. Well, you don´t have to recreate everything. You could reuse the printing program and create only a new form for example. In that case you will have to decide, if you will create your own form AND the new interface or create only a form (the layout) and reuse the standard interface.
You will probably reuse the interface if you will use most of the data prepared in the standard interface by the standard printing program. You will probably not use the standard interface if it is messy (some are a little messy, in my opinion), if you would use only a few fields of the big set of data (remember you can achieve a better performance if you de-activate the nodes not needed in the form layout) and especially if you can get the data you want, but not all and/ or not in the right format (for example there are the lines of some type, but half of the fields you need to use in the form is missing).
If you will reuse the interface, you need to find the very end of the printing program, where the name of the form can be changed easily (or find the customizing where you can do it the right way!), and repair the program.
If you want to change as little as possible
I will describe what steps you need to perform when you want to keep all the standard parts of the form printing scenario. You have two basic options:
- You will not change the printing program, you will change the form interface and the form layout. ABAP coding to get some new data or change the standard pre-fetched will be done in the initialization part of the form interface.
- Or you can move the changes out of the form and change the printing program as well – add a function module call into the printing program (just before the printing itself, you know all that FP_JOB_OPEN and stuff) to compute/ extract the new fields for you and change the call of the form, where the new items in the interface must be added explicitly.
Pick an option, the choice is up to you. Let´s describe the other details:
- Open your interface first: add all the new fields you cannot find in the standard interface and you need to have them in the form layout here. Now the rest of the work is split into two parts – to be done backend (change of the printing program, ABAP coding in the interface or in the printing program to get the data) and to be done in the form layout (add the fields on the form).
- Do the ABAP coding. Choose if you will place it into the initialization part of the interface (then no printing program changes are to be made) or you will repair the printing program
- Change the form layout. Add the new field from the Data View (mostly the tab can be found on the left side of the LCD). If you don´t know how to operate the designer, you can just drag&drop the field (from the data view to the form layout).
Testing the solution
Just run the enhanced form and wait for the result. If something is not going as expected, check these (in my opinion the most often made mistakes):
- Check the binding of the new fields (binding is the mechanism how to assign the fields of the layout to the variables in the backend/ form context/ form interface – well, the data you send from your ABAP program).
- Check the values coming from the backend. Sometimes unexpected values appear and the form stops working (my favorite behavior is when the problem occurs for a single business document out of the thousand, where some crazy testing value like ABC can be found in the place where the number was supposed to be).
- If there is any scripting in the form, check it. When a syntax error is reached, the script is ended, which may produce some interesting behavior. Here can help you to upgrade to the newest version of LCD (what is 8.1 at the time I write this blog, check SAP note 1176858), where the scripting support is better.
Hope that will help some people not to struggle with the standard forms and remember: use the versioning, both for the coding and for the form objects! You may think that is for loosers, but you will understand at the moment your whole-last-week-work will stop working and you will not be able to find the moment when everything went wrong, what causes the problem or how to find the solution (and implement it on time).
Regards Otto (you´re welcomed to SAP Interactive Forms by Adobe)
p.s.: Just in case you don´t know if there is a form you can use to satisfy the needs of a customer, you can check the list of the standard forms like this: Go to http://service.sap.com/erp (SAP ERP) -> Media Library – SAP ERP Overview -> Detailed information cross ERP -> Adobe Forms for SAP ERP