SHD0 (Transaction and Screen Variants) lets you customize standard transactions in SAP without development: hide fields, pre-fill values, simplify screens for specific user profiles. This guide shows how to create a transaction variant step by step, with a concrete case (hiding the “Movement allowed” field in MB21) and the pitfalls to avoid.
Out of 100 business requests received by an SAP consultant, roughly a third does not require a single line of ABAP. Hide a useless field. Pre-fill another. Make a third one mandatory. For these cases, SHD0 does the job. And many consultants do not know it exists.
This transaction is used to create transaction variants and screen variants: customized versions of a standard SAP transaction, without specific development. The SAP code stays intact, the screen adapts to the business. A concrete case is shown below, on an industrial automotive project, with screenshots at each step.
Why SHD0 rather than a custom ABAP development?
Many projects start with a precise business request (for example, “we want to hide this checkbox in MB21“) and end up going through the front door of Z development. Three months later, the ABAP consultant delivers a ZMB21 transaction that does the same as the standard one, plus a hidden checkbox. Cost: 8 days of development. SHD0 solves the need in 30 minutes, without a line of code, and survives SAP updates.
SHD0 (transaction variant)
- 0 line of ABAP
- 30 min of configuration
- Survives SAP upgrades
- Maintainable by any functional consultant
- Average cost: 0.5 person-day
Z development (Z-transaction)
- 200 to 500 lines of ABAP
- 5 to 10 days of dev + testing
- Risk of breakage at every version upgrade
- Maintenance by an ABAP consultant only
- Average cost: 8 to 15 person-days
Concrete case: MB21 on an automotive project
On an S/4HANA project at an automotive supplier, the maintenance team used the MB21 transaction to reserve material. The “Movement Allowed” checkbox authorizes immediate goods issues as soon as the reservation is made. On the process side, this is risky: an operator can issue the material before validation by the supervisor, which creates a systematic stock discrepancy. We saw it several times during go-live.



The business request was precise: “Hide this checkbox from the maintenance operators, leave it visible only to the supervisor.” In standard SAP, impossible. With SHD0, 30 minutes of configuration and it is done.
SHD0 configuration step by step
Open the SHD0 transaction. The workflow fits in 5 steps, with the exact SAP buttons to click.
-
1Choose the transaction to modify
Enter the transaction code (
MB21in our case) in the “Transaction Code” field at the top of the SHD0 screen. -
2Create the Variant Group
Under the “Standard Variants / Variant Groups” tab, enter a Group Name. SAP concatenates it with the transaction code to form the variant name (for example
ZMB21_NO_MVT). Click “Create”. -
3Create the Transaction Variant
Go to the “Transaction Variants” tab. Click the create button. SAP launches the standard transaction in “recording” mode.
-
4Configure the Screen Variant
Enter the desired default values on the screen that opens. Confirm with Enter. SAP displays a summary and asks you to name the screen variant. On the next screen, tick “Hide” on the fields to mask (for example “Movement Allowed”).
-
5Save into a transport request
Click “Exit and Save”. SAP displays a final summary then asks for a transport request. Reuse the project TR or create a new one. The configuration is now versioned and ready for transport to QA then prod.








Assigning screen variants to users
The screen variant now exists in the system, but it is not yet applied automatically to users. SAP lets you assign a screen variant to specific users (individually named or via groups). This is the mechanism that makes SHD0 more granular than an SAP role system.
Go back to “Standard Variants / Variant Groups”, under the “User Assignment” tab. Enter the SAP username in the “User” field. Click “Assign”. Then click “Set Proposal”. This is the critical step: without it, the screen variant is not applied automatically the next time the user logs in.

Expected result
The assigned user launches MB21 normally, with their usual transaction code, without any special procedure. The “Movement Allowed” checkbox is invisible. No possible confusion. The supervisor, on the other hand, does not have the screen variant assigned. They see the standard checkbox and can authorize the validated goods issues.

In 8 years of S/4HANA projects, I have never seen a standard SAP feature so underused. SHD0 easily saves 50 days of Z development per large-scale project.
Michael Antoine, founder of Key User Training, SAP EWM/Supply Chain consultant
FAQ: SHD0 transactions and screen variants
Does SHD0 work on S/4HANA?
Yes, SHD0 is fully supported on S/4HANA (all versions, on-premise and Cloud Private Edition). The transaction has not changed since ECC 6.0. It is a durable skill for any SAP consultant.
Can you make a field mandatory with SHD0?
Yes. When configuring the screen variant properties (step 4), tick “Required” on the relevant field. SAP will refuse to validate the transaction until the user enters a value in that field.
What happens if the user launches the transaction without their assigned screen variant?
If “Set Proposal” was done correctly during the assignment, the screen variant applies automatically each time the transaction is launched. Without “Set Proposal”, the user sees the standard transaction and has to select the screen variant manually from the menu, which defeats the purpose of SHD0.
SHD0 vs SE93 or SE51: what is the difference?
SE93 is used to create a new transaction (with a new Z* code). SE51 is the ABAP editor for screens (dynpros), which requires development skills. SHD0 creates neither a transaction nor a screen. It configures variants of an existing standard transaction, without touching the code.
Do screen variants survive an SAP version upgrade?
Yes in the vast majority of cases. If SAP modifies a standard screen (adding or removing a field), the screen variant keeps working for the fields that are still present. Removed fields are silently ignored. A post-upgrade check is still recommended on critical transactions.
How do you delete or modify an existing screen variant?
Go back into SHD0, enter the transaction code and the variant name. Deletion and modification are done via the dedicated buttons at the top of the screen. Any modification generates a transport request to propagate to the higher environments.
Going further with SHD0
SHD0 is the tool for pure cosmetic customization in SAP: it touches neither the application code nor the authorizations. To go further:
- If you need to change the business logic (calculation, validation, conditional default), look at transaction variants via BAdI, field exits or customization via classification.
- To assign a variant to a user role, the combination is done via PFCG (see our guide on SAP roles and authorizations) plus user parameters (transaction
SU3orOOSP). - SHD0 also works in S/4HANA Fiori, but for transactional Fiori apps, look instead at the UI adaptations via the Fiori RTA (Run-Time Adaptation).
SHD0 is one of the standard SAP transactions that a functional consultant should master from their very first projects. There is no need to go through ABAP to adapt a transaction to the business, and that is exactly what project managers are looking for.