Skip to Content

CRM as the enfant terrible

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.)

Historical causes

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.

Similarities with Web Dynpro

The result was a framework that bears many similarities with Web Dynpro:

  • generative approach
  • based on the Model-View-Controller (MVC) paradigm
  • window controllers, view controllers, component controllers and custom controllers each possess a context which is structured as a tree and may be bound to the context of other controllers
  • views and windows possess inbound and outbound plugs for navigation
  • applications are built out of components, which expose component interfaces
  • context nodes of the component controller may be exposed in the component interface for cross-component binding
  • elements of the view context may be used in the user interface

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.

BO-Awareness: The competitive edge of the framework’s architecture

Each application in the Web Client UI Framework consists of three layers:

  • The Presentation or UI layer is responsible for the visual part of the application. It consists of web pages that are rendered at runtime on the basis of BSP extensions, and underlying controller classes that contain navigation logic and calls to business logic.
  • The Business Layer consists of the BOL (Business Object Layer) and the GenIL (Generic Interaction Layer). The BOL encapsulates the business object data and state and exposes them to the presentation layer and programming APIs in a standard way. The GenIL communicates with the underlying application engine, e.g. SAP CRM.
  • The Application Layer represents the business application engine.

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”.

Current state of Web Client UI Framework in CRM

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

Current state of Web Client UI Framework beyond CRM

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

  • CRM 7.0
  • ERP 6.0 EHP 4
  • NetWeaver ABAP 7.0 EHP 1 (such as the SCN trial)

I don’t know which other applications are already on ABAP 7.01 but they, too, should be compatible with WEBCUIF 7.00.

Installation

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.

Getting it to work on the ERP system

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

  • start up the ICM (transaction SMICM)
  • create a business role (transaction CRMC_UI_PROFILE) and assign it to navigational bar profile UIF
  • assign it to my user (transaction SU3, parameter id CRM_UI_PROFILE, value * or name of the business role)
  • activate all the CRM-related ICF nodes (transaction SICF, nodes /sap/bc/bsp/sap/ and below, see related note 1295006)
  • enable single sign-on on the ABAP system (note 612670)

Next steps

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.

Related notes

Further resources

To report this post you need to login first.

20 Comments

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

  1. Twan van den Broek
    Great blog finally understand why SAP chose for ‘BSP’ in stead of WD for CRM.

    Need to get my hands dirty to really understand:
    “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.”

    But, thanks Thorsten!

    (0) 
  2. Tobias Trapp
    Hi Thorsten,

    great job! Will you blog how to create a „Hello World“ application, too?

    I’m glad that there is another framework that is business object aware. In my opinion this is missing in WD4A with the effect that you’ll have to have to encode your own application classes that use your business objects. This is not so difficult but it takes some time to put it all together: ABAP Object Services have no generic locking functionality for example.  There is the possibility to enable them to Business Workflow but still you have to build bridges to ArchiveLink / Records Management, Generic Object Services and so on.  It seems to me that SAP forgot the power of business object awareness in their some of their new ERP frameworks. And I recommend CE guys from SAP should have a look at it, too because BOL&GenIL contains a lot of useful architectural patterns that could improve CAF.

    Cheers,
    Tobias

    (0) 
    1. Thomas Jung
      > In my opinion this is missing in WD4A with the effect that you’ll have to have to encode your own application classes that use your business objects.

      In NetWeaver 7.02 you can use the BOL/GenIL within the WDA Floorplan Manager. The BOL layer can basically act as a feeder. There is a new interface (IF_FPM_FEEDER_MODEL) to help with the BOL integration and the new Wiring feature of the FPM configuration.

      (0) 
  3. Roel van den Berge
    I don’t know how you do it Thorsten. Last week the CRM DeepDive workshop and now a quality blog about taking it to the next level. Seriously impressive!

    I’m curious to see what SAP’s plans are with the CRM WebUI Framework. Surely the WebUI still needs some work, mainly in the area of performance, but this could be a successor of Web Dynpro or am I wrong?

    From an ABAP developer point-of-view I like the BOL/GenIL concept because it takes away a lot of the repetitive tasks that you described. And don’t forget the buffer mechanisms which increase the performance. Within the CRM development environment I use BOL-programming where possible and that is in most cases. I really like to see that in ECC systems as well.

    I can recommend the SAP Press book SAP CRM Web Client Customizing and Development by Michael Füchsle and Matthias E. Zierke (english translation). It is a complete guide to the SAP CRM WebUI and contains a lot of good examples.

    Thank you for sharing your steps to get it to work on an ECC system. I tried it yesterday and it really is that simple.

    Looking forward to your other blogs! Maybe a session about it on the SAP Inside Track NL in november? 🙂

    Cheers, Roel

    (0) 
    1. Thomas Jung
      >but this could be a successor of Web Dynpro or am I wrong?
      That’s certainly not the reason for the inclusion of CRMUI in ERP. There are no plans to replace the usage of Web Dynpro ABAP with CRMUI in other parts of the Suite. You will see an increased used of the BOL/GenIL in other parts of the Suite – particularly now in 7.02 where we have functionality in the WDA Floorplan Manager to utilize the BOL layer as a Feeder basically.

      A couple of pieces of information on this topic from the SAP UI Strategy Presentation:

      WDA and the Floorplan Manager are SAP’s Standard UI development model for developing transactional Web-based SAP Business Applications and Extensions running on SAP NetWeaver AS ABAP. They are used for development of transactional web application UIs that work within the SAP Business Suite. They are the primary UI technology for ERP, SRM, SCM and PLM.

      CRM Web Client UI Framework is for the development of new applications that work with SAP CRM or other applications that use the Web Client UI Framework.

      (0) 
  4. Nigel James
    This is a great blog Thorsten. Thanks for taking the time and effort.

    It would be great to see more bol and genil apps in the remainder of the business suite.

    Nigel

    (0) 
  5. Harshit Kumar
    Thorsten,

    Thank You Very Much for sharing this important info. I do believe that Web UI would now be given it’s long due credit and CRM folks should finally be happy having mastered the art!

    Regards,
    Harshit

    (0) 
  6. Christian Drumm
    Hi Thorsten,

    are you sure about the availability of the Web Client UI Framework in the NetWeaver Trail? I just checked my installation and could find it….

    Nevertheless, nice blog post.

    Christian

    (0) 
    1. Thorsten Franz Post author
      Hi Christian,
      It is not automatically delivered (pre-installed) on pure NetWeaver ABAP systems but may be installed as an ABAP add-on. It’s just a regular software component (WEBCUIF 700) that may be downloaded from Service Marketplace and installed via transaction SAINT.
      But at the moment I don’t recommend trying to install it on an SCN trial version. First of all, you’d need to install the right NetWeaver support package level. Secondly, it’s not easy to get SAINT to work on the SCN trial version. Thirdly, this would probably violate many license agreements for the trial version as well as the downloaded support packages and WEBCUIF component. So don’t do it.
      But if you have legal pure NetWeaver systems sandboxes in your company, you should be able to put aside an ABAP sandbox of an SAP NetWeaver ABAP EHP 1 SP 5 system and install WEBCUIF 700 SP 5. The SAPnet notes in the blog should direct you to the appropriate documentation.
      Cheers,
      Thorsten
      (0) 
  7. John Moy
    Thanks for the interesting blog Thorsten. 

    I have not personally constructed anything using this framework, but we have CRM 7 in our organisation and the architecture looks impressive.

    It does beg the question however …. what is the underlying reason that SAP would port this to ERP?  If SAP was every wanting to standardise all ABAP environments on Web Dynpro ABAP, I wouldn’t have expected them to port this from CRM to ERP!  After all, including this technology in ERP gives SAP the added headache of supporting it in this environment.

    Perhaps some underlying elements of this technology are going to be leveraged by WDA and that is why it was ported?  (eg. BOL)

    From a governance standpoint, this creates yet another UI technology (although I do know it is based on BSP) available to developers in ERP that we would need to keep an eye on.  It would be good to know from SAP what value it adds to ERP, and whether it will be supported into the future.

    (0) 
  8. J. Dokter
    Thorsten,

    Indeed a very good story on the decision and strategy of SAP to not go for WD4A for CRM. We had a big discussion on it during the ramp-up workshops in Walldorf, but now it’s clear.

    Mentioning that the new Web Client UI Framework is also available in ERP 6.0 from EhP4, do you know if the framework can be used for the HR Employee Interaction Center scenario? In the standard system, it is still based on the CRM 5.0 technology and not the new framework.

    Really curious…

    Regards,
    Jacques Dokter

    (0) 
    1. Thorsten Franz Post author
      Hi Jacques,
      Thank you for your kind words. Sorry, I don’t know if and how WEBCUIF can be used in HCM Employee Interaction Center scenarios. Perhaps you can find the answer in the HCM release notes?
      Cheers,
      Thorsten
      (0) 

Leave a Reply