Skip to Content

New Book on Web Client UI Development

It has been on SAP Press’ web site for some time now, but it finally made it into the featured releases section. By ‘it’ I am referring to the book that I co-authored – ‘SAP Web Client: A Comprehensive Guide for Developers’.

About one year ago, together with my friends Armand and Sanjeet, we decided that it is time to put into use our knowledge of what is more commonly known as the CRM Web Client UI framework. We thought that this would provide us with a sense of achievement, while delivering information about a product that is widely used but yet poorly understood. The typical SAP ABAP developers know ABAP WebDynpro and probably BSP Application Programming but they often lack knowledge in the UI framework that powers CRM. Their only source of information was SAP Help and the SDN community. Well, there was also another book called ‘SAP CRM Web Client Customizing and Development’ but we felt that it is not that development oriented. Although I must say it provides quite a comprehensive overview of the framework and its customizing. In the meantime it turned out that our former colleagues Tim and Uwe are working on a similar project together with Michael Füchsle. But SAP Press assured us that there is room for two such books – one for the German and another one for the English speaking audiences. So if you prefer to read in German we encourage you to check ‘SAP Web Client’, again by SAP Press.

Those of you familiar with SAP CRM are very much aware of the Web Client UI. Few years ago the CRM organization figured out that ABAP WebDynpro cannot meet its specific requirement. As time was of an essence, the man in charge of CRM at SAP – Bob Stutz (a person that we all deeply respect) – decided that CRM shall develop its own UI framework. The framework would be based on the BSP technology and use some of the architectural principals of Webdynpro. CRM took an existing framework developed by the Interaction Center (IC) team and assembled development and product management teams. Armand, Sanjeet and I were part of those teams. This is how we got introduced to the framework, contributed to it and ultimately fell in love with it.

So what you will find in this book? The reader will be walked through various development concepts releted to the Web Client UI framework. First we give a general overview of the Web Client UI. But as of chapter 2 it becomes clear that the book is mostly about developing applications. We provide comprehensive and example based overview of the GenIL and BOL layers. Next we give the readers the basics of the BSP application programing and how it relates to building Web Client UI components. We cover not only the basics of the UI component development, but also explore topics like navigation, popups, search helps, etc. With that we introduce the readers to the foundamentals of the Web Client UI. Next we go into the customer enhancement concepts. The readers will learn how to programatically enhance SAP components. We slowly transition towards the tools that support that process and go into extensibility, rapid applications and mashups. At the end of these chapters the reader will be able to add content to the Web UI without writing a single line of ABAP code. The last chapters deal with groupware integration and levaraging Word and Adobe, together with CRM Web Services towards adding value for the end users. The last chapter deals with some “left-over” and yet very important topics like task based UI, actions on fields, transaction launcher, session management and others. You can see the list of chapters at the web page of the book:

Keep in mind that this is quite a technical book. The topic presentation always revolves around examples. We have tried to stick to one an imaginary use case that we implement via different techniques. As a result, the reader is not distracted by the story and can focus on the implementation task. Sometimes we deviate and present other examples but this is relatively rare.

The focus of the book is CRM 7.0 EhP1. This is the latest release (from this year) of the Web Client UI framework. Therefore, we believe that it will be useful even to the CRM gurus – simply because it covers the newest features.

To summarize, if you want to become a CRM developer or are just curious of this beast called the Web Client UI, go ahead and get this book. There is a 10% discount voucher for the SDN users when purchasing the book from SAP Press: WEBCLIENTSDN. 

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

    I will definitely buy and also suggest to my team members.

    Harshit Kumar

  • Already ordered, waiting for the delivery 🙂
  • Hi Tzanko,

    Excellent work and the book looks rich with content.

    Unfortunately the shipping charge from US to UK is $ 41, when ordering from SAP Press :-(. Hence will check for other options to get a copy of this.

    BTW not sure how to claim this voucher as well, could you please help?


  • I really liked the existing CRM Web Client Customizing and Development book when I started with CRM developments. It gives a nice and clear overview of the capabilities of the Web UI framework. Today I got to read the online version of this book and I’m really liking it! It does have some overlap with the old book but it contains a lot of new (CRM 7.0 Ehp1) features and seems well fit for advanced CRM developers. Great job!
  • I got my copy in the first week of July. A must have for any CRM technical consultant. A great book indeed.
  • Thanks for your effort, I was searching for a book / detailed information related to Web UI for some time, will try to buy this book.
  • Had a look at the sample chapter that is available of the book (Have a look at SAP-PRESS.DE, it is not availble on the .COM site for whatever reason). Its about designing new GenIL components. Though I have build one or two already it is always good to get some new insights.

    Really looking forward to some background on EHP1 stuff 🙂

    Hope the rest of the book is as good. Gonna order it soon. Though it is a little bit sad that I can not use the discount and have to pay the $ price in euros which adds 50% to the overall cost.

  • This will be a great help through this book .
  • Thank you so much: this book is GREAT. I ve been working on CRM WebUI for more than 3 years now and I did not expect to learn anything new about BOL/GENIL programming, UI components, etc. but I did… All CRM developers (SAP incl. 🙂 should definitely read it very carefully.
    Warm regards,
  • this blog contains link for the books to refer. But it is better to refer through amazon where we can see initially some content related to the book
  • Hi Tzanko,

    • Hello Jian,

      Sorry I was away and it took me some time to respond to your question. I must say that reading this book requires a solid understanding of ABAP. I would suggest that you try not to fast forward through the code without fully grasping it.

      Regarding your specific question -> you did a typo. Page 116 says that you should call  zcl_booking_backend_api=>read_product rather than  zcl_booking_backend_api=>read_productS (the second one ends with S). Basically, the code in the book is fine. Read_product expects ES_PRODUCT_ATT of TYPE ZBOL_BOOK_PRODUCTS_ATT. Read_productS obviously takes a table: ET_PROD_ATT  TYPE ZBOL_BOOK_PRODUCTS_T_ATT.

  • Hello Tzanko,

    I’ve purchased your book and it is a must-read book for CRM technical developer.

    I want to ask about CRM_OFFICE_TEMPLATE_BADI sample implementation. I want to add custom fields in office integration and it seems the recommended way is via implementing this BAdI

    The book didn’t give sample code / implementation for this BAdI. There’s not any references in SDN forum either. Could you please provide the example of this BAdI implementatin ?

    Thank you.

    • Hello Agus,

      I believe your problem is not the implementation of the Badi but the fact that you cannot insert the attributes in your document template. Correct me if I am wrong 🙂
      What if you try to insert these manually – directly type in the field within brackets – <<fieldname>>. Let me know if this works. In the meantime, I will follow up with one of the co-authors.


      • Hello Tzanko,

        Thank you for your fast reply 🙂

        Currently I have implemented method get_attributes like this

          DATA: ls_attr TYPE CRM_KW_TEMP_ATTR,
                lt_attr TYPE CRM_KW_TEMP_ATTR_TAB.
        *  IF iv_wsname = ‘ZTESTQUO001’.
            ls_attr-NAME = ‘CustomAddr’.
            ls_attr-DESCRIPTION = ‘Custom Address’.
            INSERT ls_attr INTO TABLE lt_attr.
            ct_attributes = lt_attr.
        *  ENDIF.

        and redefined method for get_values also like this:
          DATA: ls_val TYPE CRM_KW_TEMP_VALUE,
                lt_val TYPE CRM_KW_TEMP_VALUE_TAB.
        *  IF iv_wsname = ‘ZTESTQUO001’.
            ls_val-NAME = ‘CustomAddr’.
            ls_val-VALUE = ‘Sudirman street 20th’.
            INSERT ls_val INTO TABLE lt_val.
            ct_values = lt_val .
        *  ENDIF.

        Is this the right way? And thanks for your suggestion , I can add the field to the document:)

        Is it possible to have custom field items using this BAdI (such as internal table) and show the fields in document as table (for example products name , price, quantities per product) ? If possible , how to do it ?

        Thank you.


  • Hi  Tzanko Stefanov,

    Could you please let me know in the class=>method in page 112 ZCL_BOOKINGS_BACKEND_API=>READ_BOOKINGS, to which one does internal table  gt_buffer_bookings refer to?

    Code snippet:



    Thanks & Regards,



    • Yes, I found.

      GT_BUFFER_BOOKINGS  as global internal table type table type having line type ‘ZBOOKING_RESERV’.

      We could skip the code for gt_buffer_bookings and go ahead with the select from DB directly as well.