Sunday, November 27, 2005

SAP NetWeaver for Dummies - Book Review

This is my second "Dummies" book this year. The quick answer - if you are technical then you should read this book, if you are more functional then should read "mySAP ERP for Dummies". See my review here: mySAP ERP for Dummies ESA Edition Book Review
If you make your living in the SAP technical world and you don't spend all of your spare time reading the SDN website then you should buy this book. If you don't have time to read it then just read pages 70-79. This will give you an idea what the NetWeaver landscape looks like. I am not sure that the statement on the bottom of page 77 is correct: "ABAP workbench is transferred into SAP NetWeaver Developer Studio". The Developer Studio is the new Java Development platform (thanks JS). I believe that in the new NetWeaver World that the ABAP workbench becomes......... The ABAP workbench. Other than that one issue those ten pages are enough for you to get an idea what NetWeaver is all about.

Since this is a "Dummies" book there is the obligatory attempt at humor. I have been known to complain about technical books being too dry to read so I guess I shouldn't complain about the humor. I have to admit that I did chuckle at the line "SAP Web is as tightly connected to the SAP NetWeaver development environment as the IRS is to your income". Describing a composite application as a "Frankenstein's monster kind of creation" seems like a bit much to me.

The book does not have to be read sequentially so that you can pick it up and read whatever interests you. There are chapters on composite Apps and Xapps, Enterprise Portal, MI (Mobile infrastructure), BI, MDM, XI and WebAS. The book is an easy read and gives a good general overview of NetWeaver. I highly recommend it.

Code Rant

Over the next few months I will be posting more ABAP code. One of the things that I see in many ABAP programs, including SAP code, is subroutines that are too long. A long time ago in a galaxy far away there was the great programming debate. On one side were the proponents of maximum efficiency. On the other side were these new fangled programmers called structured programmers. The maximum efficiency programmers wanted a program to be coded from top to bottom in as few statements as possible. The structured programmers would use a "main" or "driver" subroutine to drive other subroutines. By 1985 the debate was over. The structured programmers had clearly won over the spaghetti code programmers. Not only was structured code more efficient, it was also was easier to maintain. There was a great gnashing of teeth by the spaghetti programmers but the evidence was overwhelming.
I am always leery of rules but in favor of strict guidelines. In ABAP the START-OF-SELECTION or any other event should not have one hundred lines of code in it. It is highly doubtful that there is justification for any FORM to contain one hundred lines of code. If there is more than one hundred lines of code then the programmer has not thought it through and has guaranteed that the program will be unnecessarily difficult to maintain. I have been too generous - fifty lines is probably too many. The number of lines really isn't the issue. An event or a subroutine (I know we are all doing objects now and don't code subroutines) should contain one task / function. Some general guidelines - one LOOP per FORM, one SELECT per FORM, one CASE per FORM. I know that someone can come up with a good reason for exceptions but that is precisely the point. Varying from the one function per FORM / EVENT should be an exception not a general practice. I have seen an SAP FORM that contained over 700 statements. The most expensive part of programming is maintenance. Adhering to strict guidelines can help minimize those expenses.

Thursday, November 10, 2005

Bill Gates Reads My Blog?

It seems that Bill Gates was reading my blog. Check the story about his latest memo to his employees:

Gates Memo Warns Of Disruptive Changes


He must of read my 'Short Post' on October 22 and decided that I was correct in my analysis.