Table of Contents

Open all
Close all
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