But the first blog will be about a different topic. This is why I love to develop in SAP BW. I started my first BW project with lots of experience as a developer and no experience in BW except from the standard courses. I was certified and all my confidence came from my belief in /h. The first project was a CO project based on BW 2.0A back in a time when the PSA was called ODS and the ODS was not existent, 50% of the error messages were marked as self explaining and the BW was more a toolbox than the consistent data warehouse it is today. And I was right. About three out of four error messages were solved by debugging to the error message, looking at the wrong values in the IF statement before and setting the correct switches. This was fine until there was my first Mission impossible.
We extracted most of the data out of a flat file, but a small part was coming via Excel sheet. And to prevent double upload we had to develop a feature that allows uploading a flat file twice or more and automatically build the delta. There was no ODS available and so I started reading the InfoCube in the update rules directly by shuffling the database tables.
I still dont know why it didnt work properly 😉
Anyway I got hooked. In the next years I implemented every user exit available in BW (and SEM-BPS) and combined with the nice and consistent abilities of the BW (which can be used as a kind of super DDIC if you like) I think that the BW is the best platform available for programming business software. Here are the reasons why:
1. No need to focus on the output! Write your data into an ODS or an InfoCube and you have a state-of-the-art output tool available. Output in Excel, output in the web, output on the PDA all straight out of the box.
2. No need to focus on the input! Whether the data is in an SAP table, another database, a CSV or XML file, you can get it into the BW. If this still isnt enough you can use either the BW-BPS or even text variables for input and modify the results accordingly.
3. Different user exits for different topics When you upload data into a cube you have at least eight different user exits you could pass. Whether you want to modify the data on single record or on the complete data package, whether you look at the raw data or at the harmonized data youll have a fitting exit. And there you can focus on the logic because you get all the necessary data as input values.
5. Performance The BW is developed to handle huge amounts of data. I know about a BW project that handles 500 million data records per day! With this amount of data you better know what youre developing because using a LOOP AT INTO instead of LOOP AT ASSIGNING can easily shoot the upload time way out of the critical time window that you have per night.
6. User- and Authorization handling – Straight out of the box, on any level youd like to have.
7. Automatic use of master data The InfoObject concept easily helps to get consistent master data across different applications. Plus you get hierarchy handling, attributes and multiple languages without any additional line of code.
All this allows me to do what I (as a studied mathematician) like best. Just focus on the algorithm. Ignore all those tedious tasks like checking the correct input values. BW programming is as close to pure algorithm programming as you can get.
Im sure that one or the other will easily find a list as long as mine why he wouldnt use BW. If you do feel free to discuss it here. But I will present some enhancements to SAPs weaknesses in future blogs.
May the InfoObjects be with you!