desired action should be executed. Sometimes we also would like to interact with SAP using actions performed by interactive forms.
These kinds of business requirements can be fulfilled using IFBA (SAP Interactive Forms By Adobe). Or simply Interactive Form By Adobe.
IFBA can be usedin 2 scenarios:
Online scenarios are majorly used in Web Dynpro Applications where IFBA can be integrated as UI element of web dynpro component.
Offline scenarios can be understood as IFBA using email attachment sent to a customer, customer opens the pdf attachment, fill up the data in the form and submit it.
- Most important prerequisite is to enable interactive features on ADS. By default, printed Adobe forms can be created and worked upon but for IFBA, Adobe reader rights credentials should be configured on ADS. These reader rights would be provided in “.pfx” file by SAP itself. Please go through the following SAP Notes and request your Basis team for this configuration:
How to test configuration of SAP ADS?
You can always check if Adobe reader rights credentials are configured correctly by executing a test report provided by SAP: FP_TEST_IA_01.
If adobe form displays after executing above report, you can edit the form and save then your SAP Adobe ADS configuration is working absolutely fine.
2. Knowledge of creating Adobe forms and scripting.
3. Basic knowledge of ABAP.
In Invoice Form, a button for payment link page should be available so that customers with valid email addresses can get the invoice on their mailbox and can pay the due amount using that button.
Step 1 – Create an Adobe Form and the corresponding Interface
Create an Adobe form ZPB_DISPLAY_DYNAMIC_URL and interface with import parameter IV_URL as follow:
Step 2 – Design your form as per the requirement
For our case, we are creating a simple text for instructions and a button for payment as follow:
Now, we need to provide the URL whichshould be executed as soon as payment button is clicked.
If we have a static URL (e.g. company website), we don’t need to pass it from driver program/form interface. We can directly handle it in the Adobe Form itself. Just change the “Control Type” attribute of Button object to “Submit” and provide the URL there.
Step 3 – Choose the Button Control Type as Submit
Select button “btn_payment” from Hierarchy. Go to toolbar, select Palettes and select Object -> Control Type -> Submit.
Also Check this: Create your first OData Service
Step 4 – Assign the URL to Button
Select “Submit” tab in Object palates and provide the static URL:
Step 5 – Test the Button with URL Hyperlink
To test the functionality, go to “Preview PDF” and click on Payment Button:
You can see the result as below:
That’s quite easy without any ABAP code and Java Script code. But life is not that easy in real projects. Remember our business requirement?
We have to pass this URL dynamically from driver program. URL for every other customer would be different and has to be determined at run-time. In other words, the payment link URL would be generated differently for each order. So it’s a tricky part and yes, Java Scripts can help us to achieve it.
Step 6 – Go to Script Editor of Adobe
Select button and go to script editor (I think with my previous blog, you must know how to access script editor in Adobe forms. If not, please refer that for better understanding about scripting in Adobe forms )
We have to write our script on “Click” event of button. Select “Click” event from available events drop down:
Didyou notice? “Click” event is disabled and can’t be selected for thispayment button.
Reason:Since we selected Control Type of button as “Submit”, system would expect the action statically and that’s why “click” event is disabled.
To enable it, we need to change the Control Type of button as “Regular“.
Also Explore : How to Consume Custom OData in SAPUI5 Application
Step 8 – Change the Button Control Type to Regular
Go to object palates of payment button and select control type “Regular”.
Repeat step 7 and try to select “edit” event, it will be available this time.
Select “click” event for button “btn_payment”, language as formcalc and run at client.
We are done with Form development. Now, another tricky partis passing control parameters for interactive forms.
Step 10 – Call Adobe Form from Driver Program
Create a driver program and call all the Form processing FMs with required control parameters and generate the output.
If you see closely, there is NO interactive feature enabled on button and it would not allow clicking on button. What would be the issue then? We already checked ADS configuration in prerequisites section and its working fine.
Thereis a flag in form parameters structure SFPDOCPARAMScalled FILLABLE.
Bydefault it’s blank so adobe forms are displayed as a print form by default.
Ifwe want form to have interactive features, this flag should be set.
Step 11 – Set the FILLABLE Form Parameter to ‘X’
Set the form parameter before calling Form Function Module as follow :
Step 12 – Re-test the driver program
Now execute the driver program again and check the output.
If you check the highlighted section on button, you can see a cursor and button is enabled to be clicked. Here we go and get the access to URL which was passed from driver program:
This is an actual real project development. I have used this option in my project where we are sending invoices with due amount to our digital customers. For each invoice, payment landing page URL is generated dynamically so that when customers will click on payment button, they just need to enter their Credit Card details and payment will be captured against that invoice.
A sample of the invoice with payment button sent to customers is as follow:
In my next blog, I will share a business scenario in interactive Adobe forms where end users can fill up details in an editable form and submit it to SAP data base tables. In other words, you are performing a CRUD operation in SAP from an Adobe Form. So, please stay tuned.
Your feedback is most welcome. Please, please leave your comments below.
We have a very active Telegram (App) SAP Technical Group with more than 4730+ SAP Technical Practitioners from 6 Continents of the SAP World. Please join it using below link.
Telegram SAP Technical Discuss Group. You need to install the Telegram App first on your mobile device. Once you have it on your mobile, you can join the group and also access it from the Web on your computer and laptop.
Free Step by Step Course on Interactive Adobe Forms
- SAP Adobe Interactive Form Tutorial. Part I. First Adobe Form
- SAP Adobe Interactive Form Tutorial. Part II. Tables in Adobe Form
- SAP Adobe Interactive Form Tutorial. Part III. Date Time and Floating Fields
- SAP Adobe Interactive Form Tutorial. Part V. Images, Graphics and Logo in Adobe Forms
- SAP Adobe Interactive Form Tutorial. Part VI. Printing Address in Adobe Form
- SAP Adobe Interactive Form Tutorial. Part VII. Displaying Text Module Texts in Adobe forms
- SAP Adobe Interactive Form Tutorial. Part VIII. Displaying Include Texts in Adobe forms
- SAP Adobe Interactive Form Tutorial. Part IX. Displaying Dynamic Text in Adobe Forms
- SAP Adobe Form Tutorial. Part X. Alternative in Adobe Forms
- SAP Adobe Form Tutorial. Part XI. Configuring Adobe Forms in NACE, OPK8 and SPRO
- SAP Adobe Form Tutorial. Part XII. How to Convert Smartform to Adobe Form?
- SAP Adobe Form Tutorial. Part XIII. How to Print two Tables Adjacent to each other?
- SAP Adobe Form Tutorial. Part XIV. How to Generate Barcode in Adobe
- SAP Adobe Form Tutorial. Part XV. Different Background Color for Label & Content Text
- Interactive Adobe. Part 17. How to Execute URL Dynamically by Button Click Event?