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
7. 8. 9. 2. ... 1. You are in the Repository Browser of the ABAP Workbench. 2. Select a package. 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.

c. Proceed as described under 5. below. 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. 10.

3.

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
18. 19. 20. 21. 22. 1. 2. 3. 4. 5. 4. ... Under Form Builder: Entry Point, specify a form or interface. Choose Goto → Documentation ® Change. The system calls the SE61 editor and you can create your documentation. Save your changes. Choose Back.

Displaying Documentation
23. 24. 25. 5. ... 1. Under Form Builder: Entry Point, specify a form or interface. 2. Choose Goto ® Documentation ® Display. 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

26. 27. 28. 29. 30.

6. ... 1. Call transaction SFP. 2. Choose Interface. 3. Enter the name of the interface. 4. Choose Create, Change, or Display. Form Builder starts. 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. ... 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. 31.
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 VALTABVALUE 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. 41. 42. 43.

1. 2. 3. 4.

Call transaction SFP. Choose Form. Enter the name of the form. Choose Create, Change, or Display. Form Builder starts.
You cannot edit if you have chosen Display.

44. 45.

5. Define the layout type of the form. To do this, choose the Properties tab page. 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 Text Graphic Address Meaning Text module, include text, or dynamic text Graphic Address; the address data is extracted directly from database tables and formatted for printing.

Other Nodes Symbol Node Type Data node Structure Meaning Elementary data field Structure Possible Direct Subnodes None All nodes; data nodes are generated automatically. All nodes; data nodes are generated automatically. TRUE and FALSE; can have any node as a direct subnode Any nodes None

Table/loop

Dynamic table

Alternative

Alternatives, depending on conditions Groups subnodes for clarity Not a separate node. Displayed directly after the node that is processed depending on this condition.

Folder Condition

Creating Nodes
46. 10. ... 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. ... 1. Select one or more nodes. 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. 53. 54.

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
55. 13. ... 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 nongenerated 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
57. 58. 14. ... 1. Double-click the node to open the properties screen. 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 nodespecific 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 ( of the screen. You have two options here:
Inserting a Data Node with Drag&Drop

) that are specified in the interface on the left

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 ( two options: ) from the interface on the left of the screen. You have

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.

4. Choose Continue. 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. 74. 75.
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. 81.

4. Choose Enter 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 SYSUBRC 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. ... 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. 87.
Use the F4 help to display a list of all tables used in the interface.

90. 91.

4. Choose Continue. 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 crossclient 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. 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. 94.
To display the context menu of the node, click the secondary mouse button.

96. 97.

3. The system creates a text node under the selected node. 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 Tabulators, but not for aligning fields within texts SAP characters, but not SAP icons, for example

The following are supported with restrictions:

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 binarycoded 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 ’http://www.anycompany.com/images/logo.gif’ Delimiter

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 ‘http://www.anycompany.com/images’ GRAPHIC_NAME ’.gif’ Delimiter /

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 SFPSY-DATE SFPSY-TIME SFPSY-USERNAME SFPSY-SUBRC Meaning Date and time, current date of the application server Date and time, current time of the application server Logon name for user in the SAP system 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 screen above the interface. icon, with the text Reload Interface, on the left of the

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 Unknown layout type Meaning 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. 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.

xACF layout

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 Standard Date/Time Field Localized Default Date Localized Full Date Localized Long Date Localized Medium Date Localized Short Date US Date May 17, 2004 May 17, 2004 Monday, May 17, 2004 May 17, 2004 May 17, 2004 5/17/04 German Date 17.05.2004 17.05.2004 Montag, 17. Mai 2004 17. Mai 2004 17.05.2004 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 Formscompatible 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 LANGU REPLANGU1 REPLANGU2 REPLANGU3 COUNTRY Type LANGU LANGU LANGU LANGU LAND1 Meaning Language in which the form is displayed If the form does not exist in the language specified in LANGU, the system evaluates these fields in the given sequence instead. 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 PDF Type FPCONTENT Meaning 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 PAGES FPCONTENT FPPAGECOUNT Contains the generated PDL. 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 BOOKINGS CONNECTIONS FM_NAME FP_DOCPARAMS FP_OUTPUTPARAMS * 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. TYPE TYPE TYPE TYPE TYPE TYPE SCUSTOM, TY_BOOKINGS, TY_CONNECTIONS, RS38L_FNAM, SFPDOCPARAMS, SFPOUTPUTPARAMS.

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 CUSTOMER BOOKINGS CONNECTIONS * IMPORTING * /1BCDWB/FORMOUTPUT EXCEPTIONS USAGE_ERROR SYSTEM_ERROR INTERNAL_ERROR IF SY-SUBRC <> 0. <error handling> ENDIF.

= = = = = = 1 = 2

FP_DOCPARAMS CUSTOMER BOOKINGS CONNECTIONS

= 3.

* 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 email.

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 (BC-CCM-PRN).. Output to Archive SAP Printing Guide

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 Object
FP_name

Language
J

Source Font
Times New Roman

Target Font
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 PDFbased 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 NODIALOG TITLE NOPREVIEW NOPRINT NOARCHIVE IMMEXIT NOPRIBUTT Component Type Data Type (Length FPNODIALOG CHAR(1) FPTITLE CHAR(50) FPNOPREVIEW CHAR(1) FPNOPRINT CHAR(1) FPNOARCHIVE CHAR(1) FPIMMEXIT CHAR(1) FPNOPRIBUTT CHAR(1) Meaning (when set) Suppress user dialog Title of the dialog box Suppress print preview No print from print preview No archiving from print preview Exit preview immediately after printing No pushbuttons

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 PDFbased 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 Services (BC-SRV-ADR). Business Address

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. Management.

● To access the version management functions, choose Utilities → Versions → Version

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
166. 167. 41. ... 1. Call transaction SFP_ZCI_UPDATE. 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 programdriven 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 x space Meaning Activate caching Deactivate caching 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 DESTINATION DIR_GLOBAL BATCHING Required Setting Connection to ADS X is a prerequisite for bundling X to activate simple bundling

MBATCHING CACHING

X to activate complex bundling 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 x M space Meaning Simple bundling Complex bundling 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 x space Meaning Generated PDF form is a PDF with tags. 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 PDFbased 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 SAP Web Application Server Guide 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 682619 752153 736902 853497 894389 Title Adobe document services: Configuration Guide Adobe: PDF Manipulation Module High Encryption Adobe Credentials Adobe Acrobat Reader creates temporary files 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 SSL2 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 SSL2 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 SAP Web AS Java user management using the Visual Administrator Detailed Description Use the Security Provider node in the Visual 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 maintenance (Transactions SU01, PFCG)

Use transaction SU01 to maintain a service 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 J2EE Engine or ABAP Engine ABAP Engine Grou/Role ADSCallers User ADSuser System user ADS_AGENT Service user SAP_BC_FP_ICF Type Service user ADSCaller Security Role

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 ADSCaller (in J2EE Engine) Description Security role that allows the ADSuser to access the Adobe document services. Created when system was installed.

SAP_BC_FP_ICF (in ABAP Engine) ADSCallers (in ABAP Engine)

Role that allows the ADS_AGENT to access the ICF service in the SAP Web AS ABAP. See Technical System Landscape. Only if ADSuser is located in the SAP Web AS ABAP (Transaction PFCG). The ADSCallers role in SAP Web AS ABAP appears automatically as the ADSCallers group in the J2EE Engine. See User Management.

Sign up to vote on this title
UsefulNot useful