SAP OPEN_FORM Function Module for SAPscript: Open form printing
OPEN_FORM is a standard open form SAP function module available within SAP R/3 or S/4 Hana systems, depending on your version and release level. It is used for SAPscript: Open form printing processing and below is the pattern details for this FM, showing its interface including any import and export parameters, exceptions etc. there is also a full "cut and paste" ABAP pattern code example, along with implementation ABAP coding, documentation and contribution comments specific to this or related objects.
See here to view full function module documentation and code listing for open form FM, simply by entering the name OPEN_FORM into the relevant SAP transaction such as SE37 or SE38.
Function Group: STXC
Program Name: SAPLSTXC
Main Program: SAPLSTXC
Appliation area:
Release date: 18-Jan-1995
Mode(Normal, Remote etc): Normal Function Module
Update:

Function OPEN_FORM pattern details
In-order to call this FM within your sap programs, simply using the below ABAP pattern details to trigger the function call...or see the full ABAP code listing at the end of this article. You can simply cut and paste this code into your ABAP progrom as it is, including variable declarations.CALL FUNCTION 'OPEN_FORM'"SAPscript: Open form printing.
EXPORTING
* APPLICATION = 'TX' "Application code for interface
* MAIL_RECIPIENT = "MAIL: Recipient object ID
* MAIL_APPL_OBJECT = "MAIL: Application object (type of document)
* RAW_DATA_INTERFACE = '*' "Indicator for Raw Data Interface (RDI)
* SPONUMIV = "Number range number
* ARCHIVE_INDEX = "Archive index
* ARCHIVE_PARAMS = "Archive Parameters
* DEVICE = 'PRINTER' "Device type
* DIALOG = 'X' "Indicator: Dialog for print options
* FORM = ' ' "Form name
* LANGUAGE = SY-LANGU "Language variant of form
* OPTIONS = "Print Options
* MAIL_SENDER = "MAIL: Sender object ID
IMPORTING
LANGUAGE = "Language variant of form
NEW_ARCHIVE_PARAMS = "Archive parameters (return value)
RESULT = "Print options (return values)
EXCEPTIONS
CANCELED = 1 SPOOL_ERROR = 10 CODEPAGE = 11 DEVICE = 2 FORM = 3 OPTIONS = 4 UNCLOSED = 5 MAIL_OPTIONS = 6 ARCHIVE_ERROR = 7 INVALID_FAX_NUMBER = 8 MORE_PARAMS_NEEDED_IN_BATCH = 9
IMPORTING Parameters details for OPEN_FORM
APPLICATION - Application code for interface
Data type: TTXOB-TDAPPLDefault: 'TX'
Optional: Yes
Call by Reference: No ( called with pass by value option)
MAIL_RECIPIENT - MAIL: Recipient object ID
Data type: SWOTOBJIDOptional: Yes
Call by Reference: No ( called with pass by value option)
MAIL_APPL_OBJECT - MAIL: Application object (type of document)
Data type: SWOTOBJIDOptional: Yes
Call by Reference: No ( called with pass by value option)
RAW_DATA_INTERFACE - Indicator for Raw Data Interface (RDI)
Data type: CDefault: '*'
Optional: Yes
Call by Reference: No ( called with pass by value option)
SPONUMIV - Number range number
Data type: NRIV-NRRANGENROptional: Yes
Call by Reference: No ( called with pass by value option)
ARCHIVE_INDEX - Archive index
Data type: TOA_DARAOptional: Yes
Call by Reference: No ( called with pass by value option)
ARCHIVE_PARAMS - Archive Parameters
Data type: ARC_PARAMSOptional: Yes
Call by Reference: No ( called with pass by value option)
DEVICE - Device type
Data type: CDefault: 'PRINTER'
Optional: Yes
Call by Reference: No ( called with pass by value option)
DIALOG - Indicator: Dialog for print options
Data type: CDefault: 'X'
Optional: Yes
Call by Reference: No ( called with pass by value option)
FORM - Form name
Data type: CDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
LANGUAGE - Language variant of form
Data type: THEAD-TDSPRASDefault: SY-LANGU
Optional: Yes
Call by Reference: No ( called with pass by value option)
OPTIONS - Print Options
Data type: ITCPOOptional: Yes
Call by Reference: No ( called with pass by value option)
MAIL_SENDER - MAIL: Sender object ID
Data type: SWOTOBJIDOptional: Yes
Call by Reference: No ( called with pass by value option)
EXPORTING Parameters details for OPEN_FORM
LANGUAGE - Language variant of form
Data type: THEAD-TDSPRASOptional: No
Call by Reference: No ( called with pass by value option)
NEW_ARCHIVE_PARAMS - Archive parameters (return value)
Data type: ARC_PARAMSOptional: No
Call by Reference: No ( called with pass by value option)
RESULT - Print options (return values)
Data type: ITCPPOptional: No
Call by Reference: No ( called with pass by value option)
EXCEPTIONS details
CANCELED - User cancelled print dialog
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
SPOOL_ERROR - Error at Transfer to Spool
Data type:Optional: No
Call by Reference: Yes
CODEPAGE - Codepage not allowed
Data type:Optional: No
Call by Reference: Yes
DEVICE - Device type
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
FORM - Form name
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
OPTIONS - Print Options
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
UNCLOSED - A form is still active
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
MAIL_OPTIONS -
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
ARCHIVE_ERROR -
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
INVALID_FAX_NUMBER -
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
MORE_PARAMS_NEEDED_IN_BATCH -
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
Copy and paste ABAP code example for OPEN_FORM Function Module
The ABAP code below is a full code listing to execute function module POPUP_TO_CONFIRM including all data declarations. The code uses the original data declarations rather than the latest in-line data DECLARATION SYNTAX but I have included an ABAP code snippet at the end to show how declarations would look using the newer method of declaring data variables on the fly. This will allow you to compare and fully understand the new inline method. Please note some of the newer syntax such as the @DATA is not available until a later 4.70 service pack (SP8), which i why i have stuck to the origianl for this example.| DATA: | ||||
| lv_canceled | TYPE STRING, " | |||
| lv_language | TYPE THEAD-TDSPRAS, " | |||
| lv_application | TYPE TTXOB-TDAPPL, " 'TX' | |||
| lv_spool_error | TYPE TTXOB, " | |||
| lv_mail_recipient | TYPE SWOTOBJID, " | |||
| lv_codepage | TYPE SWOTOBJID, " | |||
| lv_mail_appl_object | TYPE SWOTOBJID, " | |||
| lv_raw_data_interface | TYPE C, " '*' | |||
| lv_sponumiv | TYPE NRIV-NRRANGENR, " | |||
| lv_device | TYPE NRIV, " | |||
| lv_archive_index | TYPE TOA_DARA, " | |||
| lv_new_archive_params | TYPE ARC_PARAMS, " | |||
| lv_form | TYPE ARC_PARAMS, " | |||
| lv_result | TYPE ITCPP, " | |||
| lv_archive_params | TYPE ARC_PARAMS, " | |||
| lv_device | TYPE C, " 'PRINTER' | |||
| lv_options | TYPE C, " | |||
| lv_dialog | TYPE C, " 'X' | |||
| lv_unclosed | TYPE C, " | |||
| lv_form | TYPE C, " SPACE | |||
| lv_mail_options | TYPE C, " | |||
| lv_language | TYPE THEAD-TDSPRAS, " SY-LANGU | |||
| lv_archive_error | TYPE THEAD, " | |||
| lv_options | TYPE ITCPO, " | |||
| lv_invalid_fax_number | TYPE ITCPO, " | |||
| lv_mail_sender | TYPE SWOTOBJID, " | |||
| lv_more_params_needed_in_batch | TYPE SWOTOBJID. " |
|   CALL FUNCTION 'OPEN_FORM' "SAPscript: Open form printing |
| EXPORTING | ||
| APPLICATION | = lv_application | |
| MAIL_RECIPIENT | = lv_mail_recipient | |
| MAIL_APPL_OBJECT | = lv_mail_appl_object | |
| RAW_DATA_INTERFACE | = lv_raw_data_interface | |
| SPONUMIV | = lv_sponumiv | |
| ARCHIVE_INDEX | = lv_archive_index | |
| ARCHIVE_PARAMS | = lv_archive_params | |
| DEVICE | = lv_device | |
| DIALOG | = lv_dialog | |
| FORM | = lv_form | |
| LANGUAGE | = lv_language | |
| OPTIONS | = lv_options | |
| MAIL_SENDER | = lv_mail_sender | |
| IMPORTING | ||
| LANGUAGE | = lv_language | |
| NEW_ARCHIVE_PARAMS | = lv_new_archive_params | |
| RESULT | = lv_result | |
| EXCEPTIONS | ||
| CANCELED = 1 | ||
| SPOOL_ERROR = 10 | ||
| CODEPAGE = 11 | ||
| DEVICE = 2 | ||
| FORM = 3 | ||
| OPTIONS = 4 | ||
| UNCLOSED = 5 | ||
| MAIL_OPTIONS = 6 | ||
| ARCHIVE_ERROR = 7 | ||
| INVALID_FAX_NUMBER = 8 | ||
| MORE_PARAMS_NEEDED_IN_BATCH = 9 | ||
| . " OPEN_FORM | ||
ABAP code using 7.40 inline data declarations to call FM OPEN_FORM
The below ABAP code uses the newer in-line data declarations. This allows you to see the coding differences/benefits of the later inline syntax. Please note some of the newer syntax below, such as the @DATA is not available until 4.70 EHP 8.| "SELECT single TDSPRAS FROM THEAD INTO @DATA(ld_language). | ||||
| "SELECT single TDAPPL FROM TTXOB INTO @DATA(ld_application). | ||||
| DATA(ld_application) | = 'TX'. | |||
| DATA(ld_raw_data_interface) | = '*'. | |||
| "SELECT single NRRANGENR FROM NRIV INTO @DATA(ld_sponumiv). | ||||
| DATA(ld_device) | = 'PRINTER'. | |||
| DATA(ld_dialog) | = 'X'. | |||
| DATA(ld_form) | = ' '. | |||
| "SELECT single TDSPRAS FROM THEAD INTO @DATA(ld_language). | ||||
| DATA(ld_language) | = SY-LANGU. | |||
Search for further information about these or an SAP related objects