New Announcements and Updates




SAP Web Client: A Comprehensive Guide for Developers

Price:
$79.95
Product Code:
H3192
Average Rating:
( 8 product reviews )
Availability:
In stock!
Format:
Quantity:
Bookmark and Share


Product Details

ISBN:
978-1-59229-389-6
Author:
Tzanko Stefanov, Armand Sezikeye, and Sanjeet Mall
Type:
Hardcover, 624 pages

Product Description and Table of Contents

• Build a full-fledged, enterprise-ready application using SAP Web Client
• Explore practical examples that demonstrate SAP Web Client development concepts in a clear, easy-to-follow manner
• Learn about BSP programming, GenIL programming, and UI configuration and personalization

This is your comprehensive guide to developing and enhancing applications with SAP Web Client. Focusing on development tasks and practical examples, this book will take you on a journey through the Web Client framework, discussing different programming layers and development activities via the use of practical examples, screenshots, and code. With the perfect balance between theory and practical guidance, this book will teach you everything you need to know about building a full-fledged, enterprise-ready application using Web Client.

Example Scenario
Learn about development in Web Client by exploring a detailed case study that serves as the basis for all examples discussed throughout the book.

GenIL Programming
Understand the foundation of GenIL programming and learn how to create a GenIL component.

Building Applications
Discover how to build an application with the help of detailed step-by-step instructions, code listings, and screenshots.

Custom Functionality
Master the process of leveraging existing SAP applications and adding custom functionality using Web Client.

Application Mash-ups
Explore the process of creating application mash-ups from both newly generated and existing standard SAP applications.
 

Highlights 

• BSP programming
• BOL models
• GenIL programming
• Application Enhancement Tool
• Design layer
• Extensibility
• UI building
• Component Workbench
• Web Service Tool
• MS Office integration

The Authors

Tzanko Stefanov has spent the last two years working on Web Client, delivering code-free enhancements, mash-ups, and rapid application. Armand Sezikeye is a development manager for the Web UI Tag Library implementation team and has extensive Web Client know-how. Sanjeet Mall is the vice president and chief solution architect in the SAP Customer Solution Management team.

Table of Contents

  • ... Introduction ... 15
  • ... Acknowledgments ... 21
  • 1 ... Introducing the Web Client UI Framework ... 23
  • 1.1 ... Main Components of the Web Client UI ... 24
  • 1.1.1 ... Header Area ... 25
  • 1.1.2 ... Navigation Area ... 28
  • 1.1.3 ... Entry Page ... 30
  • 1.1.4 ... Search Page ... 36
  • 1.1.5 ... Overview Page (OVP ... 39
  • 1.1.6 ... Assignment Blocks ... 41
  • 1.1.7 ... Interaction Concept ... 42
  • 1.2 ... Architecture ... 43
  • 1.3 ... Tools in Web Client UI ... 46
  • 1.3.1 ... Component Work Bench ... 48
  • 1.3.2 ... Skins and Skin Work Bench ... 49
  • 1.3.3 ... Configuration and Personalization ... 53
  • 1.4 ... Extensibility ... 58
  • 1.4.1 ... Overview ... 58
  • 1.4.2 ... Design Layer ... 64
  • 1.4.3 ... Web Service Tool ... 67
  • 1.4.4 ... Groupware ... 68
  • 1.4.5 ... Office and Adobe Integration ... 69
  • 1.5 ... Enterprise Search ... 69
  • 1.5.1 ... Overview ... 69
  • 1.5.2 ... Search Modeling Workbench ... 71
  • 1.6 ... Collaboration ... 72
  • 1.6.1 ... RSS Feeds ... 72
  • 1.6.2 ... Favorites and Tags ... 72
  • 1.6.3 ... Central Sharing Tool ... 73
  • 1.7 ... Sample Business Scenario ... 74
  • 1.8 ... Summary ... 76
  • 2 ... Introducing the GenIL Component ... 79
  • 2.1 ... Introduction ... 80
  • 2.1.1 ... Web Client UI Architecture ... 80
  • 2.1.2 ... Introduction to BOL and GenIL ... 81
  • 2.2 ... Creating your First GenIL Model ... 84
  • 2.2.1 ... GenIL Model Overview ... 85
  • 2.2.2 ... Defining a GenIL Model ... 86
  • 2.2.3 ... Creating a GenIL Model ... 87
  • 2.3 ... Implementing a GenIL Query ... 95
  • 2.3.1 ... Defining the Backend APIs ... 97
  • 2.3.2 ... Implementing GET_DYNAMIC_QUERY_RESULT ... 98
  • 2.3.3 ... Implementing Helper Methods ... 102
  • 2.3.4 ... Conclusion ... 104
  • 2.4 ... Introducing the BOL Browser ... 105
  • 2.5 ... Retrieving a BOL Entity ... 106
  • 2.5.1 ... BOL Splitting ... 107
  • 2.5.2 ... Container Objects ... 107
  • 2.5.3 ... Implementing GET_OBJECTS ... 108
  • 2.5.4 ... Bookings Backend API ... 112
  • 2.5.5 ... Reading Dependent Object Data ... 114
  • 2.5.6 ... Testing the Implementation ... 123
  • 2.6 ... Handling Container Lists and Objects ... 125
  • 2.7 ... Summary ... 129
  • 3 ... Completing Your GenIL Component ... 131
  • 3.1 ... Transaction Behavior ... 132
  • 3.2 ... Requesting a Lock ... 135
  • 3.2.1 ... Implementing LOCK_OBJECT ... 135
  • 3.2.2 ... Backend API ... 136
  • 3.2.3 ... Testing LOCK_OBJECT ... 139
  • 3.3 ... Creating a Root Object ... 139
  • 3.3.1 ... Implementing CREATE_OBJECTS ... 140
  • 3.3.2 ... Backend API ... 141
  • 3.3.3 ... Testing CREATE_OBJECTS ... 143
  • 3.4 ... Implementing the Object Modification Logic ... 144
  • 3.4.1 ... Implementing MODIFY_OBJECTS ... 146
  • 3.4.2 ... Data Modification via Backend APIs ... 151
  • 3.4.3 ... Modifications to Child Objects ... 152
  • 3.5 ... Persisting the Changes ... 160
  • 3.5.1 ... Implementing SAVE_OBJECTS ... 162
  • 3.5.2 ... Backend API for Data Persistence ... 164
  • 3.5.3 ... Testing SAVE_OBJECTS ... 167
  • 3.6 ... Deleting a Root Object ... 168
  • 3.6.1 ... Implementing DELETE_OBJECTS ... 170
  • 3.6.2 ... Backend API ... 172
  • 3.6.3 ... Testing SAVE_OBJECTS ... 174
  • 3.7 ... The Handler Concept ... 174
  • 3.7.1 ... Overview of the GenIL Handler APIs ... 175
  • 3.7.2 ... Handler Factory and Registration ... 177
  • 3.7.3 ... Handler Operations ... 178
  • 3.8 ... Implementing GenIL Handlers and Foreign Relationships ... 181
  • 3.8.1 ... Creating a GenIL Component ... 183
  • 3.8.2 ... Define the GenIL Model and Handler ... 184
  • 3.8.3 ... Implementing Query Operations ... 185
  • 3.8.4 ... Implementing Data Read ... 187
  • 3.8.5 ... Testing the New GenIL Component ... 188
  • 3.8.6 ... Processing Foreign Relations ... 190
  • 3.9 ... Summary ... 196
  • 4 ... Creating a Web Application with Business Server Pages ... 197
  • 4.1 ... Model View Controller in BSPs ... 198
  • 4.1.1 ... Data Binding ... 200
  • 4.1.2 ... Process Flow in a BSP Application ... 202
  • 4.2 ... Building a Search Application Using the BSP Programming Model ... 205
  • 4.2.1 ... The Main Component ... 207
  • 4.2.2 ... The Search View ... 209
  • 4.2.3 ... The Result View ... 216
  • 4.2.4 ... Handling the Search Event ... 219
  • 4.2.5 ... Conclusion ... 222
  • 4.3 ... Presentation Layer of a Web Client Application ... 222
  • 4.3.1 ... Component Concept in Web Client Framework ... 223
  • 4.3.2 ... Model View Controller in Web Client Component ... 224
  • 4.3.3 ... The Layout in a Web Client Component ... 226
  • 4.3.4 ... The Model in a Web Client Component ... 227
  • 4.3.5 ... Controllers in a Web Client Component ... 229
  • 4.3.6 ... The Runtime Repository ... 230
  • 4.4 ... Summary ... 232
  • 5 ... Creating a Web Client Application ... 233
  • 5.1 ... BOL Programming ... 234
  • 5.1.1 ... Overview ... 235
  • 5.1.2 ... Reading Data ... 238
  • 5.1.3 ... Creating and Modifying Data ... 246
  • 5.1.4 ... Deleting Data ... 250
  • 5.1.5 ... Locking ... 251
  • 5.1.6 ... Sorting BOL Collections ... 251
  • 5.1.7 ... Final Recommendations ... 253
  • 5.2 ... UI Component Development ... 253
  • 5.2.1 ... The Anatomy of the Hotel Booking Application ... 254
  • 5.2.2 ... Creating a Component and Defining the Model ... 255
  • 5.2.3 ... Creating a Search Page ... 258
  • 5.2.4 ... Creating a Custom Controller ... 270
  • 5.2.5 ... Creating Form Views ... 273
  • 5.2.6 ... Configuring Form Views ... 275
  • 5.2.7 ... Creating Table Views ... 276
  • 5.2.8 ... Creating an Overview Page ... 279
  • 5.2.9 ... Enabling Navigation inside a Component ... 281
  • 5.3 ... Summary ... 286
  • 6 ... Advanced Web Client Application Development and Integration ... 287
  • 6.1 ... Improving the Web Client Application ... 287
  • 6.1.1 ... Enable Central Editing ... 288
  • 6.1.2 ... Enabling Breadcrumb ... 295
  • 6.1.3 ... Implement Data Loss Pop-Up ... 297
  • 6.1.4 ... Using the GET_X_ and SET_ Methods ... 301
  • 6.1.5 ... Enabling Sorting in Tables ... 305
  • 6.1.6 ... Implement Dropdown List Boxes ... 307
  • 6.1.7 ... Implementing Simple F4 Help ... 310
  • 6.1.8 ... Implementing One-Click Actions ... 316
  • 6.2 ... Integrating a Web Client Application ... 319
  • 6.2.1 ... UI Object Type ... 319
  • 6.2.2 ... Create Entry Points to Application ... 321
  • 6.2.3 ... Work Area Component Repository ... 323
  • 6.2.4 ... Work Center Page ... 323
  • 6.2.5 ... Navigation Bar Profile ... 328
  • 6.2.6 ... Layout, Technical, and Functional Profiles ... 331
  • 6.2.7 ... Define Authorization Role ... 332
  • 6.2.8 ... Business Role Definition ... 333
  • 6.2.9 ... Adjust Authorization Role and Define Organizational Assignment ... 335
  • 6.2.10 ... Direct Link Groups ... 336
  • 6.3 ... Summary ... 338
  • 7 ... Enhancing Existing UI Components ... 341
  • 7.1 ... Enhancement Set Overview ... 342
  • 7.2 ... Create an Enhancement Set ... 344
  • 7.3 ... Enhancing a UI Component ... 345
  • 7.3.1 ... Enhancing a UI Element ... 347
  • 7.3.2 ... Adding a New View ... 353
  • 7.4 ... View Configurations ... 358
  • 7.4.1 ... Configuration Keys ... 358
  • 7.4.2 ... Text Determination ... 360
  • 7.5 ... Cross-Component Navigation ... 361
  • 7.5.1 ... Means of Cross-Component Navigation ... 362
  • 7.5.2 ... Invoking Navigation ... 363
  • 7.5.3 ... Testing the Navigation ... 369
  • 7.6 ... Outbound Plugs Delegation ... 370
  • 7.7 ... Summary ... 371
  • 8 ... Generating UI Components ... 373
  • 8.1 ... Generating a UI Component from BOL ... 374
  • 8.1.1 ... Using the Generation Wizard ... 375
  • 8.1.2 ... Analyzing Generation Results ... 384
  • 8.1.3 ... Testing the Generated UI Component ... 386
  • 8.1.4 ... Modifying the Generated UI Component ... 388
  • 8.2 ... Configuration and Personalization ... 397
  • 8.3 ... Attaching a Design Layer Object ... 402
  • 8.3.1 ... Design Object Assignments ... 403
  • 8.3.2 ... Creating a Design Object ... 404
  • 8.3.3 ... Creating DL Assignment ... 406
  • 8.3.4 ... Testing the DL Assignment ... 407
  • 8.4 ... Reusing Other Components within a Pop-Up ... 408
  • 8.4.1 ... Analyzing the Reusable Component ... 409
  • 8.4.2 ... Value Help Pop-up ... 410
  • 8.4.3 ... Analyzing the Results ... 413
  • 8.5 ... Summary ... 414
  • 9 ... Enhancing Applications with Fields and Tables ... 417
  • 9.1 ... Easy Enhancement Workbench ... 418
  • 9.2 ... Application Enhancement Tool ... 420
  • 9.3 ... Creating New Fields and Tables with the Application Enhancement Tool ... 423
  • 9.3.1 ... Starting the Application Enhancement Tool (AET) ... 424
  • 9.3.2 ... Creating a New Field ... 426
  • 9.3.3 ... Creating New Tables with the AET ... 435
  • 9.4 ... Field Types ... 440
  • 9.5 ... Navigation Fields ... 442
  • 9.6 ... Extending SAP CRM Interactive Reports ... 444
  • 9.7 ... Extending the Design Layer ... 451
  • 9.8 ... Summary ... 455
  • 10 ... Behavioral Extensibility ... 457
  • 10.1 ... Behavior Extensibility via BAdIs ... 457
  • 10.2 ... Adding Logic to Table Enhancements ... 460
  • 10.3 ... Creating a Calculated Field ... 463
  • 10.4 ... Introducing Global Attribute Tags ... 471
  • 10.5 ... Adding Custom BRF+ Operations ... 475
  • 10.6 ... Summary ... 480
  • 11 ... Rapid Applications and Mash-ups ... 481
  • 11.1 ... Rapid Applications ... 482
  • 11.1.1 ... Managing Rapid Applications ... 483
  • 11.1.2 ... Creating a Rapid Application ... 484
  • 11.1.3 ... Using and Configuring Your Rapid Application ... 492
  • 11.1.4 ... Extending the Default Implementation ... 496
  • 11.1.5 ... Web Service-Based Applications ... 500
  • 11.2 ... Application Mash-ups ... 504
  • 11.2.1 ... Mash-ups Overview ... 504
  • 11.2.2 ... Creating a Mash-up ... 504
  • 11.2.3 ... Enabling and Using a Mash-up ... 507
  • 11.3 ... Web Mash-ups ... 508
  • 11.3.1 ... A Mash-up Example ... 509
  • 11.3.2 ... Adding a Web Mash-up ... 509
  • 11.3.3 ... Testing and Enabling a Web Mash-up ... 511
  • 11.4 ... Summary ... 512
  • 12 ... Web Service Tool ... 515
  • 12.1 ... Using the Web Service Tool ... 516
  • 12.2 ... Enabling the Web Service Tool ... 523
  • 12.2.1 ... Implementing the GenIL Adaptations ... 524
  • 12.2.2 ... Creating a Web Service in WST ... 525
  • 12.3 ... Summary ... 528
  • 13 ... SAP CRM Integration with Microsoft Word and Adobe ... 529
  • 13.1 ... Integration Scenarios ... 530
  • 13.2 ... Technologies Involved in Integration ... 532
  • 13.3 ... Design Time and Run time ... 533
  • 13.3.1 ... Design Time ... 534
  • 13.3.2 ... Run Time ... 535
  • 13.4 ... Creating a Template ... 536
  • 13.5 ... Adobe Integration ... 545
  • 13.5.1 ... Creating the Template in Adobe ... 546
  • 13.5.2 ... When to Use Adobe ... 551
  • 13.6 ... Summary ... 552
  • 14 ... Introduction to Client-based Groupware Integration ... 553
  • 14.1 ... Business Processes Covered by cGWI ... 553
  • 14.1.1 ... Account Management ... 553
  • 14.1.2 ... Appointments and Tasks ... 554
  • 14.2 ... cGWI Architecture ... 555
  • 14.3 ... Configuring Client-based Groupware Integration ... 557
  • 14.3.1 ... Preparing the SAP CRM Server ... 557
  • 14.3.2 ... Synchronization Behavior ... 559
  • 14.4 ... Synchronization Profiles ... 561
  • 14.5 ... Installing cGWI on a Client Machine ... 568
  • 14.6 ... Extending the Functionality Offered by cGWI ... 569
  • 14.6.1 ... Extending Activity Transfer between SAP CRM and Microsoft Outlook ... 570
  • 14.6.2 ... Extending Contact Transfer between SAP CRM and Microsoft Outlook ... 572
  • 14.7 ... Summary ... 573
  • 15 ... Additional Topics ... 575
  • 15.1 ... Task-based UI ... 575
  • 15.1.1 ... Creating a Guided Activity Page ... 577
  • 15.1.2 ... Reusable Guided Activity Page ... 578
  • 15.2 ... Field Actions ... 588
  • 15.3 ... Flash Islands ... 593
  • 15.4 ... Transaction Launcher ... 596
  • 15.5 ... Performance Optimization ... 603
  • 15.6 ... Session Management ... 605
  • 15.7 ... Tag Library Overview ... 608
  • 15.8 ... Summary ... 610
  • ... The Authors ... 611
  • ... Index ... 613



Product Reviews


Showing reviews 1-4 of 8 | Next

  1. Excellent technical guide

    Posted by Dimiter Dimitrov on Apr 3rd, 2012

    I want to express my excellent impressions of the book. The study presents a very good overview of the main capabilities of SAP Web Client, but also offers most important technical aspects of the usage of the framework.
    Although for several months I am member of the development team who supports the product, and I have a direct contact with its developers, I can still find answers of my questions in this book. Especially valuable from my point of view are the chapters devoted to BOL / GenIL modeling. Based on a practical example, the book continues in a natural way with the application development, features of the framework, its extensibility and customization, and touches as well the integration aspects of the product.
    As a person with experience in programming and consultancy, I could say that the book is an indispensable reference for every, who will use the framework independently whether as developer or consultant – technical or functional one. Personally I use the book as a reference in my daily work and can recommend it as an excellent source of practical advices, features reference and best practices.


  2. Sample codes are not clear

    Posted by Jian on Oct 9th, 2011

    I am a abaper with 10 years experience and new to CRM7.

    I have just finished the Chapter 2 and tried to follow the exercises in Chapter 3. And I decide to give up and jump to the next chapter.

    Because the authors use a sets of Z objects and a Z class. Unfortunatly, they didn't give us all the details of definition of these the Z objects. It means some Z objects are refered in the codes, but I do not know how to define the structure.
    =====
    In page 138," in our implementation we use the GT_BUFFER_BOOKINGS genil component attribute as buffer."

    In page 157, "GT_BUFFER_PRODUCTS is a static table with attributes of ZCL_BOOKING_BACKEND_API."

    But there is no place tell us how to define these GT table.

    Following the exercises in the book, I have created several Z structures:

    ZBOL_BOOK_PRODUCTS_ATT
    ZBOL_BOOK_PRODUCTS_KEY

    But in some codes, it will refer to a new Z object, which is never been defined before.

    field-symbols: <LINE> type zbol_book_products_att_n.

    So I have to spend a lot of time to guess how the authors design the sample.

    I've left a comment in author's blog for another parameter issue:
    http://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/2553


  3. Covers Deep Topics Well

    Posted by Nigel James on Sep 26th, 2011

    The CRM UI has changed significantly over the course of the lifetime of the product. This book describes the latest incarnation of this UI which more than just a UI technology it is a whole MVC framework.
    The BOL and GenIL topics are the underlying layers to the technology and these complex topics are very well covered.
    As other reviewers have mentioned it would have been nice to get electonic package either with the book or as a download to reduce the work in trying the examples in the book. With that as it only flaw I can highly recommend this book to any CRM development team working on a CRM 7 or CRM 7 Ehp1 system.
    If you do not have a copy somewhere in the office you need to rectify that immediately. This book is an excellent reference.


    Disclosure Statement: I have been provided a complimentary copy of the book by one of the authors Tzanko Stefanov, in order to provide a public review.


  4. Exzellent book

    Posted by Michael Geising on Sep 19th, 2011

    When I first heard about this book, I was quite sure that I would not discover anything new and that I would not have to bother to buy it. After many years as a SAP CRM business and technical consultant and with the experience of many different programming projects in this area, I thought I had seen it all. But when I was given the book by one of its authors, I was surprised how many different aspects of SAP CRM Web UI it covered. Apart from the UI framework itself, it also covers issues such as groupware, Microsoft Office and Adobe integration (Interactive Forms and Flash Islands).

    I was also surprised how comprehensive it is and by the level of detail. I find all chapters to be very structured and well written. There are also many very good source code examples which are easy to apply. For all those developers new to the UI framework, I know that it can be pretty overwhelming in the beginning. But I am quite sure that this book helps a great deal to understand the fundamentals and to jump start your development.

    The only weakness maybe is that the book hardly mentions the use of AJAX and its potential for SAP CRM Web UI. Furthermore, I would have wished to see at least a small outlook on future developments such as EhP2. On the other hand, I can image that information on developments for EhP2 was simply not available at the time of writing.

    Notwithstanding the previous point, this is by far the best book I have seen on the topic and I have no hesitation in highly recommending it.


Showing reviews 1-4 of 8 | Next

Write your own product review
If you have purchased this book you can share your experience with others!
review guidelines

Find Similar Products by Category