Adobe Forms. Part 21. Display Rich Texts from UI App on Adobe Forms
SAP One technology that merits greater recolonization than it currently receives is Adobe Form. You can use Adobe to accomplish any demand you can think of. The use of Adobe Forms’ Rich Texts Integration will be demonstrated in this article. To put it briefly, the Adobe Form should be dynamic in order to carry out one or more of the following tasks using texts:
- Can be hard coded in the form,
- Can be maintained in a standard text in SAP and displayed in forms using include texts
- Maintain in a UI App with required formatting (Font type-Bold, Italic / different Headings / Bullet points/Numbering) and integrate on Adobe Form.
The first two are easy to understand. According to SAPYard, it is putting something that is not easily found online. Thus, we will focus on point 3.
Prerequisites:
- Basic familiarity with Java scripts and Adobe forms.
- fundamental understanding of SAPUI5 and Web Dynpro ABAP (to construct a FormattedText Editor).
- comprehension of XSLT conversion.
- strong ABAP knowledge.
Business requirement:
In output forms (AR Correspondences / FSCM Dunning Letters / Billing Invoices etc.), there are lot of text information which is customized based on company code or output types. Business would be interested to maintain these texts outside the Form with desired formatting so that in future, if any related texts need to be changed, business can maintain by themselves and would be updated in forms without doing any form enhancements.
Solution Design:

Implementation Steps:
Make a custom SAPUI5 or Web Dynpro application (you can choose) with the following buttons to change and save the text in the database, formattedTextEdit UI element, and selection fields:
FormattedText Editor in WD ABAP

FormattedText Editor in SAPUI5

- Create a Data Base table ZPB_TEXT_HTML which will save Formatted text as HTML as follow

- Create XSLT transformation ZPB_TEST_FORMATTED_TEXT using STRANS T-code and type “XSLT program”. Sample used is as follow:

Please note that ADS can’t identify normal HTML tags. ADS can only identify XHTML tags so we would need to transform the HTML tags into XHTML and that’s why XSLT transformation becomes very handy for these string replacement operation. You can also use regular expression and other ways to transform.
Bold tag in HTML from formatted text in UI : <strong> </strong>
Bold tag in XHTML identified by ADS : <b></b>
- In transaction SFP, create the Adobe form interface ZPB_RICH_TEXT_INTERFACE.
- For HTML documents, create global data:

- Create an optional input parameter LS_HEADER which will contain input data from calling program.
- In code initialization, perform following steps:
- Select HTML text from DB table.
- Get HTML text for header section and transform using XSLT transformation.
- Update transformed text into Global data for header text.

In transaction SFP, create Adobe Form ZPB_RICH_TEXT_FORM and pass the interface above. Import parameters and drag Interface Global data into Form Context. In Form layout, create a text field “txtHeader” in detail view and set it’s property as:

- Since the text field may include many lines (entried from a UI application), we need surround it in a flowing subform and set its height to “Expand to fit” as seen below:

- Since field format has been set to “Rich Text“, we need to write java script to bind the XHTML text. Select text field, go to script editor and select “initialize” event :

- Create a test program to call the adobe form and generate PDFs:

Testing:



If you encounter similar requirements in your project, I hope this post will provide you with a basic understanding of how to address them. I wanted to offer the solution we used in our project, although there may be other options as well.
YOU MAY LIKE THIS
SAP ABAP Checkpoint Group – Chase the Mysterious SAP Issues with a Smile
Best Practices for SAP ABAP Development: A Comprehensive Guide