During an upgrade or the import of a Support Package, existing objects of the SAP standard are overwritten with the objects redelivered.
To help it to retain the changes to SAP objects done in a previous release, SAP provides transactions SPAU and SPDD. These transactions allow to enter their modifications into the corresponding new objects being delivered at upgrade.
For some object types the Modification Assistant offers additional support to make this process of adopting customer modifications easier.

Use transactions SPDD and SPAU during an upgrade to select these objects and modify them manually.

Transaction SPDD allows us to adjust modifications to ABAP Dictionary objects during an upgrade.
• Domains
• Data elements
• Tables (structures, transparent tables, pooled and cluster tables including their technical settings, indexes of transparent tables)
• Changes to other ABAP Dictionary objects such as type groups, table types, views, search helps and lock objects cannot result in the loss of data.
They are not handled by transaction SPDD, but by transaction SPAU in the postprocessing of the upgrade.
Complete all modification adjustments before continuing with the import. If we do not do this, modifications to dictionary objects will be lost. This can lead to data loss.

Transaction SPAU allows us to adjust Notes, programs, function modules, screens, interfaces, documentation, and text elements after an upgrade.
Notes should be adjusted before adjusting the rest of the modification to avoid errors in Note implementation due to modifications.
• We have the following options:
• Adjust all modifications before continuing with the import.
This is recommended if we only need to adjust a small number of objects.
• Perform the modification adjustment and the remaining phases in parallel.
This is recommended if we need to adjust a large number of objects.

II. Adjustments during SPAM/SAINT:

Modification Adjustment on the first system (Development system).

*The modification adjustment should always been done in the DEV system! Especially for object types without Modification Assistant support the older versions of a modified object are needed to check what and where the modification was in the old release. Versions are normally only created at export not at import. SPAM/SAINT prompts in phase RUN_SPDD_? to adjust the Dictionary Objects (transaction SPDD) and in phase RUN_SPAU_? to adjust all other Repository objects (transaction SPAU)
*Before starting the adjustments, create two Workbench request (SE01), one for SPDD and one for SPAU.
*Do the necessary adjustments (using transaction SE11 for SPDD, using SE24, SE37, SE38, SE80, … for SPAU) and save them in the particular request.
*If we want to include the created requests in the Support Package queue in the follow-on systems for an automatic modification adjustment, we must mark it as an adjustment transport. To do this, call transaction SPDD or SPAU and choose menu Utilities -> Assign Transport.
This will add the CTS project SAP_ADJUST to the mentioned transport request (a prerequisite to later determine the request as adjustment request).
*Once the adjustment is complete, the developers must release their tasks (not the request).
*Continue the import in SPAM/SAINT.
*As final step after SPAM/SAINT has been finished, release the transport requests!
*There is no 14-days-period to adjust the objects without SSCR key!

Modification Adjustment on the next systems (Quality/Productive system)

*After the queue has been defined, the system asks us whether we want to include modification adjustment transports. Confirm that this is the case.
(Prerequisite: choose SPAM/SAINT menu Extras -> Settings and mark “Include adjustment transports” or “Always ask” on the Tab Page: Defining a Queue)
*A dialog box appears, containing a list of existing modification adjustment transports.
(We can also call this dialog box by choosing Display/Define on the Support Package Manager initial screen, and then choosing Add Adjustment Transports to Queue in the dialog box of the current Support Package queue.)
*If no adjustment transports are displayed in the list, we need to notify the system of the transports. To do this, choose Find -> Adjustment Transports. (We can also call the function for finding adjustment transports from the menu on the initial screen of the Support Package Manager, under Support Package Find Adjustment Transports.)
The system searches for adjustment transports in the Transport Management System import queue and in the transport directory on the application server.
The system lists the transport requests that we have selected as modification adjustment transports and released in the export system.
For each adjustment transport listed, the Status field shows whether or not it matches the current Support Package queue and can therefore be included.
Adjustment transports that match the queue are already selected in the table.
An adjustment transport “matches” the queue if the target Support Package status of the current queue is the same as the one in the export system at the time when the modification adjustment transport is exported
(see the transport attribute SAP_COMPONENT while displaying the transport in SE01).
*If required, change the adjustment transport selection.
We cannot select adjustment transports that do not match the queue. (To hide adjustment transports that do not match the queue, choose Activate Filter)
*To add the adjustment transports to the Support Package queue, choose Copy -> Selected Adjustment Transports.
*We can now import this queue and the objects from the included transport requests will be adjusted automatically.

III. Adjustments during SUM

Modification Adjustment on the first system (Development system)

*In Phase ADJUSTCHK a list of objects ABAP Dictionary objects need to be adjusted is determined (../SUM/abap/log/UMODPROT.<SAPSID>).
–> NOTE: if the following lines are present in this phase, this means that SPDD will not be prompted during the upgrade:
Starting check of modified objects in batch
INFO: In phase *** no dictionary objects will be
imported that have also been modified in your system.

*In Phase ACT_TRANS/ACT_UPG we are prompted to do the SPDD adjustments. Depending on the chosen pre-configuration mode, we have to do this either on the normal instance (SINGLE mode) or on the shadow instance (STANDARD and ADVANCED mode).

SPDD SPAU

*The adjusted SPDD objects must be saved in a Workbench request (SE01)!
*Do only adjust the objects, but do not activate them in SE11 manually!!!
*We must release the tasks of the SPDD request, but NOT the transport request itself, The transports will be released by SUM in the phase UEXP_SPAU and UEXP_SPDD.
*Instead, we must flag the transport in transaction SPDD using button Assign Transport.
*If we are sure that all ABAP Dictionary objects have been adjusted, continue in SUM by choosing “Adjustments made, continue with procedure”.
*In Phase SPAUINFO it will prompt to do the adjustment on the modified or enhanced repository objects as well as SAP Notes.

SPDD SPAU

*All changes must again be saved to a new Workbench request (SE01)!
*Towards the end of the update, the Software Update Manager exports the request (in phases UEXP_SPDD and UEXP_SPAU) to the transport directory DIR_TRANS and updates the file umodauto.lst.
*There is a 14-days-period to adjust the SPAU objects without a SSCR key. This period cannot be extended and is only relevant for objects touched by packages included in the current SUM! *Objects which where in SPAU before SUM started, do not have this benefit!
This restriction does not apply anymore to SAP S/4HANA systems or systems based on SAP NetWeaver AS for ABAP 7.51 and higher.

Modification Adjustment on the next systems (Quality/Productive system)

*In Phase ADJUSTPRP SUM automatically searches for adjustment transports from previous upgrades (<DIR_TRANS>/bin/umodauto.lst)
Here we can select the proposed transport requests or add the SPDD and SPAU transport requests manually.

SPDD SPAU

*If the earlier created SPDD/SPAU tr.requests are not displayed, please follow the SAP note 68678.
*In Phase ADJUSTCHK_TRANS or ADJUSTCHK_EHPI or ADJUSTCHK_UPG the Dictionary objects needs to be adjusted will be determined (see logfile UMODPROT.<SID>)
*In Phase ACT_TRANS or ACT_UPG the number of objects to be adjusted is displayed as well as the number of automatically adjusted objects by our SPDD request.
*Pre-configuration mode STANDARD and ADVANCED only: If we missed to add an adjustment transport in ADJUSTPRP and we are already in ACT_UPG phase, there is still a workaround to import a SPDD request.
*** WARNING *** Importing an import during the downtime of the upgrade is critical. We cannot perform a “tp import” while SPDD is being used.
A pure ABAP Dictionary import (SAPup importshd <transport request>) can be used as a quick fix.
Use the following steps only in urgent cases but not in productive environment:
1. Stop SUM/SAPup and execute the below command:
> SAPup importshd <SPDD request>
2. Only after step 1 finished, logon to shadow system and execute SE38 -> report UPGACTKORR (with parameter the<SPDD request>)
*Double-check transaction SPDD that all objects are correctly adjusted! If it is not the case, continue as described above under “Modification Adjustment on the first system (Development system)”
*Continue in SUM … until Phase SPAUINFO. There the number of modified repository objects to be adjusted is displayed.
*Double-check transaction SPAU that all objects are correctly adjusted! If it is not the case, continue as described above under “Modification Adjustment on the first system (Development system)”.

Note: SPAM and SUM can handle only one SPDD and one SPAU transport requests.
If there were more TR requests created, merge them to one ( use Include objects functionality) and mark it for transport via Utilities -> Assign Transport in SPDD/SPAU.

One thought on “SPDD/SPAU handling during the Update/Upgrade

  1. this is a much better explanation of SUM upgrade. Can you just confirm that SPDD and SPAU transports that were imported by the SUM process in the next environment will not show any log when I go to SE10 of my development environment and look at the log of the SPDD or SPAU transport?
    Whereas if the transport was imported using STMS, that the logs always shows in the Dev environment?

Leave a Reply

Your email address will not be published. Required fields are marked *