Skip to Content
Author's profile photo Sijin Chandran

Learning SHD0 with Example

Hello All ,

I would like to share a document with you all which is related to my recent work using SHD0.

This is a very familiar Tcode  used by both Technical and Functional Consultants but if its used correctly and appropriately am sure it can avoid many Enhancement and Modification developments.

I was not able to find any related documents about this here when I needed that’s why I would like to take this opportunity to provide an informative content to our own SCN so that its helpful for all others.

Lets take a very general example of CO11N ( I was to work over this only ).

This tcode is used to confirm Production Order , Production Order indeed contains all BOM related materials required for a Particular Production. Now what happens sometimes end users use to delete or alter these BOM materials and in our company the requirement was to stop this at user ID level.

Usually while using SHD0 everyone use to create a ZTcode for using it , but we can do it without creating a Ztcode which I am going to explain.

Steps :

1. Tcode SHD0

Give the Transaction code for which you want to Create Transaction and Screen Variants eg . CO11N here

And Select the Standard Variants tab and Further Select Variant Groups tab.

Give a Group Name say ZSIJIN as given here :

capture.JPG

You can see that within the Press of Enter System automatically generates the Transaction Variant ZSIJINCO11N ( System Concatenates Group Name + Transaction Code ).

SHD0_1.PNG

Transaction Variant can contain many Screen Variants inside it.

With the Press of Create Button (F5) it will start simulating CO11N and with each processing , system will propose for Screen Variants to be created for each screen elements such as Buttons , Tool Bars , Menu functions , Sub Screens with fields.

Which will continue as below :

SHD0_2.PNG

SHD0_3.PNG

By clicking on the Menu Functions button here you can also Edit functionality of Menu Functions

SHD0_4.PNG

SHD0_6.PNG

The above screen variant is for the Pushbuttons of CO11N and you can see that I have done some settings . We will see their effects in the last.

You can see the above proposal gives whole description about that Screen element like Program name with screen number , if you have any confusion you can simulate the same using SE51 and confirm.

We will continue like this ,

SHD0_7.PNG

This for making Order field mandatory with Material field Output only.

SHD0_8.PNG

SHD0_9.PNG

shd0_10.PNG

Now press Goods Movement , for further processing.

shd0_11.PNG

with the press of enter it will again continue in the same fashion ,

SHD0_12.PNG

Here comes the ToolBar and you can see that I have set DELETE option to Output only.

shd0_13.PNG

And Here I have removed the change in Quantity option.

Now press Exit and Save ( when you get your things done ) option .

2. Assigning Users

shd0_14.PNG

Now with the Variant Group created initially ( ZSIJIN in this case ) we  can collect the Users for whom the Above Transaction and Screen Variant need to be applied.

Here we are now going to assign Users. And for this Users Transaction variant will come into action.

SHD0_15.PNG

Don’t forget to press Assign and Set Proposal Buttons.

3. Now lets see the overall effect. I have highlighted them.

SHD0_16.PNG

shd0_17.PNG

shd0_18.PNG

Hope this will be helpful to many and is a worthy document

Assigned Tags

      47 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Former Member
      Former Member

      Very Thanks Sijin ,

      For this very valuable document.

      Good job!

      Author's profile photo Sijin Chandran
      Sijin Chandran
      Blog Post Author

      Thanks Prasanna for your motivating words 🙂 ,

      BTW forgot to mention the below SAP Wiki link will also be very helpful :

      http://help.sap.com/saphelp_46c/helpdata/en/bf/ec07845db911d295ae0000e82de14a/frameset.htm

      Author's profile photo Former Member
      Former Member

      Hi Sijin,

      I would like to make tax code as a default value whenever a purchase order created. Can we achieve this through screen variant. If yes can you elaborate the steps?

      Author's profile photo Sijin Chandran
      Sijin Chandran
      Blog Post Author

      Hello Kishan ,

      Yeah you can set a default tax code ,

      Just see the below screen shot ,

      capture.JPG

      Say for example here you want to set a Default date using Screen Variant .

      Then first give the default value in the Contents column and after that check W. content ( With content) checkbox.

      But instead I would like you to suggest   BADI with SET DATA technique for Tax Code field in me21n.

      Reason being you can assign Tax Codes based on conditions ( for eg based on Purchase Order type ) if you use BADI whereas in case of SHD0 conditions cannot be specified.

      Author's profile photo sandeep praharaj
      sandeep praharaj

      Hi Sijin,

      Really a nice document . I have one doubt how can assign all user assignment in one shot.& can i  generate transport request & transport it to production.

      Thanks & Regards

      Sandeep kumar praharaj 

      Author's profile photo Sijin Chandran
      Sijin Chandran
      Blog Post Author

      Hi Sandeep ,

      As per my knowledge you can assign user ids one by one only.

      Yeah you can generate transport requests and this is the proper way it should be done.

      For generating request just press the Transport button ( Refer Screenshot 1 ).

      And also check with your basis team that no one other than Basis Team members and ABAP Developers have the access of Tcode in Production Client.

      Thanks for your appreciation .

      Author's profile photo sandeep praharaj
      sandeep praharaj

      Hi Sijin,

        Thanks for the answer. I have done the same. but i have one doubt at the time of saving i have generated a workbench request .

      but after clicking over the truck button (Transport Button) it is generating the customizing Request why so just to gain some little clarity i asked this.

      Thanks & Regards

      Sandeep Kumar Praharaj

      Author's profile photo Sijin Chandran
      Sijin Chandran
      Blog Post Author

      but after clicking over the truck button (Transport Button) it is generating the customizing Request why so just to gain some little clarity i asked this

      😕 Am not able to recall the reason for this . I don't have system access right now.

      While changing the variant in DEV client and at the time of saving the Workbench request you are getting , check the attributes inside it , probably you would able to see all the participating Screen variants and Transaction variant.

      Get this request transported , it will do the purpose.

      Author's profile photo sandeep praharaj
      sandeep praharaj

      thanks 🙂 ℹ

      Author's profile photo Jogeswara Rao K
      Jogeswara Rao K

      Hi Sijin,

      Helpful document.

      Jogeswara Rao K

      Author's profile photo Former Member
      Former Member

      Useful one...Thanks.

      BR,

      Naresh K.

      Author's profile photo Rupesh Dhiwar
      Rupesh Dhiwar

      Its very good information thank you it will help us to make some settings in standard...

      and its easy also.

      Thanks

      Author's profile photo Former Member
      Former Member

      Grt Work sir.....

      Author's profile photo Former Member
      Former Member

      gud

      Author's profile photo Former Member
      Former Member

      Thanks a lot for useful sharing.

      Regards.

      Author's profile photo Phillip Morgan
      Phillip Morgan

      Thanks for this document. I know and have used SHD0 before but never saw I could assign to specific users. Very useful!

      Author's profile photo Atul Saxena
      Atul Saxena

      Great Effort really....................

      Regards,

      Atul Saxena

      Author's profile photo Vipul Fegade
      Vipul Fegade

      Nice sharing ....

      Do we need to activate transaction variant in Each system ex. QA , PRD ? I created transaction Variant for PK05 and working well in Development server but after transport to QA T varaint is not working , status in QA shows inactive .......please help.

      Author's profile photo Former Member
      Former Member

      After testing only i can confirm the procedure.

      Thanks for the info.

      Author's profile photo Former Member
      Former Member

      Nice writeup for SHD0.

      Thanks.

      Author's profile photo Former Member
      Former Member

      Comprehensive Information  about SHD0.

      Its indeed very useful and flexible.

      Author's profile photo Glen Anthony
      Glen Anthony

      Very useful! Thank you so much for posting this it is really a great help. 🙂

      Author's profile photo Wagner Silva
      Wagner Silva

      Hi Sijin Sij,

      Very good and useful information.

      Author's profile photo Praveen K P
      Praveen K P

      Nice document..Very informative..Kudos Sijin

      Author's profile photo Former Member
      Former Member

      Thanks for useful information.

      Author's profile photo ananthachari enjarapu
      ananthachari enjarapu

      Hi Sijin,

      Thanks alot. it gives us solution.

      Regards,

      E.Ananthachari.

      Author's profile photo Former Member
      Former Member

      Hi Sijin,

      Thanks for sharing.

      Cheers
      vwa

      Author's profile photo Darcy Morse
      Darcy Morse

      What client should this be done in?  In our development system, 100, and 200 doesn't have data, but 300 gives an error that changes to repository or cross-client customizing are not permitted.  Then there is also the issue where not all of our users are in our development system. 

      Author's profile photo Sijin Chandran
      Sijin Chandran
      Blog Post Author

      In our development system, 100, and 200 doesn’t have data,

      You would need data for saving Screen Variants.
      Its just like BDC recordings.

      Then there is also the issue where not all of our users are in our development system.

      Users you can assign in Production Client.

       

      Author's profile photo Narender Kumar Singh
      Narender Kumar Singh

       

      HI Sijin,

      Thanks for the documentation.

      Is it possible to restrict the F4 dropdown list? for example, in the screen shot, we would like to restrict for a set of personnel numbers.

      Thanks and regards,

      Narender.

      Author's profile photo Sijin Chandran
      Sijin Chandran
      Blog Post Author

      Hi Narender,

      I don’t think it would be feasible for restricting F4 help results using SHD0.

      Please try with “Search help exits” for achieving this.

      Function Module “F4IF_SHLP_EXIT_EXAMPLE” is a reference implementation of Search help Exit implementation.

      Thanks,

      Sijin

      Author's profile photo Dhananjay Mhetre
      Dhananjay Mhetre

      Hi Sijin,

       

      Many thanks for sharing information. It helped me on right time.

       

      Cheers,

      Dhananjay Mhetre

      Author's profile photo Julio Cesar Quiñones Niño
      Julio Cesar Quiñones Niño

      Thanks for this great document.

       

      I want to make as display only the Batch field in the same CO11N transaction in the section Goods Movements, in fact same screen 0500 as you showed, but I can make it work, any ideas why, even I am marking the field as "Output Only"

       

      Thanks

      Author's profile photo Sijin Chandran
      Sijin Chandran
      Blog Post Author

      Hello Julio,

      I don't have SAP ECC access now.

      Actually it should work, really clueless why its not working for you.

       

      Author's profile photo Barkath Basha
      Barkath Basha

      Hi Sijin,

      Thanks for the helpful document. Could you please help me with the below requirement.

      I have created a Transaction Variant for TCode "IE01" and made reference equipment as mandatory but have to make it mandatory based only on selection of equipment category as "D" not for all.

       

      Thanks.

      Author's profile photo Sijin Chandran
      Sijin Chandran
      Blog Post Author

      Hi Barkath,

      Unfortunately these kind of conditional logic is where SHD0 fails.

      You would need to go for Enhancements then.

      Thanks,

      Sijin

      Author's profile photo Ashok Babu Dasari
      Ashok Babu Dasari

      Hello ..

      Thanks for this document.. its very helpful..

      But this variants are only for Dialog transactions.

      I want to default variant for standard transaction of report like S_ALR_*

      Can you please help me with this

      Author's profile photo Sijin Chandran
      Sijin Chandran
      Blog Post Author

      Yes this is for controlling Screen Elements (Dialog).

      For the variants related to Report programs Selection Screens this won't be effective. And I clueless how we can set a default variant for Report program's Selection Screens.

      May be someone else here can comment on the same.

      Thanks,

      Sijin

      Author's profile photo prabakaran k
      prabakaran k

      Good Document.

      One Requirement Is that can be meet in Transaction Variant and Screen Variant.Please suggest

      Requirement: In CO11N confirmation there are 5 operations 0010,0020,0030,0040,0050 . Here

      operation 10 conf qty=10 pcs

      operation 20 conf qty <= or >= confirmed qty of operation 10 (example 9,10,11,12..) flexible

      Operation 30 conf qty <= operation 20 conf qty

      same condition of 30 for 40,50

      Usually standard config will uniformly control for all operation. Here some specific to operation control needed

      Thanks

       

       

      Author's profile photo Sijin Chandran
      Sijin Chandran
      Blog Post Author

      Hi Prabakaran,

      As mentioned by me in earlier comments such kind of conditional logic is where SHD0 fails.

      For these kind of requirements we would need to go for Coding EXITS/Enhancements.

      Thanks,

      Sijin

      Author's profile photo Shivom Bhardwaj
      Shivom Bhardwaj

      Dear Sijin ji,

      could you please show me, how to hide entire "Item details " in Transaction code ME29N. we tried you flow you shown in blog...but i could not....

      screen shot attached for your reference.

      Author's profile photo Sijin Chandran
      Sijin Chandran
      Blog Post Author

      Hi Shivom,

      Can you tell precisely what error/issue you are facing.

      It would be really difficult for me to do the entire process here in my client’s system for ME29N considering here nothing like this is needed.

      Please put further details.

      I think you might not have assigned properly to users.

      And one important thing, you can clearly see that this SHD0 is used for setting screen element's properties and not for hiding entire screen ( if my understanding is correct, that is your requirement ).

      Nowhere you can see any option like that to Hide entire screen/subscreen, you need to understand that this feature is for controlling screen element properties like setting a I/P field Editable/Output Only/Mandatory/Hard code a value etc.

      Thanks,

      Sijin

      Author's profile photo Shivom Bhardwaj
      Shivom Bhardwaj

      thank you, i got the solution and achieved what i want.

      Author's profile photo HARSHAD PATIL
      HARSHAD PATIL

      Dear Sigin,

      Really nice document. while executing the steps getting following message. What would be the reason...

      Author's profile photo Sijin Chandran
      Sijin Chandran
      Blog Post Author

      Choose the other cross-client for the landscape you logged in.

      Thanks,

      Sijin

      Author's profile photo Ram Thakur
      Ram Thakur

      Sijin Chandran

      Thank You.

      Sir I will try this one and I will Inform you.

      Author's profile photo soli98 soli98
      soli98 soli98

      Thanks for your valuable document. But how we can choose right package for the Transaction Variant?