Guide · Strategy & transition paths
SPDD, SPAU and SPAU_ENH in an S/4HANA Conversion
When to run SPDD, SPAU and SPAU_ENH during an ECC to S/4HANA conversion, how to carry the adjustments to QA and production, and what to retest before sign-off.

Part of the complete guide: ECC to S/4HANA Migration: The End-to-End Guide (2026)

In an ECC to S/4HANA system conversion, you run SPDD during the Software Update Manager (SUM) run. That step adjusts your modified ABAP Dictionary objects on the shadow instance before activation. If you skip it, those modifications are lost and so can the data stored in them. You run SPAU for programs, screens and SAP Notes, and SPAU_ENH for Enhancement Framework objects, when SUM prompts you near the end of the run. You do all of this once, in the first system you convert, and save the work in transports that SUM replays automatically in QA and production.
That covers the mechanics. Each adjustment decision also changes your test scope, and that part is easy to miss. This guide covers both. For the full migration sequence, start with our end-to-end ECC to S/4HANA migration guide.
Where SPDD, SPAU and SPAU_ENH sit in the conversion
SAP's Custom Code Migration Guide spells out the split. SAP says you "adapt any modifications related to ABAP Dictionary objects using transaction SPDD" during the conversion. Repository modifications are handled with SPAU and SPAU_ENH after the SUM run. Running ABAP Test Cockpit (ATC) with the S/4HANA checks comes after that. The Conversion Guide for SAP S/4HANA 2025 puts the same custom code adaptation after the SUM run.
- PrepareReturn modifications to standard where possible; move appends that sit on simplified tables
- ADJUSTPRPSUM offers adjustment transports from earlier runs (umodauto.lst)
- ACT_UPG: SPDDAdjust Dictionary objects on the shadow instance; do not activate
- SPAUINFO: SPAU / SPAU_ENHNotes first, then modifications, then enhancements
- ATC adaptationFix S/4HANA and HANA findings in custom code
- Retest and sign offEvery adjusted object maps to a test and an owner
| SPDD | SPAU | SPAU_ENH | |
|---|---|---|---|
| Objects | Domains, data elements, tables and structures, including technical settings and indexes | Programs, function modules, screens, interfaces, SAP Note corrections | Enhancement Framework objects, including new kernel-based BAdIs |
| When | During SUM, on the shadow instance, before Dictionary activation | When SUM prompts at SPAUINFO, then completed after the SUM run | Alongside SPAU |
| Cost of skipping | Modifications lost, possible data loss | Modified logic silently replaced by the SAP standard | Enhancements broken where SAP changed the underlying object |
The SPDD object list comes from the SAP Software Logistics wiki. The SPAU scope comes from SAP Help.
Before SUM: shrink the adjustment list
Every object that comes up in SPDD costs time inside SUM, and SPDD work on the first system is on the critical path. Shrink the list before you start:
- Retire modifications you no longer need. List your modified SAP objects from the sandbox and ask the business owner of each one whether S/4HANA standard now covers it. Each "return to standard" decision removes one adjustment and adds one behavior change to test.
- Move appends on tables that S/4HANA replaces. SAP's Simplification List says customer append fields on VBUK and VBUP have to be added to the status include structures of the document tables, for example VBAK_STATUS or LIPS_STATUS. Each field needs the same name and data type, or the automatic data conversion will not carry it. Appends on MSEG follow a similar rule. In an SAP Community thread, practitioners quote SAP Note 2206980, which requires those customer fields to be appended to MATDOC in a conversion.
- Clear the Simplification Item Check first. SPDD will not save you from a blocked conversion. Clear the check's errors first; see our guide to fixing return codes 7, 8 and 12.
SPDD during SUM, step by step
In phase ADJUSTCHK, SUM works out which Dictionary objects need adjustment and writes the list to the log file UMODPROT.<SID> under SUM/abap/log, according to the SAP Software Logistics wiki. Read that log early, because it is your first hard count of SPDD work. In ACT_UPG, SUM stops and asks for the adjustment. SAP KBA 1993398 shows the prompt:
- Log on to the shadow instance as DDIC in client 000.
- Set the system change option in SE06.
- Create adjustment users by copying DDIC in SU01.
- Log on as one of those users and work through SPDD.
- For each object, either adjust it (keep your modification and merge it with SAP's new version) or reset it to the SAP standard. SAP Help says not to activate adjusted objects, and to have every team member set the SPDD transport as their default.
- Use Assign Transport to mark the request as the adjustment transport. Up to target release S/4HANA 2020, you release the tasks but not the request, because SUM releases it in phase UEXP_SPDD and registers it in umodauto.lst. For S/4HANA 2021 and higher, SAP notes that you cannot always release the task in SPDD. The same page describes a SUM phase, ACT_UPG_CUST, where SPDD and Dictionary activation happen. Check the SUM guide for your SUM support package before the first run.
- When every object is handled, choose "Adjustments made, continue with procedure" in SUM.
Since SAP_BASIS 7.50, SPDD has a new design, and the classic version is still available as SPDD_OLD, according to SAP. That same page warns against activating changes on the shadow instance and against releasing the SPDD request yourself.
SPAU and SPAU_ENH: Notes first, then code, then enhancements
In phase SPAUINFO, SUM asks you to adjust repository objects and SAP Notes. These changes go into a new workbench request, separate from the SPDD request. SAP Help recommends adjusting SAP Notes first, because that resolves conflicts with modifications. A practical order:
- Note corrections. SAP's support content explains the traffic lights:
- Grey: the Note is obsolete. Reset it to original.
- Green: some correction instructions are obsolete and the rest are still valid.
- Yellow: the Note is still valid and has to be implemented again.
- Modifications with and without the Modification Assistant. Objects changed through the Modification Assistant can often be adjusted semi-automatically. Objects changed without it have to be compared and re-applied manually. Budget your developer days for that second group.
- SPAU_ENH. SAP Learning explains that enhancements only need adjustment when SAP deleted the underlying development object or changed it incompatibly. In a conversion, where SAP rewrote whole areas such as material documents and pricing, expect more of these than in an EhP upgrade.
Carrying adjustments to QA and production
For QA and production, SAP recommends transferring the two transports exported from the first system instead of adjusting by hand: one for SPDD, one for SPAU. In phase ADJUSTPRP (SUMASK_SPDD_SPAU in SUM 2.0), SUM looks for adjustment transports in umodauto.lst. You can accept the proposals or add requests manually, according to the SAP wiki. SUM keeps the SPDD and SPAU requests in the correct order, and already-adjusted objects are recognized automatically, according to SAP.
Three rules from the field:
- Freeze transport routes. SAP says not to change transport route configuration during the SUM procedure. Basis owns that freeze.
- Freeze modifications in ECC. Any SAP object modified in ECC production after you ran the first system's SPDD is missing from your adjustment transports. Put a modification freeze in the change calendar from the first sandbox conversion onward.
- Prove it in the mock. The target for your final mock conversion is zero manual SPDD objects and a SPAU list containing only expected items. Anything else means your transports are incomplete, and production downtime is the worst place to find that out.
Our free Academy course Executing a System Conversion: Maintenance Planner, SUM and Follow-Up walks through the SUM phases around these steps in more depth.
What to test, and who signs off
Each object in SPDD, SPAU or SPAU_ENH ends in one of a handful of decisions, and each decision produces specific test work. Track them in one register, using the Custom Code (ATC) Remediation & Retest Tracker, so the ATC findings that follow land in the same list.
| Adjustment outcome | Test you owe | Evidence |
|---|---|---|
| SPDD: modification kept | Data-preservation check on the custom fields | Before/after counts of non-initial values per field, from ECC and the converted system |
| Append moved to a new table (VBUK to VBAK_STATUS, MSEG to MATDOC) | Reports and interfaces that read the field | Field-level comparison on sample documents, plus the passed interface test |
| Reset to SAP standard | Business process test of the affected step | Process owner accepts the standard behavior in writing |
| Note re-implemented (yellow) | Targeted test of the symptom the Note fixed | Test case linked to the Note number |
| Obsolete Note reset (grey) | Smoke test of the transaction | SPAU status export |
| SPAU_ENH adjusted | Test every process path that calls the BAdI or enhancement | Executed test cases tagged with the enhancement name |
Sign-off runs in two layers:
- The development lead signs the adjustment register: every object has a decision, a transport and a named developer.
- Process owners sign the retest results for their processes. The test manager then puts both into the go/no-go pack.
For the wider phase plan these tests feed into, see Testing an ECC to S/4HANA migration: a phase-by-phase plan.
- UMODPROT log reviewed and SPDD effort estimated before the first sandbox run
- Every adjusted or reset object recorded with its decision, transport and test case
- Appends on VBUK, VBUP and MSEG carried to their S/4HANA targets, and data checked after conversion
- SPDD and SPAU transports confirmed in umodauto.lst and selected at ADJUSTPRP in each later system
- Final mock showed zero manual SPDD objects
- Process owner sign-off on every "reset to standard" decision
Frequently asked questions
Can we skip SPDD if we plan to fix everything afterward?
No. SAP's guidance is that any Dictionary modification you don't adjust before Dictionary activation is replaced by the new SAP version. That can lose the data in custom fields. SPAU work can continue after SUM finishes, but SPDD cannot be postponed.
Do we have to repeat SPDD and SPAU in every system?
Not if you set it up correctly. Do the manual adjustment once in the first system, mark the requests as adjustment transports, and select them at ADJUSTPRP in QA and production. SUM imports them and recognizes the objects that are already adjusted. Anything that still needs manual work in a later system points to a gap in your modification freeze.
What is the difference between SPAU and SPAU_ENH?
SPAU covers classic modifications to repository objects, such as programs, function modules and screens, plus SAP Note corrections. SPAU_ENH covers Enhancement Framework objects, such as enhancement implementations and new kernel-based BAdIs. Those only need adjustment when SAP deleted or incompatibly changed the object underneath them.
Is SPAU the same as custom code adaptation with ATC?
No. SPAU reconciles your changes to SAP-owned objects. ATC with the S/4HANA checks finds problems in your own Z code, such as reads on removed tables, and SAP recommends running it after SPAU and SPAU_ENH. Plan both, and test the results together. The free Academy course Custom Code Migration: Scoping, Remote ATC and Adaptation covers the ATC side.
Sources
- Modification Adjustment During Upgrade, SAP Help Portal (Software Logistics support content), accessed October 2026
- Modification Adjustment During Upgrade (SL wiki), SAP, accessed October 2026
- Adjusting ABAP Dictionary Objects Using Transaction SPDD, SAP Help Portal, accessed October 2026
- Adjusting Remaining Objects with Transaction SPAU, SAP Help Portal, accessed October 2026
- Dictionary inconsistency in SPDD adjustment in shadow instance, SAP Help Portal, accessed October 2026
- Obsolete note deimplemented during SPAU adjustment, SAP Help Portal, accessed October 2026
- Understanding the Concept of Modification Adjustment, SAP Learning, accessed October 2026
- Performing the SPAU Modification Adjustment, SAP Learning, accessed October 2026
- KBA 1993398: "Adjustments to be made in SPDD transaction" error in ACT_UPG phase, SAP Support, accessed October 2026
- KBA 3244355: SUM asks to double-check the modifications in phase ACT_UPG in any case, SAP Support, accessed October 2026
- Custom Code Migration Guide for SAP S/4HANA 2025, SAP SE, 2025
- Conversion Guide for SAP S/4HANA 2025, SAP SE, Document Version 3.0
- Conversion Guide for SAP S/4HANA Cloud Private Edition 2025, SAP SE, Document Version 3.0, 2026-10-07
- Simplification List for SAP S/4HANA (status tables VBUK/VBUP), SAP SE
- S4HANA on premise 1610: Append structure to MSEG (discussion citing SAP Note 2206980), SAP Community, accessed October 2026
Free S/4HANA testing templates
Master test strategy, migration test plan, cutover runbook, go/no-go checklist and more.
The RISE Testing Playbook
One practical move a week for testing your ECC to S/4HANA transformation.
More on Strategy & transition paths
- Greenfield vs Brownfield SAP S/4HANA: Choose Your Path
- RISE vs GROW with SAP: Which One Fits You in 2026?
- Brownfield vs greenfield for S/4HANA: a decision tree
- How to Run Remote ATC Checks for S/4HANA Custom Code
- How to Run and Read SAP Readiness Check for S/4HANA
- S/4HANA Finance Data Migration: Reconcile Before and After
- CVI Business Partner Conversion for S/4HANA: Step by Step
- Simplification Item Check: Fix Return Codes 7, 8 and 12
How this guide is made: researched with AI-assisted search across SAP documentation and practitioner sources, with every fact linked to its source. Found an error or have field experience to add? Tell us.