Skip to Content

Exposing SAP over the Web

A long time ago I wrote a application server for SAP. It was written in Perl for an Apache/mod_Perl system on a Linux box. On the SAP side it communicated using the CPAN SAP::Rfc module to SAP using standard SAP RFC communication, and to the human user using web pages templated in CPAN Template Toolkit 2 engine.

Built on this application server we built a web process that automated standard SAP Service Managment. The users hated using the SAP GUI but were perfetly happy to carry out the exact same processes if it was presented to them in a web browser!

Because the backend process are all standalone ABAP function calls it allowed us to very easily test and deploy the solution without having to deal with the complexity of a combined system (e.g. ITS or using Business Connector).

We have used the system now for many years, so sucessfully that last year we used the same appserver to create a realtime report from our manufacturing system to show on the intranet. It’s possible that we may use the same app server again to create notifications on our intranet.

Our solution may not be SAP standard WebDynpro, but it has the advantage that it worked when we need it, it’s a lot faster than WebDynpro (when we compared the two) and it still works prefectly well on our recently upgraded ECC06 boxes.

Given that we may use the code base again, it’s probably worth dusting it off, upgrading it all to the latest code on CPAN and the latest version of SAP’s Rfc SDK. It may be it may even be worth releasing on CPAN so others can use it…

You must be Logged on to comment or reply to a post.
  • Hi Adam,

    thanks for your blog.

    I wonder if you can expand on why you consider a web solution using ITS or Business Connector introduces "the complexity of a combined system" while the same solution using an Apache server does not?

    Have you considered using the BSP programming model at all?

    Graham Robbo

    • We were using ITS and Business Connector (BC) when I joined the company. The basic problem we faced was they we didn't have deep skills in either tool and to be honest the results were dire.

      In the initial design of the project where we used SAP::Rfc we built the web site using SAP, BC and a front end web server that served static files and such. It was terribly unreliable and performance was dreadful. However the users liked the fact it didn't look like a SAP application.

      There were problems in the design, logic had become scattered in the SAP ABAP and BC layers and it was awful to de-bug any problems. So we decided to redesign it all.

      Our first move was to put all the logic into the ABAP layer where we can easily debug it de-coupled from the web front end. This allowed us to fix long standing bugs we couldn't get at when BC was involved and we fixed bugs we knew were there but had no idea where they were. We also gained a drastic performance boosts, ABAP is a lot faster than BC however you look at it.

      The second phase was the front end, all that did was collect user input, push it into SAP, and template the output from SAP back into web pages. We used Template Toolkit which is a very standard Perl templating engine which is very fast. If we were doing it again you would use AJAX in the front end to make it really slick but we did the design before that was available.

      It is possible that BC or ITS could have been used better, but we didn't have strong skills with them, but the original design was too complex with code all over the place and lots of bottlenecks and problems. The revised design is MUCH simpler and has proved to be extremely reliable and fast in use.

      At the end of the day you are better building on your strengths than your weaknesses, and simpler solutions are usually more reliable than complex ones...

  • I'd be very interested in seeing this, if you were able to publicly release it! I've been tempted to do the same thing myself in the past.