Demystifying nZDM (Near Zero Downtime) Part 1 : SAP Updates/Upgrades Fundamental Understanding
Our SAP Upgrade tools. SPAM/SAINT, EHPI, SAPUp and then came SUM. The Shadow system technique. Downtime minimization methods. And now, the Near Zero Downtime. The upgrades keep evolving. With every passing day, simple innovations in the SAP upgrade approaches and methods move forward with just one simple goal – Lets bring down the user lock time. Needless to say, maintenance cycles should minimally impact the business operational times. Period. But where does this all start. How does the updates work and what all these fancy new terms bring to the table everyday. With this multi part blog I intend to understand and define exactly that. Finally reaching a consensus on the nZDM approach of SUM and how it works. Lets start by clearing the basics.
What is a Support Package?
The most simplistic view of Support packages is that they are just Transports. A whole bunch of Notes (Repository Objects) with Relevant Structures (Dictionary objects) and Modifications. All workbench requests that we are importing with interdepencies in a prepared Queue. Nothing more.
Now, normal TRs never require downtime but since all of *these* Transports are SAP Standard Objects (Tables, Structures, Programs, Classes), the entire base of components of your system are being modified, so its “downtime” for users. Although the system stays mostly up, unlike upgrading Kernel, where its all down.
ABAP Dictionary and ABAP Repository?
Now, firstly it is important to understand the difference and inter-relation between SAP repository and dictionary as various phases of upgrades (Including SPDD and SPAU Manual Activity) are just dependant on this.
Data repository in SAP is the central store of all Development objects. Packages, Classes, Programs, Function modules, screens, menus and also the Data dictionary (DDIC) objects (Tables, structures, views, Data elements). In effect, ABAP Dictionary is the sub-set of ABAP repository by definition. But Data dictionary is also the base of all ABAP. It is the metadata to describe all other data in the repository. So, All the Programs, Classes, menus etc. have no meaning without the tables, structures, views etc. defining them. So, this subset of Repository also forms the ground of all other remaining repository objects.
For more detailed definition, a good link and quick read : http://www.stechies.com/difference-bw-data-dictionary-data-repository/
Lets go Legacy : SPAM
Now, if we take a very simple straightforward SPAM approach without all the advancements of SUM. We go into the system (DDIC/000), Define a queue, Lock all dialog users, and import it. All SPs get imported in sequence. Interdependencies are taken care of automatically through programmed excellence of SAP update tool. All is Well in the world 🙂
But what happens behind the scenes? Below is a very basic walkthrough of the steps:
- Firstly all packages are disassembled. The data and co files of the Transport Requests are unpacked from the Parcel files. The system is checked on whether their are any conflicts with the objects open repairs or locked in developments still not released. Test Imports take place to validate the same.
- Now, before Actual import, Object list of the SPs is generated. Objects are divided into Dictionary Objects and Repository ones. Since the Dictionary objects form base of the repository, They need to be imported first.
- The First Major Step. DDIC Objects are imported. New Data definitions and structures. It is in this step, that while import, SPDD (Dictionary modifications) may come up. Basically, if the Dictionary objects are edited or customized in the system – the upgrade stops, until a decision is taken on whether to lose or retain the changes using transaction SPDD.
- Table Conversions. Ok, so in the target SAP Version or SP level we are going to, a particular Application table may have a new index, or a completely new structure. All these conversions to target structure take place here. Point of note : If its a big upgrade, and changes are big like table field conversions, each existing row of the table has to be converted. Now, what if there is huge data in these application tables? The runtime of this phase increase, increasing our overall downtime and associated business woes. The fact makes these conversion a target of technological advancements (Incremental Conversions / Change Record and Replay Framework etc. – The Fancy terms in SUM downtime minization methods) in SAP update tools options to bring down the business downtime.
- DDIC Activation. After the import of All dictionary objects, they need to be activated. Their associated runtime objects are generated in this phase. Relevant Nametab entries are made for table and field definitions with the activation and the system is ready to import remaining repository objects in the updates.
- Now, Proper import of all remaining repository objects viz. programs, menus, screens, etc. take place. Another main phase of the upgrade. It is here that SPAU (Repository modifications) comes up. Contrast to SPDD, this activity can also be done after the upgrade up until a fortnight without access keys for the involved objects. Difference between SPDD and SPAU is the same as Dictionary and Repository.
- XPRAS and After Import Methods. From what I understand, if its a single transport import, or any form of upgrade or update, there is always an associated ABAP program or FM that is executed afterwards for adjustments, data mergers or alignments of SAP shipped customizings. The XPRAS are AIMs are these reports (Good food on XPRAS : http://wiki.scn.sap.com/wiki/display/TechTSG/XPRAS+phases#)
- Standard cleanup of old objects, obsolete versions, and final queue check.
All of the above Phases (except maybe the first and the last one) are downtime relevant. So, once started, the system is locked for Bob, no matter how urgent is that one cost statement that he so wanted from the system but unable to take as he was on leave while downtime notifications were sent to end users 😉
How to help Bob in future? Use SUM, of course. Next part of the blog, we discuss how all/most of these phases run peacefully using SUM, while Bob still plays profit loss monopoly in a fully productive system.
All of the detail phase names along with more detail can be gained on the following link : https://help.sap.com/saphelp_crm50/helpdata/en/3d/ad5d384ebc11d182bf0000e829fbfe/content.htm and also by executing report “RSSPAM10” in any ABAP system.