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.
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.