Categories: ABAP Tutorials

Statement SUBMIT is not allowed in this form

Statement SUBMIT is not allowed in this form. It is a common ABAP error. Find the workaround solutions and alternative to avoid and correct ABAP program.
Find following an overview about how to use ABAP Submit Statement, the different exceptions triggered by this statement and some solutions for the famous ‘Statement “SUBMIT” is not allowed in this form‘.

Statement “SUBMIT” ABAP sample

SUBMIT Statement allows to call an ABAP Report within an other.

Submit Statement Synthax

SUBMIT {rep|(name)} [selscreen_options]
????????????????????[list_options]
????????????????????[job_options]
????????????????????[AND RETURN].
Use F1 in any ABAP Report with SUBMIT to get more detail.

Use?Submit Statement in ABAP report

" ABAP Submit: Create IDoc for Processing Order 
" Call the standard ABAP Report RCCLORD
" The Idoc Type to generate is LOIPRO
SUBMIT rcclord  WITH s_aufnr  IN aufnr_rg
                WITH s_matnr  IN matnr_rg  
                WITH s_werks  IN werks_rg  
                WITH opt_sys  EQ lv_logsys
                WITH mestyp   EQ 'LOIPRO'
                AND RETURN.

Statement SUBMIT Statement

List of exceptions for SUBMIT ABAP

in order to check which exception generated by the SUBMIT use and avoid a dump in ABAP Report, Try.. Catch should be implemented to catch the Runtime Execption

The list of exception the ABAP SUBMIT can generate are

 

  • Cause: The specified program was not found.
    Runtime Error: LOAD_PROGRAM_NOT_FOUND
  • Cause: You tried to pass an invalid value to a selection using the addition SIGN.
    Runtime Error: SUBMIT_WRONG_SIGN
  • Cause: The specified program is not a report.
    Runtime Error: SUBMIT_WRONG_TYPE
  • Cause: You tried to pass more than one value to a report parameter.
    Runtime Error: SUBMIT_IMPORT_ONLY_PARAMETER
  • Cause: You tried to use WITH sel IN itab to pass a table that does not have the appropriate structure to a selection.
    Runtime Error: SUBMIT_IN_ITAB_ILL_STRUCTURE
  • Cause: You tried to pass a parameter that cannot be converted to the target field to the selection screen.
    Runtime Error: SUBMIT_PARAM_NOT_CONVERTIBLE
  • Cause: The called program contains a syntax error.
    Runtime Error: SYNTAX_ERROR

Statement “SUBMIT” is not allowed in this form

Solution 1 : TRY … CATCH

Use Try… Catch in order to avoid the Dumb.

Related Post

 

  DATA: oref   TYPE REF TO cx_root,
        text   TYPE string.


  TRY.
      " Call SUBMIT Statement
      SUBMIT rcclord  WITH s_aufnr  IN aufnr_rg
                        WITH s_matnr  IN matnr_rg
                        WITH mestyp   EQ 'LOIPRO'
                        AND RETURN.

      " Catch Exception
    CATCH load_program_not_found
          submit_wrong_sign
          submit_wrong_type
          submit_import_only_parameter
          submit_in_itab_ill_structure
          submit_param_not_convertible
          syntax_error INTO oref .
      " Get Text from Exception
      text = oref->get_text( ).

      WRITE text.
  ENDTRY.

Solution 2 : STARTING NEW TASK

Create a Function Module to Wrap the ABAP?Statement SUBMIT. Call the function module with option STARTING NEW TASK.

You can create a function module which will wrap you call and call this wrapper with option STARTING NEW TASK

For example, Call the function with these options?IN BACKGROUND TASK AS SEPARATE UNIT DESTINATION ‘NONE’

Here a sample ABAP function call :

CALL FUNCTION 'ZMY_FUNCTION' IN BACKGROUND TASK 
  AS SEPARATE UNIT DESTINATION 'NONE'
   EXPORTING
     EXPORT = LS_EXPORT
   IMPORTING
     IMPORT = LS_IMPORT
   TABLES
     TABLE = LT_TABLE.

Solution 3: Check if REPORT EXIST

A common error using SUBMIT can the report using doesn’t exist.
Here a simple way to check if it exists before the call.
check if the Report has an entry in SAP Table?TRDIR :?System Table TRDIR.

More information about?ABAP Workbench Tables

 DATA: ls_trdir TYPE trdir.

  SELECT SINGLE * FROM  TRDIR INTO ls_trdir
                  WHERE name = lv_report.
  IF sy-subrc = 0 .
    SUBMIT (lv_report) WITH param IN s_param AND RETURN .
  ENDIF.

 

Read more about the use of ABAP SUBMIT Statement.

Share
Published by
John

Recent Posts

The Most Important SAP ISU Tables

SAP ISU Tables for Technical master data, for Billing Master Data, Billing and invoicing Tables?…

December 22, 2020

SAP Fiori 3 UX and Design of SAP Fiori Apps for SAP S/4HANA, SAP TechEd Lecture

SAP Fiori 3 UX and Design of SAP Fiori Apps for SAP S/4HANA, SAP TechEd…

November 18, 2020

The Main SAP Dunning Transaction Codes

Dunning is the business practice of informing a customer of past due payment. Dunning letters…

November 28, 2019

SAP Accounts Payable Tcodes & Accounts Receivable Tcodes ( SAP AP Tcodes & SAP AR Tcodes)

SAP AP Tcodes & SAP AR Tcodes: House Banks Tcodes, Advance Payments or Down Payments,…

August 1, 2019

The Most Important SAP Payment Terms Tables (ZTERM, Text…)

What are the main SAP Payment Terms Tables ? What are the related Tables in…

October 21, 2018

The most Important SAP Work Center Tables in SAP PP

Work center consists of master data related to routing of products. It contains data related…

October 21, 2018