You are on page 1of 77

SAP Interactive Forms by Adobe

Purpose
As of SAP NetWeaver ’04 (in SAP Web Application Server), you can use a new solution to create
interactive forms and print forms for the optimization of your form-based business processes. This
solution uses Portable Document Format (PDF) and software from Adobe Systems Inc. that has
been integrated into the SAP environment.
You can create interactive forms in PDF format that allow users to fill out the form on the screen
and save their entries in XML format in the form. When the SAP system receives the PDF form, it
extracts the data saved in the form, and can process it further.
You can also merge a form template with current system data to generate a PDF document that
can then be printed or sent by e-mail.
SAP Interactive Forms by Adobe offer you the following business advantages:
● Interactive functions automate the creation of data for SAP systems
● Full integration into the SAP development environments for Java and ABAP
● User-friendly tools reduce the time and costs associated with creating form layouts.
● The usage of the PDF format means that forms retain their appearance regardless of the
environment they are used in.

In certain circumstances, you require a license for interactive forms. For more
detailed information, read SAP Note 750784 on SAP Service Marketplace at
service.sap.com/notes.

Implementation Considerations
SAP Interactive Forms by Adobe are particularly well suited to business processes in which
employees enter data in a form-based solution and then want to transfer this data automatically to
the SAP system. In the simplest cases, you only require the free Adobe Reader to display or fill
out PDF forms on your front end.

Integration
SAP Interactive Forms by Adobe is included in SAP Web Application Server and can be used by
any applications that are based on SAP NetWeaver ’04 or later.
The following Adobe software is included in the form solution:
● Adobe LiveCycle Designer
A graphical tool for designing form layouts; it is integrated into SAP NetWeaver Developer
Studio and ABAP Workbench.
● Adobe Document Services
Web services used to generate the PDF forms at runtime; in interactive scenarios, they
extract the XML data from the form and send it to the system.
Adobe Document Services run on SAP J2EE Engine. This means that you must install the Java
Stack of SAP Web Application Server, regardless of the development language of your
application (ABAP or Java).

Features
SAP Interactive Forms by Adobe offer the following basic functions:
● Create form templates for the layout that include logos or pictures
● Generate documents by merging form templates and current system data
● Edit forms online or offline
● Forms can be filled in advance automatically with specific data from SAP applications and
then sent to the correct recipients using secure methods
● Automatic consistency checks for forms
● Activate enhanced functions such as comments
● Digital signatures and form certification
● Send completed forms to the SAP application with automatic updates of the business data

There are two basic types of forms:


Interactive Forms
For business processes that require close cooperation between employees, you can design
interactive forms as a part of a Web Dynpro application.
You can use the following development environments:
● Interactive Forms in Web Dynpro for Java in SAP NetWeaver Developer Studio
● Interactive Forms in Web Dynpro for ABAP in ABAP Workbench
These forms can contain dropdown menus, pushbuttons, text fields, and other elements that
enable users to enter data. The form is generated in PDF format, which, for example, can be
displayed by the user in a browser. The user uses Adobe Reader or Adobe Acrobat to fill out the
form and saves the changes made to the form in XML format. The SAP system extracts the data
from the form and saves it to the database, where it can be processed further.
You can use these forms in two basic scenarios:
● Online
The user is logged on to the SAP system when he or she fills out the form.
● Offline
The user is not logged on to the SAP system when he or she fills out the form. Once the
form has been filled out, the user sends it to the issuer of the form, for example by e-mail.
The SAP system of the issuer then extracts the data from the form.
Forms for Printing, E-Mail, or Fax
You can use the Form Builder (integrated into ABAP Workbench) to create PDF-based print forms
that you can then print or send by e-mail or fax. When you create these print forms, you can rely
on the tried and trusted principle of separate data retrieval and form layout processes. This
enables you to make changes to either one of the processes, without affecting the other.

PDF-Based Print Forms


Purpose
PDF-based print forms are part of the SAP Interactive Forms by Adobe solution and are used for
printing in SAP systems. As well as standard output on printers, and the option of archiving
documents, you can also use your application to send a PDF to the Business Communication
Services (BCS). Here, you have the option of faxing or e-mailing your documents.
The following gives you an overview of how a PDF-based print form is structured, and also tells
you how to create a PDF-based print form in the development environment of the ABAP
Workbench. The integrated Adobe LiveCycle Designer™ software supports you when you do this.
This software must be installed on your front end before you can create a layout. To see a print
preview of your form, you first need to install Adobe Reader or a complete version of Adobe
Acrobat.
This documentation does not discuss how documents are printed and controlled on printers.
Instead, it discusses the whole process up to when a file is sent to output management functions,
such as the spool system in SAP systems. Note that, for printing and previewing PDF-based
forms, you need to use a PCL, Postscript, or ZPL printer and an appropriate device type (such as
POST2, HPLJ4, HP9500, PDF1, AZPL203, or AZPL300). You cannot use a printer with the device
type SAPWIN/SWIN. More information is available in the SAP Printing Guide (BC-CCM-PRN),
under Printing PDF-Based Forms.

Integration
An activated PDF-based print form corresponds to a callable function module in the SAP system.
The complete logic of the form is represented by this function module. When a form is printed, it
is called by an application program, which collects the relevant application data. The application
program uses the function module interface to send the data. Therefore, the data collection
process is split from the logic of the form. This means that you only need to adjust the form when
you modify the logic or layout.
There are several ways of creating interactive forms. For more information, see Interactive
Forms.

Features
To develop a PDF-based print form, you use Form Builder, integrated with ABAP Workbench.
This tool enables you to create a complete form description, even if you do not have extensive
programming skills. The tool supports you in the following tasks:
● Creating layouts
Here, you use the Adobe LiveCycle Designer to design pages or create the layout.
● Specifying the data used in the form
In the form context, you specify which data, tables, texts, and graphics are sent to the form.
● Migration of Smart Forms
By migrating Smart Forms, you can reuse them as PDF-based print forms. You can find the
Smart Form migration tool in transaction SMARTFORMS.

Smart Forms are still supported; you can continue to forms created in Smart Forms
without making any changes.
● Importing existing PDF files or forms
This tool is integrated into Adobe LiveCycle Designer and enables you to use your own
templates for your form.
● Scripting
Adobe LiveCycle Designer uses the script languages JavaScript and FormCalc. FormCalc
is a simple Adobe script language for typical form calculations, including mathematical and
logical functions, and date and character string functions. For more information about
FormCalc, and a FormCalc language reference, see the online help of Adobe LiveCycle
Designer.

To achieve the best level of performance when processing forms, use as little
scripting as possible in the form. If possible, perform all calculations and data
analysis in the application program, before the form is called.
● Printing and archiving the PDF-based print form:
You can use output parameters to specify print and archive settings, and so adapt the
output to your requirements. These parameters are not viewed in Form Builder. Instead,
you control them with function modules that you integrate in your application program.

PDF-Based Print Form


Definition
A PDF-based print form is a form designed for mass printing in SAP systems. It has the
standard Portable Document Format (PDF).

Use
PDF-based print forms can be used for the following:
• Order confirmations
• Invoices
• Account statements
• Checks
• Salary statements
• Delivery notes
• Customs forms
• Industry-specific forms, such as quality forms in the automotive industry

Structure
A PDF-base print form has the following attributes:
• A form interface that sends the application data to the form.
• A form context that contains the form logic. This logic controls the dynamic formatting of
the form. For example, it enables variable fields to be displayed; it specifies that certain
texts appear only under certain conditions (one text for a first warning and a different text
for a second warning); and it can specify that invoice items can be processed repeatedly in
a table.
• A layout. In the layout, you define how the output data is positioned, its appearance in
graphics, and the design of the pages.

Architecture
The following graphics show you the architecture that is implemented when you create
and print a PDF-based form.
Creating a Form
The form interface is created separately from the form, which consists of the form
context and layout. When you create a form, you must assign it to a form interface. You
can assign multiple forms to the same interface, if they use the same data. Form
interfaces and forms are stored as separate development objects in the repository. The
form description includes the complete form design as a complex description in XML.

Form Output − Runtime


If you use an application to create a form, you generally need to insert application data in
the form. The architecture of PDF-based forms is designed to separate the collection of
the application data from the definition of the actual form:
When you activate the PDF-based form, a function module is generated that encapsulates
all properties of the form. When the application program calls the function module, it
uses its interface (corresponds to the form interface) to send it the application data. This
can be, for example, table data selected previously in the application program. When the
generated function module is called, the form description and application data is sent to
Adobe document services. These services create the actual form:
● As a PDF to be processed later by the application or for the preview in Adobe Reader
● As a PCL, PostScript, or ZPL to be sent to the spool
A function module is available for more precise control of the output.

Page Concept and Elements of a Form


Definition
You specify the page layout for a form in Adobe Designer, and determine the order of the
pages that have differing structures. Texts, data, tables, and various other types of objects
can be displayed in the output range of a form page.
Use
You can create any number of pages for your form.
Structures
Adobe Designer includes two different types of pages that you can use to structure your
form layout:
• Master pages
• Body pages
You can position various elements on these pages. These elements are available in a
library in Adobe Designer.
• Standard objects
•  Static objects such as texts, graphics, rectangles, circles, and lines
•  Dynamic objects, such as option and list fields, date and time fields, text
fields, numeric fields, and password fields
• Special date objects
• Your own user-defined objects
• Bar codes
For more information about the page concept, and the different types of page elements,
see the online help in Adobe Designer.

To access the online help for Adobe Designer, call the Form Builder:
• • You are on the screen Form Builder: Change Form <Form Name>
or Form Builder: Display Form ...
• • Choose Help → Help Topics under Layout.

Designing Forms with the Form Builder

Purpose
You can use this process to create or edit a PDF-based form. You can also edit a migrated
Smart Form.

Prerequisites
You have installed Adobe Designer on your front end.

Adobe Designer is installed with the SAP front end.

Process Flow
To create a form, you use the Form Builder that is integrated with the ABAP Workbench.
1.
1. 1. You create a form object.
2. 2. In the interface, you define where the data comes from that you want to display
in the form. To do this, you call the interface function in the Form Builder.
3. 3. You activate the interface.
4. 4. In the context in the Form Builder, you drag and drop the required parameters
from the interface you have defined. You can also insert texts, graphics, and
addresses.
5. 5. In the layout function in the Form Builder, you create the layout. You use this
graphical tool to design the printed appearance of the form, and drag and drop data
from the form context you have defined.
6. 6. You activate form.

Result
You have created a function module that encapsulates the form description. You can use
an application program that collects the relevant data to call this function module. You
then have a PDF-based document for mass printing in SAP systems.

Creating a Form Object


Use
Form interfaces and form contexts with layouts are known as form objects. Before you
can start to edit these objects in the Form Builder, you must create them. You have two
options here:

Creating a Form Object in the Repository Browser


2. ...
7. 1. You are in the Repository Browser of the ABAP Workbench.
8. 2. Select a package.
9. 3. To create a form interface, proceed as follows:
1. a. In the context menu of the package, choose Create ® Form
Object ® Interface.
2. b. In the Create Interface dialog box, enter the name of the interface
and select an interface type.

For more information about the different interface types, see Interface in the Form
Builder.
3. c. Proceed as described under 5. below.
10. 4. To create a form with a context and layout, proceed as follows:
4. a. In the context menu of the package, choose Create →Form
Object → Form.
5. b. Enter the name of the form in the Create Form dialog box.
6. c. Enter the name of the interface that you want the form to use.
11. 5. Choose Save.
12. 6. The Create Object Directory Entry dialog box appears.
13. 7. Enter your data and save the object.
Creating a Form Object from a Transaction
3. ...
14. 1. Call transaction SFP.
15. 2. Enter the name of the interface or form.
16. 3. Choose Create.
17. 4. If you want to create an interface, follow the procedure shown above under 3a.
If you want to create a form, follow the procedure show above under 4a.
Result
The Form Builder starts. You can start to edit the interface or form.

Creating and Displaying Form Documentation


Use
You can create documentation for each of your forms or form interfaces (form objects).
This documentation is used as F1 help and contains information for support team
members or form developers who need to examine the form. The documentation is not
included in the form output and is only available in Form Builder.
A form object is assigned to precisely one piece of documentation; the documentation
object is copied, deleted, renamed, and transported automatically with its accompanying
form object. Note, however, that the documentation is ignored by the functions Upload
Form Object and Download Form Object.
The creation of form documentation is integrated into the standard documentation
environment (transaction SE61).
Prerequisites
You require SAP NetWeaver SPS 8 or higher.
Creating or Changing Documentation
4. ...
18. 1. Under Form Builder: Entry Point, specify a form or interface.
19. 2. Choose Goto → Documentation ® Change.
20. 3. The system calls the SE61 editor and you can create your documentation.
21. 4. Save your changes.
22. 5. Choose Back.
Displaying Documentation
5. ...
23. 1. Under Form Builder: Entry Point, specify a form or interface.
24. 2. Choose Goto ® Documentation ® Display.
25. 3. The documentation is displayed.
Interface in Form Builder
Use
You want to include data in your form that was not specified when the form was created.
This can include the following data:
● Data selected from the database tables of your application. You use the form interface to
specify this data.
● Data provided by the SAP system or by the PDF-based print forms solution, such as dates
● Data that you have calculated or implemented in a form yourself, such as totals for tables
For all three of these data types, the data is not specified or inserted in the form until
runtime. You use fields inserted as placeholders in the form to specify the appearance and
location of the data in the form. These fields are replaced by the current data at runtime.
Features
You can choose from the following three interface types:
● ABAP Dictionary-based interface
● Smart Forms-compatible interface
● XML-based interface

ABAP Dictionary-Based or Smart-Forms-Compatible Interface


These two interface types have different standard parameters in the form interface. Both
interface types give you the following options for including data in PDF-based print
forms:
● In the form interface, you specify the data that is exchanged with the application program
(such as tables).
● Under Global Definitions, you define your own fields.
● The system fields contain data with a predefined meaning (such as the date).

You cannot enter system fields directly. When you call the context in Form Builder,
the system shows the available system fields automatically in the interface. You can
then drag and drop the required fields to the context.
● Under Code Initialization, you can create program code to modify global definition data
before the form is processed. You can use form routines that are defined in ABAP Editor.
● You can assign currency and quantity fields.

XML Schema-Based Interface


You use this interface type if you create your forms in Form Builder in Web Dynpro for
ABAP. This interface is an XML schema, which must be constructed in accordance with
the W3C standard. You create the XML schema as a local XSD-type file, in an
appropriate editor on your front end. You cannot edit it within Form Builder. You load the
finished interface into Form Builder. The XML schema already contains the form context,
which is sent directly to the data view in Adobe LiveCycle Designer. Unlike ABAP
Dictionary-based interfaces and Smart Forms-compatible interfaces, you do not need to
create the form context here.
The XML schema-based interface consists of the following:
● The form interface with the parameters that specify the data
The runtime data from the application program is specified in the import parameter
/1BCDWB/DOCXML (type XSTRING).
● The XML schema
The loaded XML schema is displayed here.

Activities
There are two ways of calling Form Builder for the interface:
From the ABAP Workbench (Transaction SE80)
Choose Form Objects → Interfaces and select an interface.
From Transaction SFP
6. ...
26. 1. Call transaction SFP.
27. 2. Choose Interface.
28. 3. Enter the name of the interface.
29. 4. Choose Create, Change, or Display. Form Builder starts.
30. 5. You can start to edit the interface. To select the interface type, switch to the
Properties tab page.

You cannot make changes if you have chosen Display.

Defining a Form Interface


Use
You define a form interface to send data from your application to a form.
Integration
The form interface is a part of the Interface form object and is defined in the Form
Builder. The form interface of a form is structured in the same way as the interface of a
function module in the system. However, form interfaces do not support Changing
parameters.
Prerequisites
● You have created an Interface form object.
● The application program provides the data that you want to insert in the form. Therefore,
you already know the types of the corresponding variables.

The semantics of the valid parameter types match the semantics of a function
module,
See also:
Getting Information about Interface Parameters
Overview of Function Modules (in ABAP Workbench: Tools)
Creating Function Modules (in ABAP Programming (BC-ABA))

Procedure
7. ...
31. 1. Open the required interface in the Repository Browser of the ABAP
Workbench.
32. 2. The Interface tab is displayed. Under Form Interface, double-click the
Import node.
33. 3. You see a screen for entering import parameters. This screen also shows the
standard parameter /1BCDWB/DOCPARAMS. You cannot change this parameter.

You use this parameter in your application program, to specify the value for the
language setting, for example. To display this structure in the ABAP Dictionary,
double-click the SFPDOCPARAMS type.
34. 4. XML schema-based interface
• ○ The standard parameter /1BCDWB/DOCXML with the type XSTRING is
used for sending data from the application program.
ABAP-based or Smart-Forms-compatible interface
•○ To insert a new line, choose Insert Line ( ). Enter the parameter names of
the data you want to import. These names are valid for the whole form and do not
have to match the variable names in the data collection program. All data types
are valid. TYPE can be selected under Type Assignment.
35. 5. When you double-click Export, you see the standard parameter
/1BCDWB/FORMOUTPUT of the generated function module. You cannot change
this parameter.

You use this parameter in your application program, to make the generated form
available as a PDF for further processing, for example.
36. 6. To display the exceptions used by the generated function module, double-click
Exceptions.
37. 7. Activate the interface.

At runtime, the application program must provide the parameters. If a parameter has
been defined in the form, but is not defined when the application program is called,
then the output of the form ends with the program crashing (hex dump).
However, it is also possible that the application program provides parameters that
the form does not need. You do not need to mention these parameters in the form;
they can also be specified in a different order from the code of the application
program. This has the advantage that an application program can work with several
different forms.
Migrated Smart Forms Interface or New Smart Forms-Compatible Interface
When you edit the interface of a migrated Smart Form or a new interface that is
compatible with Smart Forms, the Tables option gives you extra parameters. When you
set the Import, Export, and Exceptions parameters, the system also lets you use the
standard parameters from the Smart Forms.
If you have a Smart Forms-compatible interface, you can use the existing
application program of this Smart Form without making any modifications. (See also
Switching Runtime in Migrating Smart Forms.)

Result
You have defined the form interface and you can use the specified parameter names in the
form context.

Global Definitions
Use
Global definitions belong to the interface in the Form Builder. Here, you have the option of
defining your own fields to be used anywhere in the form. You can initialize global data before you
start to process the form, for example, to convert selected application data.

Features
Global Data
Here, you define any data needed by the form, but which has not been provided by the form
interface (for example, to display totals).
Types
Here, you create data types as free ABAP code, if the ABAP Dictionary does not provide a type.
Field Symbols
You can use field symbols as pointers when you extract data from internal tables.

Activities
Double-click the node that you want to edit.
See also:
Initialization

Initialization
Use
SAP customers can use this function to execute ABAP program code before a form is processed.
You can initialize the global data, for example, to convert selected application data. You can also
select additional data without having to make changes in the application program.

Functions
You use the ABAP Editor to write the program code (Code Initialization) that is executed before
the form is processed. You can include subroutines (Form Routines) when you do this.

We recommend that you use Global Datain the initialization.


See also:
Global Definitions

Specifying a Currency or Quantity Reference


Use
In the ABAP Dictionary, you can assign a currency or quantity field to a table field. In
the output of these fields, the system can then insert the relevant currency or unit:
If the value field is in the same table as the corresponding currency or quantity field, the
system recognizes the reference automatically, and formats the value field according to the
currency or unit in the assigned field.
If the value field is in a different table from the currency or quantity field, the system cannot
recognize this reference automatically.
In the second case, you must indicate this reference to the system in the form, to ensure
that the value field is formatted correctly.
Procedure
You want to assign a currency or quantity field in one table (for example, CURTAB) to a
value field in another table (for example, VALTAB).
8. ...
38. Create the reference to the currency field by entering the following values:
1. Field Name: VALTAB-VALUE, if this is the value field of VALTAB that you
want to display.
2. Reference Field: CURTAB-CURRENCY, which is the currency field of CURTAB.
39. Under Data Type, specify whether the data type is a currency or quantity.
Result
In the output of the PDF-based print form, the system formats the value field VALTAB-
VALUE according to the assigned value in the currency or quantity field of the global
variable CURTAB-CURRENCY.

Context in Form Builder


Use
In the context (also known as the form context), you specify which data is copied from
the interface to the form. You include this data as a node in a hierarchy structure. In this
hierarchy, you also decide the form logic by specifying conditions for processing the
nodes.
Prerequisites
You have created the form objects Interface and Form.

Integration
The context function in Form Builder is the link that binds the interface to the layout. You
construct the form context from the existing interface. The system sends the form context
to the layout function of Form Builder automatically. The layout function calls Adobe
Designer, and the form context itself appears as a hierarchy under Data View. When you
create the layout, you use the Data View nodes to include the data in the form.

Features
You use the form logic of the context to control which rules are used to send the
hierarchy nodes to the layout, and how they are processed. To view the entire form logic,
expand all nodes. The form logic determines the following:
● Whether the content of the node (text, addresses, graphics) are included in the output
● Whether the data of a node is Active or Inactive
● Whether a specified node or an alternative node is processed
9. ...
For each node, a properties window is displayed under the context. You can specify
conditions, if this is supported by the selected node. If the condition is met, then the node
is processed. If the condition is not met, then the node is skipped, as well as all its
subnodes. You can also specify WHERE conditions for the selection of data from tables.
Only active nodes are forwarded to Form Builder to be processed in the layout. In this
way, you can hide any items, such as table fields, that you do not need.

Activities
There are two ways of calling Form Builder for the context:
From ABAP Workbench (Transaction SE80)
From the object list, choose Form Objects → Forms and select a form.
From Transaction SFP
40. 1. Call transaction SFP.
41. 2. Choose Form.
42. 3. Enter the name of the form.
43. 4. Choose Create, Change, or Display. Form Builder starts.

You cannot edit if you have chosen Display.


44. 5. Define the layout type of the form. To do this, choose the Properties tab page.
45. 6. Create or edit the context. To do this, choose the Context tab page.
Editing the Form Context
You can edit the form context in the following ways:
● Create nodes
● Move and copy nodes
● Set node as active or inactive
● Update nodes
For an overview of the graphical user interface, see Screen Display in the Context of
Form Builder.

Screen Display in the Context of the Form Builder


The following graphic shows you the structure of the screen that appears when you select the
Context tab in the Form Builder. The interface on which the form is based is displayed, but cannot
be changed here.

To edit the interface, choose the Properties tab and double-click the name of the
interface.
To edit the layout, choose the Layout tab.
Nodes in the Context
Definition
Nodes in the context are organized in a hierarchy. The first node in the context is a folder node
and has the name of the form. Some nodes represent the data in the form, others represent the
form logic. You can use conditions to specify whether the data in the form is included and
displayed at runtime.

Node Types
Nodes Without Subnodes

Symbol Node Type Meaning


Text Text module, include text, or dynamic text
Graphic Graphic
Address Address; the address data is extracted directly from database
tables and formatted for printing.

Other Nodes

Symbol Node Type Meaning Possible Direct


Subnodes
Data node Elementary data field None
Structure Structure All nodes; data nodes
are generated
automatically.
Table/loop Dynamic table All nodes; data nodes
are generated
automatically.
Alternative Alternatives, TRUE and FALSE;
depending on can have any node as
conditions a direct subnode
Folder Groups subnodes for Any nodes
clarity
Condition Not a separate node. None
Displayed directly
after the node that is
processed depending
on this condition.
Creating Nodes
10. ...
46. 1. To create one or more nodes, drag the required fields from the interface on the
left of the screen to the context.

Double-click a field in the interface to display a dialog box with detailed information
about the properties and type of the field.
47. 2. Click a node in the context with the secondary mouse button to display the
context menu for this node. Depending on the data type, you have the following
options:
•  You can set the node as Active or Inactive. Only active nodes are sent to the
layout in the Form Builder.
•  You can create a new node. As well as the data defined in the interface, you
can create nodes for text, graphics, and addresses.
•  You can copy, delete, cut, and paste nodes.
48. 3. Double-click the node to display more details about the node in a screen under
the context. Depending on the node type, you can do the following:
•  Enter and change properties
•  Enter and change conditions
Result
You have created nodes in the context.

Moving or Copying Nodes


Moving or Copying Nodes with Drag&Drop
• To move a node, use Drag&Drop to drag it to the required place in the form context.
• To copy a node, drag it as above, but press the Ctrl key at the same time.
Moving or Copying Nodes with the Context Menu
11. ...
49. 1. In the context, select a node that you want to move or copy.
50. 2. Now perform the following:
•  To move a node, choose Cut in the context menu of the node.
•  To copy a node, choose Copy.

To display the context menu of the node, click the secondary mouse button.
51. 3. In the context, select the node under which you want to insert the new or
copied node.
52. 4. In the context of this node, choose Paste.
You cannot delete, move, or copy generated nodes (flagged with ) in structures
and tables. However, you can set them as Active or Inactive in the context menu.

Setting Nodes as Active or Inactive


Use
To hide one or more nodes in the form context, when sending them to the layout in the
Form Builder, set these nodes as inactive. Only active nodes are sent to the layout and
can be used by Adobe Designer in the data view. In this way, you only see the data that
you actually need for the form, which makes it easier to use. At runtime, only the active
nodes are included in the form.

Unlike the active or inactive setting, conditions are not implemented until runtime. A
node with a condition always appears in the data view of Adobe Designer, as long
as it is active.

Activities
12. ...
53. 1. Select one or more nodes.
54. 2. Click the secondary mouse button and choose Set to Active or Set to Inactive in
the context menu.
You can set also set individual nodes as active or inactive in the Properties window.
Example
You have created a BOOKINGS table node in the form context.
When you expand the table node and its subnodes, you can see all its data nodes
(MANDT, CARRID, CONNID, FLDATE, PASSNAME, and so on). These nodes are
flagged as generated ( ).
To copy only the FLDATE and PASSNAME data nodes to the layout, select all the other
data nodes in the table and set them as inactive.
Accordingly, when you choose the Layout tab page, you see the BOOKINGS node with
the row node and FLDATE and PASSNAME in the data view of Adobe Designer. Only
these two data nodes in the table will be included in the form at runtime.

Updating Nodes
Use
If you have already started to edit the form context and you have made changes to the
field definition of nodes, then you can use this function to update the context.
The form context shows both generated and non-generated nodes.
Generated nodes (flagged with ) are the fields of structures or tables that you have
inserted in the context from the interface.

You cannot delete, copy, or move generated nodes. However, you can set any
nodes that you do not need in your form as inactive. For more information, see
Setting Nodes as Active or Inactive.
You can change the appearance of structures and tables by adding more data nodes or
tables. These nodes are not generated. In this way, you can nest tables inside each other,
for example.
Non-generated nodes are, for example, the top nodes of structures or tables that you have
inserted in the context from the interface. These nodes are not flagged with .
Activities
13. ...
55. 1. Choose the node that you want to update.

You can choose non-generated nodes only.


56. 2. To update a node together with all of its subnodes (generated and non-
generated nodes), choose the icon, with the text Update, on the right of the screen
above the context.

Properties
Use
Properties describe the content or meaning of a node.
Activities
14. ...
57. 1. Double-click the node to open the properties screen.
58. 2. You can now change general properties of the node, such as Name,
Description, and Status. A node can have active or inactive status. Only active
nodes are sent to the layout in the Form Builder, and used in the form output.

If you use loop nodes, structure nodes, single record nodes, or data nodes that have
a reference to the ABAP Dictionary, the system copies the short text of the type from
the ABAP Dictionary under Description. You cannot change this. This has the
advantage that these texts do not need to be saved in the form, and reduces the
need for translations. For more information about converting older PDF-based print
forms, see SAP Note 808116 at service.sap.com/notes.
59. 3. Depending on the chosen node, the system also displays additional node-
specific properties (which you can change), as well as the general properties. For an
explanation, see the description of the node.
In many cases, you can enter static and dynamic values for the node properties:
• ■ An example of a static value is a text module, specified in quotation
marks. It is entered in the format 'TEXTNAME'.
• ■ A dynamic field is the name of a field. This field can contain, for example,
the text module name at runtime. It is not entered in quotation marks:
FIELDFORNAME.
As well as the properties, for some nodes you can also specify conditions for the form
output.

Conditions
Use
You can define conditions for individual nodes, or for whole subhierarchies of the
context. A node, or all its subnodes, is then only processed if the related condition is met.
To select from two alternative subhierarchies in the form output, use the alternative node.
Prerequisites
A node exists for which you want to define conditions. This node must allow conditions
to be defined.
Features
You can define conditions using logical relationships.
Activities
15.
60. 1. Double-click the node for which you want to define a condition.
61. 2. The Properties window opens.
62. 3. Choose Conditions.
63. 4. To insert a line, click .
64. 5. For each line, you can enter a condition with two operands. The operand can be
a field (variable) or a value.
65. 6. Choose Relational Operator to display a screen where you can make a
selection of relational operators.
66. 7. Choose Operator to link successive lines with each other. You can choose both
AND and OR relationships.

In the first line, the Operator field stays empty.


Inserting Data
Use
You want to insert elementary data fields ( ) that are specified in the interface on the left
of the screen. You have two options here:

Inserting a Data Node with Drag&Drop


Use Drag&Drop to move the required data field from the interface to an existing node in
the context.

Inserting a Data Node Using the Context Menu


16. ...
67. 1. Select an existing node in the context, under which you want to create a data
node.
68. 2. In the context menu of the node, choose Create → Data.

To display the context menu of the node, click the secondary mouse button.
69. 3. In the Create Data dialog box, enter a field name.

Use the F4 help to display a list of all data fields used in the interface.
70. 4. Choose Continue.
The system creates a data node under the selected node.
Editing Properties and Conditions
• In the window under the context, the system displays the properties of the inserted data
node.
•  For data nodes that reference the ABAP Dictionary, the system takes the
related short text from the ABAP Dictionary. You cannot change this. However,
you can select the Field Label. The text chosen here is used in Adobe LiveCycle
Designer to display the label of the data field in the layout.
•  The full field name of the node is displayed under Data.
•  Under Status, you can set the data node as active or inactive.
• Under Conditions, enter the prerequisites that need to be met before the data node is
processed at runtime and displayed in the form.

Result
You have created a complete data node. In the layout in the Form Builder, you can insert
this node in the form.
Inserting a Structure
Use
You want to insert a structure ( ) from the interface on the left of the screen. You have
two options:

Inserting a Structure Node with Drag&Drop


Use Drag&Drop to move the required structure from the interface to an existing node in
the context.

Inserting a Structure Node Using the Context Menu


17.
71. 1. Select an existing node in the context, under which you want to create a
structure node.
72. 2. In the context menu of the node, choose Create → Structure.

To display the context menu of the node, click the secondary mouse button.
73. 3. In the Create Structure dialog box, enter a structure name.

Use the F4 help to display a list of all structures used in the interface.
74. 4. Choose Continue.
75. 5. The system creates a structure node under the selected node. The node is fully
expanded so that you can see the individual fields of the structure. In the window
under the context, the system displays the properties of the node. Under Status, you
can set the structure node as active or inactive.
76. 6. Under Conditions, enter the prerequisites that need to be met before the
structure node is processed at runtime and displayed in the form.

You can specify conditions for each data node in the structure, or switch it to active
or inactive.

Result
You have created a complete structure node. When you expand the node, you can see the
individual fields of the structure. These have been generated, which means they are
flagged with the icon.
In the layout in the Form Builder, you can insert the structure node in the form.
Inserting a Table or Loop
Use
You want to include a table ( ) from the interface on the left of the screen and define the
loop that selects the table data. You have two options here:
Inserting a Table Node with Drag&Drop
Use Drag&Drop to move the required table from the interface to an existing node in the
context. Proceed as described under 5. below.
Inserting a Table Node Using the Context Menu
18. ...
77. 1. Select an existing node in the context, under which you want to create a
table/loop node.
78. 2. In the context menu of the node, choose Create → Loop.

To display the context menu of the node, click the secondary mouse button.
79. 3. In the Create Loop dialog box, enter a table name.

Use the F4 help to display a list of all tables used in the interface.
80. 4. Choose Enter
81. 5. The system creates a table node under the selected node. The node is fully
expanded so that you can see the individual fields of the table. In the window under
the context, the system displays the properties of this node.
• ○ If you are using a migrated Smart Form as a form, specify the assignment
type under Output Behavior and also the work area of the table. For more
information, see the documentation for Smart Forms, under Reading Internal
Tables.
• ○ If required, restrict the table range that you want to read by setting the input
fields From Row and To Row.
• ○ Under Status, you can set the table node as active or inactive.

You can set individual data nodes in the table as Active or Inactive in the context
menu. Only active nodes are sent to the layout in the Form Builder.
82. 6. Under Conditions, enter the prerequisites that need to be met before the table is
processed at runtime and displayed in the form.

You can also specify conditions for individual data nodes in the table.
83. 7. You can use WHERE conditions to select only parts of the data from the table
at runtime.
84. 8. Under Control Levels, enter one or more data fields from the table that you
want to use to group information in the output. When you choose this option, the
context tree is changed. The grouping is indicated by the selected fields being placed
before all other fields of the table.

You can choose between ascending and descending sorting. However, this is only
active if you do not set the Already Sorted flag under Properties.
Data nodes that are defined as part of a structure within the table cannot be
specified as a control level.

Result
You have created a complete table node. When you expand the node, you can see the
individual fields of the table. These have been generated, which means they are flagged
with the icon.
In the layout in the Form Builder, you can insert the table node in the form. At runtime,
the data is selected according to your settings.

Inserting a Single Record Node


Use
You can use the single record node ( ) to extract single data records from internal tables.
You can extract a single row (record) of a table in two ways:
19. ...
85. 1. You enter the row number.
86. 2. You specify a search key.
When you specify a search key, the table row is read by the ABAP statement READ
TABLE itab WITH KEY k1 = f1 ... kn = fn result. In this case, the return code SY-
SUBRC is inserted in the system field SFPSY-SUBRC. If multiple records are
accessed, this system field contains the SY-SUBRC value of the last access. For more
information about this statement, see Reading Rows of Tables.
Procedure
20. ...
87. 1. Select an existing node in the context, under which you want to create a single
record node.
88. 2. In the context menu of the node, choose Create → Single Record.
89. 3. In the Create Single Record dialog box, enter a table name.

Use the F4 help to display a list of all tables used in the interface.
90. 4. Choose Continue.
91. 5. The system creates a single record node under the selected node. The node is
fully expanded so that you can see the individual fields of the table. In the window
under the context, the system displays the properties of this node.
• ○ Under Status, you can set the single record node as active or inactive.
You can set individual data nodes in the table as Active or Inactive in the context
menu. Only active nodes are sent to the layout in Form Builder.
• ○ Under Row, enter the row number of the internal table that you want to
extract.
• ○ Select the Binary Search option only if you want to use a search key to
display the table row, and you want to perform a binary search.
92. 6. You can also use a search key to extract rows from the internal table. Enter this
key under With-Key Conditions. Note that you cannot enter any information under
Row.
93. 7. Under Conditions, enter the prerequisites that need to be met before the table
row is processed at runtime and displayed in the form.

You can also specify conditions for individual data nodes in the table. To do this,
select a data node. The properties and conditions that are displayed refer to the
data node.

Result
You have created a complete single record node. When you expand the node, you can see
the individual fields of the table. These have been generated and cannot be deleted, which
means they are flagged with the icon.
In the layout in Form Builder, you can insert the single record node in the form. At
runtime, the data is selected according to your settings.

Grouping Tables by Data Fields


Use
You can create control levels to group tables by data fields. In this way, you can, for example,
define a nested output for a flat internal table.

Prerequisites
You have created a table node or a loop node.

Procedure
You enter the required information in the table node. For more information, see Inserting a Table
or Loop.

Inserting a Text
Use
You can use a text node to insert texts in the output of a form. You can choose from
various text types:
● Text modules
● Include texts
● Dynamic texts
Include texts are SAPscript texts that already exist in the system. Text modules also exist
in the system; you create and edit them in transaction SMARTFORMS. They are cross-
client texts and are linked to the Change and Transport System and translation tools. For
dynamic texts, the text and its name are not known until the output of the form is created.
The text name is specified by the content of a variable field. None of these text types are
inserted until the form is printed.
Prerequisites
The text module or include text that you want to insert must exist in the system.

Remember the restrictions that apply when processing forms with inserted texts.
You can find a list of restrictions under:
• ■ Entering Text Module Properties
• ■ Entering Include Text Properties
Procedure
21.
94. 1. Select an existing node in the context, under which you want to create a text
node.
95. 2. In the context menu of the node, choose Create → Text.

To display the context menu of the node, click the secondary mouse button.
96. 3. The system creates a text node under the selected node.
97. 4. In the Properties window under the form context, choose Text Module, Include
Text, or Dynamic Text.
98. 5. Save and confirm your changes in the next dialog box. The system modifies
the Properties window according to your selection.
99. 6. Under Properties, enter the required information about the text type. (See:
Entering Text Module Properties, Entering Include Text Properties)
100. 7. Under Conditions, enter the prerequisites that need to be met before the text
node is processed at runtime and displayed in the form.

You can set a text node as Active or Inactive in the context menu. Only active nodes
are sent to the layout in Form Builder.

Entering Text Module Properties


Prerequisites
You have created a text node in the context and selected the text type Text Module. The
text module exists in the system.
Restrictions
The following components are not supported in text modules and are ignored when the
form is processed:
● Outline paragraphs
● Paragraph properties: Page protection, next paragraph on same page
● Character formats: Superscript and subscript, bar codes
● Special characters
● System fields, such as SFSY-DATE
● Hyperlinks
The following are supported with restrictions:
22. ...
● Tabulators, but not for aligning fields within texts
● SAP characters, but not SAP icons, for example
More information about these restrictions is available in the SAP Notes 894389 and
863893.
Procedure
101. 1. Specify the general properties of the text module, such as the name,
description, and status.
102. 2. Under Text Name, enter the name under which the text module is stored in the
system.

Choose F4 to see a selection of all text modules in the system.


103. 3. Enter the text language in which you want the text module to be inserted.
Choose F4 to see a selection of languages.
104. 4. Set the flag No error if text not available if you still want the form to be
printed, even if the inserted text module does not exist in the system. If you do not set
this flag, the form is not printed, and an error message appears.
105. 5. Set the flag Copy Style from Text Module if you want to keep the style from
the text module.
106. 6. Under Style, you can specify a different style.
Result
You have created a text node. The corresponding text is not inserted until the form is
processed.

For more information about creating and changing text modules, see
Maintenance of Text Modules in the Smart Forms documentation.
Entering Include Text Properties
Use
You want to display a SAPscript text in the form. This text type has the same function as
the SAPscript command INCLUDE.

If you do not have to use SAPscript texts, we recommend that you use text
modules. They are cross-client texts and are linked to Change and Transport
System and the translation tools.

Restrictions
The following components are not supported in SAPscript texts and are ignored when the
form is processed:
● SAPscript styles
● Outline paragraphs
● Control statements
● Paragraph properties: Page protection, next paragraph on same page
● Character formats: Superscript and subscript, bar codes
● Special characters
● System icons, such as ULINE
● Standard icons
● Hyperlinks
The following are supported with restrictions:
● Tabulators, but not for aligning fields within texts
● SAP characters, but not SAP icons, for example
More information about these restrictions is available in the SAP Notes 894389 and
863893.
Prerequisites
You have created a text node in the context and selected the text type Include Text. The
include text, which has been created with SAPscript Editor, exists in the system.
Procedure
107. 1. Specify the general properties of the include text, such as the name,
description, and status.
108. 2. Under Text Name, enter the name under which the include text is stored in the
system.

Choose F4 to see a selection of the texts in the system.


109. 3. Specify the text object. TEXT indicates a standard SAPscript text.

You use transaction SE75 to define separate text objects with their own text IDs for
applications. In this way, you can manage application-specific form texts. The TEXT
text object with the text ID ST is used for general standard texts that you create with
the standard text editor (transaction SO10).

Enter constant values in quotation marks.


110. 4. Specify the text ID. The usual ID of a standard SAPscript text is ST.
111. 5. Enter the text language in which you want the include text to be inserted.

If specified, the system copies the values for Text Object, Text ID, and Text
Language already stored for this text in the SAP system.
112. 6. Set the flag No error if text not available if you still want the form to be
printed, even if the inserted include text does not exist in the system. If you do not set
this flag, the form is not printed, and an error message appears.
113. 7. The style assigned to the text node contains formatting for standard
paragraphs (‘*’). If you specify a paragraph format in the Standard Paragraph field,
you override the format of all standard paragraphs in the include text with this format.
114. 8. Under First Paragraph, you can set a paragraph format for the first paragraph
of the include text. This overrides the setting in the style. If you leave the Standard
Paragraph field empty, all standard paragraphs in the include text are also formatted
with this paragraph format.
115. 9. Specify the style that you want to use for the include text.
Result
You have created a text node with the text type Include Text. The corresponding text is
not inserted until the form is processed.

For more information about creating and editing SAPscript texts, see the
SAPscript Editor documentation.

Inserting a Graphic
Use
Under the graphic node, you can insert graphics, such as a company logo, to be used in
the form output. In Adobe LiveCycle Designer, you bind graphic nodes to an object of the
type Image Field. You use the graphic node to specify where the content of the image
comes from at runtime. To do this, you either specify the URL address of an image or the
name of a field in which the image content is specified in binary code at runtime.

For information about the supported image file formats, see the online help in Adobe
LiveCycle Designer under Defining Object Properties ® Image Fields ® About
Image Fields.
Prerequisites
Any graphics that you want to display with the Graphic Content option must be stored in
MIME Repository. For more information about graphics used in Smart Forms, see
Migrating BDS Graphics into MIME Repository.
Procedure
23. ...
116. 1. Select an existing node in the context, under which you want to create a
graphic node.
117. 2. In the context menu of the node, choose Create → Graphic.
118. 3. The system creates a graphic node under the selected node. Enter the required
data about the graphic in the Properties window under the form context.
You can choose from the following graphic types:
• ○ Graphic Reference
Choose this option if you want to insert a graphic from its address (URL). The
URL can point to a Web server or to a file system. You must be able to access the
graphic at the specified URL. This means that you may have to configure
appropriate access rights for Adobe Document Services (ADS). Graphics stored in
MIME Repository cannot be accessed through a URL. To use these graphics,
choose Graphic Content.
• ○ Graphic Content
Choose this option if you want to specify graphic content using a field. This field
contains all image information at runtime. The graphics must be in MIME
Repository.
119. 4. The entries you need to make depend on whether you chose Graphic
Reference or Graphic Content in the last step.
• ○ If you have chosen Graphic Reference as your graphic type, enter the URL of
the graphic.

In Adobe LiveCycle Designer, you can choose whether the system gets the graphic
at runtime, or whether the graphic is embedded in the form. For more information,
see the online help in Adobe Designer.
• ○ If you have specified Graphic Content as your graphic type, you must do the
following:
• ■ In Field, enter a field name from the interface. The field must have the
type STRING (graphical data is Base64-coded) or XSTRING (for binary-
coded graphical data).
• ■ Enter a valid MIME type, such as ’image/bmp’.
120. 5. Under Conditions, enter the prerequisites that need to be met before the
graphic node is processed at runtime and displayed in the form.
Result
You have created a complete graphic node. You can insert this node in the layout in Form
Builder.
Example
You want to insert a graphic from the Website of the fictitious company AnyCompany in
your form. You have chosen Graphic Reference as your graphic type. The example shows
you two ways of specifying the URL.
1. Specifying a URL with Fixed Values

Graphic URL Delimiter


’http://www.anycompany.com/images/logo.gif’

If you have inserted the graphic node in Adobe LiveCycle Designer, the following URL is
entered for the graphic object:
http://www.anycompany.com/images/logo.gif

2. Specifying the URL by Using Fields

Graphic URL Delimiter


‘http://www.anycompany.com/images’ /
GRAPHIC_NAME
’.gif’

GRAPHIC_NAME is a field from the interface that is entered as an import parameter. At


runtime, it contains the name of the graphic that you want to load. The graphic is
unknown when the layout is created, which is why no URL appears in Adobe LiveCycle
Designer.

Inserting an Address
Use
Many applications use the Business Address Services (BAS) to manage addresses. The
addresses are stored in a database, where they are identified by numbers.

Prerequisites
Your application must manage addresses in the BAS; otherwise, you must insert your
addresses using text nodesor insert them directly in the layoutas text.

Procedure
24.
121. 1. Select an existing node in the context, under which you want to create an
address node.
122. 2. In the context menu of the node, choose Create → Address.
To display the context menu of the node, click the secondary mouse button.
123. 3. The system creates an address node under the selected node. Enter the
required data about the address in the Properties window under the form context.

The information required for the address node is similar to that in Smart Forms. One
difference here is that you need to specify the sending country under Additional
Specifications.
124. 4. Under Conditions, enter the prerequisites that need to be met before the
address node is processed at runtime and displayed in the form.
See also:
Inserting Addresses (from the Smart Forms documentation)

Inserting an Alternative
Use
You want to present an alternative option in a form. You want one of two nodes (and its
subnodes) to be processed. To do this, you use the alternative node. This node has two
successors. The first successor node (TRUE) is processed only if the condition is met;
otherwise, the second successor node (FALSE) is processed.
Procedure
125. 1. Select an existing node in the context, under which you want to create an
alternative node.
126. 2. In the context menu of the node, choose Create → Alternative.

To display the context menu of the node, click the secondary mouse button.
127. 3. The system creates an alternative node under the selected node, with the two
subnodes TRUE and FALSE. Enter the required data in the Properties window under
the form context. Double-click the subnodes to enter their properties as well.
128. 4. Under Alternative Conditions, specify the conditions for a node to be
processed.

The window in which you define the alternative conditions is the same as the
window used for defining the conditions for nodes.

Result
You have created an alternative node. In the context menu of the TRUE and FALSE
nodes, choose Create → … to create nodes for the alternative options. You can use
Drag&Drop to assign any existing node as a subnode.
Inserting a Folder
Use
The more detailed a form becomes, the more difficult it is to get a clear overview of the
hierarchy of nodes. To make the hierarchy easier to understand, you can organize nodes
under folder nodes.

You want to begin a reminder with a different text, depending on which deadline has
been missed. To do this, you create a text node with a different reminder text for
each level of reminder. You then use conditions to display just one of these nodes at
runtime. Here, it is a good idea to group these text nodes in a specific folder.

Procedure
25.
129. 1. Select an existing node in the context, under which you want to create a folder
node.
130. 2. In the context menu of the node, choose Create → Folder.

To display the context menu of the node, click the secondary mouse button.
131. 3. The system creates a folder node under the selected node.
132. 4. In the Properties window under the form context, you can enter a name for the
folder node.
133. 5. Under Conditions, enter the prerequisites that need to be met before the folder
node is processed at runtime (together with its subnodes) and displayed in the form.

Result
You have created a folder node. In the context menu of the folder node, choose Create
→ ... to create subnodes. You can use Drag&Drop to assign any existing node as a
subnode.

System Fields
The interface of a form contains the field string SFPSY. This string contains a range of
system fields that the system replaces with values when a form is processed. The field
content is either taken from the SAP system or is created while the form is being
processed. For example, you can use the system field SFPSY-DATE to display today’s
date on your form. Migrated forms use the system fields from Smart Forms.

The following general rules apply to system fields:

• You can display the value of any system field in the form.
• You cannot assign a value to a system field.
• In general, you can query system fields (for example, in conditions) for any fields.

System Fields

Field Name Meaning


SFPSY-DATE Date and time, current date of the application
server
SFPSY-TIME Date and time, current time of the application
server
SFPSY-USERNAME Logon name for user in the SAP system
SFPSY-SUBRC If single record nodes are used, contains
content of the SY-SUBRC field in the ABAP
statement READ TABLE

Field List
Use
The field list shows you detailed information about the individual fields (such as structure and
tables) of the form interface. It is displayed below the interface.
See Screen Display in the Context of the Form Builder

Activities
Double-click a field in the interface to display information on the properties and type of this field in
the lower screen area of the interface. If the field has a type from the ABAP Dictionary, you can
double-click the type name to go to its entry in the ABAP Dictionary.

Reloading an Interface
Use
You have already started to edit the form context and you have made changes to the interface, in
another session, for example. You can use this function to update the display of the form interface
in the context without having to exit the Form Builder for the context.

Activities
To reload the interface, choose the icon, with the text Reload Interface, on the left of the
screen above the interface.
Layout in the Form Builder
Use
When you create a layout in the Form Builder, you define the graphical design of the
PDF form. This includes the positioning of the data and the design of tables. You can also
specify background pictures for the form, and define the order of the pages.
Integration
The Layout function in the Form Builder calls Adobe LiveCycle Designer, an integrated
graphical software tool for creating forms.
Prerequisites
You have created a form context or loaded an XML schema-based interface.
Features
Under Layout in the Form Builder, you can use a wide range of functions to design your
form. To do this, you use the form context you have created previously or an XML
schema displayed as a tree structure under Data View in Adobe LiveCycle Designer. You
can use Drag&Drop to insert data fields from the Data View section in the page layout.
Activities
There are two ways of editing the layout:
• You choose the Layout tab page. Adobe LiveCycle Designer starts on this tab.
• In the application toolbar, you choose Layout (quick info Fullscreen Layout). Adobe
LiveCycle Designer starts in fullscreen mode. To access the menu bar and application
toolbar, you first have to close the tool.

For more information about editing layouts, see the online help in Adobe LiveCycle
Designer.

Layout Type
You use the layout type to define the runtime environment where the form is used.

The layout type you define must match the script code in the layout. Otherwise
runtime errors can occur.
To select a layout type, choose the Properties tab page in Form Builder: Change Form.
Layout Types

Layout Type Meaning


Unknown layout type The form has not yet been classified. This is
the case if you are creating a new form or
editing a form created with an older version of
SAP NetWeaver. You still have to classify the
form.
Standard layout Use this layout type for PDF-based print forms,
or for interactive forms used in an offline
scenario and not integrated in a Web Dynpro
environment at runtime.
xACF layout The Active Components Framework technology
is used to integrate the form at runtime in Web
Dynpro applications; ActiveX must be enabled
in the browser.

Note that you can make this


setting only if the layout type of
your form was previously
Unknown. If your form is already
set to Standard or ZCI, you
cannot choose xACF. You can
still, however, access your old
form using version management.
ZCI layout Zero Client Installation (ZCI) technology is used
to integrate the form at runtime in Web Dynpro
applications. You specify this setting when you
create new forms. The system enters this value
automatically when you migrate old forms to
ZCI. For more information, see Creating Forms
for Integration with Web Dynpro and ZCI and
Check and Update Functions for Zero Client
Installation (ZCI).

Objects in Adobe LiveCycle Designer


Definition
Adobe LiveCycle Designer provides you with objects that you can use to create your form. These
objects contain special functions and can be found in the Designer’s library. Also included are
some objects developed specially for the SAP development environment.
For more detailed information, see the Designer’s online help under Working with Objects →
Using Custom Objects → Custom Objects for the SAP Environment.

Date Objects in Adobe LiveCycle Designer


Definition
Under Library ® Form Builder, Adobe LiveCycle Designer provides you with the
following date objects:
• Localized Full Date
• Localized Long Date
• Localized Medium Date
• Localized Short Date

Use
You use these date objects to format dates locally when you call the form. The dates are
formatted according to the parameter values entered for language and country in the
application program. These values are sent to the generated function module that contains
the form description.

Example
You want to display the date objects on the form in US format or in German format.
DATA FP_DOCPARAMS TYPE SFPDOCPARAMS.
[...]

* US format
FP_DOCPARAMS-LANGU = 'EN'.
FP_DOCPARAMS-COUNTRY = 'US'.

* German format
* FP_DOCPARAMS-LANGU = 'D'.
* FP_DOCPARAMS-COUNTRY = 'DE'.

* Call the generated function module


CALL FUNCTION FM_NAME
EXPORTING
/1BCDWB/DOCPARAMS = FP_DOCPARAMS

Date Display as Specified by Date Objects

Date Object US Date German Date


Standard Date/Time Field May 17, 2004 17.05.2004
Localized Default Date May 17, 2004 17.05.2004
Localized Full Date Monday, May 17, 2004 Montag, 17. Mai 2004
Localized Long Date May 17, 2004 17. Mai 2004
Localized Medium Date May 17, 2004 17.05.2004
Localized Short Date 5/17/04 17.05.04

For more information, see Example: Calling Forms in the Application Program.

FormCalc Language Reference


Your local Adobe Designer installation includes a FormCalc language reference in a PDF file that
you can print out.
If you have installed Adobe Designer on your C: drive, the FormCalc language
reference is in the following location:
C:\Program Files\Adobe\Designer
7.1\Documentation\<country>\FormCalc.pdf
You enter EN for <country> if you have an English installation, DE if you have a
German installation, for example.

Checking and Testing a PDF-Based Print Form


Use
To guarantee that your form is free from errors, and that its layout meets your
requirements, you can use a range of check options. You can run checks on the form and
test it in the print preview. The system also runs automatic checks when you activate the
form. You can run additional checks in the layout of the Form Builder. These checks test
the data links between the context and the layout.
Prerequisites
To check the layout and display the preview, you must have installed Adobe Reader or
Adobe Acrobat (both with Version 7.0 or later) on your front end.
Features
The system enables you to check your form in the following ways:
● Check the interface
The system runs a syntax check on the interface.
● Check the form
The system runs a syntax check in the context. For example, it checks to see whether all
necessary field properties have been entered. The system also checks whether the
assigned interface is active, and whether all the fields in the context have a link to the
interface. Links to the interface can be lost when the interface is modified. These checks
also run each time you start to edit the layout.
● Activation checks
The system checks the form each time it is activated.
● Check the layout
The system checks whether all fields from the context have been inserted in the layout,
and also whether all fields in the layout have a data link to the context.
● Form preview with and without inserted data
The form is displayed in PDF format in Adobe Reader or Adobe Acrobat.
● Test the form
The system generates a function module that contains the form description. You can send
test data to this function module, which then inserts this data in a print preview of the form.
Activities
Checking an Interface
26. ...
You are in the interface of the Form Builder.
134. 1. Choose Check (Ctrl+F2) in the application toolbar.
135. 2. The system checks the interface and displays any errors or warnings in a list.
136. 3. Double-click a message to locate the error in the interface.
Checking a Form
27. ...
28. .
137. 1. You are in the context in the Form Builder or in the layout in the Form
Builder.
138. 2. Choose Check (Ctrl+F2) in the application toolbar.
139. 3. The system checks the interface and displays any errors or warnings in a list.
140. 4. Double-click a message to locate the error in the context.
Checking a Layout
29. ...
30. ...
141. 1. You are in the layout in the Form Builder.
142. 2. Choose Layout in the application toolbar.
143. 3. The system checks the layout and displays any errors in a list. These messages
are just warnings; you can still activate the layout later. You cannot navigate to the
fields from this list.
Preview Without Data
You use the preview function in Adobe LiveCycle Designer to display the form in PDF
format while you are creating the layout. However, this function does not insert any data.
For more information, see the online help in Adobe LiveCycle Designer.
Print Preview with Inserted Data or Form
31. ...
144. 1. You are in the context in the Form Builder or in the layout in the Form
Builder.
145. 2. Choose Test (F8) in the application toolbar.
146. 3. The screen Test Function Module: Initial Screen appears.
147. 4. Enter the test data for the import parameters and choose Execute.
148. 5. The printer settings dialog box appears. Enter your data and choose Print
Preview.
149. 6. The system starts Adobe Acrobat or Adobe Reader and displays the PDF form
with your data inserted.

If the form does not appear how you want it to, or if errors occur, activate the
function Saving Runtime Information and a Generated PDF Locally and repeat the
test.
Calling Forms in an Application Program
Purpose
To print or archive a form, you use function modules to call it in an application program.
An initial function module determines the name of the generated function module that
describes the PDF-based form. Two further function modules control the output of the
form, and specify whether it is printed or archived.
The form is then called in the application program after the necessary data has been
selected.
If you want to send your form as a fax or e-mail, you must forward the PDF to the
Business Communication Services after the form has been called. You use the function
module FP_JOB_OPEN to control how the form is sent back to the application program
as a PDF. You get the PDF itself from the generated function module.
The following process describes how a PDF-based form with a non-Smart Forms-
compatible interface is called.

If you migrated the PDF-based form from a Smart Form, or if the interface is Smart
Forms-compatible, the form is called in the application program in the same way as
a Smart Form.
For more information, see the following Smart Forms documentation:
Integrating the Smart Form into the Application
Migrating Smart Forms (under Switching Runtime)

Prerequisites
You have created and activated a PDF-based form. You have experience of programming
with ABAP and handling function modules.
Process Flow
150. 1. In the application program, you define a variable of the type RS38L_FNAM
for the name of the generated function module:
151. 2. You call the function module FP_JOB_OPEN. You use this function module to
specify settings for the form output. You specify whether you want the form to be
printed, archived, or sent back to the application program as a PDF. The form output
is controlled using the parameters (IE_OUTPUTPARAMS) with the type
SFPOUTPUTPARAMS.

For the individual fields of the structure SFPOUTPUTPARAMS and their meaning,
see the ABAP Dictionary (transaction SE11).
152. 3. You determine the name of the generated function module by calling
FP_FUNCTION_MODULE_NAME.

The name of the generated function module is unique only in one system. This is
why you must first call the function module that gets the current name of the
generated function module from the name of the form.
153. 4. You call the generated function module and send the parameters to the form
interface.

The structure SFPDOCPARAMS exists as an additional import parameter for the


generated function module (for example, for setting the language); the structure
FPFORMOUTPUT exists as an export parameter. For more information, see
Parameters of the Generated Function Module.
154. 5. You call the function module FP_JOB_CLOSE to complete the processing of
the form.
Result
The system creates the form with the integrated application data in PDL (Printer
Definition Language) form and forwards it to the spool processing tools. A PDF is
created only if the appropriate parameters are sent to FP_JOB_OPEN when archiving,
returning a PDF, or using print preview.
As long as you do not modify the form interface, you can continue to edit the form
without modifying the application program. However, if you modify the form interface,
you must also modify the interface in the application program accordingly.
See also:
Example: Calling Forms in an Application Program

Parameters of the Generated Function Module


You can use the parameters of the generated function module to define the way the form is
displayed and its properties when it is called by the application program. The following lists these
parameters:
From the perspective of the function module interface:
● The parameters of the structure SFPDOCPARAMS are import parameters
(/1BCDWB/DOCPARAMS).
● The parameters of the structure FPFORMOUTPUT are export parameters
(/1BCDWB/FORMOUTPUT).

Parameters of the Structure SFPDOCPARAMS

Parameter Name Type Meaning


LANGU LANGU Language in which the form is
displayed
REPLANGU1 LANGU If the form does not exist in the
language specified in LANGU,
REPLANGU2 LANGU the system evaluates these
REPLANGU3 LANGU fields in the given sequence
instead.
COUNTRY LAND1 Country key for date and
number formatting

No setting is required if the


SET COUNTRY command is
used in the application
program before the generated
function module is called, and
the same country is specified
there.
FILLABLE FPINTERACTIVE FILLABLE = X generates an
interactive form. This form can
be displayed and edited in
Adobe Acrobat or Adobe
Reader. Usage rights are
allocated to the form; these
rights enable data to be
entered and saved in Adobe
Reader.
FILLABLE = N generates an
interactive form without usage
rights.
DYNAMIC FPDYNAMIC DYNAMIC = X generates an
interactive, dynamic form to be
displayed and edited in Adobe
Acrobat or Adobe Reader
versions higher than 7.0.

This parameter is valid only if


the FILLABLE parameter is
also set.
DARATAB TFPDARA If you want to archive the
generated form, you must
make at least one entry in this
table (with archiving indexes).

Parameters of the Structure FPFORMOUTPUT

Parameter Name Type Meaning


PDF FPCONTENT Contains the generated PDF.

A PDF is generated only on


demand by the GETPDF
parameter of the function
module FP_JOB_OPEN in the
application program, or by the
print preview function.
PDL FPCONTENT Contains the generated PDL.
PAGES FPPAGECOUNT Contains the number of
generated pages in the form.
LANGU LANGU Language key

The parameters that control the output options are in the structure
SFPOUTPUTPARAMS and are specified as import parameters when the function
module FP_JOB_OPEN is called. For more information, see Form Output.

Example: Calling Forms in an Application Program


The following is a program excerpt showing how the function modules are called.
32. ...
155. 1. FP_JOB_OPEN opens the spool job.
156. 2. FP_FUNCTION_MODULE_NAME gets the form name.
157. 3. Generated function module of the form
158. 4. FP_JOB_CLOSE closes the spool job.
In this example, the parameters CUSTOMER, BOOKINGS, and CONNECTIONS are
sent to the form interface, where they must already be defined.

DATA: CUSTOMER TYPE SCUSTOM,


BOOKINGS TYPE TY_BOOKINGS,
CONNECTIONS TYPE TY_CONNECTIONS,
FM_NAME TYPE RS38L_FNAM,
FP_DOCPARAMS TYPE SFPDOCPARAMS,
FP_OUTPUTPARAMS TYPE SFPOUTPUTPARAMS.

* GETTING THE DATA


<data selection>

* PRINT:

* Sets the output parameters and opens the spool job


CALL FUNCTION 'FP_JOB_OPEN'
CHANGING
IE_OUTPUTPARAMS = FP_OUTPUTPARAMS
EXCEPTIONS
CANCEL = 1
USAGE_ERROR = 2
SYSTEM_ERROR = 3
INTERNAL_ERROR = 4
OTHERS = 5.
IF SY-SUBRC <> 0.
<error handling>
ENDIF.

* Get the name of the generated function module


CALL FUNCTION 'FP_FUNCTION_MODULE_NAME'
EXPORTING
I_NAME = ‘<form name>’
IMPORTING
E_FUNCNAME = FM_NAME.
IF SY-SUBRC <> 0.
<error handling>
ENDIF.

* Language and country setting (here US as an example)


fp_docparams-langu = 'E'.
fp_docparams-country = 'US'.

* Call the generated function module


CALL FUNCTION FM_NAME
EXPORTING
/1BCDWB/DOCPARAMS = FP_DOCPARAMS
CUSTOMER = CUSTOMER
BOOKINGS = BOOKINGS
CONNECTIONS = CONNECTIONS
* IMPORTING
* /1BCDWB/FORMOUTPUT =
EXCEPTIONS
USAGE_ERROR = 1
SYSTEM_ERROR = 2
INTERNAL_ERROR = 3.
IF SY-SUBRC <> 0.
<error handling>
ENDIF.

* Close the spool job


CALL FUNCTION 'FP_JOB_CLOSE'
* IMPORTING
* E_RESULT =
EXCEPTIONS
USAGE_ERROR = 1
SYSTEM_ERROR = 2
INTERNAL_ERROR = 3
OTHERS = 4.
IF SY-SUBRC <> 0.
<error handling>
ENDIF.
Collecting the Application Data
Background
To ensure a good level of performance when you print forms, you must separate the
selection of the data from the processing of the form.
The following questions need to be answered about the collection of the data:
• What application data do you want to appear on the form?
• Which database tables need to be accessed to get this data?

Process Flow
You write an ABAP program that collects the data or you include an appropriate routine
in your application. These routines usually consist of statements that select data from the
database. You save the data in internal tables, structures, or variables, which you then
bundle and send to the form.

Customers who want to change the way the data is collected, and do not want to
modify the application program, can extract data when the interface is initialized,
and then use this data in the form under Global Data.

Result
The data is saved to internal tables in the application program. Now that you know all the
types of tables that are used, you can define a form interface to send this data to a form.

Getting the Used Interface Fields


Use
You can use the same interface for multiple forms, but not all fields of the interface need
to be used in every form. You use the function module FP_FIELD_LIST to get all fields
of the interface that are used in the form. This enables you to optimize the way the data is
collected in the application program. The performance of the application program
improves because it only needs to provide the parameters required by the relevant form.
Prerequisites
You have created a PDF-based form with an interface, and created and activated the form
context.
Integration
The function module is included in the application program that collects the data and
calls the form.
Features
The function module FP_FIELD_LIST provides you with the following information:
• All fields from the interface that are used in active nodes in the form context. This includes
fields referenced by the data node and fields that are used in conditions, alternatives, text
nodes, address nodes, and graphic nodes.

You can also see the used field names in the form context by displaying the
properties and conditions for each node. You can also see field names under Where
Conditions for table nodes, if any are defined.
• All fields from the interface that are used in the ABAP code (initialization) of the interface.

Activities
You include the function module in the application program that collects the data and
calls the form.
• You specify the name of the form as an import parameter.
• You get a table of the used fields (with the type TFPFIELDS) that can then be used for
data collection in the application program.
See also:
Collecting the Application Data

Saving Runtime Information and a Generated PDF


Locally
Use
Form developers and support desk staff can use this function to analyze the causes of any
errors that occur when forms are generated. You can save files that contain the following
information to your local client:
● Runtime information (also known as trace information), created by the system when forms
are generated
● PDF with additional information
Once a setting is chosen, the system saves this information for all forms that are
generated while the user is logged on.
Integration
You can also get the runtime information directly in the application program that calls the
form, using a function module. For more information, see Troubleshooting.
Prerequisites
You have debugging authorization in the system where you want to use this function.
Features
● Saving runtime information
The system saves the trace information returned by Adobe document services to your local
client. This information is a subset of the trace information stored by the J2EE Engine used
as a host system for Adobe document services. The detailed trace information is located in
the file defaultTrace.trc on the J2EE Engine.
● Saving the PDF with additional information
The PDF with additional information consists of the generated PDF form or, in the event of
errors, an error file. Attached to either of these files are various additional files including, for
example, application data (in XML format), sent to the form at runtime, and the runtime
information mentioned above. For a detailed description of the information provided by the
system, see the section Execution in the problem analysis scenario Adobe Rendering
Error (in English only).
● Saving runtime information and a PDF with additional information for multiple forms
If multiple forms are called in the application program, the information is saved to separate
files. An extra sequential number is added to each file, in addition to the existing
numbering.

Activities
33. ...
Choose Utilities → Settings. A dialog box appears.
● To specify how the runtime information is saved locally, choose an option under Trace
Level and enter the name of the file. If you do not specify an extension for the file name,
the system saves the runtime information automatically with the extension TXT.
● To activate the function PDF with Additional Information, proceed as follows:
• ○ Under Runtime Information → Trace Level, select the option Very
Detailed Trace.
• ○ Select PDF with Additional Information and specify a file name.

When you choose F4 for the file name, you can navigate to your system to choose a
file.

Troubleshooting for Runtime Errors FPRUNX001,


002, and 004
Use
You want to display a PDF-based print form. However, the system displays the runtime
error FPRUNX001, FPRUNX002, or FPRUNX004 when the generated function module
is called. You can use the troubleshooting options to find out the cause of the error.
Features
You are provided with various function modules for troubleshooting purposes. You can
use these function modules to extract the following information:
• Texts about the cause of the error (with the FP_GET_LAST_ADS_ERRSTR function
module)
• A trace of the Adobe document services (with the FP_GET_LAST_ADS_TRACE function
module)

Activities
To perform the troubleshooting actions, call the function modules in your application
program.

Troubleshooting Texts
1. Call the function module FP_GET_LAST_ADS_ERRSTR after
the generated function module.
2. 2. FP_GET_LAST_ADS_ERRSTR gives you a text that
indicates the cause of the error.

Trace
34. ...
1. To activate the trace output, set the ADSTRLEVEL field in the
IE_OUT_OUTPARAMS parameter (type SFPOUTPUTPARAMS) of the
FP_JOB_OPEN function module to values between 01 and 10.
2. Call the function module FP_GET_LAST_ADS_TRACE after the generated
function module.
3. FP_GET_LAST_ADS_TRACE gives you the trace.

Read the SAP Note 717568 on the SAP Service Marketplace at


service.sap.com/notes. This note gives you precise and up-to-date information
about how to proceed when troubleshooting.

Form Output
Purpose
You can send a PDF-based form to various types of output media. You can choose one of
the following options:
35. ...
● Printer
● Archiving
In this case, the form is forwarded to ArchiveLink. ArchiveLink is a communication interface
that manages archiving systems in the SAP system. This interface allows you to link the
form with application data, for example.
For more information, see the ArchiveLink documentation under Storing
Outgoing Documents.
● Fax and e-mail
If you send the form back to the application program as a PDF, the application program can
forward it to Business Communication Services, from where it can be sent as a fax or e-
mail.

Prerequisites
The form is sent to the output media through interfaces. The SAP system must be
configured to be compatible with each output medium. For example, if you want to print
your PDF form, you must configure a PCL-compatible printer.
Process Flow
To control the output of the form, you use various fields in a structure with the type
SFPOUTPUTPARAMS. When the form is called in the application program, these fields
are sent to the function module FP_JOB_OPEN as parameters (IE_OUTPUTPARAMS).

To see how function modules are called, see Example: Calling Forms in the
Application Program.
For the individual fields of the structure SFPOUTPUTPARAMS and their meaning,
see the ABAP Dictionary (transaction SE11).
Output to Printer
Forms are sent to a printer by default; this is what happens when you use the initial
values of the structure when you call FP_JOB_OPEN. You can modify the print
parameters and the spool dialog parameters by setting the fields accordingly.

For more information, see Spool Processing and Controlling the Spool Dialog.
For general information about printing and printer setups, see SAP Printing Guide
(BC-CCM-PRN)..
Output to Archive
159. 1. If you create the form output with a dialog, you see the spool dialog. Here,
you specify an archiving mode for the document:
• ○ Archive only
• ○ Print and archive
If you create the form output without a dialog, specify the archiving mode in the
ARCMODE field of the structure mentioned above.
• ○ Archive only: SFPOUTPUTPARAMS-ARCMODE = ’2’
• ○ Print and archive: SFPOUTPUTPARAMS-ARCMODE = ’3’

You use the NODIALOG field to display the output of the dialog. For more
information, see Controlling the Spool Dialog.
2. You write at least one entry to the table with archive indexes
(SFPDOCPARAMS-DARATAB).
3. The system forwards the form to ArchiveLink.
Output as Fax or E-Mail
36. ...
1. In your application program, set the field SFPOUTPUTPARAMS-GETPDF.
2. The system sends the generated PDF form back to the application program,
where it can then be forwarded to the interface of the Business Communication
Services.

Font Replacement
Use
PDF-based forms are created in an original language. When you use the appropriate tools
to translate forms, all texts are translated from the interface, the context, and the layout.
When you process forms in another language (referred to here as the target language), the
fonts used in the layout are retained. However, if a font does not support all characters in
the target language, the system replaces these characters automatically with suitable
replacement fonts. This function also gives you the option of setting a default font or
fonts to be used as a replacement in forms. You make the required settings in the table
FPFONTREPL.
Integration
You can specify replacement fonts for forms that have been created and translated in
ABAP systems. The settings are cross-client settings.
Prerequisites
• To edit the table FPFONTREPL, you require administrator authorization.
• The fonts you want to use must be installed for Adobe document services. For more
information, see Adobe Document Services − Configuration.

Activities
To define replacement fonts, edit the table FPFONTREPL in the Data Browser
(transaction SE16).
37. ...
160. 1. Under Name of Form Object, enter the form name. You can do this in the
following ways:
•  You can define replacement fonts for specific forms. To do this, enter the
name of the form.
•  You can define replacement fonts for all forms in the system. In this case, you
enter a wildcard character * in the table under Name of Form Object.
2. Under Language, enter the target language in which the form and the
replacement font or fonts are displayed.
Remember that the form is only displayed in the target language if this is specified
for form calls in the field LANGU of the import parameter /1BCDWB/DOCPARAMS
of the generated function module.
3. Under Source Font, specify the font in the original form.
4. Under Target Font, enter the font that you want to replace the source font with.
Example
For the Japanese version of the form FP_name, you want to use the character set
MS MINCHO instead of Times New Roman. To do this, you make the following settings
in FPFONTREPL:
Font Replacement in Table FPFONTREPL for Form Processing

Name of a Form Language Source Font Target Font


Object
FP_name J Times New Roman MS Mincho

Spool Processing
Use
As a default setting, the system forwards the generated PDF forms to the spool
processing functions and sends parameters to the spool dialog. You can use this spool
dialog to control the output, by doing the following, for example:
• Opening a new spool job
• Specifying the retention period of a job in the spool

Integration
The functions related to these settings are no longer part of the process of creating PDF-
based forms.
Features
You can use parameters in the structure SFPOUTPUTPARAMS to make print and spool
dialog settings. When you call the form, you send these parameters
(IE_OUTPUTPARAMS) to the function module FP_JOB_OPEN.

For the individual fields of the structure SFPOUTPUTPARAMS and their meaning,
see the ABAP Dictionary (transaction SE11).

See also:
Controlling the Spool Dialog
Printing PDF-Based Forms in the SAP Printing Guide
Displaying and Printing PDF-Based Forms in the SAP Printing Guide

Controlling the Spool Dialog


Use
In the application program, you want to adjust the spool dialog to your requirements when printing
a PDF-based form, or hide the spool dialog completely.

If a form is migrated from a Smart Form, or if it is compatible with Smart Forms, the
spool dialog is controlled by different parameters.
See also:
Controlling the Spool Dialog in the Smart Forms documentation

Prerequisites
The DEVICE parameter of the structure SFPOUTPUTPARAMS must have the value ’PRINTER’.

Features
The following Changing parameters (set with the function module FP_JOB_OPEN) are relevant
for controlling the spool dialog:
Fields from the Structure SFPOUTPUTPARAMS for Controlling the Spool Dialog

Field Component Type Meaning (when set)


Data Type (Length
NODIALOG FPNODIALOG Suppress user dialog
CHAR(1)
TITLE FPTITLE Title of the dialog box
CHAR(50)
NOPREVIEW FPNOPREVIEW Suppress print preview
CHAR(1)
NOPRINT FPNOPRINT No print from print preview
CHAR(1)
NOARCHIVE FPNOARCHIVE No archiving from print
CHAR(1) preview

IMMEXIT FPIMMEXIT Exit preview immediately after


CHAR(1) printing

NOPRIBUTT FPNOPRIBUTT No pushbuttons


CHAR(1)
Activities
In the application program, call the function module FP_JOB_OPEN and specify the required
parameters. To set a parameter with the data type CHAR(1), specify the value ’X’ (for example,
NODIALOG = ’X’, to suppress the user dialog).

See also:
Example: Calling Forms in an Application Program

Printing Multiple Forms in a Print Request


Use
You want to print multiple forms in a single print request.
Procedure
38. ..
1. When you call the form in the application program, first call the function
module FP_JOB_OPEN.
2. Determine the names of the generated function modules with
FP_FUNCTION_MODULE_NAME.
3. Then call the generated function module(s) that you want to use in the output.
4. The function module FP_JOB_CLOSE is the last function module to be called.
Result
You have placed the selected forms in a print request.
See also:
Calling Forms in an Application Program

XDC Scenarios for Print Control


Use
An XDC file is a printer description in XML format. Adobe Document Services require
this file to create the print files. PDF documents can only be printed on printers of SAP
device types for which there is an XDC file in the system.
XDC files are shipped for the following SAP device types: POST2 (generic device type
that can be used for every PostScript printer), HPLJ4, HP9500, AZPL203, and AZPL300.

You do not usually need to make any modifications to these XDC files to use them
for successful printing.
The XDC scenarios provide you with examples of how you can make specific settings for
your printer.
Integration
You can edit XDC files in a text editor and manage them in the SAP system.
Functions
The documentation about the XDC scenarios describes the entries in the XDC file, so
enabling you to make the following settings:
• Printer
• Paper tray (not defined by default)
• Paper format (such as A3)

Activities
For documentation about the XDC scenarios, see SAP Service Marketplace at Adobe →
Media Library → Documentation.

For up-to-date information about downloading this documentation, see SAP Note
766410 on SAP Service Marketplace at service.sap.com/notes.

Output in XFP Format


Use
Using the XML interface for PDF-based forms (XFP), external applications outside the
SAP system can access and process the contents of forms. The XFP output contains all
form data in XML format, but does not contain any layout information about the form.

Software partners can receive a certificate from SAP for products that access the
XFP interface. For more information, see the Software Partner pages at
http://www.sap.com/spp.

Integration
XFP output corresponds to XSF output for Smart Forms and RDI output for SAPscript.
Prerequisites
Since XFP uses spool processing, at least one printer of device type XFP must be set up
in the system.

In spool administration, we recommend that you set up an XFP output device. By


default, this output device is used as a virtual device for connecting to the external
application. You can override this default by setting the output parameter
IE_OUTPUTPRAMS of the function module FP_JOB_OPEN accordingly (the ABAP
Dictionary reference is SFPOUTPUTPARAMS-XFPOUTDEV).
See also: SAP Printing Guide (BC-CCM-PRN).
Features
The XFP output is activated at runtime by the calling application program. The XML data
can be displayed in two different ways:
• XML data stream with context evaluation
The data stream describes the structure of the PDF-based form at runtime with the data
integrated from the application program. This means the form context is already evaluated,
together with all its conditions.
• XML data stream without context evaluation
The data stream contains the data from the application program, but the form context has
not been evaluated.

Performance Aspects
The following information is targeted mainly at developers, who can use it to achieve an
optimal level of runtime performance when using Interactive Forms based on Adobe
software. Unless specified otherwise, these recommendations apply both to interactive
forms in Web Dynpro and to PDF-based print forms.
Recommendations for Adobe LiveCycle Designer
● For interactive forms, use the Form Caching function in the Designer. For more information,
see the online help for the Designer.
● Minimize the amount of communication that takes place with the server in interactive forms.
Only use those interactive functions (such as dynamic value help that sends queries to the
server) that are strictly necessary.
● Keep scripting to a minimum, since scripting in a form can have an effect on performance.
● If possible, use only the following character sets, even if the Designer supports others:
Courier, Arial, Times New Roman. These character sets do not need to be embedded in
the form, which improves performance.
● For a detailed description of how to improve performance, see the online help of the
Designer, under Creating Forms for Optimal Performance.

Recommendations for Form Builder


● For each business scenario, design an individual form that uses its own data retrieval
methods. Do not implement the condition-driven output of multiple forms from the same
form object.
● Structure the form context in accordance with the logical flow of data. Place the context
nodes used at the top of the form at the initial position in the context tree.
● Deactivate any context nodes that you do not need.

Recommendations for Calling Forms and Form Output


● When you create forms for mass printing, design the data retrieval process in the
application program and interface in accordance with your individual requirements. To
support you in your work, use the function module FP_FIELD_LIST, which determines all
fields used in the interface.
● Bundle print forms.
● Cache forms that you want to process with Adobe document services.

Performance Analysis
You can obtain precise details about the performance of Adobe document services. For
more information, see Adobe Performance Analysis (in English only).

Handling Errors and Problems


Use
Interactive Forms based on Adobe software provide you with comprehensive support for
detecting and resolving errors and problems when you create, display, and print forms.
Features

Utilities in the Form Builder


The Form Builder that you use to create PDF-based print forms and interactive forms in
Web Dynpro for ABAP offers you a wide range of functions:
● Checking and Testing a PDF-Based Print Form
● Saving Runtime Information and a Generated PDF Locally
You activate this function in the Form Builder. When you call the form, it gives you detailed
information about the form data and runtime information specified by Adobe document
services.

Utilities in the Application Program that Calls the Form


The following function modules provide you with support when you work with PDF-
based print forms:
● Getting the Used Interface Fields
● Troubleshooting for Runtime Errors FPRUNX001, 002, and 004
You use this function module to find out the causes of any errors you encounter when
displaying forms.

Communication Errors, Runtime Errors, No Form Output


If you encounter any connection errors or configuration errors when you use Adobe
document services, see the description under Problem Analysis Scenarios for Adobe
Document Services for detailed troubleshooting information.
Delivery and Translation
Transport Object
The interface and form (context and layout) of a PDF-based form are separate
development objects. An entry is created in the TADIR (object directory) table for each
interface and each form. The corresponding transport objects are as follows:
● SFPF for the form (R3TR SFPF <name>)
● SFPI for the interface (R3TR SFPI <name>)
The system uses the Transport Organizer in the usual way to create the TADIR entries or
transport objects and their attributes. The Transport Organizer distributes the interfaces
and forms to other systems. Local objects are not included in this process. You assign a
package to an interface or form when you create it.

Cross-Client Objects
The interfaces and forms for PDF-based forms are cross-client objects.

Translating Texts
PDF-based forms are integrated in the same translation process as other development
objects; this means that the SFPF and SFPI transport objects are recognized by the
translation tools (transaction SE63) and are included in the relevant worklists. The
translation-relevant texts in a PDF-based form are as follows:
● Descriptions of the nodes
These are translated in the same way as other system short texts.
● Texts in the layout of the PDF-based form that you created in the Form Builder with Adobe
LiveCycle Designer
From SAP NetWeaver ´04 SPS 11, texts are translated in a splitscreen editor that displays
the texts in plain text format. If you want to translate older forms in this way, you must first
display the layout in edit mode, and then save it again. For the procedure for editing a form
in Adobe LiveCycle Designer, see Layout in the Form Builder.
For more information about translation, see the documentation on transaction SE63 under
Translating PDF-Based Forms .
Original Language
When you create a PDF-based form, the system specifies the logon language as the
original language. You create the form and all its language-specific parts (such as texts
and meanings) in the original language.

Standard Forms
Different applications in the SAP system use different standard PDF forms. If you want
to adapt these forms to your own requirements, copy the standard form, make your
changes to this copy only, and then link it to the application. (The system does not log
any modifications to the standard form.) In this way, your customer-specific changes are
not lost when an updated version of the standard form is imported in an upgrade.
Tools Associated with Form Development
Use
When you develop forms, you will also need to make use of functions and components that are
not included in the development environment for PDF-based forms. The following gives you an
overview of these tools and links to additional information.
See also:
Creating Text Modules
Business Address Services

Creating Text Modules


Use
You can insert text modules in a PDF form as text nodes. For more information on inserting a text
module, see the following:
Inserting a Text

You create and edit text modules in Smart Forms (transaction SMARTFORMS). For more
information, see the Smart Forms documentation under:
Maintenance of Text Modules

You can assign a format (also known as a style) to a text module. For more information, see the
following:
Maintenance of Styles with the Style Builder
Smart Styles
Header Data of a Smart Style
Paragraph Formats
Character Formats

Note that the documentation linked to here relates to creating forms in Smart Forms.
This information does not always apply to PDF-based forms.

Business Address Services


Use
You can insert an address node in a PDF-based form. You use the addresses managed in the
Business Address Services (BAS).
For more information about address management, see the documentation Business Address
Services (BC-SRV-ADR).
Version Management
Use
The PDF-based forms solution is integrated with version management tools. You can save
different versions of both forms and interfaces.
Activities
Under Form Builder: Entry Point, enter a form or interface.
● To save a version of the form or interface in the version management database, choose
Utilities → Versions → Generate Version.
● To access the version management functions, choose Utilities → Versions → Version
Management.

See also:
Documentation about Version Management

Migration of Smart Forms


Use
You want to migrate a Smart Form to a PDF-based form.

Integration
This function is integrated into the Smart Forms transaction, and you call it there.
See also:
Migrating Smart Forms in the Smart Forms documentation

Interactive Forms
There are several ways of creating an interactive form. You use one of the following
development environments, depending on your application scenario:
● Web Dynpro for ABAP in SAP NetWeaver AS ABAP
● Web Dynpro for Java in SAP NetWeaver AS Java
● Guided Procedures
● Forms in SAP Business Workflow for various mySAP ERP business packages (in
particular, Manager Self-Services) are developed in ABAP Workbench (transaction SFP)
and implemented in the Web Dynpro for Java runtime environment.
• ○ For general information about using forms, see the mySAP ERP
documentation under HCM Processes and Forms and Internal Service
Request (ISR).
• ○ For information about creating forms in Form Builder, see Creating Forms
for Integration with Web Dynpro and ZCI.
● ABAP Workbench, Transaction SFP. This development environment is intended mainly for
creating print forms. You can, however, generate a PDF when you call a form, and use
certain parameters to control which input is allowed. Note that you need to program some
steps manually when you use ABAP Workbench; these steps run automatically in the
environments listed above.

All of these options require Reader Rights to be granted before you can use
interactive forms in Adobe Reader. A user in Adobe Reader cannot enter and save
data in an interactive form until these rights are granted. Reader Rights are
configured as part of the installation and configuration process of Adobe Document
Services. For more information, see Reader Rights Credential in the Adobe
Document Services Configuration Guide.

In certain circumstances, interactive forms require licenses. For more information,


see SAP Note 750784.

Interactive Forms in Web Dynpro for ABAP


You develop interactive forms as part of a Web Dynpro application in ABAP Workbench.
See also:
• Web Dynpro for ABAP
General information about the solution
• Adobe Integration
Information about creating a PDF form in Web Dynpro for ABAP
• InteractiveForm
Interface element for creating forms in View Designer

Interactive Forms in Web Dynpro for Java


You develop interactive forms as part of a Web Dynpro application in SAP NetWeaver
Developer Studio.
See also:
• Concepts of Developer Studio
Detailed information about SAP NetWeaver Developer Studio
• Development of Interactive Adobe Forms for the Web Dynpro UI
Explanation of the concepts behind creating forms
• Example of the Use of an Interactive PDF Form
This documentation gives you a short introduction to creating an interface PDF form,
including information about constructing the view, the context structure, and data bindings.
• Web Dynpro InteractiveForm API − IWDInteractiveForm
Interface element in View Designer
• Adobe Library
Documentation about specific objects in Adobe LiveCycle Designer, on the Web Dynpro tab
page

Creating Forms for Integration with Web Dynpro and


ZCI
Use
This procedure is only relevant for forms created with Form Builder at design time and
that run in a Web Dynpro application at runtime.
These include interactive forms in the ISR Framework, such as forms for Business
Package Manager Self-Service. They can be used (from SAP NetWeaver SPS 8) at
runtime in Web Dynpro for Java based on Zero Client Installation (ZCI). To enable this,
the forms must contain special scripting, which you insert when you create new forms in
Form Builder.

You can use transaction SFP_ZCI_UPDATE to make any interactive forms you
created with an older version of SAP NetWeaver ZCI-compliant. For more
information, see Check and Update Functions for Zero Client Installation (ZCI).

Prerequisites
● You use SAP NetWeaver 2004s SPS 8 or higher.
● You use SAPGUI Release 6.40 Support Package Level 20 or higher (see SAP Note
940637).
● You use Adobe LiveCycle Designer 7.1 (see SAP Note 962763).

Procedure
39. ...
40. ...
161. 1. Create a form.
162. 2. Select ZCI Layout in the Layout Type field under Properties.
163. 3. Switch to the Layout tab page. This starts Adobe LiveCycle Designer in
SAPGUI.
164. 4. Choose Utilities → Insert Web Dynpro Script. The system inserts scripting
into the form layout in Adobe LiveCycle Designer. You can see the scripting in the
node (Variables)->ContainerFoundation_JS under Hierarchy in Adobe LiveCycle
Designer.
165. 5. If you want to use Web Dynpro-specific objects in the design of your form
layout, use the Adobe Designer library Web Dynpro Native.
Check and Update Functions for Zero Client
Installation (ZCI)
Use
You use transaction SFP_ZCI_UPDATE to check forms and update them to ZCI.
Integration
This transaction calls the report FP_CHK_UPDATE especially for ZCI.
Prerequisites
● If you want to update forms from ISR Framework to ZCI, you must first run the report
FP_CHK_UPDATE with the ISR object. For more information, see SAP Note 956074.
● You can use this transaction to update only those forms that are not in editing.
● The same prerequisites apply as described in Check and Update Functions with the
Report FP_CHK_UPDATE.

Features
This transaction calls the report FP_CHK_UPDATE especially for checking and updating
forms to ZCI. It selects the required check and update objects automatically, runs the
report for them, and switches the layout type of the migrated forms to ZCI Layout.
Activities
41. ...
166. 1. Call transaction SFP_ZCI_UPDATE.
167. 2. Proceed as described in the documentation for the report FP_CHK_UPDATE.

Note that you do not need to perform step 7 to select the objects.

Check and Update Functions with the Report


FP_CHK_REPORT
Use
The report FP_CHK_REPORT enables you to check the layout of a form, and update it if
necessary. You created a layout previously with the integrated Adobe LiveCycle Designer
tool. Various objects can be selected for both the check function and the update function.
Only those objects used to migrate forms for Zero Client Installation (ZCI) are currently
available. We therefore recommend that you use the transaction SFP_ZCI_UPDATE.
This transaction calls this report with the required objects.
Prerequisites
● To be able to use the update function, you require a role that is assigned to authorization
object S_FP_CHK. For more information, see SAP Authorization Concept.
● Any forms that you want to check or update have to be active.
● Since Adobe Document Services (ADS) are called for this function, you must know the
name of the appropriate RFC connection to ADS.
● The check and update objects must be on the ADS server.
● If you want to migrate forms for ZCI, read SAP Note 956074.

Features
This function allows you to check and update one or more forms in a batch process. The
link to Change and Transport System guarantees that updated forms are transported
further in your landscape. You can choose one of the following options:
● Check form layouts
This only checks the forms and does not modify them.
● Update form layouts
This checks the forms and updates them if necessary, by inserting scripting.

Before it changes a form, the system creates a version of it automatically and saves
it to version management. This guarantees that you always have access to a
backup copy of the original form.
You can determine the scope of the check or update by selecting appropriate objects.
Detailed results of the check or update are shown in a log. The system also shows you a
list of inactive forms that cannot be used with this function (if available).
Activities
42. ...
1. Run report FP_CHK_REPORT in transaction SA38.
2. Enter the name or names of the forms under Form(s).

You can select forms by attributes such as Name, Created By, Changed By, or
Changed On in a dialog box. You can also select forms in the Multiple
Selectiondialog box. You can also copy form names from a text file or the buffer.
3. Under Activity, specify whether you want the system to run a check or an
update.
4. Under ADS Connection, specify the RFC connection to Adobe Document
Services.

The default shown by the system is ADS.


5. Choose Execute (F8).
6. The system determines the number of forms on which the function is
used and displays it in the status bar.
7. Select at least one object to be checked or updated from the list of available
check and update objects.

A dialog box tells you if no check or update objects are available.


You must read SAP Note 956074 before you select an object if you want to run an
update before migrating forms for ZCI.
8. For any forms assigned to a package, the system prompts you to enter the
appropriate transport request for each transport layer. This guarantees that your
updates are transported. This prompt does not appear for forms or packages created as
local objects.
9. The check or update runs, and may take some time depending on the number of
forms selected. You can see the results in a log. These logs are saved in the
application log, where you can display and analyze them later.

Program-Driven Generation of Form Templates


Use
SAP provides an API (application programming interface) that you can use to generate a
form template. This API generates an XFA (XML Forms Architecture) document that can
be displayed in Adobe LiveCycle Designer. This enables you to implement the program-
driven generation of form templates, without using Adobe Designer.
The API is based on Adobe XFA Version 2.2. It offers only a selection of the XML tags
and attributes from the XFA specification. Adobe Designer itself offers a much wider
range of functions. For this reason, we recommend that you restrict program-driven
generation to simple form templates only.
Integration
To fully understand how to use the API, you must read this description together with the
XFA specification. To access the Adobe XFA specification, go to the following Internet
address: http://partners.adobe.com/public/developer/xml/index_arch.html.
This specification contains explanations of all elements and attributes, as well as
suggestions for the hierarchical structure of the elements.
Activities
You can use all interfaces from the package SAXFT.
Each interface corresponds to precisely one tag in the XFA specification.
You generate the root node by using CREATE_OBJECT to instantiate an object from the
class CL_SXFT_TEMPLATE. For this object, you can call the method GET_FACTORY(
) to create a factory object. You can generate all subsequent XFA elements by using a
“create” method of the factory method to instantiate the corresponding object. You create
the structure of the XFA document as follows:
● You use “set” methods to set simple attributes and to send the attribute value to the VALUE
parameter in quotation marks.
● You use “set” methods to set attributes that are themselves elements, and to send an
object to the VALUE parameter that represents the attribute (and the new element).
An exception to this are attributes that are themselves elements but only have a few
of their own attributes; these attributes do not need to be generated. The values can
be set directly by using the corresponding “set” method (such as <margin> and
<color>).
● You use the method IF_SXFT_NODE~APPEND_CHILD( NEW_CHILD ) to set child
elements. The interface IF_SXFT_NODE is included in all interfaces that represent XFA
elements.
Grouping interfaces are used for attributes that are used very frequently
● The interface IF_SXFT_ALIGNMENT groups the “set” methods for the attributes VALIGN
and HALIGN. This interface is included in all interfaces that represent elements with these
attributes.
● The interface IF_SXFT_MEASUREMENT groups the “set” methods for the attributes X, Y,
W, H, and Layout. This interface is included in all interfaces that represent elements with
these attributes.

Example
For an example implementation, see the program RSXFT_XFT_API_DEMOII.
This program generates a template that includes the following: header and footer, a static
text, a selection list, option fields, a text input field, and a pushbutton. Since no context is
generated, no data binding is created.

Performance Aspects
The following information is targeted mainly at developers, who can use it to achieve an
optimal level of runtime performance when using Interactive Forms based on Adobe
software. Unless specified otherwise, these recommendations apply both to interactive
forms in Web Dynpro and to PDF-based print forms.
Recommendations for Adobe LiveCycle Designer
● For interactive forms, use the Form Caching function in the Designer. For more information,
see the online help for the Designer.
● Minimize the amount of communication that takes place with the server in interactive forms.
Only use those interactive functions (such as dynamic value help that sends queries to the
server) that are strictly necessary.
● Keep scripting to a minimum, since scripting in a form can have an effect on performance.
● If possible, use only the following character sets, even if the Designer supports others:
Courier, Arial, Times New Roman. These character sets do not need to be embedded in
the form, which improves performance.
● For a detailed description of how to improve performance, see the online help of the
Designer, under Creating Forms for Optimal Performance.

Recommendations for Form Builder


● For each business scenario, design an individual form that uses its own data retrieval
methods. Do not implement the condition-driven output of multiple forms from the same
form object.
● Structure the form context in accordance with the logical flow of data. Place the context
nodes used at the top of the form at the initial position in the context tree.
● Deactivate any context nodes that you do not need.

Recommendations for Calling Forms and Form Output


● When you create forms for mass printing, design the data retrieval process in the
application program and interface in accordance with your individual requirements. To
support you in your work, use the function module FP_FIELD_LIST, which determines all
fields used in the interface.
● Bundle print forms.
● Cache forms that you want to process with Adobe document services.

Performance Analysis
You can obtain precise details about the performance of Adobe document services. For
more information, see Adobe Performance Analysis (in English only).

Caching Forms
Use
Forms are sent to Adobe document services (ADS) for processing. This function enables you to
optimize communication with ADS by caching the form layout on the server where ADS is
installed.

There are two types of caching in ADS. As well as caching the form layout, you can
also cache the processed PDF (for interactive forms). In the latter case, you can
optimize performance on the ADS server since it retains a ready-made PDF that
only needs to be filled with application data at runtime. For more information, see
the documentation Form Caching in the online help of Adobe LiveCycle Designer
(mentioned further below).

Prerequisites
To use this function, you require SAP NetWeaver Support Package Stack 6 or higher.

Activities
You activate this function by setting the field CACHING in the table FPCONNECT in the Data
Browser (transaction SE16). This setting then applies to all forms in your Web AS ABAP.
CACHING in Table FPCONNECT
Value Meaning
x Activate caching
- Deactivate caching
space Use the system setting; caching activated

The table FPCONNECT also contains other fields, which are used to define the
bundling of forms.
See also:
Form Caching in the online help of Adobe LiveCycle Designer under Creating Forms for Adobe
Document Services → Designing Forms for Adobe Document Services → Optimizing and
Improving Adobe Document Services.

Bundling of PDF-Based Forms


Use
Forms are sent to Adobe document services (ADS) for processing. The function described here
enables you to optimize communication with ADS by bundling forms in a single call.

Prerequisites
To use this function, you require the following:
● SAP NetWeaver Support Package Stack 6 or higher
● Adobe document services installed in an SAP NetWeaver AS ABAP + Java system (J2EE
Add-In), which enables the system to exchange data using the global directory

Features
Form bundling is supported for the following scenarios:
● Print
● Print and archive
● Archive only
In all other cases (such as print previews, requesting PDFs, and output in XFP format), bundling
is deactivated automatically by the system.
You can choose one of two bundling types:
● Simple bundling
Any forms with the same form design (layout and context) and the same language are
bundled together. The data in the forms can be different.
● Complex bundling
Forms with different form designs and different languages are bundled together. The data
in the forms can be different.

Activities
There are two ways of bundling PDF-based print forms:
Using a Table to Define Form Bundling
To set this function in your system, make the required settings in the table FPCONNECT in the
Data Browser (transaction SE16).
Table FPCONNECT
Field Required Setting
DESTINATION Connection to ADS
DIR_GLOBAL X is a prerequisite for bundling
BATCHING X to activate simple bundling
MBATCHING X to activate complex bundling
CACHING Not required for bundling. See Caching Forms.

To deactivate a field, specify –; to use the system setting, specify space.


If both BATCHING and MBATCHING are set in the table, complex bundling is
activated.
Using the Application Program to Define Form Bundling
You can also use the application program that calls the form to define form bundling. This has the
advantage that you can specify which type of form bundling to run depending on your application.
To do this, set the parameter IE_OUTPUTPARAMS-BUMODE in the function module
FP_JOB_OPEN:
Parameter IE_OUTPUTPARAMS-BUMODE
Value Meaning
x Simple bundling
M Complex bundling
space Setting taken from FPCONNECT
- No bundling

Form bundling is particularly effective at improving performance for small forms. Any
gains in performance are also system-dependent. If bundling has been activated in
the system (using the entry in table FPCONNECT), it may be a good idea to
deactivate it occasionally for very large forms.

Generation of PDF Forms Without Tags


Use
Applications that do not require accessible forms can improve runtime performance by creating
PDF forms without tags. PDF forms generated in this way need less memory. A PDF file with
tags, however, uses them to describe and flag the document structure, including elements such
as headers, texts, and tables. They are a requirement for the generation of accessible PDFs.
Adobe Acrobat or Adobe Reader tells you whether your PDF document has tags.

You cannot use the function described here if you want your PDF forms to be
accessible.
Check your requirements in advance, especially the applicable legal requirements.
Features
You can use the PDFTAGGED field in the IE_OUTPUTPARAMS parameter (type
SFPOUTPUTPARAMS; function module FP_JOB_OPEN) to define whether PDF forms are
generated with or without tags.

Activities
Set the PDFTAGGED field to your requirements in your application program and send it to the
function module FP_JOB_OPEN.
Parameter PDFTAGGED

Value Meaning
x Generated PDF form is a PDF with tags.
space The user settings or the scenario decide how to
generate the PDF:
● The way the PDF is displayed in the
print preview depends on the GUI
settings on the front-end PC
(accessibility mode).
● The PDF is always given tags when
archived or returned to the application
program.
- Generated PDF form is a PDF without tags.

Handling Errors and Problems


Use
Interactive Forms based on Adobe software provide you with comprehensive support for
detecting and resolving errors and problems when you create, display, and print forms.
Features

Utilities in the Form Builder


The Form Builder that you use to create PDF-based print forms and interactive forms in
Web Dynpro for ABAP offers you a wide range of functions:
● Checking and Testing a PDF-Based Print Form
● Saving Runtime Information and a Generated PDF Locally
You activate this function in the Form Builder. When you call the form, it gives you detailed
information about the form data and runtime information specified by Adobe document
services.
Utilities in the Application Program that Calls the Form
The following function modules provide you with support when you work with PDF-
based print forms:
● Getting the Used Interface Fields
● Troubleshooting for Runtime Errors FPRUNX001, 002, and 004
You use this function module to find out the causes of any errors you encounter when
displaying forms.

Communication Errors, Runtime Errors, No Form Output


If you encounter any connection errors or configuration errors when you use Adobe
document services, see the description under Problem Analysis Scenarios for Adobe
Document Services for detailed troubleshooting information.

Security Aspects of SAP Interactive Forms by


Adobe
The following documents provide you with information about the security functions available when
you develop and exchange SAP Interactive Forms by Adobe.
Settings and procedures that are the responsibility of the administrator are described in the
following two documents. Note that these documents are available in English only:
● Interactive Forms based on Adobe Software Security Guide
Overview of the architecture and required security-relevant settings in user management
and SSL connections
● Adobe Document Services Configuration Guide
Detailed description of each configuration step needed to set up the required users and
communication paths
Installation and configuration of the certificates for SSL connections, signatures, and
certification
For notes for form developers and end users, see the following:
● Digital Signatures and Certification in Forms
Overview of the features that guarantee document security in forms plus a description of
individual functions such as setting and checking signatures
Detailed explanation of the validity of certifications and signatures

SAP Interactive Forms by Adobe Security Guide

This guide does not replace the daily operations handbook that we recommend
customers to create for their specific productive operations.

About this Guide


This guide is to provide you with an overview of the security aspects and recommendations when
using SAP Interactive Forms by Adobe for your applications. The technology is implemented in
the Adobe document services. Although running within the J2EE Engine, there are security
requirements in the SAP Web AS ABAP and in the SAP Web AS Java.
Related Security Guides

Application Guide
SAP Web Application Server SAP NetWeaver Application Server ABAP
Security Guide
SAP NetWeaver Application Server Java
Security Guide

Referenced documentation
For detailed information on the procedure of configuring the security-related settings in your
system, see Adobe Document Services Configuration Guide, also available at:
http://service.sap.com/adobe → Media Library → Documentation

Why is Security Necessary?

The Adobe document services may deal with confidential data. In this case we
recommend that you activate SSL on all communication links.
In addition, the Adobe document services offer functions which require keys and certificates
associated with your company. These functions are:
● Creating and verifying digital signatures and certification

For these functions the use of SSL is mandatory, because high authentication, data
integrity and confidentiality are required.

Target Groups
● Technical consultants
● System administrators

Important SAP Notes


The most important SAP Notes that apply to the security of SAP Interactive Forms by Adobe are
shown in the table below.
Important SAP Notes

SAP Note Number Title


682619 Adobe document services: Configuration Guide
752153 Adobe: PDF Manipulation Module High
Encryption
736902 Adobe Credentials
853497 Adobe Acrobat Reader creates temporary files
894389 Rel. Restr.: SAP NW 2004s - Adobe Document
Services
Technical System Landscape
PDF-based Forms in ABAP Environment and Interactive Forms in Web
Dynpro for ABAP
PDF-based forms created in the ABAP Workbench and forms created in Web Dynpro for
ABAP use the Adobe document services in the J2EE Engine for processing. The figure
below gives you an overview of the communication paths.

Communication path 1:
43. ...
The Form Processing Runtime sends the application data of the form and a link to the
form design (template of the form) to the Adobe document services using SOAP, through
the RFC destination (SM59).
Communication path 2:
Before processing the form and creating a PDF file, the Adobe document services calls
the form design, which is stored in the Form Design Repository of the ABAP Engine.
Thus the Destination Service communicates with the Internet Communication
Framework (ICF).

The protocol for both communication paths is HTTP using the default HTTP port. In
the case of SSL, it is HTTPS, respectively HTTPS-Port.

You must configure SSL on both communication path 1 and path 2, if your scenarios
use digital signatures and certification.
Communication path 3:
The Adobe document services are installed on the J2EE Engine and consist of two parts.
The communication between these parts uses the IIOP service (IIOP port). In case of SSL
it is the IIOP SSL port of the J2EE Engine. You only need to configure SSL on this
communication path if your scenarios require a high level of security.

If you configure IIOP SSL, you also have to download and deploy the Binaries SSL-
2 Library. This library contains strong encryption. You may need authorization to
receive this library. For more information, see SAP Note 752153 and
Configuration of the IIOP SSL in the Adobe Document Services Configuration
Guide.
To configure SSL you have to make settings in the User Management and in
Communication Destinations.

Interactive Forms in Web Dynpro for Java


Interactive forms created with Web Dynpro in the SAP NetWeaver Developer Studio
communicate with the Adobe document services in the J2EE Engine for processing. The
figure below gives you an overview of the communication paths.

Communication path 1:
Communication between Web Dynpro and the Adobe document services uses a Web
Service. You have the option of storing the URL of the Adobe document services in the
System Landscape Directory (SLD).

You must set the Web Service Client Proxy as an SSL connection, if your scenarios
use digital signatures and certification.
Communication path 2:
The Adobe document services are installed on the J2EE Engine and consist of two parts.
The communication between these parts uses the IIOP service (IIOP port). In case of SSL
it is the IIOP SSL port of the J2EE Engine. You only need to configure SSL on this
communication path if your scenarios require a high level of security.

If you configure IIOP SSL, you also have to download and deploy the Binaries SSL-
2 Library. This library contains strong encryption. You may need authorization to
receive this library. For more information, see SAP Note 752153 and
Configuration of the IIOP SSL in the Adobe Document Services Configuration
Guide.
See also:
Configuration of the Web Service SSL Connection in the Adobe Document Services
Configuration Guide.

User Administration and Authentication


The communication links described in the Technical System Landscape need a user in the
SAP Web AS ABAP and in the J2EE Engine. See following topics:
User Management
In this section, we provide an overview of the tools for user management and type of users
which are necessary.
1. Communication Destinations
In this section, we provide an overview of configuring the Web Service Communication
between the ABAP and the J2EE environment.

User Management
The Adobe document services uses the authorization provided by the SAP Web
Application Server. Therefore, the recommendations and guidelines for authorizations as
described in the SAP Web AS Security Guide ABAP and SAP Web AS Security Guide
Java apply here also.
For maintaining a user, you may use tools in both application platforms, Java and ABAP.
See the table below.
User Management Tools

Tool Detailed Description


SAP Web AS Java user management using the Use the Security Provider node in the Visual
Visual Administrator Administrator to maintain a service user on the
SAP J2EE Engine. For more information, see
SAP J2EE Engine User Management Using
the Visual Administrator.
SAP Web AS ABAP user management and role Use transaction SU01 to maintain a service
maintenance (Transactions SU01, PFCG) user on the ABAP engine for the Adobe
document services. For more information, see
Users and Roles (BC-SEC-USR).

Standard User
As of NetWeaver 2004s the standard users that are needed for communication, that is
described under Technical System Landscape, are created during installation of SAP
NetWeaver. For more information see the Installation Guide on the SAP Service
Marketplace at the internet address
http://sap.service.com/instguidesNW2004s.
The ADSuser is required for the communication between the J2EE Engine and the Adobe
document services. This user was created in the J2EE Engine or in the SAP Web AS
ABAP depending on the J2EE installation settings for the SAP User Management Engine
(UME). It is in the SAP Web AS ABAP when the UME is configured against the SAP
Web AS ABAP backend. Thus also a role ADSCallers in the SAP Web AS ABAP was
created. The ADSuser is assigned to this role. The ADSCallers role in SAP Web AS
ABAP appears automatically as the ADSCallers group in the J2EE Engine.
The service user ADS_AGENT in the SAP Web AS ABAP is required for the
communication between the SAP Web AS ABAP and the Adobe document services when
you use PDF-based printforms in the ABAP environment.
Each user has a security role assigned to it, which has been predefined in the system.
User

System Grou/Role User Type Security Role


J2EE Engine Service user
or ADSCallers ADSuser ADSCaller
ABAP Engine System user
ABAP Engine - ADS_AGENT Service user SAP_BC_FP_ICF

See also:
1. Communication Destinations
2. Configuring the User ADSUser for the SSL Connection

Authorizations
The table below shows the standard roles that are used by the Interactive Forms based on Adobe
software.
Standard Roles

Role Description
ADSCaller Security role that allows the ADSuser to access
(in J2EE Engine) the Adobe document services. Created when
system was installed.
SAP_BC_FP_ICF Role that allows the ADS_AGENT to access
(in ABAP Engine) the ICF service in the SAP Web AS ABAP. See
Technical System Landscape.
ADSCallers Only if ADSuser is located in the SAP Web AS
(in ABAP Engine) ABAP (Transaction PFCG). The ADSCallers
role in SAP Web AS ABAP appears
automatically as the ADSCallers group in the
J2EE Engine. See User Management.