Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
Showing results for 
Search instead for 
Did you mean: 

Openform & startform

Former Member
0 Kudos


wht is the difference between openform & startform .

Vighnesh .


Former Member
0 Kudos



The layout set can be changed in the current print procedure with START_FORM. It is therefore possible to combine several different layout sets in one printer output. Before a new layout set is opened with START_FORM, an open layout set must be closed with END_FORM.


The module OPEN_FORM opens layout set printing. This function must be called up before you can work with other layout set functions (WRITE_FORM, ...).

It is not obligatory to enter a layout set name to open it. If a layout set is not specified, one must be opened with START_FORM.

Former Member
0 Kudos


<b>Differences between OPEN_FORM & START_FORM:</b>

OPEN_FORM is mandatory while START_FORM is optional.

(ii) OPEN_FORM is used to open the layout set output. It should have a CLOSE_FORM, else we will face an error while running the script.CLOSE_FORM ends the layout set output.

START_FORM is used to start a new layout set.In case if we have more than one form then we have to use the START_FORM. It has to be followed by an CLOSE_FORM.

<b>OPEN_FORM: </b>This function module opens layout set printing. One must call this function module before he uses any of other layout set function modules like Write_Form, Start_Form, Control_Form etc., You need specify a layout set name in the export parameters of this function module. If nothing is passed to Open_Form then one should use Start_Form function module to open layout set before starting the output. The layout set opened by Open_Form should be closed by Close_Form function module, other wise output doesn’t appear. We can use any number of Open_Form, Close_Form functions in one single program. But Close_Form must be there for every Open_Form in the program.

<b>START_FORM:</b> In-between the function modules OPEN_FORM and CLOSE_FORM, we can use different layout sets. This allows us to combine several different layout sets into one print output. However, we can combine only those layout sets that have the same page format. To switch layout sets, use the function module START_FORM. If another layout set is still open, we must close it first using END_FORM. If we specify no layout set name when calling START_FORM, the system restarts the last open layout set. If after OPEN_FORM no layout set was activated yet, the system leaves the function module with the exception UNUSED.



Former Member
0 Kudos


OPEN_FORM is the one which triggers the Script attached to the program

Write_form is used to write the script data

Start-FORM is used to trigger multiple forms based on the fields in a internal table.

say int table have 10 sales orders, for each sales order to trigger a form then sort that itab by VBELN and for each AT NEW VBELN you have to call START_FORM

and you have to call END_FORM

It is not a must to use START_FORM and END_FORM in each and every script but OPEN_FORM <WRITE_FORM and CLOSE_FORM is a must.

See the links related to scripts

Link for SAP Scripts (step by step procedure)



scripts easy material

Reward points for useful Answers



Former Member
0 Kudos


START_FORM: this is used to write output from different layouts into one spool request. it is used in conjuctiion with END_FORM. u can use this for manu times in sool req.

OPEN_FORM : this is used to start a form layout. this is called once. and ended with CLOSE_FORM.

Jogdand M B