When it’s done
When it’s done is a running gag especially in computer game development that describes that a company has enough time to publish the software in a more or less bug free state – something that only very few companies can afford even if lots of companies claim that they do it. I can afford it. Early in the year I heard that my quite successful book about ABAP programming in BI was running out of stock and the publisher asked me to rework it and maybe add a chapter. I thought about it for a while and finally agreed. So the second edition of my book will be available end of october here.
Is it worth reading? I definitely think it is, otherwise I wouldn’t have written it. I received many positive reactions about the first edition and I think I made a good job in making the book better. So what did I add? There are some paragraphs about the exits in DTPs which are more or less for completion. The experiences developer probably understands this without reading my book. There are some pages about classes for master data reading, an exit that was added with 7.0 and helps you displaying texts and attributes for the master data in queries. It is something that most people don’t know that it exists and many of the others don’t know what it can do but I think that it is rarely needed. And then there is
Last year I started a big BPS project. Up to then I had a lot of experience about programming the BPS-Exit function but it was more used as a walkaround to do lots of data manipulation where a load process was too clumsy to use. But this was my first real planning project and I learned alot about variables, characteristic checks and all the other nice things that you are able to do with on the BPS. And one day I received an error message that I never received before:
FL 030: There are already 99 functions
We had created 99 function modules in one function group. This group was designed to handle all function modules for variables. And as you can see, we had a lot of them. It finally added up to 150 or so and even if we probably could have reduced it to the half because many function modules were quite similar it was still a big amount for what I thought was a medium sized project. So I thought about the reason for this. And I finally think I found out what it is:
In BI you need functions to correct errors that were made before – in planning you need functions to prevent errors.
All of these functions we wrote were made to reduce the amount of data a user had to enter – not because the users didn’t know what to enter but to prevent errors. The planning module was to be used by hundreds of people throughout the country and we knew that if one had a chance to enter something wrong there would be at least one user who would make this mistake. So all in all it was cheaper to implement an exit to prevent this mistake from happening instead of having the central staff check the data after each round of planning (which they had to do anyway but so they could focus on the relevant data).
For example I had two characteristics, one of them containing five values, the other one three. From these 15 combinations two were invalid. So we wrote a function module to populate a variable that filled the allowed values based on a second variable. Time to implement and test – two hours. Time saved to check results – maybe 30 minutes to an hour each planning round.
This year an Integrated Planning project was added to my work list – and what did I find out? The same problems, similar exits – but very few documentation and no practical examples. Additionally you need to implement classes instead of function modules which still makes experienced BI- and BPS-consultants shiver to the bone because they have no strong ABAP background. So the need for some explanation is definitely there. My book now contains different examples for variable implementation, characteristics checks and derivation and exit functions both for BPS and IP. Additionally I used the same examples for BPS and IP (without the variables because the BPS variable concept is a bit different) to help developers make the transition from one world to the other.
Before you ask, yes, the book will be available in English too. Translation is already ordered but up to now I have no release date. And yes, I would have loved to sign this book at the TechEd but it comes two weeks too late for it. But I took the time I needed to deliver it “when it’s done”.