SPDD, SPAU and SPAU_ENH: Adjusting SAP Changes After an Upgrade
Swati Lagale · 31 January 2025 · 3 min read
What happens to your modifications and enhancements when SAP is upgraded or patched, and how to work through SPDD, SPAU and SPAU_ENH without losing custom logic.
An upgrade, a support package or an S/4HANA conversion replaces SAP's objects with new versions. Changes your team made to them must be carried forward or dropped, or custom logic disappears. Three transactions handle the job: SPDD , SPAU and SPAU_ENH .
Modifications and enhancements behave differently
A modification is a change inside an SAP object, such as edited code in a standard program or a field added directly to an SAP table. The upgrade overwrites that object, so every modification must be reviewed, whether or not SAP changed the object.
An enhancement , such as a BAdI or enhancement implementation, is a separate object in your own package and namespace, so it usually survives untouched. It needs work only when the new SAP version no longer fits it, for example when the enhanced object was deleted or a data type it uses no longer exists.
SPDD: dictionary objects first
SPDD runs during the upgrade, before the new ABAP Dictionary is activated. It lists modified tables, structures, data elements and domains, under categories such as SAP Notes, With Assistant, Without Assistant and Deletions. Take care here: a modified table that is not adjusted gets SAP's new version, and fields you added, with their data, can be lost.
SPAU: programs, screens, classes and Notes
SPAU follows SPDD and covers repository objects: programs, function modules, screens, classes and more, grouped as SAP Notes, With Assistant, Without Assistant, Deletions and Translations. The same list appears after a support package that touches objects you changed. For each object you decide:
• Reset to original : your change is no longer needed, typically because the new SAP version already contains it. A Note implemented with SNOTE that is now part of the support package is the usual case.
• Adjust : your change is still needed and differs from SAP's new version, so it has to be applied again. Changes made with the Modification Assistant can often be adjusted automatically.
SPAU_ENH: enhancement implementations
After the upgrade, SPAU_ENH lists the enhancement implementations that conflict with the new release in its Upgrade View, each with a traffic light:
• Red : manual adjustment; you fix the source code yourself.
• Yellow : semi-automatic; SAP adjusted the code and a few manual steps remain.
• Green : automatic; SAP adjusted it, and you validate and confirm.
• Gray : obsolete; review whether it is still needed.
Start with red and yellow, but clear the whole list:
• Open SPAU_ENH and expand the Upgrade View.
• Select an enhancement implementation to see its details.
• Choose Display Conflict. A split screen shows the conflict, and the long text explains its cause.
• Switch to change mode and choose Adjust Enhancement Implementation.
• Activate it. The implementation then drops off the list.
After the adjustment
• Record SPDD and SPAU work in transport requests, so the same adjustments can be reused when quality and production are upgraded.
• Test each adjusted object and every process that depends on it in development and quality before it moves to production.
• Run ATC checks on your custom code to catch syntax and compatibility errors the new release introduced.
Key takeaways
• SPDD comes first, during the upgrade, for dictionary objects; mistakes there can cost data.
• SPAU covers repository objects and Notes: reset what SAP now delivers, adjust what you still need.
• SPAU_ENH resolves conflicting enhancement implementations; start with red and yellow.
• Every modification avoided in favour of a BAdI or enhancement is one less item to adjust next time.
Want to see how custom code is built to survive upgrades? See our SAP ABAP Development course .