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.
cancel
Showing results for 
Search instead for 
Did you mean: 

Call transaction and skip first screen

Former Member
0 Kudos

Would you know why this code does not actually skip the first screen? It brings up sm30 but at the screen where the table is asked for and it has the tablename in the field as it should.

form invoke_change_zcust_override.

data: tablename(20) type c.

tablename = 'ZCUST_OVERRIDE'.

set parameter id 'DVI' field tablename.

call transaction 'SM30' and skip first screen.

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hi Janet,

If only Enter has some event triggered like calling the next screen ,it will skip the first screen.Else it will not.

13 REPLIES 13

Former Member
0 Kudos

Hi Janet,

If only Enter has some event triggered like calling the next screen ,it will skip the first screen.Else it will not.

0 Kudos

Would you explain further or give an example? I don't understand.

Thank you.

0 Kudos

For example in interactive reports you want to display the Sales order when user clicks on the sales order number in that case you populate the sales order number using set parameterID and then call the transaction VA02 using skip screen. it will display the sales order details.

I'm sorry i did not noticed you are using the transaction SM30, this does not have parameter ID so you cannot use Call transaction with initial screen from your program. But you can create a transaction variant and achieve the Functionality you want.

Message was edited by: Imtiaz Ahmed

0 Kudos

Hi Janet,

As Phani and Imtiaz mentioned you can't do skip first screent directly callinf T/code "SM30".

But there is another way you can skip the first screen.

create custom T/code :

SE93 with passing parameters and call this custom transaction in your program.

Lanka

0 Kudos

Please try this instead. This will take you straight into the maintenance view, no first screen. <b>And you don't have to create a custom transaction code.</b>



report zrich_0002.



data: tablename type <b>dd02v-tabname.</b>



tablename = 'ZCUST_OVERRIDE'.



call function 'VIEW_MAINTENANCE_CALL'
     exporting
          action    = 'U'
          view_name = tablename
     exceptions
          others    = 14.

Regards,

Rich Heilman

Message was edited by: Rich Heilman

0 Kudos

You can create a Transaction code for the table maintainance & call that Tcode.

0 Kudos

The Skip first screen works if the first screen does not need a user command (except ENTER) to navigate to the (only) second screen.

However, SM30 is not built that way. It needs a Diaply / Maintain / Transport etc. User command, and it has more than one 'second' screens depending on the user command.

If you need to call up the table maintenance, here is an alternative:

1) In SE93, create a transaction ZCUST_TXN as a Transaction with Parameters (parameter transaction).

2) In the next screen:

3) Give SM30 under the 'Default values for' tab, 'Transaction' field.

4) Choose 'Skip initial screen'.

5) Specify the GUI and other attributes

6) At the bottom, paste these two entries in the 'Default values' tab:

VIEWNAME ZCUST_OVERRIDE

UPDATE X

Then, in your program, change the code to:

form invoke_change_zcust_override.

data: tablename(20) type c.

tablename = 'ZCUST_OVERRIDE'.

call transaction 'ZCUST_TXN'.

Hope this helps,

Bhanu

0 Kudos

That is what I am doing but it is not successful with transaction sm30. It works perfectly with VA02 as you describe. Is there something different about sm30?

0 Kudos

Janet, please see my above post, it will solve your problem.

Regards,

Rich Heilman

0 Kudos

You cannot do that with SM30.I dont know the real reason.

But what i found was there is no Parameter id attached to that field in SM30 initial screen.'DVI' which you have mentioned in your code is not attached to that dataelement of that field.

0 Kudos

Please make sure to award points for helpful answers and mark you post as solved when solved completly. Thanks.

Regards,

Rich Heilman

former_member210148
Participant
0 Kudos

Hi Janet,

I'm pretty new to ABAP, so please forgive me if this isn't quite what you're looking for...have you considered creating a custom parameter transaction (SE93) for this table first, then having your code call this new custom parameter transaction?

The parameter transaction will bypass the first screen when you set it up with the right information (VIEWNAME = ZCUST_OVERRIDE, UPDATE = X if you want to simulate the user pressing the Maintain button on SM30's first screen, OR SHOW = X if you want to simulate a pressing of the Display button).

Then you could have your program call your new parameter transaction.

Just a thought. Hopefully my suggestion's correct or I didn't confuse the issue.

ferry_lianto
Active Contributor
0 Kudos

Hi Janet,

Why don't you create custom transaction via SE93 with transaction parameter where you can skip the initial screen? You may need to enter default values.

Hope this will help.

Regards,

Ferry Lianto