Suppress first screen of transaction

Suncatcher picture Suncatcher · Jul 10, 2012 · Viewed 8.8k times · Source

I want to call Z-transaction via "CALL TRANSACTION" statement and skip the first screen, but AND SKIP FIRST SCREEN statement doesn't work.
I've read that it has sense only when 'ENTER' function code is used for moving between screens of transaction. Is it true?

Therefore I decided to use batch input table (BDC) via CALL TRANSACTION...USING bdc_table statement in order to process first screen in background.
However that way processing is returned to the initial transaction which I don't want to do!
The statement LEAVE TO TRANSACTION doesn't work with BDC table. Is there any other solution?

Addition to tomdemuyt:
Now I'm using batch table but if I used SKIP, I would rather write like this:

AUTHORITY-CHECK OBJECT 'S_TCODE'
ID 'TCD' FIELD lv_tcode.

IF sy-subrc <> 0.
  MESSAGE 'No authorization for this operation!' TYPE 'E'.
ELSE.

*   CALL TRANSACTION lv_tcode  USING bdc_tab
*                              MODE 'E'
*                              UPDATE 'A'.

SET PARAMETER ID 'EBELN' FIELD p_ebeln.
LEAVE TO TRANSACTION lv_tcode AND SKIP FIRST SCREEN.
ENDIF.

On the first screen (the selection screen) p_ebeln parameter has to be selected and passed to the second screen without showing first.

Answer

Jorg picture Jorg · Jul 11, 2012

I'm not sure what you're trying to do. Are you trying to skip the first screen and go to the second screen? If the transactions you're trying to call are executable programs, you have a few more options with submitting the program directly:

SUBMIT zprogram 
  WITH param1 = 'VALUE' 
  WITH selopt BETWEEN 'a' AND 'b'.

Alternatively you change the batch table to a selection table of type RSPARAMS. There are many other options including submitting with a specific variant, or calling a specific screen etc.