The advantages of having ABAP knowledge and working within the BW environment are significant. I have been involved now with BW for 2 years – prior to this I programmed ABAP for 5 years.
The area of BW that I am writing about is the efficiency of the ETL (Extraction, Transformation & Loading) processes.
I have noticed that very little attention is paid to writing efficient and decent ABAP code in Start Routines, ABAP routines, and END routines resulting in data load processes that are not optimized to the maximum.
Perhaps SAP should include in their academy a few hours of training on the basics of ABAP coding that are relevant to the BW Environment. Areas that should be covered are:
- ABAP naming conventions
- The use of internal tables
- How to properly select RELEVANT data from transparent tables (avoiding, for example,
select * from...
when not all fields are required) - How to use a function module / Class
- String manipulation
- The use of control structures
An example of poor inefficient ABAP is having a select statement in an ABAP routine (between a start routine and end-routine). This is like having a select statement in a loop. Rather do the select in the start routine into an internal table, and read that internal table in the ABAP routine, thus many selects are now replaced with just 1 select statement, we are now accessing the database just once instead of many times.
From my experience, such advantages are only realized and appreciated during troubleshooting or after go-live. And that is what distinguishes experienced BW ABAP developer from a beginner.
This article by Hoosen Mia Haffejee took part in the joint contest, which SAP Expert ran together with PACKT Publishing. Hoosen won SAP ABAP Advanced Cookbook.