Professional Documents
Culture Documents
Topics…
Adobe Architecture
Scripting
Adobe Architecture
Scripting
Purpose
Adobe forms is a new technology available from SAP Net Weaver ’04 or
later, you can use to create print & interactive forms for the optimization
of your form-based business processes.
Advantages:
Pre-requisites:-
6.40 GUI: make sure that Designer is installed and check on your hard
drive. Default location:\Program Files\Adobe\Designer 7.1. ( i:e ALD
installation is required ).
Make sure latest 6.40 GUI patches are installed (LiveCycleDesigner
7.1 requirement).
Adobe reader 7.0 (incl. update to 7.0.8)
You must have the authorization object S_DEVELOP to Design Adobe
forms.
Adobe Forms - Integration
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.
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).
Adobe Forms - Types
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.
2. Print Forms
Used normally for Printing/Fax/Email
Adobe Scenarios
Development Environment for Interactive Forms
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.
Topics…
Adobe Architecture
Scripting
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
Interface in Form Builder
Interface acts as a link between the Print Program & the adobe
Form. There are 3 types of Interfaces as shown below.
Master Page
Body Page
Content Area
Subforms
Master Page
Every form design contains at least one master page that Adobe
LiveCycle Designer creates automatically.
You can put objects on a master page that will appear on any resulting
page at runtime, for example, your company logo. Such objects that
never change are called boilerplate objects
On a master page, you must include at least one content area. This
defines the size to be used for dynamic output.
Dynamic content is wrapped up in body pages .
A body page will use the space provided by a content area. If, at runtime,
this happens not to be sufficient due to a large amount of data, the body
page will look for the next content area (which might involve an automatic
page break).
To some extent, the combination of a content area and a body page
included there could be compared to the main window in SAPScript or
Smart Forms.
You should think of a body page as nothing more than a wrapper or a
container for dynamic content.
Subforms
Note: Be aware that nesting subforms will slow down the processing
performance.
Types of Subform
If of type Flowed, the objects will follow each other, depending on the space
they require at runtime. A body page (as the topmost subform) is typically
of this type.
Preventing Page Breaks
If you want to make sure that certain objects appear on one page, proceed as follows:
You can also prevent a page break between several subsequent subforms.
On the Object palette, Pagination tab, select Keep with Previous and/or
Keep with Next.
Keep with Previous: Keeps the subform on the same page as the previous subform, content
area, or body page, depending on which one is selected in the Place box.
Keep with Next: Keeps the subform on the same page as the next subform,content area, or
body page, depending on which one is selected in the Place box.
Some hints that might help to create readable forms:
Even though you could have no body pages at all and manage
everything from master pages, it is strongly recommended not to do so.
Keep with Previous or Keep with Next (to prevent a page break between
two subforms) does not make sense for body pages. It should be used for
normal subforms only.
Static Form Elements
Static Images
Static Texts
Geometric Objects
Static Images
Adobe Architecture
Scripting
Scripting - An Introduction
You can attach scripts to all kinds of non-static objects, that is, for all
objects apart from content areas, static texts, static images, and
Graphical elements (lines, circles, rectangles). However, scripting
That is attached to a non-static object Can access all other objects of
The form, including the static ones.
Scripting in the Form
Initialize .When the object is being initialized, after data from the data stream
has been merged. One usage of this event would be to dynamically determine
the field value.
Calculate . Processed after data merge, but before display. You can query the
field’s value and manipulate it. The results from the ordinary data binding will
thus be overridden. The calculation triggers again whenever there is a change
to any value upon which the calculation is dependent; hence, self references
must be avoided.
form: ready . After the form and data have been merged and loaded, and any
calculations and validations events have fired. As this event is processed
before pagination is finished, you can use it to dynamically hide objects. If the
objects are positioned in a subform with type Flowed, no empty space will
result. Instead, the following objects will take up the space of the hidden
objects.
layout: ready . After the layout has been applied, i.e. after page breaks have
been inserted. You can use this event to access objects placed on master
pages.
Scripting - Syntax Elements
Processing Sequence
Points To Remember
You can choose between different events to determine when your coding
will be executed.
ABAP is not supported here.
For print forms it is recommended to choose FormCalc for simple tasks,
JavaScript for more complex tasks.
Scripting can be evaluated at the client (front end) or at the server. Since
print forms do not require any user interaction, scripting should run on
the server side.
Topics…
Adobe Architecture
Scripting
Note:-
FP_FUNCTION_MODULE_NAME
makes use of the class based
exception concept.
This means that you cannot query sy-
subrc. Use TRY - CATCH - ENDTRY
instead.
Topics…
Adobe Architecture
Scripting
Program Use
FP_PDF_TEST_00 Displays the Adobe document
services version.
FP_PDF_TEST_17 Attaches a comment to a PDF
document.
FP_PDF_TEST_16 Attaches a file to a PDF document.
FP_PDF_TEST_01 Generates a PDF document from a
form design (template) and an XML
data file.
Setting up an http Connection for ADS
For a printing scenario with PDF-based forms, you must have installed
Adobe document services on an SAP Net Weaver Application Server with
ABAP and J2EE. To call Adobe document services from an ABAP
application, an http connection must be created as follows:
5. Choose ENTER.
6. Choose the Technical settings tab and enter at least the following:
Target Host: Enter the host name where your SAP J2EE engine is located.
Service No: Enter the SAP J2EE http port number. The following naming
convention applies: 5<J2EE_instance_number>00 (50000, for
example, if your J2EE instance is 00).
Path Prefix: Enter exactly the string /AdobeDocumentServices/Config?
style=rpc or /AdobeDocumentServicesSec/Config?style=rpc if you want to
use SSL
When you press ENTER, a warning is displayed: .Query String Not Allowed..
Ignore this warning.
7. Choose the Logon/Security tab and configure the security account to your
security requirements.
8. Save your settings.
9. Choose Test Connection.
10. A screen is displayed. The field status_reason should have the value OK if
the test is successful.
Suggested Approach to Design Forms
Questions
?
? ?
?
? ?
?