Skip to Content

Every other day, and sometimes it feels like every other minute, the simple question comes up: “How to do X?”, usually with the qualifiers “Help!”, “Urgent!” or “????”. Most of these questions, when reading between the lines, also contain the additional qualifier “I have not read the documentation”.

In a way, this is understandable. Reading documentation is hard work and boring. However, we have to look at it also from the side of the person answering these questions. It is frustrating to feed people every day with a little spoon. Especially after a hard day’s work.

This Weblog attempts to point to interesting and relevant sources of information. It is not an answer to any question; no, it is the pointer to the answers!

Overview of the More Important Bits and Pieces

Business Server Pages (BSP) is just the tip of the iceberg. It builds on the foundations of many other people’shard work. By the time that the BSP runtime is started, we have already passed the Internet Communication Manager (ICM), the Internet Communication Framework (ICF), and the security group (Men in Black).

ICM is responsible for handling all HTTP communications at a low level. All incoming TCP/IP connections on opened ports are accepted, HTTP requests are read and mapped onto an existing or newly created session. After the HTTP request has been processed, ICM will take the HTTP response, and send it back to the browser. At the level that ICM works, we have only HTTP requests and responses as blobs. See transaction SMICM. A special variation of ICM is the Web Dispatcher. This is a standalone tool for HTTP load balancing.

ICF processes the HTTP request first by using the incoming URL to map onto the correct handler class (servlet in Java terminology!). In addition, ICF does the authentication process, and with the help of the security group, does an authority check (if configured), and some other basic features (activate gzip compression, debugging, etc). See transaction SICF.

BSP is started for all HTTP requests that are mapped onto the BSP handler in the ICF tree. Within BSP, the form fields from the incoming HTTP request are mapped onto data, and then a BSP page (or controller with views) is triggered to render out new HTML into the HTTP response.

Security aspects play an important role in all steps. However, for our daily problems, we seldom involve the security group (those with the dark sunglasses). See transaction STRUST.

The ABAP Language Group (our silent partner) is the last interesting part of the equation. Effectively, each BSP page or view is transformed into one ABAP class. As such, anything that can be used within an ABAP class method, should work on a BSP page. Our experience is that we nearly never involve the language colleagues. Only in cases of problems with a special language construct. Typical example would be a recent question on why tables with header lines do not work within a BSP page (= ABAP class) and what alternatives are available.

The application is actually the most important aspect in this picture. The above is the enabling technology that allows other groups to build complete Internet applications.

Houston, We Have a Problem ==> OSS

Before we start looking at general sources of information, let us first look at problems. Sometimes problems land in a mailbox, or in a newsgroup, where they gather dust. This is not the correct way to handle problems. Problems must be submitted to SAP via OSS.

There are a number of reasons for using OSS, versus sending someone an email, or trying a post on some forum.

  • A total team can read the problem, and immediately start working on the problem.
  • Updates to the problem, including questions from us, and additional information from you, is included in the same message, and available to the total team. If we queue the problem to another component, then we already have all the information contained in the OSS problem ticket.
  • Other people can see the same problem descriptions, and find the same solutions.
  • Your problem is not lost in some mailbox. Your problem even gets attention when one of us takes a break or is on vacation, or is even just stuck in long meetings.

The most important question is what queue to use. Our recommendation is to always consider using the application queue first. These developers know their application and its behavior, and can quickly tell if it is a real problem. They will usually have a list of “known” problems for their application, which could also help in faster processing.

To determine the correct OSS queue for a specific BSP application is relatively simple. Just double click on the application node in navigation tree on the left. Select the properties tab, and from there double click on the package name (also called “Development Class” in prior releases). For the specific package, again look at the Attributes/Properties tab. There the OSS queue (component) is listed.

In addition, below are some OSS queues that can be considered if one is sure about the problem, and where it belongs.

OSS Queue Use For
ICM: BC-CST-IC HTTP not working; problems with HTTP port numbers; HTTP logging and tracing; sizing for HTTP traffic (connections, threads); host naming
ICF: BC-MID-ICF Running applications anonymously; authority checking; debugging and breakpoints are not working; “Service not active” (rc=403) messages
BSP: BC-BSP Errors with the BSP runtime; rendering errors if the HTMLB libraries are used; JavaScript errors in the browser
Security: BC-SEC   Problems with installing X.509 certificates; problems with Single Sign On (SSO2) cookies; all problems with accepting SSO2 cookies from other sources, ex: Enterprise Portal.
ABAP: BC-ABA-LA Anything that seems to be related to the ABAP language, and can be reproduced without BSP in a normal report (transaction SE38)

SAP Notes

SAP Notes are used for ad-hoc communications between SAP and its customers. It is a very fast way to quickly describe problems and fixes, and get them out the door. However, often one loses the overview with many notes flying around. Therefore, more groups make “collection” notes that contain links to all relevant notes for that group.

Here are some of the more interesting Notes one should keep an eye on.

Group Note Nr Title
ICM 508300 ICM Patch Collection (6.20)
ICM 698017 ICM Patch Collection (6.40)
ICM 552286 Troubleshooting for SAP Web Dispatcher
ICF 517484 Inactive Services in the Internet Communication Framework
BSP 616900 BSP Frequently Asked Questions & Patch Collection per Service Pack
BSP 598860 Browsers supported by BSP
BSP 677118 Fully Qualified Domain Names Check
SEC 510007 Setting up SSL on the Web Application Server (Now tell us that 007 number was just an accident:)

SAP Notes can be read directly on SDN! On the navigation bar on the left, just enter the note number, and change the dropdown listbox to “SAP NetWeaver Notes”.

Unfortunately, this search is not working up to my expectations. Hopefully, the SDN developers will improve the feature to better find and display notes.

Recommended reading: “There are angels on SDN 😀”. Here Pankaj shows how to quickly build a URL together that will retrieve SAP Notes from SAP’s Service Market Place.

Documentation

“Read the Fine Manual” (RTFM) has always been the best advice one can give, and the best advice that one can receive! Help can be found at SAP’s Help Portal. Navigating the first few steps are slightly confusing, but thereafter the world of knowledge opens! See steps below. It is also possible to search the Help Portal as a selection in SDN.

Some interesting links directly to the documentation of the different groups are listed below.

BSP Extensions

BSP Extensions are used extensively for the layout of BSP pages and views. SAP actively ships the HTMLB extension that contains a core set of controls for rendering web pages. In addition, a number of other interesting extensions are available.

BSP Extension Description
HTMLB HTML Business for BSP
XHTMLB Extended HTML Business Library for BSP
PHTMLB Pattern HTML Business Library for BSP
BENCHMARK Evaluation of the Runtime Performance

To browse BSP Extensions, just change the selector in transaction SE80. Thereafter enter the name of the specific library. All the BSP elements for the specific extension will be shown in the tree on the left. For each element, one can browse the attributes by just selecting the element.

Online help is available for most libraries. Press the “Documentation” button!

On a BSP page, double clicking on the BSP element will do a forward navigation to the definition of the specific BSP element.

Example Programs

The best way to learn is to follow in the footsteps of other people. A number of interesting BSP applications are available to show how certain things are done.

Program Comments
IT00 Very old test program, from the days before BSP extensions. Contains many interesting examples of how to do HTML-like things in BSP.
ITMVC2, BSP_MODEL Example programs for MVC patterns.
HTMLB_SAMPLES, SBSPEXT_HTMLB, SBSPEXT_XHTMLB, SBSPEXT_PHTMLB Examples programs for the BSP extensions HTMLB, XHTMLB and PHTMLB.
SBSPEXT_TABLE More a test program that we use to test many different aspects of the HTMLB tableView renderer. Shows what can be done with tables.
ITSM Example program to show some ideas for session management in BSP.

SAP Developer Network

SDN is one of the more exiting developments within the last year from SAP. It has really opened up the communication flow among SAP developers world-wide. It is a community for developers from developers.

For BSP, there are two interesting resources in SDN. The first is a series of Weblogs. These are mostly technical articles, written to address a specific topic of interest at a very deep level. Just ignore all the “spam” Weblogs that insist on sitting in every category with their fluff.

The direct link to BSP Weblogs is: http://www.sdn.sap.com/irj/sdn/weblogs?blog=/weblogs/topic/24

The other interesting area on SDN is the forums. There is one forum dedicated to BSP.

Here it is possible to ask questions and get answers. Nevertheless, please keep the rules of engagement in mind. Problems should be in OSS. Simple/stupid questions are OK, but only after reading the documentation. It is good to first read some of the forum, to see if the specific topic you are interested in has not already been discussed. Consider searching through the forum using some keywords. See search area at the top of the forum.

BSP Books

This section lists books on BSP that we are aware of. Should new books be published, just send me a small email to update this list.

Web Programming with the SAP Web Application Server (ISBN 1-59229-013-2)  SAP Web Application Server: Entwicklung von Web-Anwendungen (ISBN 3-89842-213-5)   BSP-Extensions:Komfortables Webreporting mit HTMLB (ISBN 3-89842-943-1)  English version not yet available
To report this post you need to login first.

4 Comments

You must be Logged on to comment or reply to a post.

  1. Srinivasa Bhatta
    During the migration process problems have been reported for this blog. The blog content may look corrupt due to not supported HTML code on this platform. Please adjust the blog content manually before moving it to an official community.
    (0) 

Leave a Reply