Everyone talks about non-disruptive evolution of software systems – but what about the ABAP application server? Is non-disruptiveness really the most important development guideline? In this blog entry I look at the facts.
The ABAP Application Server contains the technological basis of SAP Business Suite. It has a set of technical tools in software component SAP_BASIS, among them
- UI technologies like ABAP Dynpro Controls, BSP and ABAP WebDynpro
- SOA frameworks and a local integration engine
- frameworks for business rule like BRFplus
- SAP Business Workflow
- frameworks for output management technology and document archiving and integration
The software component SAP_ABA is more useful for rapid development of business applications because it is a treasure chest of reuse tools. If you get curious a recommend you one of my previous blogs.
In fact I was already looking for AS ABAP 7.03 which is also part shipped with SAP NetWeaver 7.31. The components SAP_BASIS and SAP_ABA 7.31 contain many useful tools and it is part of SAP ERP 6.06 and CRM 7.2 which is necessary for SAP Business Suite on HANA.
For me the implementation of SAP NW 7.31 turned out as painful and without help from SAP it could have become a nightmare. The reason for this problem was that SAP deleted many development objects which caused syntax errors in custom code. The good news: SAP was fair especially if you think of Note 109533 – Use of SAP function modules.
Evolution of AS ABAP and Stability of Software Components
Was it just bad luck? Let’s look at the facts. Do you know how many development objects of SAP NetWeaver have been deleted in the last time. If you don’t know you should have a look on the number of development objects (TADIR entries) of software components SAP_BASIS and SAP_ABA in the following picture:
The SAP_BASIS component got bigger while the SAP_ABA component even had shrunk. So I counted TADIR objects again and learned that from 7.0 to 7.31 more than 11.000 development objects of SAP_ABA have been deleted! 2.328 deletions came from the deletion a whole framework: see note 838772. This is a drastic incompatibility but I don’t consider it as harmful: ABAP developers should only use SAP frameworks that they know. No reliable SAP developer should perform recklessly and randomly reuse. If you hired one of those developers then you had bad luck, the future of you custom development is in danger.
Implementation of SAP NetWeaver Ehp 3 Considered Painful
As I already mentioned before I made bad experience with SAP_BASIS and SAP_ABA 7.31 but you might have made a different experience. So let’s talk about facts and count deletions of development objects in terms of transparent table TADIR. Winston Churchill once remarked that the only statistics you can trust are those you falsified yourself. You might judge if this holds for me – I think I was quite fair:
- I don’t count the elements of above mentioned deleted framework because I consider it as deployment error.
- Furthermore I don’t consider deletions which are downports to a deeper software component.
- And last but not least I’m counting only development objects that are shipped with NW 7.0 and I don’t count deletions of objects shipped with NW EhP 1 resp. EhP 2.
Nevertheless, the number of deletions is dramatic – from NW 7.0 NW 7.31 3.25% of SAP_BASIS was deleted and 7.98% of SAP_ABA. You can see this in the following picture:
This is really much, especially if you compare it with other software components of SAP Business Suite and Industry Solutions which is displayed in the following diagram.
What can we learn from this picture: SAP Business Suite is quite stable and has only between 0.2% and 1.4% deletions – and please compare it with the deletions in SAP NetWeaver: We have 5.8% and 8% deletions in SAP_BASIS and SAP_ABA – and please remember that I was fair and didn’t count a huge framework which was deployed by accident.
You may ask why I am that fair because and didn’t count a huge set of deletions. SAP NetWaver had a hard time within the last years:
- SAP NetWeaver had to find its place between onPremise and onDemand
- SAP shot down a development line 7.10, 7.11, (7.20,) and 7.30 and 7.31 and did downports to 7.01, 7.02 and now 7.31 is a consolidation release.
Under these circumstances I am quite impressed that SAP managed to keep quite SAP NetWeaver stable. In the mean time the software components of SAP Business Suite and Industry Solutions got bigger and bigger as you can see in the following picture:
I wasn’t surprised because of this because SAP shipped many Enterprise Services as SOA layer which usually cause an inflation of data types.
The Consequences of Incompatible Changes
Every deletion is an incompatible change (the opposite is not true – there may be much more incompatibilities in SAP NetWeaver) and every incompatible change may cause trouble for customers and partners. The consequences are severe:
- reduced stability – incompatible changes can come with SPs and not only EhPs
- maintenance costs – you have to correct the error, test and ship the corrections
- implementations of SPs will get more costly with many side-effects like security risks
This is really weird: SAP does a great job making SAP Business Suite on HANA a non-disruptive change and developers and SAP Developers from SAP NetWeaver and Reuse Layer seem to try to perform a “spring-cleaning” which thwarts SAP’s efforts.
I don’t think this is consistent: SAP Business Suite as well as solutions from SAP Ecosystem build a software pyramid – if the technological basis – SAP NetWeaver is not stable that the stability of the whole solution gets questionable.
So if the priority of SAP Business Suite development is to avoid any disruption and the same should hold for SAP NetWeaver development.
What should you do right now?
My first advice: Don’t panic. If you have a bigger custom development project I suggest you to set up a sandbox before doing a software refresh and test your applications using the Code Inspector. Don’t try to avoid a NetWeaver EhP implementation – this won’t help you because many nasty deletions have been shipped in SPs and I recommend a high SP level because of many reasons – think of security for example.
Let’s Talk about Disruptions
SAP Business Suite on HANA is released – please I readThorsten Franz‘s great blog about it: The SAP Ecosystem can only follow this strategy if SAP NetWeaver development stops making incompatible changes – otherwise the whole HANA strategy of SAP Business Suite will become questionable because of disruptiveness.
On the other hand the code of SAP NetWeaver is very old and I expect evolution will come to point where incompatible changes are necessary because it has to face challenges like SAP HANA, Mobile and Cloud.
SAP has much experience with stability and governance processes: think of BAPIs, Enterprise Services and so on. The ABAP language has a package concept, package interfaces and SAP Code Inspector can check usage of obsolete elements. So the technical infrastructure for a governance process is there – SAP only has to establish it.