New Announcements and Updates




Next Generation ABAP Development (2nd Edition)

Price:
$69.95
Product Code:
H3161
Average Rating:
( 2 product reviews )
Availability:
In stock!
Format:
Quantity:
Bookmark and Share


Product Details

ISBN:
978-1-59229-352-0
Author(s):
Rich Heilman and Thomas Jung
Type:
Hardcover, 732 pages

Product Description and Table of Contents

• Presents the most recent ABAP technologies and tools through the eyes of a developer
• Includes new content on syntax enhancements, Web Dynpro, SAP BusinessObjects integration, XML processing, Rich Islands, and more
• Companion CD includes an HTML version of the first edition, as well as code samples

Next Generation ABAP Development is a book designed to keep seasoned developers up-to-date with the latest techniques and technologies available in ABAP. In the second edition of this best-selling title, follow along with a lead ABAP developer as he learns how to assess and employ the new tools and features of ABAP within SAP NetWeaver 7.0 to 7.0 enhancement package 2 (EhP2). You’ll be able to witness the entire process of building applications: design, development, and testing of all areas. In addition, you’ll also become familiar with end-to-end object-oriented design techniques.

New Tools and Features
Keep your ABAP knowledge up-to-date by mastering the new tools and features of ABAP within SAP NetWeaver 7.0 to 7.0 EhP2.

Real-World Examples
Learn about new possibilities in ABAP by exploring example scenarios related to the fictional development project discussed throughout the book.

Brand New Content
Explore completely new content about ABAP syntax enhancements, Web Dynpro, XML processing,SAP BusinessObjects integration, and more.

ABAP Troubleshooting and Web Services
Find expanded and updated information about ABAP troubleshooting and Web Services.

CD Content
Benefit from a CD that contains code samples and an HTML version of the first edition of this book.

Highlights

• Workbench tools and package hierarchy
• ABAP syntax enhancements
• Data Dictionary objects
• Data persistence layer
• Shared memory objects
• ABAP and SAP NetWeaver Master Data
• Management
• XML processing and XSLT
• SAP Interactive Forms by Adobe

The Authors

Rich Heilman is a senior technical specialist with the EPM RIG at SAP Labs, LLC. He joined SAP in 2007 and had the opportunity to contribute to the development of SAP BusinessObjects Planning & Consolidation for NetWeaver. Thomas Jung is a solution architect on the SAP Technology Solution Management team, focusing on the SAP custom development tools, particularly as they apply to ABAP development or user interface technology.

Table of Contents

  • ... Introduction ... 17
  • 1 ... Workbench Tools and Package Hierarchy ... 29
  • 1.1 ... Log on and Explore ... 30
  • 1.1.1 ... Workbench Object Browser ... 30
  • 1.1.2 ... Object Browser List ... 31
  • 1.1.3 ... Workbench Settings ... 34
  • 1.1.4 ... New ABAP Editor ... 34
  • 1.1.5 ... Additional New Workbench Tools ... 40
  • 1.1.6 ... Debugger ... 48
  • 1.2 ... Package Hierarchy for the Project ... 52
  • 1.2.1 ... Project Requirements ... 53
  • 1.2.2 ... Package Hierarchy ... 53
  • 2 ... New Language Features in SAP NetWeaver 7.02 ... 57
  • 2.1 ... Extended Expressions ... 59
  • 2.1.1 ... Math ... 59
  • 2.1.2 ... Functional Method Calls ... 60
  • 2.1.3 ... Built-In Functions ... 61
  • 2.1.4 ... Boolean—BOOLC ... 62
  • 2.2 ... String Processing ... 63
  • 2.2.1 ... String Templates ... 63
  • 2.2.2 ... String Functions ... 66
  • 2.2.3 ... 12-Hour Time Format ... 67
  • 2.3 ... Boxed Components ... 68
  • 2.4 ... Decimal Floating Point ... 71
  • 2.5 ... Locators and Streams ... 72
  • 2.5.1 ... Streams ... 74
  • 2.5.2 ... Locators ... 78
  • 2.6 ... Resumable Exceptions ... 79
  • 2.7 ... Secondary Keys for Internal Tables ... 81
  • 3 ... Data Dictionary Objects ... 85
  • 3.1 ... Designing Data Relationships ... 85
  • 3.1.1 ... Table Relationship Graphic ... 87
  • 3.1.2 ... SAP Data Modeler ... 88
  • 3.2 ... Data Dictionary Fixed Value Domains ... 89
  • 3.2.1 ... Single Value Domains ... 90
  • 3.2.2 ... Interval Value Domains ... 91
  • 3.3 ... Data Dictionary Text Tables ... 92
  • 3.3.1 ... Data Elements and Domains ... 92
  • 3.3.2 ... Transparent Table Creation and Relationships ... 93
  • 3.3.3 ... Maintenance View ... 98
  • 3.3.4 ... Generated Table Maintenance ... 100
  • 3.4 ... Data Dictionary Data Tables ... 102
  • 3.4.1 ... Enhancements ... 103
  • 3.4.2 ... Indexes ... 104
  • 3.4.3 ... Lock Objects ... 107
  • 3.5 ... Search Helps ... 108
  • 4 ... Data Persistence Layer ... 113
  • 4.1 ... Persistent Objects ... 114
  • 4.1.1 ... Creating the Persistent Object Class ... 115
  • 4.1.2 ... Base Classes and Agent Classes ... 117
  • 4.1.3 ... Persistent Data Mapper ... 118
  • 4.1.4 ... Coding with a Persistent Object ... 121
  • 4.2 ... Exception Classes ... 123
  • 4.2.1 ... Advantages of Exception Classes ... 124
  • 4.2.2 ... Creating an Exception Class ... 125
  • 4.3 ... Business Object Classes ... 131
  • 4.3.1 ... What Is a Business Object Class? ... 131
  • 4.3.2 ... Business Object Class Structure ... 133
  • 4.3.3 ... Multiple Object Selection ... 138
  • 4.3.4 ... Select-Options as a Query Criteria ... 140
  • 4.3.5 ... Complex Business Objects ... 143
  • 4.3.6 ... Modification Operations ... 146
  • 4.3.7 ... ZIP Compression ... 149
  • 4.4 ... Data Load Programs ... 152
  • 4.4.1 ... Test Data Generator ... 152
  • 4.4.2 ... Backup and Recovery Program ... 156
  • 5 ... Consuming a Web Service ... 163
  • 5.1 ... Proxy Generation ... 165
  • 5.1.1 ... Accessing the WSDL Document ... 165
  • 5.1.2 ... Creating the Client Proxy ... 166
  • 5.1.3 ... Logical Ports ... 172
  • 5.1.4 ... Using the Client Proxy Object ... 176
  • 5.1.5 ... Implementing into the Business Object Layer ... 177
  • 5.2 ... Logical Ports ... 180
  • 5.2.1 ... Consumer Security ... 180
  • 5.2.2 ... Messaging ... 184
  • 5.2.3 ... Transport Settings ... 184
  • 5.2.4 ... Operation Specific ... 186
  • 5.2.5 ... Errors ... 187
  • 5.3 ... Extended Protocols ... 189
  • 6 ... Shared Memory Objects ... 191
  • 6.1 ... Getting Started ... 192
  • 6.1.1 ... Area Root Class Creation ... 192
  • 6.1.2 ... Defining the Shared Memory Area ... 198
  • 6.1.3 ... Testing the Shared Memory Object ... 200
  • 6.1.4 ... Shared Memory Monitor ... 202
  • 6.2 ... Automatic Preloading ... 203
  • 6.2.1 ... Adding the Interface ... 203
  • 6.2.2 ... Modifying the Read Program ... 205
  • 6.3 ... Implementing into the Business Object Layer ... 206
  • 6.3.1 ... Developing a Test Program ... 207
  • 6.3.2 ... Modifying the Business Object Class ... 208
  • 6.3.3 ... Testing the Changes ... 212
  • 7 ... Model Class ... 215
  • 7.1 ... Class Overview ... 215
  • 7.1.1 ... What Is Model View Controller? ... 215
  • 7.1.2 ... Creating the Model Class ... 216
  • 7.2 ... Transactional Methods ... 221
  • 7.2.1 ... Read Method ... 222
  • 7.2.2 ... Record Locking Methods ... 224
  • 7.2.3 ... Save Method ... 225
  • 7.2.4 ... Getters ... 227
  • 7.3 ... Utility Methods ... 229
  • 7.4 ... Emailing ... 231
  • 7.4.1 ... Email Setup ... 231
  • 7.4.2 ... Running an Email Test ... 235
  • 7.4.3 ... Email Method ... 237
  • 7.5 ... Regular Expressions ... 242
  • 8 ... ABAP and SAP NetWeaver Master Data Management ... 245
  • 8.1 ... What Is Master Data Management? ... 246
  • 8.1.1 ... Technical Architecture ... 246
  • 8.1.2 ... Clients ... 248
  • 8.1.3 ... Basic SAP NetWeaver MDM Administration ... 250
  • 8.1.4 ... Modeling in SAP MDM ... 252
  • 8.2 ... Configuring the SAP NetWeaver MDM ABAP API ... 254
  • 8.2.1 ... Installation of the SAP NetWeaver MDM API Add-On ... 254
  • 8.2.2 ... Configuring the SAP NetWeaver MDM API Connection ... 256
  • 8.2.3 ... Authentication with the SAP NetWeaver MDM API ... 258
  • 8.3 ... Coding with the SAP NetWeaver MDM ABAP API ... 260
  • 8.3.1 ... Class-Based API ... 260
  • 8.3.2 ... Function-Module-Based API ... 263
  • 8.3.3 ... Non-Unicode ABAP Systems ... 265
  • 8.3.4 ... Simple Read ... 265
  • 8.3.5 ... Full Read ... 269
  • 8.3.6 ... Integrating the SAP NetWeaver MDM Repository into Your Business Object Class ... 271
  • 9 ... ABAP Troubleshooting ... 275
  • 9.1 ... ABAP Unit ... 275
  • 9.1.1 ... Overview of ABAP Unit Tests ... 276
  • 9.1.2 ... Creating ABAP Unit Tests ... 281
  • 9.1.3 ... Executing the ABAP Unit Test ... 288
  • 9.2 ... Runtime Analysis ... 290
  • 9.2.1 ... Running an Evaluation ... 290
  • 9.2.2 ... Evaluating the Results ... 291
  • 9.3 ... Performance Analysis Tool ... 293
  • 9.4 ... ABAP Debugger ... 295
  • 9.4.1 ... New Debugger Introduction ... 295
  • 9.4.2 ... Diff ... 298
  • 9.4.3 ... Table Tools ... 299
  • 9.4.4 ... Layered Debugging ... 301
  • 10 ... Exposing a Model as a Web Service ... 305
  • 10.1 ... Inside-Out Approach ... 306
  • 10.1.1 ... Service Definition Wizard ... 307
  • 10.1.2 ... Service Definition ... 313
  • 10.1.3 ... Releasing the Web Service and Creating an Endpoint ... 317
  • 10.1.4 ... Testing the Web Service ... 324
  • 10.1.5 ... Using the Web Services Navigator ... 325
  • 10.2 ... Outside-In Approach ... 329
  • 10.2.1 ... Modeling a Service in the SAP Enterprise Services Repository ... 330
  • 10.2.2 ... Integration Builder ... 331
  • 10.2.3 ... Simple Data Types ... 335
  • 10.2.4 ... Complex Data Types ... 340
  • 10.2.5 ... Message Types ... 343
  • 10.2.6 ... Service Interface ... 344
  • 10.2.7 ... Implementing the Service as a Server Proxy ... 346
  • 10.2.8 ... Creating a Service Definition ... 352
  • 11 ... XML Processing and XSLT ... 357
  • 11.1 ... Simple Transformations ... 358
  • 11.2 ... XSL Transformations ... 363
  • 11.3 ... iXML Library ... 368
  • 11.4 ... Mini iXML Interface ... 375
  • 12 ... Classic Dynpro UI/ALV Object Model ... 383
  • 12.1 ... ALV Object Model Overview ... 383
  • 12.1.1 ... ALV Tool Overview ... 384
  • 12.1.2 ... Display Types ... 385
  • 12.2 ... Getting Started ... 386
  • 12.2.1 ... Package Selection ... 386
  • 12.2.2 ... Basic Program Coding ... 387
  • 12.3 ... Modifying the ALV Output ... 393
  • 12.3.1 ... ALV Functions ... 393
  • 12.3.2 ... Modifying Column Attributes ... 396
  • 12.3.3 ... Modifying Display Settings ... 397
  • 12.3.4 ... Saving Layout Variants ... 398
  • 12.4 ... Making the ALV Interactive ... 399
  • 12.4.1 ... Adding Buttons ... 400
  • 12.4.2 ... Defining Selections ... 401
  • 12.4.3 ... Event Handling ... 402
  • 12.5 ... Object Orientation with Classic Dynpro ... 405
  • 12.5.1 ... Restructuring the Dialog Program ... 406
  • 12.5.2 ... Creating the Controller Class ... 408
  • 12.5.3 ... Enjoy Control Events ... 410
  • 12.5.4 ... Dynpro Events ... 412
  • 13 ... Web Dynpro ABAP ... 415
  • 13.1 ... Overview of the Components ... 416
  • 13.1.1 ... Course Frame Component ... 417
  • 13.1.2 ... Faculty Detail Component ... 418
  • 13.1.3 ... Faculty List Component ... 419
  • 13.1.4 ... Course Details Component ... 420
  • 13.2 ... Component Usage ... 421
  • 13.3 ... General UI Features ... 424
  • 13.3.1 ... Context ... 424
  • 13.3.2 ... Value Help ... 425
  • 13.3.3 ... Required Fields ... 428
  • 13.3.4 ... Change/Display Mode ... 431
  • 13.4 ... ALV Component ... 433
  • 13.4.1 ... ALV Component Usage ... 433
  • 13.4.2 ... Context Mapping ... 434
  • 13.4.3 ... ALV Implementation ... 435
  • 13.5 ... Dialog Pop-Up Window ... 439
  • 13.5.1 ... Windows from the Same Component ... 439
  • 13.5.2 ... Windows from an External Component Usage ... 442
  • 13.6 ... Table Popins ... 446
  • 13.6.1 ... What Is a Table Popin? ... 446
  • 13.6.2 ... Designing the Table Popin ... 447
  • 13.6.3 ... Context Design ... 448
  • 13.6.4 ... Logic to Populate the Context for a Popin ... 449
  • 13.7 ... File Upload/Download ... 450
  • 13.7.1 ... File Downloads ... 451
  • 13.7.2 ... File Uploads ... 453
  • 13.8 ... Web Dynpro Debugger ... 455
  • 14 ... Advanced Web Dynpro ABAP ... 459
  • 14.1 ... Drag and Drop ... 459
  • 14.1.1 ... Table Hierarchy ... 460
  • 14.1.2 ... Drag-and-Drop Basics in Web Dynpro ABAP ... 463
  • 14.1.3 ... Drag-and-Drop UI Elements and Properties ... 463
  • 14.1.4 ... Drag-and-Drop Event Coding ... 466
  • 14.2 ... Threshold Slider and Rule Evaluation ... 470
  • 14.2.1 ... BRFplus Usage ... 471
  • 14.2.2 ... Data-Dependent Drop-Down List Box ... 480
  • 14.2.3 ... Threshold Slider Usage ... 482
  • 14.3 ... Notification Service ... 484
  • 14.4 ... POWL—Power List ... 487
  • 14.4.1 ... POWL Feeder Classes ... 488
  • 14.4.2 ... POWL Cockpit ... 497
  • 14.5 ... FPM—Floorplan Manager ... 500
  • 14.5.1 ... Floorplan Types ... 501
  • 14.5.2 ... Generic UI Building Blocks ... 508
  • 14.5.3 ... Freestyle UI Building Blocks ... 517
  • 14.5.4 ... Final Configuration ... 519
  • 15 ... Business Server Pages ... 525
  • 15.1 ... Internet-Facing BSP Application ... 526
  • 15.1.1 ... Stateless versus Stateful ... 526
  • 15.1.2 ... Application Layout ... 528
  • 15.1.3 ... Custom Style Sheets ... 530
  • 15.1.4 ... Course Overview Page ... 534
  • 15.1.5 ... AJAX ... 536
  • 15.2 ... BSP Extensions ... 544
  • 15.2.1 ... Upload of Open Source Solution ... 544
  • 15.2.2 ... Creating the BSP Extension ... 546
  • 15.2.3 ... Creating the BSP Extension Element ... 547
  • 15.2.4 ... Design Time Validation ... 550
  • 15.2.5 ... Runtime Validation ... 551
  • 15.2.6 ... Element Rendering ... 552
  • 15.2.7 ... Testing the New Extension ... 553
  • 16 ... Rich Islands ... 555
  • 16.1 ... Islands Architecture ... 556
  • 16.1.1 ... Behind the Scenes ... 557
  • 16.1.2 ... Type of Islands ... 558
  • 16.1.3 ... Limitations of Islands ... 559
  • 16.2 ... Building a Flex Component ... 560
  • 16.2.1 ... Islands Libraries ... 561
  • 16.2.2 ... Flex Code Initialization ... 564
  • 16.2.3 ... Flex Code Data Binding ... 565
  • 16.2.4 ... Flex Code Setters ... 566
  • 16.2.5 ... Flex Code Events ... 567
  • 16.3 ... Embedding the Island in Web Dynpro ... 567
  • 16.3.1 ... Flex Component Added to MIME Repository ... 567
  • 16.3.2 ... FlashIsland UI Element ... 568
  • 16.3.3 ... DataSource Mapping ... 569
  • 16.3.4 ... DataSource Property Mapping ... 570
  • 17 ... Adobe Forms ... 573
  • 17.1 ... Infrastructure and Setup ... 574
  • 17.1.1 ... Adobe Document Services Infrastructure ... 574
  • 17.1.2 ... Exposing the Service from the Java Engine ... 575
  • 17.2 ... Function-Module-Based Forms ... 582
  • 17.2.1 ... Creating the Interface ... 583
  • 17.2.2 ... Form Interface to Context Mapping ... 584
  • 17.2.3 ... Form Layout Editor ... 589
  • 17.2.4 ... Coding Against the Form Function Module ... 592
  • 17.3 ... Web-Dynpro-Based Forms ... 597
  • 17.3.1 ... Web Dynpro View Creation ... 598
  • 17.3.2 ... Form Design from Web Dynpro ... 599
  • 17.3.3 ... Table Output in Forms ... 601
  • 17.3.4 ... Making the Form Interactive ... 603
  • 17.4 ... Offline Forms ... 606
  • 18 ... SAP NetWeaver Portal and SAP NetWeaver Business Client ... 609
  • 18.1 ... Creating a System Configuration in SAP NetWeaver Portal ... 609
  • 18.1.1 ... User Mapping ... 616
  • 18.1.2 ... System Test ... 617
  • 18.2 ... Creating SAP NetWeaver Portal Content ... 618
  • 18.2.1 ... iView Creation ... 618
  • 18.2.2 ... Role Assignment ... 622
  • 18.2.3 ... Running Examples ... 623
  • 18.3 ... Portal Eventing ... 626
  • 18.3.1 ... Throwing a Portal Event ... 628
  • 18.3.2 ... Catching a Portal Event ... 630
  • 18.4 ... SAP NetWeaver Visual Composer ... 632
  • 18.4.1 ... Consuming a Web Service ... 634
  • 18.4.2 ... Consuming an RFC ... 636
  • 18.4.3 ... Building the User Interface ... 639
  • 18.4.4 ... Building Value Help ... 641
  • 18.5 ... SAP NetWeaver Business Client ... 646
  • 18.5.1 ... Creating Roles in Transaction PFCG for the SAP NetWeaver Business Client ... 650
  • 18.5.2 ... Using the Local Page Builder for SAP NetWeaver Business Client Content ... 653
  • 19 ... RSS Feed Using an ICF Service Node ... 663
  • 19.1 ... What Is an ICF Service Node? ... 664
  • 19.2 ... Handler RSS Feed ... 665
  • 19.2.1 ... HTTP Handler Class Test Implementation ... 666
  • 19.2.2 ... ICF Node Creation and Handler Association ... 667
  • 19.2.3 ... RSS Handler Implementation ... 668
  • 19.2.4 ... RSS Handler Application Logic ... 669
  • 19.2.5 ... Handler for Attachment Downloads ... 675
  • 20 ... SAP Business­Objects ... 679
  • 20.1 ... SAP Crystal Reports Dashboard Design (Xcelsius) ... 680
  • 20.1.1 ... Overview of the Workbench ... 680
  • 20.1.2 ... Integrating a Dashboard into Web Dynpro ABAP ... 682
  • 20.2 ... SAP Crystal Reports ... 689
  • 20.2.1 ... System Configuration for Crystal Reports Integration ... 689
  • 20.2.2 ... Creating a Custom Crystal Reports Template ... 692
  • 20.2.3 ... Application-Specific Crystal Reports Templates ... 695
  • 20.2.4 ... Crystal Reports Within Web Dynpro ABAP ALV ... 696
  • 20.3 ... SAP Business­Objects BI OnDemand ... 698
  • 20.3.1 ... REST Interface ... 699
  • 20.3.2 ... Export From ALV ... 709
  • 20.3.3 ... SAP Business­Objects BI OnDemand Analysis ... 710
  • 20.3.4 ... SAP Business­Objects Explorer for iPhone and iPad ... 712
  • 21 ... Closing ... 717
  • ... Appendices ... 719
  • A ... CD Contents ... 719
  • A.1 ... Disclaimer ... 719
  • A.2 ... Contents ... 719
  • A.3 ... Release Level ... 720
  • A.4 ... Installation Options ... 720
  • B ... The Authors ... 723
  • ... Index ... 725



Additional Resource(s)


Download: Sample chapter from this book

Product Reviews


  1. The Gold Standard for Modern ABAP Development

    Posted by James Wood on Sep 16th, 2011

    After reading through this book, I just have to say that these gentlemen truly have a gift. Though this book spans some 700+ pages, it really is a quick and enjoyable read. Overall, there is a great blend of technical introduction, best practices commentary, and hands-on experience. They really do help you learn how to think using modern ABAP technology. I can't recommend this book enough.


  2. Wonderful book that runs through close to realtime project work

    Posted by BJagdishwar on Apr 14th, 2011

    Dear Rich Heilman and Thomas Jung,
    Thanks for this great book.
    I first learnt abap from "ABAP Objects" by Horst Keller. After that, your book gave me a wonderful experience of realworld scenarios, that i almost exactly needed in the project that i am working in my company.
    I felt like working under experienced mentors, while creating the book's sample examples on my system.

    Regards,
    BJagdishwar


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