To recap from the last weblog, we were just at the point where we were ready to start doing some real development in BSP. We had the tools, the servers, and the support from management. All we needed now was developers that knew how to use the tools.
You have to remember that at this point, there was no SDN. There were also no books published on the subject. We had some experiences and presentations from SAP conferences. However what you pick up from a conference is often just a good introduction to a subject. Quite often you need something more substantial to really get developing production applications. We also checked out what SAP offered as far as formal training. We did send one developer to the only class that SAP offered at the time. It was a course on 610. Although a good introduction, we really wanted to write MVC (Model-View-Controller) application with the HTMLB libraries(BSP Extensions). Since all this functionality was in 620, it wasn’t covered in the class.
We soon realized we were somewhat on our own. The decision was that one developer would try to learn as much as possible by studying the release notes, on-line help, and the samples in the system. This one developer would then hold a training course for the other developers in our group.
I began my research for the course by looking at every SAP provided BSP application in our system. I set breakpoints and debugged to see how they flowed. I copied some of them so that I could make changes and see what happened. Of particular helpfulness were the sample applications that began with IT* (IT01 – IT05 and ITMVC) and the ones that begin with SBSPEXT* (IE: SBSPEXT_HTMLB). Overall I learned a lot from these existing applications.
As I sat down to write the training materials I realized something: there is a lot of new functionality in ABAP going from 46C to 620 in addition to BSP. My training was slowly changing from BSP specific to ABAP Delta Training. To give you an idea of what the final training looked like I have included the Table of Contents from the course:
Unit 1 SE80 in 620
Unit 2 New Basic Syntax
Unit 3 Object Orientation Extensions
Unit 4 New Exception Handling
Unit 5 Java Script
Unit 6 XML Processing
Unit 7 Sending E-Mail
Unit 8 BSP (General)
Unit 9 BSP (Custom Tags)
As you can see, BSP ended up only being about 1 day of our 3 day training course.
Overall I think we did the best that we could with the information we had to work with. Our developers were off to a better start than if they all had to do the research on their own. If we were starting today we would do the same, but we would have additional resources. Now we have SDN. Between the weblogs and the forums, there are plenty of new learning opportunities every day. I would look especially at any of the weblogs authored by Brian McKellar. There is also a nice introductory book that can be found on the SAP-Press website.
With our training in hand we were now ready to start developing our first two real business applications in BSP. One was going to be an Exchange Rate website and the other was going to be an Engineering Change website. Something very interesting happened as we started these two applications. We assigned two different developers to each application. These two developers had very different backgrounds and therefore the finished applications ended up looking very different.
I was one of the two developers. My background was heavily ABAP with almost no outside web development experience. The other developer was a traditional web developer with a background in ASP and ColdFusion, but very new to ABAP.
The developer with the web background had a harder time separating this presentation and application logic using MVC because he was used to mixing them in ASP. I found myself liking MVC because it allowed me to program web applications very similar to the way I would program a dynpro. Also I was already using Global ABAP classes for my application logic in 46C dynpros.
Over the past year we have seen that the use of the BSP Extensions has paid off. With newer support packages, SAP has enhanced the code within these Extensions. I will cover the functionality we found in these extensions in more detail in Part VI. Over time we saw that rendering performance increased and the visual look of the extensions got better with the introduction of new Designs and Themes. The applications that were developed using these Extensions are able to take advantage of these new features with little or no coding changes. The users also appreciated the common user interface that begins to form via the use of the extensions. What they learn from the use of one website can be reused in others.
ABAPers and BSP
People usually look at me funny when I say this; but I think that developers with a good solid background in SAP and ABAP will have an easier time developing with BSP than a traditional web developer. The concepts used in BSP web development match well with those of traditional ABAP development. I think BSP feels like the natural progression of ABAP. Combine that with the fact that you are quite often accessing and building addtional business logic using ABAP in the backend, and your ABAP developers should right at home.
For all you code-junkies, I promise a fix in the next edition of this weblog. I will have at least a small amount of sample code. We will talk about RFCs and the BAPI Browser.
As I close today I will leave you with a screen shot of our first ‘Productive’ BSP application. In the winter of 2002, most of our team was in Thailand for our R/3 implementation. Although it was hot enough to fry an egg on the sidewalk in Thailand, it was snowing back home in Indiana. To make our team feel a little more connected to home, we created a website that they could go to in order to get pictures of home. Actually we used the SAP Content and Cache Server to store the documents so that they could retrieve them quickly (but the details on that would be a story for another WebLog).