As you can see the design of this site has changed! We are also changing the way people interact on this site. From now on -

1. All the help needed postings should be done in the forums.
2. Blogs will only be used for writing serious blog posts.
3. Job postings will be done by registered recruiters. It will continue as a free service.

These rules are to make your networking better and easier.

Smartforms: a Detailed Overview

What are SAP Smart Forms?

SAP Smart Forms is a new

functionality that was introduced in SAP Basis Release 4.6C as the tool for creating and maintaining forms.

SAP help

describes them as:

SAP Smart Forms provide a graphical user interface that helps you create and maintain

the layout and the form logic of a form: the SAP Form Builder. You need neither have any programming knowledge nor use a

Script language to adapt standard forms. Basic ABAP programming skills are required only in special cases (for example, to

call a function module you created or for complex and extensive conditions).

SAP Smart Forms allow you

to execute simple modifications to the forms and in the form logic by using simple graphical tools. In most cases, this

won't include any programming effort. Thus, a power user without any programming knowledge can
configure forms with

data from an SAP System for the relevant business processes.

The SAP Form Builder of the SAP Smart Forms consists

of:

* Form Painter for creating the layout of a form,
* PC Editor for entering texts and fields into output

areas,
* Navigation tree for maintaining the form logic,
* Table Painter for creating templates and tables,

* Form check.

To print a form, you need a program for data retrieval and a Smart Form that contains the entire from

logic. As data retrieval and form logic are separated, you must only adapt the Smart Form if changes to the form logic are

necessary. The application program passes the data via a function module interface to the Smart Form. When activating the

Smart Form, the system automatically generates a function module. At runtime, the system processes this function module.

You can insert static and dynamic tables. This includes line feeds in individual table cells, triggering events for

table headings and subtotals, and sorting data before output.

You can check individual nodes as well as the entire

form and find any existing errors in the tree structure. The data flow analysis checks whether all fields (variables) have a

defined value at the moment they are displayed.
SAP Smart Forms allow you to include graphics, which you can display

either as part of the form or as background graphics. You use background graphics to copy the layout of an existing (scanned)

form or to lend forms a company-specific look. During printout, you can suppress the background graphic, if desired.

SAP Smart Forms also support postage optimizing.

Remember: SAP delivers Smart Forms for

important business processes. If for your needs no such standard forms exist or if you have your own SAPscript forms, you can

migrate them too (see the section "Migrating SAPscript form to Smartforms").

Also read SAP Note No.

168368 - Smart Forms: New form tool in Release 4.6C

What Transaction are required to start SAP Smart Forms?

Execute transaction SMARTFORMS to start SAP Smart Forms.

Key Benefits of SAP Smart Forms:

SAP Smart Forms allows you to reduce considerably the implementation costs of mySAP.com solutions since forms can

be adjusted in minimum time.
You design a form using the graphical Form Painter and the graphical Table Painter. The

form logic is represented by a hierarchy structure (tree structure) that consists of individual nodes, such as nodes for

global settings, nodes for texts, nodes for output tables, or nodes for graphics.

To make changes, use Drag & Drop,

Copy & Paste, and select different attributes.

These actions do not include writing of coding lines or using a Script

language.

Using your form description maintained in the Form Builder, Smart Forms generates a function module that

encapsulates layout, content and form logic. So you do not need a group of function modules to print a form, but only one.

For Web publishing, the system provides a generated XML output of the processed form.

Smart Forms provides a data

stream called XML for Smart Forms (XSF) to allow the use of 3rd party printing tools. XSF passes form content from R/3 to an

external product without passing any layout information about the Smart Form.

Advantages of SAP Smart Forms

1. The adaption of forms is supported to a large extent by graphic tools for layout and logic, so that no

programming knowledge is necessary (at least 90% of all adjustments). Therefore, power user forms can also make

configurations for your business processes with data from an SAP system. Consultants are only required in special cases.

2. Displaying table structures (dynamic framing of texts)
3. Output of background graphics, for form design in

particular the use of templates which were scanned.
4. Colored output of texts
5. User-friendly and integrated Form

Painter for the graphical design of forms
6. Graphical Table Painter for drawing tables
7. Reusing Font and paragraph

formats in forms (Smart Styles)
8. Data interface in XML format (XML for Smart Forms, in short XSF)
9. Form

translation is supported by standard translation tools
10. Flexible reuse of text modules
11. HTML output of forms

(Basis release 6.10)
12. Interactive Web forms with input fields, pushbuttons, radio buttons, etc. (Basis-Release 6.10)

A Simple Smartform Tutorial

SAP Smartforms can be used for creating and maintaining forms for mass

printing in SAP Systems. The output medium for Smartforms support printer, fax, e-mail, or the Internet (by using the

generated XML output).
According to SAP, you need neither have any programming knowledge nor use a Script language to

adapt standard forms. However, basic ABAP programming skills are required only in special cases (for example, to call a

function module you created or for complex and extensive conditions).

1. Create a new smartforms

Transaction code SMARTFORMS
Create new smartforms call ZSMART

2. Define looping process for internal table


Pages and windows
" First Page -> Header Window (Cursor at First Page then click Edit -> Node ->

Create)
Here, you can specify your title and page numbering
&SFSY-PAGE& (Page 1) of &SFSY-FORMPAGES(Z4.0)& (Total

Page)
" Main windows -> TABLE -> DATA
" In the Loop section, tick Internal table and fill in
" ITAB1

(table in ABAP SMARTFORM calling function) INTO ITAB2

3. Define table in smartforms

Global settings :

Form interface
[table=tables-colorful-list Variable name |

Type assignment | Reference type
ITAB1 | TYPE | Table Structure ]

Global definitions
[table=tables-colorful-list Variable name | Type assignment | Reference type

ITAB2 | TYPE | Table Structure ]

4. To display the data in the form

Make used of the Table Painter and declare the Line Type in Tabstrips Table e.g. HD_GEN for printing header details,

IT_GEN for printing data details.

You have to specify the Line Type in your Text elements in

the Tabstrips Output options.
Tick the New Line and specify the Line Type for outputting the data.

Declare your output fields in Text elements
Tabstrips - Output Options
For different fonts use this

Style : IDWTCERTSTYLE
For Quantity or Amout you can used this variable &GS_ITAB-AMOUNT(12.2)&

5. Calling

SMARTFORMS from your ABAP program
Here is how you will call smartforms from an ABAP program.

align="center">REPORT ZSMARTFORM.

* Calling SMARTFORMS from your ABAP program.
* Collecting all the table

data in your program, and pass once to SMARTFORMS
* SMARTFORMS
* Declare your table type in :-
* Global Settings

-> Form Interface
* Global Definintions -> Global Data
* Main Window -> Table -> DATA
*
* Written by : SAP

Hints and Tips on Configuration and ABAP/4 Programming
* http://sapr3.tripod.com
*
TABLES:

MKPF.
DATA: FM_NAME TYPE RS38L_FNAM.
DATA: BEGIN OF INT_MKPF OCCURS 0.
INCLUDE STRUCTURE MKPF.

DATA: END OF INT_MKPF.
SELECT-OPTIONS S_MBLNR FOR MKPF-MBLNR MEMORY ID 001.
SELECT * FROM MKPF WHERE MBLNR IN

S_MBLNR.
MOVE-CORRESPONDING MKPF TO INT_MKPF.
APPEND INT_MKPF.
ENDSELECT.
* At the end of your

program.
* Passing data to SMARTFORMS
call function 'SSF_FUNCTION_MODULE_NAME'
exporting
formname

= 'ZSMARTFORM'
* VARIANT = ' '
* DIRECT_CALL = ' '

IMPORTING
FM_NAME = FM_NAME
EXCEPTIONS
NO_FORM = 1

NO_FUNCTION_MODULE = 2
OTHERS = 3.
if sy-subrc <> 0.
WRITE: / 'ERROR 1'.
*

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.

call function FM_NAME
* EXPORTING
* ARCHIVE_INDEX =
* ARCHIVE_INDEX_TAB =
*

ARCHIVE_PARAMETERS =
* CONTROL_PARAMETERS =
* MAIL_APPL_OBJ =
* MAIL_RECIPIENT

=
* MAIL_SENDER =
* OUTPUT_OPTIONS =
* USER_SETTINGS =

'X'
* IMPORTING
* DOCUMENT_OUTPUT_INFO =
* JOB_OUTPUT_INFO =
* JOB_OUTPUT_OPTIONS

=
TABLES
GS_MKPF = INT_MKPF
EXCEPTIONS
FORMATTING_ERROR = 1

INTERNAL_ERROR = 2
SEND_ERROR = 3
USER_CANCELED = 4

OTHERS = 5.
if sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.

Differences between Smartforms and

SAPscript
There is quite often a question as to what are the differences between SAPscript and Smartforms. Here is a

comparison:

a) Multiple page formats are possible in smartforms which is not the case in SAPScripts
b) It

is possible to have a smartform without a main window .
c) Labels cannot be created in smartforms.
d) Routines

can be written in smartforms tool.
e) Smartforms generates a function module when activated.

Also a SAPscript

form can be migrated to Smartform. A SAPscript form can be migrated into a Smart Form or convert a SAPscript style into a

Smart Style.

When converting a SAPscript style into a Smart Style, the system converts all paragraph and character

formats with all their properties and attributes without any changes. Thus you can use the converted Smart Style without

making any adaptations.

When migrating a SAPscript form into a Smart Form, the system executes the following

steps:

* It copies the language attributes and the output options.
* It migrates the layout information

including pages, windows, and their attributes and positions on the page.
* It copies the texts in the form.
*

It displays the fields (SAPscript notation: program symbols) in the texts.
* It converts the SAPscript commands (such

as NEW-PAGE or IF…ENDIF) to comment lines and displays them in the texts.

After the migration, you have a template

that you can enhance and modify according to your needs. Adapt the form logic by specifying the commands which the system

converted to comment lines.

Migrating SAPscript form to Smartforms

Migrating a SAPscript

form

1. Go to the SAP Smart Forms initial screen (transaction
2. SMARTFORMS ). In the Form field enter

the name of the Smart Form you want to create.
3. Choose Utilities ® Migrate SAPscript form.
The dialog

window Migrate SAPscript Form appears.
4. Enter the name and the language of the source form (SAPscript).
5.

Choose Enter.
This takes you to the change mode of the SAP Form Builder.

If the selected SAPscript form

does not exist in the selected language, a dialog window appears on which you can select one of the existing languages.

6. Now change the design of the form and of the form logic. To activate the Smart Form choose Activate.

Converting

a SAPscript style

1. Go to the Smart Styles inital screen (transaction
2. SMARTSTYLES ). In the Style

name field enter the name of the Smart Style you want to create.
3. Choose Smart Styles ® Convert SAPscript style.

4. Enter the name of the SAPscript style you want to convert.
5. Choose Enter.
A list of the converted

styles appears.
6. Choose Back. You can now change the Smart Style (Change).To activate the Smart Style choose

Activate.

Mass Migration of SAPscript Forms

1. In Reporting select the program SF_MIGRATE and execute

it.
2. Select the names and the language of the SAPscript forms and choose Execute. The system creates the Smart Forms

under the names of the SAPscript forms plus the extension _SF.
It displays a list of the migrated forms.
3. To

change and adapt a form, go to transaction
SMARTFORMS . Then activate the changed Smart Form.

Useful Links

for Smartforms

Using Final

window in Smartforms

href="http://help.sap.com/saphelp_46c/helpdata/en/4b/83fb42df8f11d3969700a0c930660b/frameset.htm" target="_blank">Smartforms:

SAP Help

TAGGED under: