This unique book on SAP's new Java-based user interface (UI) technology teaches readers how to leverage the full power of Web Dynpro-taking it well beyond the standard drag and drop functionality. You'll start with a detailed introduction to the Web Dynpro basics like MVC Design Pattern, the general architecture, event handling, and the phase model. Then, benefit from expert guidance on how to create your own Web Dynpro applications, with volumes of practical insights on the dos and don'ts of Web Dynpro Programming. The authors provide you with detailed sections on the use of the Adaptive RFC layer, as well as Dynamic Programming techniques, to name just a few. This exceptional book from the SAP NetWeaver ESSENTIALS series is complemented by an in-depth class and interface reference, which further assists readers in their efforts to modify existing objects, design custom controllers, and much more.
Reihe
Sprache
Verlagsort
Zielgruppe
Editions-Typ
Maße
Höhe: 24 cm
Breite: 16.8 cm
ISBN-13
978-1-59229-038-3 (9781592290383)
Schweitzer Klassifikation
Autor*in
Chris Whealy first started working on SAP R/2 systems in 1993 making assembler and ABAP modifications to the RV and RF modules. With the launch of SAP R/3 version 2.0, he started working in the Basis area performing installations, upgrades and system administration. This work went hand in hand with his on going ABAP work. Joining SAP UK in May 1995, Chris has always had an interest in custom interfaces into and out of the R/3 system, so in 1996 when the internet boom started to take hold, he began to focus on browser based interfaces to R/3 using SAP's Internet Transaction Server. Chris has worked with SAP's web based technology as it has grown and matured, and in late 2002 turned his attention to Web Dynpro. Chris spent a significant proportion of 2003 working closely with the Web Dynpro development team in Walldorf both learning the new technology and documenting its inner workings. In October 2003, Chris was able to put his knowledge into practice when he started work as the lead technical consultant for a large Web Dynpro based project at the UK subsidiary of a major international Tax and Audit firm.
Preface ... 15
1. Introduction ... 19
... 1.1 What is Web Dynpro? ... 19
... 1.2 What is the design philosophy behind Web Dynpro? ... 19
... 1.3 Improving the user's experience ... 19
... 1.4 Building a high-fidelity Web user interface ... 20
... 1.5 How is Web Dynpro different from other Web development tools? ... 20
... 1.6 What is the underlying design concept? ... 21
2. Designing a Web Dynpro application ... 27
... 2.1 Analysis phase ... 27
... 2.2 Design phase ... 27
... 2.3 Implementation phase ... 31
3. General architecture ... 33
... 3.1 Web Dynpro Framework ... 33
... 3.2 Application ... 33
... 3.3 Component ... 36
... 3.4 Controller ... 38
... 3.5 View ... 43
... 3.6 Model ... 46
... 3.7 Event handling ... 46
4. Web Dynpro naming placeholders ... 49
... 4.1 Development entities ... 49
... 4.2 Context entities ... 50
... 4.3 Generic and composite abbreviations ... 50
... 4.4 Subscripts for composite placeholders using the SAP recommended suffixes ... 51
... 4.5 J2EE Engine placeholders ... 51
5. Naming conventions ... 53
... 5.1 General rules for naming ... 53
... 5.2 Naming conventions for coding entities ... 56
6. The context ... 61
... 6.1 Context structure at design time ... 61
... 6.2 Context structure at runtime ... 66
... 6.3 Should node names be singular or plural? ... 72
... 6.4 General naming standards ... 73
... 6.5 Classes generated as a result of design time declarations ... 76
... 6.6 What's the difference between the various types of context nodes? ... 77
... 6.7 Fundamental principles of the context ... 82
... 6.8 Context mapping ... 84
... 6.9 Accessing the context through the typed API ... 91
... 6.10 Dynamic context manipulation ... 103
7. Coding principles in Web Dynpro ... 125
... 7.1 User-defined code ... 125
... 7.2 Problems with binding UI elements to context nodes ... 125
... 7.3 Building a context node hierarchy suitable for a tree UI element ... 127
... 7.4 Parameter mapping ... 131
... 7.5 Efficient use of actions to enable and disable UI elements ... 138
... 7.6 Layout managers ... 139
... 7.7 Principles for the efficient use of layout managers ... 146
... 7.8 Locale-specific text ... 147
... 7.9 Accessing any parameter in the query string ... 158
8. Dynamic UI generation ... 161
... 8.1 General points about Web Dynpro user interfaces ... 161
... 8.2 Background information about the design of UI elements ... 162
... 8.3 Accessing existing UI elements in a view layout ... 163
... 8.4 The principles of dynamic view construction ... 173
... 8.5 Dynamic Construction of a UI element hierarchy ... 176
9. The Common Model Interface ... 189
... 9.1 CMI terms and definitions ... 189
... 9.2 Access from a CMI object to the underlying business logic ... 191
10. The Adaptive RFC layer ... 193
... 10.1 General introduction to BAPIs ... 193
... 10.2 Custom written RFC modules ... 196
... 10.3 Background to the adaptive RFC layer ... 198
... 10.4 Introduction ... 201
... 10.5 Explanation of Generated Model Classes ... 204
... 10.6 Using model objects in a Web Dynpro controller ... 207
... 10.7 A simple example using context model nodes at runtime ... 211
... 10.8 Adapting to changes in an RFC interface ... 230
... 10.9 Connection management ... 238
... 10.10 Relationship between JCO destinations and ABAP sessions ... 247
... 10.11 Avoiding the Read-Write-Read problem ... 252
... 10.12 Why can't I use two different JCo connections? ... 255
11. Web Dynpro phase model ... 257
... 11.1 Transport data to DataContainer ... 258
... 11.2 Transport modified data into context ... 258
... 11.3 Validate modified data ... 258
... 11.4 Call system event handler ... 259
... 11.5 Call service event handler ... 259
... 11.6 Application event handler ... 260
... 11.7 doBeforeNavigation ... 260
... 11.8 Navigation and view initialization ... 260
... 11.9 Dynamic UI manipulation ... 261
... 11.10 doPostProcessing ... 261
... 11.11 Response rendering ... 262
12. Class and Interface Reference ... 263
... 12.1 Controllers, their methods, and self reference ... 263
... 12.2 Controller classes ... 266
... 12.3 Controller interfaces ... 271
... 12.4 Application interfaces ... 279
... 12.5 Context interfaces ... 279
... 12.6 View layout interfaces ... 299
A ABAP coding ... 343
B Dictionary structures ... 347
C The Author ... 349
Index ... 351