Sometimes, SAP’s Customer Relationship Management (CRM) gives the impression of being the enfant terrible of the Business Suite. When, a few years back, Web Dynpro was announced as SAP’s future user interface technology, CRM came up with their own user interface which was not based on Web Dynpro but on a proprietary solution available only to CRM. It looked vaguely similar to the Enterprise Portal (L-shaped navigational frame) but didn’t use it. Instead, CRM had its own navigational frame, role concept, and of course programming technique for user interfaces. Why on Earth did SAP have to develop two different user interface technologies for web programming on top of the ABAP server? (By the way, Web Client UI but not Web Dynpro uses BSP as an underlying technology layer.)
The cause for the confusion is easy to understand. When SAP was forced to come out with a nifty, web-based user interface for CRM, Web Dynpro wasn’t ready. Based on the rumours I have heard, the specification concept papers were almost completed, and I assume there must have been some prototypes lying around. CRM didn’t have the time to wait until Web Dynpro was available so they took the concept papers, implemented the parts they liked and took the liberty to deviate where they felt like it.
The result was a framework that bears many similarities with Web Dynpro:
Fig. 1: Web Client UI Framework Design Time in ECC 6.0
The design time uses some of the same icons to represent components, custom controllers, and other building blocks. Even most of the classes bear the infix “_WD_”, i.e. their names start with CL_BSP_WD_. There are more similarities, but of course also huge differences and some real advantages, about which I will blog in future instalments. For now, let it suffice that if you understand Web Dynpro programming and have a basic grasp of web programming, you will find working with the Web Client UI Framework rather easy.
Each application in the Web Client UI Framework consists of three layers:
Fig. 2: Architecture of the Framework
The distinguishing feature of the Web Client UI Framework is the Business Layer consisting of BOL and GenIL, and more importantly the fact that the Presentation Layer is aware of the the Business Layer: Business Objects are exposed to the Presentation Layer in a standardized, consistent way. The Presentation Layer has access to BOL metadata and “knows” the object model, which objects are search objects and which represent business objects, which methods and attributes each object has, and how to represent them in the user interface.
It “knows” how to lock or unlock an entity, how to access related objects (child or parent nodes connected through composition or association). It can rely on a standardized behaviourof the business objects as far as transactionality, locking, instance lifecycle, and so on are concerned.
This puts the Presentation Layer in the position to easily implement CRUD (Create, Read, Update, Delete) user interfaces for BOL entities: The programmer doesn’t have to bother with all the complicated code that is identical in all entity maintenance screens such as searching and picking objects, displaying them, switching between display and edit mode, locking and unlocking objects, cancelling changes (and reverting to the previous state) or saving them, and so on. All this is extremely tedious if you have to code it by hand. By being “BO-aware”, the Presentation Layer of the Web Client UI Framework protects you from implementing tons of boilerplate code, giving it a substantial edge over Web Dynpro, which is – as of now – not “BO-aware”.
As of CRM 7.0, all of CRM’s user interfaces have been migrated to the Web Client UI Framework. Customers and partners who have made their own extensions to SAPGui-based transaction CRMD_ORDER or web-based CRM user interfaces in earlier releases must migrate to Web Client UI Framework 7.0. That is bad news for many who would rather not reprogram their user interfaces in a different technology, especially if they have invested in Web Dynpro training and learn now that they have to invest more in Web Client UI Framework training for their developers. It is also bad news for users of the SAP Business Partner, but I will blog about this subject separately.
Fig. 3: Web Client UI Framework in ERP 6.0 EHP 4
The good news is that as of Web Client UI Framework Release 7.0 (WEBCUIF 700), the one that comes with CRM 7.0, the framework is available not only in CRM systems but also in the ERP system. In fact, it has been in General Availability since 21/11/2008 (!) on any ABAP system with NetWeaver 7.0 EHP 1. This is the case for
I don’t know which other applications are already on ABAP 7.01 but they, too, should be compatible with WEBCUIF 7.00.
Web Client UI Framework 7.00 is automatically part of ERP 6.0 EHP 4 (it comes with the installation of EHP 4) as well as CRM 7.0. On other ABAP systems, you can check if software component WEBCUIF 7.00 is installed, and, if you are on ABAP 7.01, it should be possible to install WEBCUIF as an ABAP Add-on. Please refer to the notes below for further information, especially about the risks and restrictions for your future upgrade path.
Exploring a bit in our ERP 6.0 EHP 4 sandbox, I found most of the framework to be present: The BOL and GenIL layers (including model browser and BOL browser), the UI framework layer, design time, runtime, BSP extensions, and even the start UI frame application. Additionally, there are some sample UI and BOL/GenIL components based on the SFLIGHT application.
Most of the nodes in the customizing tree (SPRO) as well as the transaction codes for table view and viewcluster maintenance are missing, so you have to know the names of the table views and go directly through transaction SM31.
In order to get it to work and explore the sample applications, I had to
I will keep exploring the framework and keep you posted about my progress. I will also try to blog about the underlying BOL and GenIL layers and their role in application development. Finally, I’ll write about the impact on SAP Business Partner.