next generation abap development - amazon s3 · pdf filenext generation abap™...

51
Rich Heilman and Thomas Jung Next Generation ABAP™ Development Bonn Boston

Upload: truongdan

Post on 19-Mar-2018

268 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Next Generation ABAP Development - Amazon S3 · PDF fileNext Generation ABAP™ Development ... 2 New Language Features in SAP NetWeaver 7.02 ... 14.4 POWL—Power List

Rich Heilman and Thomas Jung

Next Generation ABAP™ Development

Bonn � Boston

352 Book.indb 3 12/6/10 2:59:43 PM

Page 2: Next Generation ABAP Development - Amazon S3 · PDF fileNext Generation ABAP™ Development ... 2 New Language Features in SAP NetWeaver 7.02 ... 14.4 POWL—Power List

Contents at a Glance

1 Workbench Tools and Package Hierarchy ............................... 29

2 New Language Features in SAP NetWeaver 7.02 ................... 57

3 Data Dictionary Objects ......................................................... 85

4 Data Persistence Layer ........................................................... 113

5 Consuming a Web Service ...................................................... 163

6 Shared Memory Objects ......................................................... 191

7 Model Class ............................................................................ 215

8 ABAP and SAP NetWeaver Master Data Management .......... 245

9 ABAP Troubleshooting ............................................................ 275

10 Exposing a Model as a Web Service ....................................... 305

11 XML Processing and XSLT ...................................................... 357

12 Classic Dynpro UI/ALV Object Model ..................................... 383

13 Web Dynpro ABAP .................................................................. 415

14 Advanced Web Dynpro ABAP ................................................. 459

15 Business Server Pages ............................................................ 525

16 Rich Islands ............................................................................ 555

17 Adobe Forms ........................................................................... 573

18 SAP NetWeaver Portal and SAP NetWeaver Business Client ... 609

19 RSS Feed Using an ICF Service Node ...................................... 663

20 SAP Business Objects .............................................................. 679

21 Closing .................................................................................... 717

A CD Contents ............................................................................ 721

B The Authors ............................................................................. 725

352 Book.indb 5 12/6/10 2:59:43 PM

Page 3: Next Generation ABAP Development - Amazon S3 · PDF fileNext Generation ABAP™ Development ... 2 New Language Features in SAP NetWeaver 7.02 ... 14.4 POWL—Power List

7

Contents

Introduction ............................................................................................... 17

1 Workbench Tools and Package Hierarchy ................................ 29

1.1 Log on and Explore ..................................................................... 301.1.1 Workbench Object Browser ............................................ 301.1.2 Object Browser List ........................................................ 311.1.3 Workbench Settings ....................................................... 341.1.4 New ABAP Editor ........................................................... 341.1.5 Additional New Workbench Tools .................................. 401.1.6 Debugger ....................................................................... 48

1.2 Package Hierarchy for the Project ................................................ 521.2.1 Project Requirements ..................................................... 531.2.2 Package Hierarchy .......................................................... 53

2 New Language Features in SAP NetWeaver 7.02 ..................... 57

2.1 Extended Expressions .................................................................. 592.1.1 Math .............................................................................. 592.1.2 Functional Method Calls ................................................ 602.1.3 Built-In Functions ........................................................... 612.1.4 Boolean – BOOLC .......................................................... 62

2.2 String Processing ......................................................................... 632.2.1 String Templates ............................................................. 632.2.2 String Functions ............................................................. 662.2.3 12-Hour Time Format ..................................................... 67

2.3 Boxed Components ..................................................................... 682.4 Decimal Floating Point ................................................................ 712.5 Locators and Streams .................................................................. 72

2.5.1 Streams .......................................................................... 742.5.2 Locators ......................................................................... 78

2.6 Resumable Exceptions ................................................................ 792.7 Secondary Keys for Internal Tables .............................................. 81

352 Book.indb 7 12/6/10 2:59:43 PM

Page 4: Next Generation ABAP Development - Amazon S3 · PDF fileNext Generation ABAP™ Development ... 2 New Language Features in SAP NetWeaver 7.02 ... 14.4 POWL—Power List

8

Contents

3 Data Dictionary Objects ........................................................... 85

3.1 Designing Data Relationships ...................................................... 853.1.1 Table Relationship Graphic ............................................. 873.1.2 SAP Data Modeler ......................................................... 88

3.2 Data Dictionary Fixed Value Domains ......................................... 893.2.1 Single Value Domains ..................................................... 903.2.2 Interval Value Domains .................................................. 91

3.3 Data Dictionary Text Tables ......................................................... 923.3.1 Data Elements and Domains .......................................... 923.3.2 Transparent Table Creation and Relationships ................. 933.3.3 Maintenance View ......................................................... 983.3.4 Generated Table Maintenance ........................................ 100

3.4 Data Dictionary Data Tables ........................................................ 1023.4.1 Enhancements ................................................................ 1033.4.2 Indexes .......................................................................... 1043.4.3 Lock Objects .................................................................. 107

3.5 Search Helps ............................................................................... 108

4 Data Persistence Layer ............................................................. 113

4.1 Persistent Objects ....................................................................... 1144.1.1 Creating the Persistent Object Class ............................... 1154.1.2 Base Classes and Agent Classes ....................................... 1174.1.3 Persistent Data Mapper .................................................. 1184.1.4 Coding with a Persistent Object ..................................... 121

4.2 Exception Classes ........................................................................ 1234.2.1 Advantages of Exception Classes .................................... 1244.2.2 Creating an Exception Class ............................................ 125

4.3 Business Object Classes ............................................................... 1314.3.1 What Is a Business Object Class? .................................... 1314.3.2 Business Object Class Structure ...................................... 1334.3.3 Multiple Object Selection ............................................... 1384.3.4 Select-Options as a Query Criteria .................................. 1404.3.5 Complex Business Objects .............................................. 1434.3.6 Modification Operations ................................................ 1464.3.7 ZIP Compression ............................................................ 149

4.4 Data Load Programs .................................................................... 152

352 Book.indb 8 12/6/10 2:59:43 PM

Page 5: Next Generation ABAP Development - Amazon S3 · PDF fileNext Generation ABAP™ Development ... 2 New Language Features in SAP NetWeaver 7.02 ... 14.4 POWL—Power List

9

Contents

4.4.1 Test Data Generator ....................................................... 1524.4.2 Backup and Recovery Program ....................................... 156

5 Consuming a Web Service ........................................................ 163

5.1 Proxy Generation ........................................................................ 1655.1.1 Accessing the WSDL Document ..................................... 1655.1.2 Creating the Client Proxy ................................................ 1665.1.3 Logical Ports ................................................................... 1725.1.4 Using the Client Proxy Object ......................................... 1765.1.5 Implementing into the Business Object Layer ................. 177

5.2 Logical Ports ............................................................................... 1805.2.1 Consumer Security ......................................................... 1805.2.2 Messaging ...................................................................... 1845.2.3 Transport Settings .......................................................... 1845.2.4 Operation Specific .......................................................... 1865.2.5 Errors ............................................................................. 187

5.3 Extended Protocols ..................................................................... 189

6 Shared Memory Objects ........................................................... 191

6.1 Getting Started ........................................................................... 1926.1.1 Area Root Class Creation ................................................ 1926.1.2 Defining the Shared Memory Area ................................. 1986.1.3 Testing the Shared Memory Object ................................ 2006.1.4 Shared Memory Monitor ................................................ 202

6.2 Automatic Preloading ................................................................. 2036.2.1 Adding the Interface ...................................................... 2036.2.2 Modifying the Read Program .......................................... 205

6.3 Implementing into the Business Object Layer .............................. 2066.3.1 Developing a Test Program ............................................. 2076.3.2 Modifying the Business Object Class .............................. 2086.3.3 Testing the Changes ....................................................... 212

7 Model Class .............................................................................. 215

7.1 Class Overview ........................................................................... 2157.1.1 What Is Model View Controller? .................................... 215

352 Book.indb 9 12/6/10 2:59:43 PM

Page 6: Next Generation ABAP Development - Amazon S3 · PDF fileNext Generation ABAP™ Development ... 2 New Language Features in SAP NetWeaver 7.02 ... 14.4 POWL—Power List

10

Contents

7.1.2 Creating the Model Class ................................................ 2167.2 Transactional Methods ................................................................ 221

7.2.1 Read Method ................................................................. 2227.2.2 Record Locking Methods ................................................ 2247.2.3 Save Method .................................................................. 2257.2.4 Getters ........................................................................... 227

7.3 Utility Methods .......................................................................... 2297.4 Emailing ...................................................................................... 231

7.4.1 Email Setup .................................................................... 2317.4.2 Running an Email Test .................................................... 2357.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? ............................................ 2468.1.1 Technical Architecture .................................................... 2468.1.2 Clients ............................................................................ 2488.1.3 Basic SAP NetWeaver MDM Administration ................... 2508.1.4 Modeling in SAP MDM .................................................. 252

8.2 Configuring the SAP NetWeaver MDM ABAP API ....................... 2548.2.1 Installation of the SAP NetWeaver MDM API Add-On ... 2548.2.2 Configuring the SAP NetWeaver MDM API Connection ... 2568.2.3 Authentication with the SAP NetWeaver MDM API ....... 258

8.3 Coding with the SAP NetWeaver MDM ABAP API ...................... 2608.3.1 Class-Based API .............................................................. 2608.3.2 Function-Module-Based API .......................................... 2638.3.3 Non-Unicode ABAP Systems .......................................... 2658.3.4 Simple Read ................................................................... 2658.3.5 Full Read ........................................................................ 2698.3.6 Integrating the SAP NetWeaver MDM Repository

into Your Business Object Class ...................................... 271

9 ABAP Troubleshooting .............................................................. 275

9.1 ABAP Unit .................................................................................. 2759.1.1 Overview of ABAP Unit Tests ......................................... 2769.1.2 Creating ABAP Unit Tests ............................................... 2819.1.3 Executing the ABAP Unit Test ......................................... 288

352 Book.indb 10 12/6/10 2:59:43 PM

Page 7: Next Generation ABAP Development - Amazon S3 · PDF fileNext Generation ABAP™ Development ... 2 New Language Features in SAP NetWeaver 7.02 ... 14.4 POWL—Power List

11

Contents

9.2 Runtime Analysis ........................................................................ 2909.2.1 Running an Evaluation ................................................... 2909.2.2 Evaluating the Results .................................................... 291

9.3 Performance Analysis Tool ........................................................... 2939.4 ABAP Debugger .......................................................................... 295

9.4.1 New Debugger Introduction ........................................... 2959.4.2 Diff ................................................................................ 2989.4.3 Table Tools ..................................................................... 2999.4.4 Layered Debugging ........................................................ 301

10 Exposing a Model as a Web Service ......................................... 305

10.1 Inside-Out Approach .................................................................. 30610.1.1 Service Definition Wizard ............................................... 30710.1.2 Service Definition ........................................................... 31310.1.3 Releasing the Web Service and Creating an Endpoint ..... 31710.1.4 Testing the Web Service ................................................. 32410.1.5 Using the Web Services Navigator .................................. 325

10.2 Outside-In Approach .................................................................. 32910.2.1 Modeling a Service in the SAP Enterprise Services

Repository ...................................................................... 33010.2.2 Integration Builder ......................................................... 33110.2.3 Simple Data Types .......................................................... 33510.2.4 Complex Data Types ....................................................... 34010.2.5 Message Types ............................................................... 34310.2.6 Service Interface ............................................................. 34410.2.7 Implementing the Service as a Server Proxy .................... 34610.2.8 Creating a Service Definition .......................................... 352

11 XML Processing and XSLT ........................................................ 357

11.1 Simple Transformations ............................................................... 35811.2 XSL Transformations .................................................................... 36311.3 iXML Library ............................................................................... 36811.4 Mini iXML Interface .................................................................... 375

12 Classic Dynpro UI/ALV Object Model ....................................... 383

12.1 ALV Object Model Overview ...................................................... 383

352 Book.indb 11 12/6/10 2:59:43 PM

Page 8: Next Generation ABAP Development - Amazon S3 · PDF fileNext Generation ABAP™ Development ... 2 New Language Features in SAP NetWeaver 7.02 ... 14.4 POWL—Power List

12

Contents

12.1.1 ALV Tool Overview ......................................................... 38412.1.2 Display Types ................................................................. 385

12.2 Getting Started ........................................................................... 38612.2.1 Package Selection ........................................................... 38612.2.2 Basic Program Coding ..................................................... 387

12.3 Modifying the ALV Output ......................................................... 39312.3.1 ALV Functions ................................................................ 39312.3.2 Modifying Column Attributes ......................................... 39612.3.3 Modifying Display Settings ............................................. 39712.3.4 Saving Layout Variants ................................................... 398

12.4 Making the ALV Interactive ......................................................... 39912.4.1 Adding Buttons .............................................................. 40012.4.2 Defining Selections ......................................................... 40112.4.3 Event Handling ............................................................... 402

12.5 Object Orientation with Classic Dynpro ...................................... 40512.5.1 Restructuring the Dialog Program ................................... 40612.5.2 Creating the Controller Class .......................................... 40812.5.3 Enjoy Control Events ...................................................... 41012.5.4 Dynpro Events ................................................................ 412

13 Web Dynpro ABAP .................................................................... 415

13.1 Overview of the Components ..................................................... 41613.1.1 Course Frame Component .............................................. 41713.1.2 Faculty Detail Component .............................................. 41813.1.3 Faculty List Component .................................................. 41913.1.4 Course Details Component ............................................. 420

13.2 Component Usage ...................................................................... 42113.3 General UI Features .................................................................... 424

13.3.1 Context .......................................................................... 42413.3.2 Value Help ..................................................................... 42513.3.3 Required Fields .............................................................. 42813.3.4 Change/Display Mode .................................................... 431

13.4 ALV Component ......................................................................... 43313.4.1 ALV Component Usage .................................................. 43313.4.2 Context Mapping ........................................................... 43413.4.3 ALV Implementation ...................................................... 435

13.5 Dialog Pop-Up Window .............................................................. 43913.5.1 Windows from the Same Component ............................. 439

352 Book.indb 12 12/6/10 2:59:43 PM

Page 9: Next Generation ABAP Development - Amazon S3 · PDF fileNext Generation ABAP™ Development ... 2 New Language Features in SAP NetWeaver 7.02 ... 14.4 POWL—Power List

13

Contents

13.5.2 Windows from an External Component Usage ................ 44213.6 Table Popins ............................................................................... 446

13.6.1 What Is a Table Popin? ................................................... 44613.6.2 Designing the Table Popin .............................................. 44713.6.3 Context Design .............................................................. 44813.6.4 Logic to Populate the Context for a Popin ...................... 449

13.7 File Upload/Download ................................................................ 45013.7.1 File Downloads .............................................................. 45113.7.2 File Uploads ................................................................... 453

13.8 Web Dynpro Debugger ............................................................... 455

14 Advanced Web Dynpro ABAP ................................................... 459

14.1 Drag and Drop ............................................................................ 45914.1.1 Table Hierarchy .............................................................. 46014.1.2 Drag-and-Drop Basics in Web Dynpro ABAP .................. 46314.1.3 Drag-and-Drop UI Elements and Properties .................... 46314.1.4 Drag-and-Drop Event Coding ......................................... 466

14.2 Threshold Slider and Rule Evaluation .......................................... 47014.2.1 BRFplus Usage ............................................................... 47114.2.2 Data-Dependent Drop-Down List Box ............................ 48014.2.3 Threshold Slider Usage ................................................... 482

14.3 Notification Service ..................................................................... 48414.4 POWL—Power List ..................................................................... 487

14.4.1 POWL Feeder Classes ..................................................... 48814.4.2 POWL Cockpit ............................................................... 497

14.5 FPM—Floorplan Manager ........................................................... 50014.5.1 Floorplan Types .............................................................. 50114.5.2 Generic UI Building Blocks ............................................. 50814.5.3 Freestyle UI Building Blocks ........................................... 51714.5.4 Final Configuration ......................................................... 519

15 Business Server Pages .............................................................. 525

15.1 Internet-Facing BSP Application .................................................. 52615.1.1 Stateless versus Stateful .................................................. 52615.1.2 Application Layout ......................................................... 52815.1.3 Custom Style Sheets ....................................................... 530

352 Book.indb 13 12/6/10 2:59:44 PM

Page 10: Next Generation ABAP Development - Amazon S3 · PDF fileNext Generation ABAP™ Development ... 2 New Language Features in SAP NetWeaver 7.02 ... 14.4 POWL—Power List

14

Contents

15.1.4 Course Overview Page .................................................... 53415.1.5 AJAX .............................................................................. 536

15.2 BSP Extensions ............................................................................ 54415.2.1 Upload of Open Source Solution .................................... 54415.2.2 Creating the BSP Extension ............................................. 54615.2.3 Creating the BSP Extension Element ............................... 54715.2.4 Design Time Validation .................................................. 55015.2.5 Runtime Validation ........................................................ 55115.2.6 Element Rendering ......................................................... 55215.2.7 Testing the New Extension ............................................. 553

16 Rich Islands .............................................................................. 555

16.1 Islands Architecture .................................................................... 55616.1.1 Behind the Scenes .......................................................... 55716.1.2 Type of Islands ............................................................... 55816.1.3 Limitations of Islands ..................................................... 559

16.2 Building a Flex Component ......................................................... 56016.2.1 Islands Libraries .............................................................. 56116.2.2 Flex Code Initialization ................................................... 56416.2.3 Flex Code Data Binding .................................................. 56516.2.4 Flex Code Setters ........................................................... 56616.2.5 Flex Code Events ............................................................ 567

16.3 Embedding the Island in Web Dynpro ......................................... 56716.3.1 Flex Component Added to MIME Repository ................. 56716.3.2 FlashIsland UI Element ................................................... 56816.3.3 DataSource Mapping ...................................................... 56916.3.4 DataSource Property Mapping ....................................... 570

17 Adobe Forms ............................................................................. 573

17.1 Infrastructure and Setup ............................................................. 57417.1.1 Adobe Document Services Infrastructure ........................ 57417.1.2 Exposing the Service from the Java Engine ...................... 575

17.2 Function-Module-Based Forms ................................................... 58217.2.1 Creating the Interface ..................................................... 58317.2.2 Form Interface to Context Mapping ............................... 58417.2.3 Form Layout Editor ........................................................ 58917.2.4 Coding Against the Form Function Module .................... 592

352 Book.indb 14 12/6/10 2:59:44 PM

Page 11: Next Generation ABAP Development - Amazon S3 · PDF fileNext Generation ABAP™ Development ... 2 New Language Features in SAP NetWeaver 7.02 ... 14.4 POWL—Power List

15

Contents

17.3 Web Dynpro-Based Forms .......................................................... 59717.3.1 Web Dynpro View Creation ............................................ 59817.3.2 Form Design from Web Dynpro ...................................... 59917.3.3 Table Output in Forms .................................................... 60117.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 .......... 60918.1.1 User Mapping ................................................................ 61618.1.2 System Test .................................................................... 617

18.2 Creating SAP NetWeaver Portal Content ..................................... 61818.2.1 iView Creation ............................................................... 61818.2.2 Role Assignment ............................................................ 62218.2.3 Running Examples .......................................................... 623

18.3 Portal Eventing ........................................................................... 62618.3.1 Throwing a Portal Event ................................................. 62818.3.2 Catching a Portal Event .................................................. 630

18.4 SAP NetWeaver Visual Composer ................................................ 63218.4.1 Consuming a Web Service .............................................. 63418.4.2 Consuming an RFC ......................................................... 63618.4.3 Building the User Interface ............................................. 63918.4.4 Building Value Help ........................................................ 641

18.5 SAP NetWeaver Business Client .................................................. 64618.5.1 Creating Roles in Transaction PFCG for the SAP

NetWeaver Business Client ............................................. 65018.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? ..................................................... 66419.2 Handler RSS Feed ....................................................................... 665

19.2.1 HTTP Handler Class Test Implementation ....................... 66619.2.2 ICF Node Creation and Handler Association ................... 66719.2.3 RSS Handler Implementation .......................................... 66819.2.4 RSS Handler Application Logic ....................................... 66919.2.5 Handler for Attachment Downloads ............................... 675

352 Book.indb 15 12/6/10 2:59:44 PM

Page 12: Next Generation ABAP Development - Amazon S3 · PDF fileNext Generation ABAP™ Development ... 2 New Language Features in SAP NetWeaver 7.02 ... 14.4 POWL—Power List

16

Contents

20 SAP Business Objects ................................................................ 679

20.1 SAP Crystal Reports Dashboard Design (Xcelsius) ........................ 68020.1.1 Overview of the Workbench ........................................... 68020.1.2 Integrating a Dashboard into Web Dynpro ABAP ........... 682

20.2 SAP Crystal Reports .................................................................... 68920.2.1 System Configuration for Crystal Reports Integration ...... 68920.2.2 Creating a Custom Crystal Reports Template ................... 69220.2.3 Application-Specific Crystal Reports Templates ............... 69520.2.4 Crystal Reports Within Web Dynpro ABAP ALV .............. 696

20.3 SAP Business Objects BI OnDemand ............................................ 69820.3.1 REST Interface ................................................................ 69920.3.2 Export From ALV ............................................................ 70920.3.3 SAP Business Objects BI OnDemand Analysis .................. 71020.3.4 SAP Business Objects Explorer for iPhone and iPad ......... 712

21 Closing ...................................................................................... 717

Appendices ..................................................................................... 719

A CD Contents ........................................................................................ 719A.1 Disclaimer ................................................................................... 719A.2 Contents ..................................................................................... 719A.3 Release Level .............................................................................. 720A.4 Installation Options .................................................................... 720

B The Authors ......................................................................................... 723

Index ......................................................................................................... 725

352 Book.indb 16 12/6/10 2:59:44 PM

Page 13: Next Generation ABAP Development - Amazon S3 · PDF fileNext Generation ABAP™ Development ... 2 New Language Features in SAP NetWeaver 7.02 ... 14.4 POWL—Power List

29

In this chapter, we will meet Russel, the ABAP developer, as he begins to explore his newly upgraded development system. His exploration is cut short, however, as he learns of a new project that will force him to channel his development skills into new directions.

Workbench Tools and Package Hierarchy1

This is a very exciting day for the ABAP developer, Russel. Today is the first day that Russel gets to log onto and explore his newly upgraded ABAP development system. This is something he has been anticipating for quite some time.

For several years, Russel has worked diligently on his employer’s SAP R/3 system. His employer is a university that implemented SAP R/3 over 10 years ago. Origi-nally, they implemented SAP R/3 primarily for financials. Over the years, they have expanded their use of SAP R/3 into human resources and purchasing.

Russel has worked on all kinds of custom development projects. Early on, he worked primarily on reports and data migration programs for the university. As his skills in ABAP grew, however, he found himself working on increasingly more complex projects. He is quite proud of some of the systems that he has custom developed from scratch in the ABAP environment.

Like many SAP customers, however, the university has stayed with the 4.6C release of SAP R/3 for many years. Still, Russel has kept up with his reading about the new features that were introduced in SAP Web Application Server (SAP Web AS) 6.10 and 6.20, SAP NetWeaver 2004, and SAP NetWeaver 7.0 (and the enhance-ment packages that came for SAP NetWeaver 7.0), and he has seen many fine new developments emerge over various ABAP releases. But because he never had a system or projects to work on at these release levels, he feels a little like he has been looking in from the outside. He can see these great new features, but he never gets the opportunity to try them out for himself.

352 Book.indb 29 12/6/10 2:59:45 PM

Page 14: Next Generation ABAP Development - Amazon S3 · PDF fileNext Generation ABAP™ Development ... 2 New Language Features in SAP NetWeaver 7.02 ... 14.4 POWL—Power List

30

Workbench Tools and Package Hierarchy1

Log on and Explore1.1

Like any good ABAP developer would do, Russel goes immediately to Transac-tion SE80 —the ABAP Workbench—when he fi rst logs on to the newly upgraded system. Of course, there are many other interesting capabilities to look at, for example, the Internet Communication Manager (ICM) confi guration in Transaction SMICM and the service node hierarchy in Transaction SICF ; however, Russel will have to wait until later to investigate these components.

Workbench Object Browser1.1.1

When entering the ABAP Workbench for the fi rst time after an upgrade, Russel sees a familiar-looking interface (see Figure 1.1).

ABAP Workbench in SAP NetWeaver 7.02Figure 1.1

The classic layout of the object navigation tree on the left side of the screen and the object editor on the right side has not changed. You can still navigate through

352 Book.indb 30 12/6/10 2:59:46 PM

Page 15: Next Generation ABAP Development - Amazon S3 · PDF fileNext Generation ABAP™ Development ... 2 New Language Features in SAP NetWeaver 7.02 ... 14.4 POWL—Power List

31

Log on and Explore 1.1

your object view history, up and down the package hierarchy and by drilling into objects via double-clicks.

The optional subwindows Display Worklist and Navigation stack are also dis-played . Russel has already activated these two features back in SAP R/3 4.6C, so they are still present with his last entries after the upgrade. Because these features of the ABAP Workbench are optional, you can activate or deactivate them any time via the Utilities • Worklist or Utilities • Display Navigation Window menu options.

Like many ABAP developers, Russel likes to use the worklist to keep track of the items he still needs to fi nish or come back to and test. The navigation stack is another quick way for him to see what objects he has viewed lately. As you will fi nd, for example, when you’re using forward navigation to jump between objects frequently, this tool can be very helpful to keep you from getting lost in a deep stack.

Object Browser List1.1.2

But Russel’s attention is drawn to the new Object Browser list area (see Figure 1.2). This is the area with rows of buttons at the top-left section of the ABAP Workbench that allow developers to choose their object browser perspective.

Object Browser ListFigure 1.2

In SAP R/3 4.6C, you only had the Repository Browser perspective. This view, which allows you to work with core development objects such as classes, pro-grams, and Data Dictionary objects, is still the most commonly used perspective. However, by glancing at the other options, Russel gets a quick preview of some of the expanded functionality now available in the ABAP environment thanks to the upgrade:

352 Book.indb 31 12/6/10 2:59:46 PM

Page 16: Next Generation ABAP Development - Amazon S3 · PDF fileNext Generation ABAP™ Development ... 2 New Language Features in SAP NetWeaver 7.02 ... 14.4 POWL—Power List

32

Workbench Tools and Package Hierarchy1

Enhancement Info System and Enterprise Service Browser EE

The first and the last options displayed in Russel’s Object Browser, as shown in Figure 1.2, were introduced with SAP NetWeaver 7.0 and are specific to new functionality in this release. The Enhancement Info System pertains to the new Enhancement Framework. Although Russel has only done limited reading about the Enhancement Framework, he can tell that selecting this view causes the Object Browser to display enhancements that have been implemented in his system. To Russel, this seems like a new, easy way to keep track of all of his enhancements in one place.

The other new option introduced in SAP NetWeaver 7.0 is the Enterprise Ser-vice Browser. Russel suspects that this is the main Object Browser perspective that he would use when working with Enterprise Services. Once someone con-figures a connection to the Enterprise Services Repository of SAP NetWeaver, this browser can be used to get a view of all possible Enterprise Services that can be consumed from ABAP. Russel is fairly certain he will get an opportunity to use these Enterprise Services in a future project, but little does he know just how soon that will be (see Chapter 5 for more details on using the Enterprise Service Browser).

Test Repository EE

The penultimate option in the list is the Test Repository. This item was intro-duced with SAP NetWeaver 2004. This is a view of your ABAP Unit test classes. Russel is a little skeptical about the idea of coding extra unit test classes. He has always done his own “black box” testing informally before handing off any development to the functional owner for extensive integration testing. He has never put much thought into a more formalized test process. However, with the upgrade, he is open to trying out lots of new ideas and does not want to dismiss the idea of unit test classes before he has had a chance to try them out in a first project. Russel’s first experiences with unit test classes are covered in Chapter 9.

MIME Repository and Tag Browser EE

The remaining options in the Object Browser selection area date back to the early 6.10 release and 6.20 release of the SAP Web Application Server. The second and fifth options in the area, MIME Repository and Tag Browser, come hand-in-hand with the introduction of embedded web functionality in the ABAP environment.

MIMEEE stands for Multipurpose Internet Mail Extensions and was a specifica-tion originally developed for the transmission of non-ASCII7 characters via

352 Book.indb 32 12/6/10 2:59:46 PM

Page 17: Next Generation ABAP Development - Amazon S3 · PDF fileNext Generation ABAP™ Development ... 2 New Language Features in SAP NetWeaver 7.02 ... 14.4 POWL—Power List

33

Log on and Explore 1.1

SMTP. Although originally conceived as part of the Internet mail standards, MIME is also the core standard for communicating any nontext data via HTTP. For instance, any JPEG images used in the output of a web page would be stored in this repository. Unlike many other web servers, ABAP does not store these MIMEs at the file system level. This would be very complicated, given the multiple–application-server arrangement of most ABAP-based applications. Instead, the MIMEs are stored in the underlying database. However, the MIME Repository view in the Object Browser displays the organization of the MIME objects in the familiar file/folder structure that we are all used to dealing with.

Because web page design is generally based on HTMLEE , it makes sense to also have a Tag Browser. Tags are the descriptions of user interface elements that you want to appear in your web page. For instance, an input field is formed by adding the <INPUT> tag to your page’s source. In addition to displaying all of the standard HTML tags, SAP also uses the Tag Browser to organize all of the BSP-specific tags (Business Server Pages, an ABAP-specific tool for creat-ing web pages), also known as BSP extensions.

Russel has always been the tried and true ABAP developer focusing on list and dialog programs. He has never experimented much with creating web pages, unless you count the time he created an HTML page to share pictures of a fam-ily reunion. Nevertheless, he realizes that the time when an ABAP programmer could turn a blind eye to web development has passed. He knows the future of ABAP development will require him to learn about the new browser-based UI technologies such as BSP (see Chapter 15) and Web Dynpro (see Chapter 13 and 14).

Repository Information System and Transport Organizer EE

The remaining two options, Repository Information System and Transport Organizer, are not entirely new tools. Both existed before, but now they are integrated directly into the ABAP Workbench.

The Repository Information System gives you a higher-level view of the orga-EE

nization of ABAP development objects. It allows you to search for objects based on their assignment to an application area, such as Materials Manage-ment (MM) or Sales and Distribution (S&D). This application–area-based hier-archy is most useful when you’re trying to find some standard SAP objects that you might want to access or reuse in your own development projects.

The Transport Organizer brings the most common functions of the trusty EE

Transaction SE10 directly into the ABAP Workbench. For instance, you can

352 Book.indb 33 12/6/10 2:59:46 PM

Page 18: Next Generation ABAP Development - Amazon S3 · PDF fileNext Generation ABAP™ Development ... 2 New Language Features in SAP NetWeaver 7.02 ... 14.4 POWL—Power List

34

Workbench Tools and Package Hierarchy1

now release transport requests or view their contents from the ABAP Work-bench. Although this is not state-of-the-art new functionality, the possibili-ties for integration make this a welcome usability enhancement.

Workbench Setting1.1.3 s

Just about the time Russel fi nishes exploring the different Object Browser views, one of his fellow developers, Nathan, stops by his offi ce and notices that Russel is exploring the newly upgraded system. Nathan immediately detects that Russel’s screen looks quite different than his own, even though they have both been work-ing on the newly upgraded system this morning. Russel explains that it is possible to confi gure several options for the look and functionality of the ABAP Workbench from the menu options via Utilities • Settings (see Figure 1.3).

Workbench Options – Browser SelectionFigure 1.3

First, Russel shows Nathan how to choose the browser selections that they want to appear. You can confi gure the Object Browser list that we just looked at in detail, or remove items that you would seldom use.

New ABAP Editor1.1.4

Russel then asks Nathan if he’s had an opportunity to try the new ABAP Editor . Although Russel has seen articles on the new editor on SAP Developer Network

352 Book.indb 34 12/6/10 2:59:47 PM

Page 19: Next Generation ABAP Development - Amazon S3 · PDF fileNext Generation ABAP™ Development ... 2 New Language Features in SAP NetWeaver 7.02 ... 14.4 POWL—Power List

35

Log on and Explore 1.1

(SDN; http://sdn.sap.com), he might not have realized that there was a new editor in this release if he had not navigated through the Workbench Options screens. In many systems, the new editor is not selected by default; however, after select-ing the Front-End Editor (New) option in the ABAP Editor tab, subtab Editor, of the User-Specifi c Settings dialog, as shown in Figure 1.4, he was able to start exploring the new editor.

Workbench Options – Editor OptionsFigure 1.4

Editor Requirements

First, you should note that the new ABAP Editor is delivered in two parts. The fi rst requirement is the software that runs on the developer’s client machine as part of the SAP GUI for Windows . This frontend control for the editor was delivered for the 6.40 (and higher) release of the SAP GUI as of patch level 11. So, before using the new ABAP Editor, you need to ensure that your SAP GUI is up to date.

However, having the correct SAP GUI version alone is not enough. The back-end integration into the ABAP Workbench requires ABAP coding that is delivered along with the ABAP system’s release level. The new editor integration into the

352 Book.indb 35 12/6/10 2:59:48 PM

Page 20: Next Generation ABAP Development - Amazon S3 · PDF fileNext Generation ABAP™ Development ... 2 New Language Features in SAP NetWeaver 7.02 ... 14.4 POWL—Power List

36

Workbench Tools and Package Hierarchy1

ABAP Workbench was originally delivered only to SAP NetWeaver 7.0 and higher releases.

This means our friend Russel has the necessary release level and SAP GUI to use the new ABAP Editor.

Editor Backport

However, if you don’t yet have SAP NetWeaver 7.0, don’t lose hope. Due to popular demand for the new ABAP Editor, SAP has backported the development to SAP Web AS 6.20 and SAP NetWeaver 2004. This backport was delivered to customers via Basis Sup-port Package 59 for SAP Web AS 6.20 and Basis Support Package 18 for SAP NetWeaver 2004.

Editor Features and Functions

Because Nathan has never read anything about the new editor, he asks Russel, “So what is so great about this new ABAP Editor?” “Plenty,” says Russel. He goes on to explain that because the new editor is primarily a piece of software running inside the SAP GUI on the user’s PC, it brings with it a lot of user interface enhancements. Furthermore, the new ABAP Editor has the kinds of functionality that have been standard for years in other development environments.

For example, you now have code coloring and syntax highlighting. This frontend control that is the code editor is no longer just a text editor. It understands the ABAP language syntax and contains a mini-compiler. So, as you type, the source code is constantly being parsed and processed on the frontend to apply syntax-sensitive formatting.

For instance, you’ll see keywords being formatted with a different text color than comments or data variables. You also have the ability to do code collapse; for example, you can take a complex IF statement and collapse the entire structure. This hides the inner complexity of the statement, making the overall flow of the application more readable. At the same time, you can quickly see the contents of the collapsed area via a popup dialog when you mouse over the area, which is shown in Figure 1.5.

The new ABAP Editor has numerous other usability enhancements such as a built-in split screen view, an extended clipboard, bookmark and breakpoint integration, customizable code templates, and markers to indicate the changed sections since your last save.

352 Book.indb 36 12/6/10 2:59:48 PM

Page 21: Next Generation ABAP Development - Amazon S3 · PDF fileNext Generation ABAP™ Development ... 2 New Language Features in SAP NetWeaver 7.02 ... 14.4 POWL—Power List

37

Log on and Explore 1.1

New ABAP EditorFigure 1.5

Code Completion

There are some additional treats in store for Russel. His newly upgraded system also contains the latest SAP NetWeaver enhancement package level—SAP NetWeaver 7.0 enhancement package 2. There have been a lot of new ABAP features devel-oped since the introduction of SAP NetWeaver 7.0 in 2006. The vast majority of these features fi nally come to SAP Business Suite developers with this latest enhancement package. One of these new features that impact the ABAP Editor is the inclusion of true syntactical code completion in the ABAP Editor. This func-tionality is similar to the pattern insertion functionality that many developers are familiar with today, but is now available to the developer with just a click of the mouse. This brings the robust object completion or smart insertion found in other development languages to the ABAP environment (see Figure 1.6).

352 Book.indb 37 12/6/10 2:59:48 PM

Page 22: Next Generation ABAP Development - Amazon S3 · PDF fileNext Generation ABAP™ Development ... 2 New Language Features in SAP NetWeaver 7.02 ... 14.4 POWL—Power List

38

Workbench Tools and Package Hierarchy1

New in SAP NetWeaver 7.02—Code CompletionFigure 1.6

The difference with the ABAP environment is that it uses many global objects. Inside an ABAP object class, you might reference any number of Data Dictionary objects, function modules, or other global classes without the need for any forward declarations. Yet the code completion and quick info of the new ABAP Editor is able to make a call from the frontend to talk to the backend server and retrieve these details on demand.

This code completion is fairly easy to use. As you are typing you can press [Ctrl]+ [Space] at any time to ask the system to build a list of possible completions. This works for a wide variety of objects: classes, methods, function modules, Data Dictionary objects, and so on. The search for completions covers both local decla-rations and the entire global repository. You can then click the item from the list you want to insert (or press [Tab] on the selected item) and the name of the object will be inserted. If you want a pattern insertion (for instance, the entire method

352 Book.indb 38 12/6/10 2:59:49 PM

Page 23: Next Generation ABAP Development - Amazon S3 · PDF fileNext Generation ABAP™ Development ... 2 New Language Features in SAP NetWeaver 7.02 ... 14.4 POWL—Power List

39

Log on and Explore 1.1

signature instead of just the method name), hold down the [Shift] key while you click on the item or press [Tab].

However, code completion isn’t limited to just the calling of external modules and Data Dictionary objects. All ABAP keywords can also be used within the comple-tion action. The quick info that is displayed for keywords contains the fi rst few lines of the online help. There are also a few wizards that are triggered when you choose the [Ctrl] + [Space] pattern insertion for the completion on a keyword. The classic messages and write statement wizards fi re for their corresponding keywords.

There is also a new TYPES generator wizard. This wizard (shown in Figure 1.7) assists you in creating in-line type defi nitions that are based upon Data Dictionary structures. It displays all of the elements in a chosen Data Dictionary structure and allows you to select which elements you want in the generated TYPES statement. You have an active preview of the generated output that changes as you select or deselect any elements.

ABAP Type Builder Wizard Triggered by Code CompletionFigure 1.7

352 Book.indb 39 12/6/10 2:59:50 PM

Page 24: Next Generation ABAP Development - Amazon S3 · PDF fileNext Generation ABAP™ Development ... 2 New Language Features in SAP NetWeaver 7.02 ... 14.4 POWL—Power List

40

Workbench Tools and Package Hierarchy1

Another nice feature of the code completion in ABAP is that the templates, used for both the quick info display and the pattern insertion, are customizable. Sim-ply execute the function module SRCC_CALL_TEMPLATE_MAINTENANCE to access the template maintenance application. In the top of the editor screen (Figure 1.8), you choose which of the two template types you want to work with and then which template. If you check Use Customized Template, then you can edit the system-provided template. This customized version will be used automatically for just your user ID.

ABAP Code Template MaintenanceFigure 1.8

Additional New Workbench Tools1.1.5

The new ABAP Editor alone is enough to get Russel excited about the upgrade, but he knows he has other new tools to explore in the ABAP Workbench as well.

352 Book.indb 40 12/6/10 2:59:51 PM

Page 25: Next Generation ABAP Development - Amazon S3 · PDF fileNext Generation ABAP™ Development ... 2 New Language Features in SAP NetWeaver 7.02 ... 14.4 POWL—Power List

41

Log on and Explore 1.1

Source–Code-Based Class Editor

Long-time ABAP developers, like Russel, are probably already familiar and com-fortable with the current class editor. Most of them even take for granted that the form-based approach to class editing—with its separate dialog screens for each method interface and coding blocks—is somewhat standard because that is all we have ever had for global classes in the ABAP environment. However, developers from other programming languages are generally used to a class editor where the entire structure of the class and code are all represented in one editor window.

As of SAP NetWeaver 7.0 enhancement package 2, ABAP developers now have the option to switch between these two types of editors as SAP introduces the new source–code-based class editor. From the traditional form-based editor, you can click the Source Code-Based button (Figure 1.9) to switch editor modes.

Trigger to Switch Class EditorsFigure 1.9

Once in the source–code-based class editor, you will see one large ABAP Editor win-dow that contains the entire contents of the class. This is somewhat similar to the public/protected/private source code view that was possible in previous releases. However, in this previous approach you could only edit one visibility section at a time, and you could only edit the class defi nition, but not the implementation. The new source–code-based class editor removes all of these limitations, allowing you to edit all parts of the class at once.

This is particularly nice because of the easy visibility between multiple methods within a class (see Figure 1.10). However, it can make it somewhat more diffi cult to navigate between the different parts of the class if you use the source code window only. To help with this, many developers may fi nd that they use the object naviga-tor more often for inner class navigation. There is also a special Class/Interface Navigator (shown in the dialog on the left side of Figure 1.10) that you can run in a separate window, allowing direct navigation to different sections of the class.

352 Book.indb 41 12/6/10 2:59:51 PM

Page 26: Next Generation ABAP Development - Amazon S3 · PDF fileNext Generation ABAP™ Development ... 2 New Language Features in SAP NetWeaver 7.02 ... 14.4 POWL—Power List

42

Workbench Tools and Package Hierarchy1

Source–Code-Based Class EditorFigure 1.10

Luckily, both class editor types still exist within the ABAP Workbench, and you can freely switch between them while editing a class. This lends itself to developers being able to take advantage of the strengths of each of the editor types. You can also choose your default editor type from within the workbench settings we looked at earlier (the class settings Figure 1.11).

Class Builder SettingsFigure 1.11

352 Book.indb 42 12/6/10 2:59:52 PM

Page 27: Next Generation ABAP Development - Amazon S3 · PDF fileNext Generation ABAP™ Development ... 2 New Language Features in SAP NetWeaver 7.02 ... 14.4 POWL—Power List

43

Log on and Explore 1.1

Web Dynpro ABAP

The tool that makes Russel positively giddy with anticipation is Web Dynpro ABAP. He has already read so much about it. He knows that Web Dynpro ABAP is the new default UI development tool for ABAP going forward. Although Web Dynpro is a tool that creates development objects that can be run within a browser, it isn’t tied to just that delivery mechanism. Nor does it require that an ABAP developer learn anything about HTML or JavaScript. All of the inner com-plexities of the UI coding are hidden behind a simple and uniform metamodel for describing the user interface. Although Russel doesn’t have time today to navigate throughout Web Dynpro (he’ll get his chance in Chapters 13 and 14), he’s seen enough to know that he’s looking forward to working on a project that employed this tool.

The screen designer alone, shown in Figure 1.12, made Web Dynpro ABAP devel-opment look very appealing. Note that all the UI elements are in well-defined groups on the left side of the designer. In the middle, you’ll see a WYSIWYG editor (what you see is what you get) of the screen as it is being built. You can even drag and drop UI elements directly on this area.

Web Dynpro ABAP DesignerFigure 1.12

352 Book.indb 43 12/6/10 2:59:52 PM

Page 28: Next Generation ABAP Development - Amazon S3 · PDF fileNext Generation ABAP™ Development ... 2 New Language Features in SAP NetWeaver 7.02 ... 14.4 POWL—Power List

44

Workbench Tools and Package Hierarchy1

On the right side of the screen you’ll see the hierarchy of the UI elements. Russel thinks the drag and drop from the toolbox is a nice feature, but when working with a complex layout, he realizes that this element hierarchy will be the best way to interact with the design.

Russel is further impressed by the property box for each UI element. Although common in other development environments, this property box is one of the few places in ABAP where you can easily configure all of the UI element properties. Ultimately, Russel feels like he can be much more productive designing transac-tions’ screens in the Web Dynpro tools than he is today using the ABAP Dialog Screen Painter.

Business Server Pages

As it turns out, Web Dynpro ABAP is not the only way to create content in the ABAP Workbench that is targeted for deployment to a web browser. When the Basis layer was renamed SAP Web Application Server (SAP Web AS) with release 6.10, it was more than just a name change.

SAP added full web server functionality to the core ABAP stack through the addi-tion of the Internet Communication Manager (ICM). This underlying technology is used as the core communication channel for Web Services and Web Dynpro ABAP.

But, unlike Web Dynpro, where you can’t directly access the generated UI cod-ing, the Business Server Pages (BSP) tool (shown in Figure 1.13) is a Web-specific development environment. Using this perspective of the ABAP Workbench, you can code custom HTML and JavaScript pages. In Chapters 13, 14, 15, Russel will get the opportunity to see how both tools can be useful for creating different kinds of browser-based applications.

Extensible Stylesheet Language Transformation

As Russel is navigating through some of the new object types in the ABAP Work-bench, he encounters the Extensible Stylesheet Language Transformation (XSLT) editor—all of which Russel will end up using in Chapter 11. XSLT is a language that is specifically designed for transformations involving XML. XSLT is not something that SAP invented; instead it is an open–standards-based language that is found in many development environments. You should think of XSLT as a manipulation

352 Book.indb 44 12/6/10 2:59:52 PM

Page 29: Next Generation ABAP Development - Amazon S3 · PDF fileNext Generation ABAP™ Development ... 2 New Language Features in SAP NetWeaver 7.02 ... 14.4 POWL—Power List

45

Log on and Explore 1.1

language for XML (i.e., it’s a way to defi ne an easy path for creating new XML or XHTML structures from an existing XML).

SAP also added the XSLT language processor to the ABAP Kernel and a com-plete XSLT editor to the ABAP Workbench. One of the major benefits to XLST of being integrated into the ABAP Workbench is that an XSLT object is now stored like any other object in the ABAP repository. This also means that XSLT objects are transported via the Transport Management System (TMS) like any other object. Transformations are tightly integrated into the ABAP cod-ing environment and can be called within any piece of coding using the new statement CALL TRANSFORMATION . However, in the ABAP environment, there is the added capability of being able to transform native ABAP data types to and from XML as well.

BSP Layout EditorFigure 1.13

352 Book.indb 45 12/6/10 2:59:53 PM

Page 30: Next Generation ABAP Development - Amazon S3 · PDF fileNext Generation ABAP™ Development ... 2 New Language Features in SAP NetWeaver 7.02 ... 14.4 POWL—Power List

46

Workbench Tools and Package Hierarchy1

Refactoring

The concept of refactoring is not new to the ABAP environment. Every programmer, at one time or another, has had to make changes to a program to better organize its structure. In the early days of ABAP, Russel used to have to work with programs that got too large over time. Consequently, he would edit them to move some of the functionality into more manageable forms, and, when necessary, group the forms into separate includes.

All of the aforementioned activities fall under the concept of refactoring; however, refactoring as a normal development practice has really taken root with the advent of object-oriented programming. It is increasingly common to have to refactor your class structures as they grow larger. This often means breaking up a single class into multiple parent/child classes and reassigning the original set of methods among the new class hierarchy.

With the SAP NetWeaver 2004 release, SAP began introducing some basic refac-toring tools within the ABAP Workbench, which is the only available option that enables you to move methods between parent and child objects. You can access the Refactoring Assistant within the Class Builder from the menu Utilities • Refactor-ing Assistant.

Future Functionality

With future releases of SAP NetWeaver, SAP plans to expand the toolset offered within the area of refactoring. Not all of the new features in the ABAP environment have been backported to SAP NetWeaver 7.0x codeline even as of NetWeaver 7.0 enhancement package 2. The refactoring functionality remains one of the few features that is only available in SAP NetWeaver 7.10 and higher. Figure 1.14 shows some of the new refac-toring tools available for standard program code.

One example of this new refactoring functionality will be the ability to rename a method or function module. The Refactoring Assistant will do more than simply enable you to perform a find and replace operation. It will allow you to change all references to the object that is being renamed globally, even if that means changing other development objects. These future refactoring tools will also have a preview option that allows you to gauge the scope of your changes before you make them.

352 Book.indb 46 12/6/10 2:59:53 PM

Page 31: Next Generation ABAP Development - Amazon S3 · PDF fileNext Generation ABAP™ Development ... 2 New Language Features in SAP NetWeaver 7.02 ... 14.4 POWL—Power List

47

Log on and Explore 1.1

Future Functionality—Refactoring AssistantFigure 1.14

ABAP Development Tools—Based upon Eclipse

Russel might not have it in his 7.02 system yet, but he also heard about an exciting new tool for ABAP developers at TechEd last year. SAP is currently working on an ABAP development tool that is based upon Eclipse. This is something that is still in early development, and SAP hasn’t commented on when it might ship to ABAP developers, but Russel is hopeful that he will see it sometime in the future.

For anyone already familiar with the industry standard Eclipse IDE framework, ABAP development in this new tool would be instantly identifi able. Figure 1.15 shows a preview of this new toolset based upon a work-in-progress internal SAP version of the tool.

352 Book.indb 47 12/6/10 2:59:54 PM

Page 32: Next Generation ABAP Development - Amazon S3 · PDF fileNext Generation ABAP™ Development ... 2 New Language Features in SAP NetWeaver 7.02 ... 14.4 POWL—Power List

48

Workbench Tools and Package Hierarchy1

ABAP Development Tools—Based Upon EclipseFigure 1.15

Debugger1.1.6

Every developer knows that a critical part of any development environment is its debugger . With SAP NetWeaver 2004, there is a new debugger that keeps up with much of the great new innovation found in the rest of the ABAP Workbench.

Before SAP NetWeaver 2004, the debugger was limited in what kinds of UI con-trols it could use because the debugger actually ran within the same execution space as the program it was debugging. Therefore, if the debugger contained UI controls that required a control fl ush or commit work , they could disrupt the fl ow of the application that was being debugged.

352 Book.indb 48 12/6/10 2:59:56 PM

Page 33: Next Generation ABAP Development - Amazon S3 · PDF fileNext Generation ABAP™ Development ... 2 New Language Features in SAP NetWeaver 7.02 ... 14.4 POWL—Power List

49

Log on and Explore 1.1

SAP solved this program by making the new debugger a two-process debugger . Therefore, the debugger now runs in a separate work process and remote attaches to the application that is being debugged. This opened up the opportunity for tremendous innovation in a debugger that had seen few changes over time.

When trying the debugger for the fi rst time, Russel notices that the code is dis-played using the new ABAP editor as long as the system meets the requirements (described earlier) to have the new editor. The additional functionality provided includes your being able to mouse over a variable and see its type defi nition and current value (see Figure 1.16).

New ABAP DebuggerFigure 1.16

352 Book.indb 49 12/6/10 2:59:56 PM

Page 34: Next Generation ABAP Development - Amazon S3 · PDF fileNext Generation ABAP™ Development ... 2 New Language Features in SAP NetWeaver 7.02 ... 14.4 POWL—Power List

50

Workbench Tools and Package Hierarchy1

The new debugger is also modular. There are several preconfi gured desktops with a selection of the debugger tools on them; however, any developer can choose what tools he wants and how he wants them arranged on the screen. You can save these custom desktop arrangements of tools for future debugger sessions.

Besides all of the traditional tools such as the ability to drill down into structure and internal table values or see ABAP object details, the new debugger also has a suite of highly specialized tools. For instance, internal tables can be downloaded to Microsoft Excel for further comparison. Figure 1.17 shows the built-in comparison tool, accessible via the Diff tab in the debugger, which allows you to make some very powerful comparisons, even between two internal tables, without ever leav-ing the debugger.

ABAP Debugger Variable ComparisonFigure 1.17

Debugger XML Viewer

XML processing is becoming increasingly more prevalent in normal ABAP pro-gramming. It is commonly used in web development and Enterprise Services , and it is just a matter of time before you will be able to view the contents of an XMLstream in the debugger. XML streams are frequently stored in memory as binary strings , making them nearly impossible to interpret in the old debugger. Figure 1.18 shows the capabilities of the new debugger, which includes its ability to not only translate binary strings, but also to display XML streams in a more readable format for users.

352 Book.indb 50 12/6/10 2:59:57 PM

Page 35: Next Generation ABAP Development - Amazon S3 · PDF fileNext Generation ABAP™ Development ... 2 New Language Features in SAP NetWeaver 7.02 ... 14.4 POWL—Power List

51

Log on and Explore 1.1

ABAP Debugger XML ViewerFigure 1.18

Web Dynpro ABAP Debugger

Lastly, with the introduction of Web Dynpro ABAP with SAP NetWeaver 7.0, we have a whole new type of object to potentially debug. Fortunately, the ABAP debugger works just as well within applications that run in a browser. By setting an external breakpoint , you can debug Web Dynpro ABAP, Web Services, and BSP applications easily and without requiring additional setup on the server.

Web Dynpro goes even further by introducing a special debugger tool (available as of SAP NetWeaver 7.0 SPS9) for interacting with a Web Dynpro component. Figure 1.19 shows this tool in action. The special Web Dynpro ABAP debuggertools allow you to view the component structure , UI controls and their properties, and even the context at runtime.

352 Book.indb 51 12/6/10 2:59:58 PM

Page 36: Next Generation ABAP Development - Amazon S3 · PDF fileNext Generation ABAP™ Development ... 2 New Language Features in SAP NetWeaver 7.02 ... 14.4 POWL—Power List

52

Workbench Tools and Package Hierarchy1

Special Debugger Tool for Web Dynpro ABAPFigure 1.19

Package Hierarchy for the Project1.2

Unfortunately, Russel’s fun exploring the upgrades to the ABAP Workbench has to draw to a close. Along with the SAP Business Suite 7i2010 upgrade , the university he works for has an ambitious new custom development project. Russel will have to turn his attention to this new project.

Still, he feels that even this brief run through the ABAP Workbench has provided him with a good foundation. In actuality, he hasn’t even begun to scratch the sur-face, given all the new tools he will be working with over the next few weeks.

When Russel arrives at the project kick-off meeting, he’s surprised to see so many people in the room. Because he hadn’t heard a thing about this project prior to the meeting, he assumes his role would be relatively insignifi cant. The product owner quickly dispelled that idea after announcing that the university had decided to create an online continuing education program. The action items for the ABAP

352 Book.indb 52 12/6/10 2:59:58 PM

Page 37: Next Generation ABAP Development - Amazon S3 · PDF fileNext Generation ABAP™ Development ... 2 New Language Features in SAP NetWeaver 7.02 ... 14.4 POWL—Power List

53

Package Hierarchy for the Project 1.2

development team were to support this effort with several key pieces of new development.

Project Requirements1.2.1

First, the students in this new program would have to register for the online pro-gram via the existing registration website. The student records would be stored in a separate system that holds the traditional student records as well. Likely, some form of interface will have to be written to access this existing, legacy student database.

The new system will require a self-service website where professors can go to maintain details about the courses they will teach and contact information. The professors have also requested an easy way to communicate their weekly course assignments to their online students. And the administration office wants a new system to track the course registrations so they can run some basic accounting reports to gauge the success of the new online program.

The administration workers already are heavy SAP GUI users and want their reports to be integrated with their existing SAP GUI transactions. For all of the self-service functions that the professors will use, they want to be able to access these pages via single sign-on (SSO) using the new role-based SAP NetWeaver Portal. Lastly, any web pages that are externally facing to the students need to run with no assumptions about what Internet browser the user has. They will need to be able to support many simultaneous users as well.

When Russel leaves the meeting, he understands that he certainly has his work cut out for him. He’ll have only a few weeks to build this entire online system from scratch. At the same time, he still wants to use this opportunity to learn as much as possible. He already knows he wants to separate the business logic from the user interface layer. By creating a single set of business–logic-based model classes, he can reuse this same logic throughout the different user interface technologies that he’s already imagining will be needed to fulfill all of the user requirements.

Package Hierarch1.2.2 y

After returning to his office, Russel wants to forge ahead and lay down the founda-tion work for the project while everything is fresh in his mind. Even though he has only been to the kick-off meeting and doesn’t have detailed requirements yet, he thinks he knows enough to begin structuring his package hierarchy.

352 Book.indb 53 12/6/10 2:59:59 PM

Page 38: Next Generation ABAP Development - Amazon S3 · PDF fileNext Generation ABAP™ Development ... 2 New Language Features in SAP NetWeaver 7.02 ... 14.4 POWL—Power List

54

Workbench Tools and Package Hierarchy1

In release 4.6C and before, all ABAP development objects had to be placed into a development class . However, this development class didn’t afford much function-ality other than the ability to group objects together in a folder-like structure. To further limit the usability of development classes , it was not possible to nest the objects within each other to create any kind of hierarchy.

However, with subsequent releases, the concept of the development class was renamed package. This is more than just a name change for semantic reasons, because the package assumes far more functionality and importance than its devel-opment class predecessor.

First, packages can be nested to create package hierarchies, and that was exactly what Russel intends to do. He wants to create one high-level package for all of the development objects that will make up this online Course System. Then he wants to logically group the remaining objects into separate subpackages under the main package.

He starts out in the ABAP Workbench and selects the option to create a new pack-age, as shown in Figure 1.20, from the Development Coordination tab of the Object Selection dialog. This fi rst package, ZCOURSE_SYSTEM_V2, would be desig-nated as a Main Package in the Package Type fi eld. The values in the Transport Layer and Software Component fi elds are proposed by the system and almost never changed in customer systems.

The Software Component fi eld is primarily used in SAP systems to separate development objects between layers, such as the separation between Basis and application objects. The transport layer is used in development systems that have multiple transport landscapes. This is also extremely rare for all but the largest of SAP’s customers, in which case the possible values for the fi eld are customer specifi c.

Package CreationFigure 1.20

352 Book.indb 54 12/6/10 2:59:59 PM

Page 39: Next Generation ABAP Development - Amazon S3 · PDF fileNext Generation ABAP™ Development ... 2 New Language Features in SAP NetWeaver 7.02 ... 14.4 POWL—Power List

55

Package Hierarchy for the Project 1.2

Figure 1.21 shows the package hierarchy that Russel has initially come up with:

First, he wants to separate out all of his Data Dictionary objects and the classes EE

that will directly access the Data Dictionary into the package ZCS2_DDIC.

Next, he will establish a separate set of packages for all of his business logic, or EE

model classes called ZCS2_MODEL. The subpackage, ZCS2_MODEL_ESOA, under the business logic package, will house the Enterprise Services that will be wrappers for his core business objects.

Lastly, he wants a separate layer of the package hierarchy for the user interface EE

objects. Within this level of the package, ZCS2_UI, he can then further segregate between the different UI technologies that he plans to utilize.

Package HierarchyFigure 1.21

“So why,” you may ask, “should he go to the trouble of organizing his objects into this hierarchy?” As you know, segregating objects makes the development more organized, which in turn, helps support the solution by making it easier to fi nd the individual development object components.

Furthermore, this package hierarchy has additional benefi ts. By using the package concept, you can control which objects are visible to other packages (i.e., perhaps not all development objects should be publicly visible or accessible). For example, you might not want any outside programs to be able to access your database layer directly. Instead, you want them to pass through your model class for proper busi-ness logic validation. You can therefore create package interfaces that expose the

352 Book.indb 55 12/6/10 2:59:59 PM

Page 40: Next Generation ABAP Development - Amazon S3 · PDF fileNext Generation ABAP™ Development ... 2 New Language Features in SAP NetWeaver 7.02 ... 14.4 POWL—Power List

56

Workbench Tools and Package Hierarchy1

Data Dictionary objects only to the model class, but still present all of the model class objects globally. Figure 1.22 shows one of the package interfaces that Russel will eventually create to limit which of his development objects should be accessed from objects outside his package hierarchy.

Package Interface to Control Visibility of Inner ObjectsFigure 1.22

With the packages created in advance, Russel has established a sound foundation for the rest of his development. Next, he’ll begin the project wholeheartedly by creating his fi rst development objects within these packages.

352 Book.indb 56 12/6/10 3:00:00 PM

Page 41: Next Generation ABAP Development - Amazon S3 · PDF fileNext Generation ABAP™ Development ... 2 New Language Features in SAP NetWeaver 7.02 ... 14.4 POWL—Power List

725

A

ABAP Debugger, 404ABAP Dialog Screen Painter, 44ABAP Editor, 34ABAP+Java instance, 574ABAP JavaScript (AJS), 537ABAP Kernel, 45, 255ABAP language syntax, 36ABAP Objects, 191ABAP Unit, 21, 32, 275ABAP Workbench, 20Abstract class, 117Abstraction, 113Abstract provider, 261Accessibility, 559Action, 422ActiveX Island, 558Addition

FOR TESTING, 276Adobe, 573Adobe Document Services (ADS), 574, 575

user, 576Adobe Flex, 416, 560Adobe Flex Builder, 561Adobe Forms, 22, 578, 625Adobe LifeCycle Designer, 573Adobe Reader, 575Agent class, 117AJAX, 22, 526, 536, 537, 538, 542, 543

handler, 539ALV, 679, 689, 690, 692, 697, 699, 709ALV layout, 695, 696Append, 103Apple iOS, 713Application component, 331Application configuration, 520Archive, 252ASCII7, 32Assigned role, 623Assigning, 389Assistance class, 218, 422, 435

Asynchronous RFC, 484Attribute

code, 253Authorization group, 100

B

Base class, 117Basic authentication, 576Basic authorization, 310Basis Support Package, 36Binary string, 50Binary table, 160Binding, 431Bookmark, 36BRFplus, 471

decision table, 475expressions, 474rule, 479

BRFplus application, 472BRFplus Workbench, 471, 476, 477Browser selection, 34Buffering, 96, 98

settings, 95Buffer memory, 97Business object, 144, 145, 527Business object class, 131, 139, 215, 390Business Process Management, 246Business Rule Framework, 471Business Server Pages (BSPs), 33, 44, 216, 217, 415, 525, 615, 619, 627, 663

BSP_UPDATE_MIMEREPOS, 545COMPILE_TIME_IS_VALID, 550controller, 528, 534data binding, 550DO_AT_BEGINNING, 552element, 547element handler class, 547extension, 33, 546, 627extension element, 217, 544HTMLB Event Manager, 554

Index

352 Book.indb 725 12/6/10 3:05:07 PM

Page 42: Next Generation ABAP Development - Amazon S3 · PDF fileNext Generation ABAP™ Development ... 2 New Language Features in SAP NetWeaver 7.02 ... 14.4 POWL—Power List

726

Index

model class, 534PAGE->TO_STRING, 541RUNTIME_IS_VALID, 551server caching, 542stateful, 526stateless, 526validator, 550, 551view, 529

C

Cardinality, 434Cascading style sheets (CSSs), 531, 533, 536, 541Casting, 269Central lock process, 108Central master data hub, 246Certificate, 575Certification path, 704checkBox, 496CKEditor, 544Class

CL_ABAP_GZIP, 149CL_ABAP_RANDOM, 155CL_ABAP_ZIP, 150CL_BSP_CONTROLLER, 534CL_BSP_MODEL2, 217CL_GUI_ALV_GRID, 393CL_MDM_GENERIC_API, 255, 260CL_SALV_COLUMN_TABLE, 396CL_SALV_DISPLAY_SETTINGS, 397CL_SALV_EVENTS_TABLE, 403CL_SALV_FUNCTIONS, 394CL_SALV_HIERSEQ_TABLE, 384CL_SALV_LAYOUT, 398CL_SALV_SELECTIONS, 401CL_SALV_TABLE, 384, 390CL_SALV_TREE, 384CL_SALV_WD_CONFIG_TABLE, 436CL_WD_DYNAMIC_TOOL, 431

Class-based exception, 129, 262Classic Dynpro, 407, 625Class type, 115CL_FDT_FUNCTION_PROCESS, 479CL_GUI_ALV_GRID, 710

CL_HTTP_CLIENT, 704Client dependent, 96Client key, 106Client proxy, 164, 166Code

collapse, 36coloring, 36completion, 37template, 36

Collective Search Help, 111Commit work, 48Complex data type, 102Component, 417, 421, 422

controller, 433INTERFACECONTROLLER, 434INTERFACECONTROLLER_USAGE, 435reuse, 418, 422, 442SALV_WD_TABLE, 420, 433, 434structure, 51usage, 420, 421, 433, 442

Component configuration, 519, 520Compression, 149, 150Connection test, 617Connector category, 615Connector property, 613Console hierarchy, 252Constructor, 136Container control, 386Content administration, 618Context, 51, 425

mapping, 434Context nodes, 684Control flush, 48Controller, 412Controller class, 408, 411CREATE_BY_DESTINATION, 705CRUD methods (create, read, update, delete), 132Crystal Reports, 695

generic templates, 692Crystal Reports, 679, 689, 691, 692, 697Crystal Reports Designer, 693, 695Crystal Reports template, 694, 695Crystal Reports Viewer, 691Customer modification, 106

352 Book.indb 726 12/6/10 3:05:07 PM

Page 43: Next Generation ABAP Development - Amazon S3 · PDF fileNext Generation ABAP™ Development ... 2 New Language Features in SAP NetWeaver 7.02 ... 14.4 POWL—Power List

727

Index

D

Database layout, 87Database lock, 527Data binding, 431Data browser, 89, 102Data buffering, 95Data Dictionary, 20, 89, 266

domain, 89object, 85, 87table type, 141type, 427

Data element, 89, 92Data model, 88, 247, 252Data persistence layer, 114Data relationship, 87Data table, 102Data type, 333, 335

xsd\string, 336

Deadlock, 108Debugger, 48Debugger XML Viewer, 50Deletion operation, 148Delivery and maintenance, 99, 100Delivery class, 94Desktop, 50Detail option

maxLength, 336Development class, 54Development coordination, 54Dialog, 33

pop-up window, 438screen program, 406

Dictionary search help, 428Display Worklist, 31Distributed development, 113DIV tag, 539Document Object Model (DOM), 537Domain, 91, 93Drag and drop, 459DragSourceInfo, 463, 464dropDownByKey, 496Drop-down list box, 90dropOnRowName, 466DropOnRowTaregetInfos, 466

DropOnRowTargetInfos, 467DropTarget, 463DropTargetInfo, 463, 466Dynpro, 22, 109, 110, 132Dynpro event, 412

E

Elementary search help, 109, 111Embedded analytics, 679Endpoint type, 309Enhancement category, 103Enhancement Framework, 32, 103, 105, 710Enhancement Info System, 32Enjoy control event, 410Enterprise service, 32, 50, 133Enterprise Service Browser, 32, 330Enterprise Services Builder, 331, 336, 337Enterprise Services Repository, 32, 330Entry Point, 622ERP system, 247Event

CLEANUP, 262OK_CODE, 412ONCLICK, 438PAI-based, 413registration, 412

Event handler, 403, 411, 413, 422, 430, 438WDDoBeforeAction, 430, 431

Event handler method, 422Excel, 680Exception, 668Exception class, 123, 124, 126, 155

CX_DYNAMIC_CHECK, 126CX_MDM_MAIN_EXCEPTION, 262CX_NO_CHECK, 126CX_STATIC_CHECK, 126CX_SY_CONVERSION_CODEPAGE, 265

Exception handling, 121Execution duration, 278Execution space, 48Extensible Markup Language (XML), 21, 23, 44, 50, 156, 157, 159, 163, 165, 306, 329, 333, 537, 574, 663, 665

352 Book.indb 727 12/6/10 3:05:07 PM

Page 44: Next Generation ABAP Development - Amazon S3 · PDF fileNext Generation ABAP™ Development ... 2 New Language Features in SAP NetWeaver 7.02 ... 14.4 POWL—Power List

728

Index

Extensible Stylesheet Language Transformations (XSLT), 44, 132, 156, 165, 166, 670

editor, 44Extension framework, 546External breakpoint, 51

F

Factory method, 222Factory object, 261Fault message, 334FDT_WD_WORKBENCH, 471Feeder Classes, 501, 507Field

Boolean, 266OK_CODE, 388option, 142sign, 141

Field catalog, 387Field symbol, 270, 408File system, 33File Transfer Protocol (FTP), 163Filter, 142Filter object, 139Fixed value domain, 90Fixture, 279, 285FlashIsland, 568, 569, 685

DataSource, 570Properties, 570

FlashIsland.fireEvent, 567Flash Islands, 556, 558, 561, 679, 683, 684, 687Flex

ArrayCollection, 565, 570dataSource, 565mxApplication, 564setters, 566this, 567

Flex Builder, 563Flex SDK, 561Foreign key, 99

relationship, 86, 96Form field, 217, 706

FPMFeeder Class, 522FLUSH, 516form feeder, 515Form GUIBB, 516, 517FPM_GAF_COMPONENT, 519FPM_OIF_COMPONENT, 519FPM_OVP_COMPONENT, 519freestyle UI building block, 507, 518generic UI building blocks, 506, 508, 521GET_DATA, 514, 516GET_DEFINITION, 510, 513, 516GUIBB Feeder Classes, 511, 512Guided Activity Floorplan, 501IF_FPM_GUIBB, 509IF_FPM_GUIBB_SEARCH, 509IF_FPM_UI_BUILDING_BLOCK, 518INITIALIZE, 510List GUIBB, 513, 522Object Instance Floorplan, 501, 502Overview Page Floorplan, 501, 504Personalization Editor, 505PROCESS_EVENT, 513, 514, 517Quick Activity Floorplan, 501, 503search GUIBB, 509, 511search UIBB, 522user interface building blocks, 517

Friends, 117, 119Frontend editor, 35Fully buffered, 95Function

handleResponse, 538Function group, 101

SCMS_CONV, 158Function module, 108, 110, 260, 263

REUSE_ALV_GRID_DISPLAY, 393SCMS_XSTRING_TO_BINARY, 158

G

Generically typed, 269Generic API layer, 254GET REFERENCE OF, 479GET_SELECTED_ELEMENTS, 468, 469Getter method, 227, 228

352 Book.indb 728 12/6/10 3:05:07 PM

Page 45: Next Generation ABAP Development - Amazon S3 · PDF fileNext Generation ABAP™ Development ... 2 New Language Features in SAP NetWeaver 7.02 ... 14.4 POWL—Power List

729

Index

GUI client, 248GUI status, 400, 410

H

Header field~path_info, 668

Header line, 388Hierarchical-sequential list, 384HTML Island, 559HTTP client, 704, 706HTTP destination, 699, 703

logon and security, 701HTTP proxy options, 700HTTPS, 699, 702Hypertext Markup Language (HTML), 33, 43, 44, 405, 415, 530, 535, 627

email, 239page, 149tags, 33viewer, 405, 409viewer control, 405

Hypertext Transfer Protocol (HTTP), 526, 527, 663, 665

element, 532handler, 665HTTPS, 614request, 527, 664response, 527server cache, 543

I

ICF service node R see Internet Communication Framework, 23Identity Management, 616, 623IF_WD_CONTEXT_NODE_INFO, 481IMG, 689, 690, 692, 694, 696Index, 104Inheritance, 117, 124Inside-out, 305, 329Integration Builder, 329

Interface, 53IF_HTTP_EXTENSION, 666IF_MDM_ACCESSOR, 261IF_MDM_ADMIN, 261IF_MDM_API_CONFIG, 261IF_MDM_CORE_SERVICES, 261IF_MDM_META, 261SAI_TOOLS, 166

Internal table, 389Internet Communication Framework (ICF), 664, 665, 666, 667

handler, 664ICF Service node, 23

Internet Communication Manager (ICM), 44, 485, 542, 667Internet Transaction Server (ITS)

Integrated ITS, 616, 626Interval value domain, 91iPad, 680, 712, 714iPhone, 680, 712, 714Islands, 556, 560

limitations, 559isLeaf, 463IS_LEAF, 467iView, 22, 613, 615, 617, 618, 619, 622, 623, 624, 627iView Wizard, 618iXML, 707

J

Jakarta Struts, 216Java, 247JavaScript, 43, 44, 415, 538, 539, 549, 552Java Server Faces, 216Java Swing Library, 216JPEG image, 33

K

Key field, 96Knowledge Management, 610

352 Book.indb 729 12/6/10 3:05:08 PM

Page 46: Next Generation ABAP Development - Amazon S3 · PDF fileNext Generation ABAP™ Development ... 2 New Language Features in SAP NetWeaver 7.02 ... 14.4 POWL—Power List

730

Index

L

Language key, 97, 98Language translation, 90leadSelection, 514Lightspeed, 416Link, 427List, 33Load balancing, 611, 612Local class, 276Local event handler class, 402Locators, 85Lock object, 107Logical object name, 261, 263, 264Login group, 97Logon method, 614Lowercase checkbox, 93

M

Maintenance view, 98, 100, 101Managed object, 117, 118Master Column, 461Master data, 250

harmonization of, 246MDM4A R see SAP NetWeaver Master Data Management, 254MDM R see SAP NetWeaver Master Data Management, 21, 245Message

area, 429class, 124, 125manager, 125server, 611text, 128type, 334variable, 108

MethodASSERT, 279, 280, 289ASSERT_EQUALS, 286ASSERT_NOT_INITIAL, 286, 287ASSERT_SUBRC, 280asynchronous, 205ATTACH, 199, 203BUILD, 203

CLASS_CONSTRUCTOR, 118CL_BSP_RUNTIME=>CONSTRUCT_BSP_URL, 548COMMIT, 147CONSTRUCTOR, 127CREATE_PERSISTENT, 121, 123DELETE, 148DELETE_PERSISTENT, 123DISPATCH_INPUT, 217, 528DO_AT_BEGINNING, 547DO_REQUEST, 540, 543GET_FORM_FIELD, 540GET_PERSISTENT, 122, 123GET_PERSISTENT_BY_QUERY, 123getResponseHeader, 539HANDLE_REQUEST, 666ON_USER_COMMAND, 404QUERY, 267RETRIEVE_SIMPLE, 267set, 147SET_SAVE_RESTRICTION, 399SET_SCREEN_POPUP, 404SET_SCREEN_STATUS, 401SETUP, 279, 285simple, 265SPLICE, 151TEARDOWN, 279, 285test, 278TO_BOOLEAN, 550TO_ENUM, 550WDDOINIT, 435

Microsoft Excel, 50Microsoft Foundation Classes, 216Microsoft .NET, 247Microsoft Silverlight, 560MIME folder, 567, 685MIME Repository, 561Modal dialog, 426Model, 215, 216

binding, 217class, 21, 53, 132, 417

Model View Controller (MVC), 215, 216, 217, 407, 415, 528, 534Mount MDM Server, 250Multipurpose Internet Mail Extension (MIME), 545

repository, 545

352 Book.indb 730 12/6/10 3:05:08 PM

Page 47: Next Generation ABAP Development - Amazon S3 · PDF fileNext Generation ABAP™ Development ... 2 New Language Features in SAP NetWeaver 7.02 ... 14.4 POWL—Power List

731

Index

Multipurpose Internet Mail Extensions (MIME), 32

repository, 32

N

Name mapping, 309Namespace, 332, 335, 612, 667Navigation stack, 31.NET Connector;NET Connector, 163New system wizard, 610NULL, 265

O

ObjectMO_ACCESSOR, 262XMLHTTPRequest, 538

Object browser, 330list, 31

Object navigation tree, 30Object-oriented, 114

abstraction, 115programming, 46

Object reference, 138, 139onDrop, 463, 465, 466Open source, 537Open SQL, 114Outbound plug, 422Outside-in, 306, 329

P

Package, 20, 54, 115, 166, 386hierarchy, 53, 54, 55interface, 55

Page, 622Panel, 418, 504PanelStack, 504Parameter, 123

abap/test_generation, 276RETURNING, 196

Pass by value, 197

PBO/PAI R see Process Before Output/Process After Input, 132Persistent attribute, 136Persistent class, 119Persistent Data Mapper, 118Persistent object, 114, 115, 117, 118, 121, 132, 145, 206, 215, 271Persistent object class, 20Persistent object service, 114Personalization, 559Personal value list, 426PHP, 531Plug, 423Polymorphism, 124Pop-up window, 426, 439Portable Document Format (PDF), 437, 573, 575Portal Content, 250, 618Portal Content Directory (PCD), 624Portal Content folder, 622Portal Content Repository, 610Portal Eventing, 627Portal page, 618Portal role, 623POWL, 487

application, 497Easy POWL, 497GET_FIELD_CATALOG, 494GET_OBJECT_DEFINITION, 489GET_OBJECTS, 492GET_SEL_CRITERIA, 490IF_POWL_FEEDER, 488query, 498type, 498

POWL_COCKPIT, 497Private, 135Private instantiation, 117, 134Process After Input (PAI), 408, 412, 413, 429Process Before Output (PBO), 408Process Before Output/Process After Input (PBO/PAI), 132

module flow, 407Process Integration R see SAP NetWeaver Process Integration, 306progressBar, 484Project Muse, 646Property box, 44

352 Book.indb 731 12/6/10 3:05:08 PM

Page 48: Next Generation ABAP Development - Amazon S3 · PDF fileNext Generation ABAP™ Development ... 2 New Language Features in SAP NetWeaver 7.02 ... 14.4 POWL—Power List

732

Index

Property category, 615Protected, 117, 119Protected instantiation, 116Provider Framework, 255Provider Framework layer, 255Proxy object, 20Pseudo comment, 277Publicly visible, 55

Q

Query Manager, 122Query service, 122, 123, 139, 142, 271

R

Random number generator, 155Ranges table type, 141Reader rights, 575Really Simple Syndication (RSS)

feed, 663Refactoring, 46Refactoring Assistant, 46Reference variable, 272Register, 403Relational database, 131Remote function call (RFC), 263, 575, 613, 615

enabled function module, 305Repository, 247, 252Repository Browser, 31Repository Information System, 33Response body, 707REST, 679, 704, 706REST-based service, 699RISK_LEVEL, 278Roadmap, 502Role, 622Role-based, 609, 618ROOTUIELEMENTCONTAINER, 568ROOTUIELEMENTCONTAINER, 685, 686RTTI, 495, 510Ruby on Rails, 216, 537Runtime type information, 489

S

SAP BEx analyzer, 690SAP BusinessObjects, 679

BI OnDemand, 679, 698, 699, 703, 705, 709, 710, 711Crystal Reports Dashboard Design, 679, 680, 684, 696Explorer, 680external interface, 688External Interface Connection, 683Xcelsius, 679

SAP BusinessObjects Explorer, 712, 714SAP Business Suite 7i2010

upgrade, 52SAP Customer Relationship Management (SAP CRM), 611SAP Data Modeler, 88SAP Developer Network (SDN), 106SAP ERP, 611SAP ERP 6.0, 18sap.FlashIsland, 564SAP GUI, 53, 527, 613, 615, 626SAP GUI for Windows, 35SAPlink, 25, 537SAP List Viewer (ALV), 383, 420, 433

Object Model, 22, 383, 385, 393, 406REUSE_ALV_GRID_DISPLAY, 383

SAP logon, 613SAP MDM Console, 248, 250SAP MDM Data Manager, 248SAP NetWeaver, 248SAP NetWeaver Application Server, 611

Java, 574SAP NetWeaver Business Warehouse, 610SAP NetWeaver Master Data Management, 21, 245

ABAP API, 253, 254, 255, 262, 263, 265repository, 248, 267server, 250

SAP NetWeaver Portal, 22, 53, 609SAP NetWeaver Process Integration, 186, 190, 306SAP NetWeaver Visual Composer, 23SAP R/3, 29SAProuter, 611SAPscript, 573

352 Book.indb 732 12/6/10 3:05:08 PM

Page 49: Next Generation ABAP Development - Amazon S3 · PDF fileNext Generation ABAP™ Development ... 2 New Language Features in SAP NetWeaver 7.02 ... 14.4 POWL—Power List

733

Index

SAP Service Marketplace, 578SAP Smart Forms, 573SAP Web Application Server, 44Screen control, 408, 409Search help, 108, 425Search help exit, 110Secondary index, 105, 106Secure Sockets Layer (SSL), 163, 311, 576Selection screen, 110Select-option, 426SELECT-OPTION, 123Self-service website, 53Server port, 613Service

definition, 313node hierarchy, 30port, 576

SET_ATTRIBUTE_VALUE_SET, 481Shared memory, 197, 215, 527Shared memory object, 20, 132, 192, 206, 209

area class, 192area handle, 200area structure, 205IF_SHM_BUILD_INSTANCE, 203root class, 192

Silverlight Islands, 558, 561Simple Mail Transfer Protocol (SMTP), 33Single sign-on (SSO), 53, 615SM59, 699Smart client, 416SOA, 19, 133, 246SOAP, 164, 165Software component, 54, 331Software component version, 335Split screen view, 36Splitter, 409SSL Client, 703STARTING NEW TASK, 486Stateful, 528Statement

CALL TRANSFORMATION, 45, 157CLASS DEFINITION, 276COMMIT, 123COMMIT WORK, 155CREATE OBJECT, 117, 209

DELETE, 146GET REFERENCE OF, 272INSERT, 121MESSAGE, 124RAISE, 129RAISE EXCEPTION, 127, 129SHARED BUFFER, 191SHARED MEMORY, 191TRY...CATCH, 121UPDATE, 146WAIT, 206WHERE, 122, 142WRITE, 386

State property, 429Streams, 85Structured Query Language (SQL), 105, 131, 140, 154

statement, 114trace, 105

STRUSTSSO2, 704Import Certificate, 703

STRUSTSSO2, 702Style, 531Style sheet, 529Subclass, 393, 396Swap Root Element, 568swfFile, 569, 685Syntax highlighting, 36Syntax sensitive formatting, 36System alias, 613System connection, 609System field

SY-SUBRC, 124, 156System ID prefix, 612System landscape, 610System Landscape Directory (SLD), 332

T

Table, 92buffering, 528FPCONNECT, 576locking, 107type, 138

352 Book.indb 733 12/6/10 3:05:08 PM

Page 50: Next Generation ABAP Development - Amazon S3 · PDF fileNext Generation ABAP™ Development ... 2 New Language Features in SAP NetWeaver 7.02 ... 14.4 POWL—Power List

734

Index

Table maintenance, 92, 94, 98generator, 100settings, 92system, 94

Tag Browser, 32Test class generation, 282Test repository, 32ThresholdSlider, 471, 482, 483

maxTickMarks, 482threshold, 483tickMarkSpacing, 482unitWidth, 482

thtmlbxFlashIsland, 558

timedTrigger, 484Toolbar, 418Toolbox, 44Transaction

MDMAPIC, 261SAINT, 255SCC4, 276SD11, 88SE80, 30SHMA, 198SHMM, 191, 202, 206SICF, 30SM59, 575SMICM, 30SOAMANAGER, 325SPAM, 255STRUSTSSO2, 615

Transactional method, 221Transaction coordination, 146Transaction iView, 626Transformation, 156Transient data, 114Translatable, 127Translation, 92, 101, 559Transparent table, 93Transport layer, 54Transport Management System, 45Transport Organizer, 33TreeByKeyTableColumn, 461TreeByNestingTableColumn, 461Two-process debugger, 49Type definition, 335, 336

U

UI elementContextualPanel, 417InputField, 426, 429LinkToAction, 438PanelStack, 420Table, 427TableView, 436TextView, 438ViewContainerUIElement, 417, 418

Unicode, 265Uniform Resource Locator (URL), 539, 621, 664

parameter, 539Unit test, 32UNIX, 165Upgrade, 106Upload, 152Use access, 166Used component, 421User-defined validation, 549User management, 614User Management Engine (UME), 623User mapping, 615, 616User name and password via user mapping (UIDPW), 614, 615

V

Validation check, 429Validator, 551Value

&NC&, 100TYPE REF TO DATA, 269, 270, 272

Value help, 92, 96, 425, 426Value range, 90ValueSet, 481View, 421, 422, 440, 534Visibility, 119Visual Administrator, 575

352 Book.indb 734 12/6/10 3:05:08 PM

Page 51: Next Generation ABAP Development - Amazon S3 · PDF fileNext Generation ABAP™ Development ... 2 New Language Features in SAP NetWeaver 7.02 ... 14.4 POWL—Power List

735

Index

W

WAIT, 487WDDOINIT, 518WDIslandLibrary30, 562Web AS path, 615Web Dynpro, 22

Notification Service, 485, 486Web Dynpro ABAP, 43, 51, 109, 110, 111, 125, 132, 141, 216, 217, 415, 417, 525, 544, 615, 619, 621, 624, 627, 663, 683, 684, 688

debugger, 51Web Dynpro ABAP ALV, 690, 696Web Dynpro Code Wizard, 425Web Dynpro context, 478Web server, 33Web Service, 20, 21, 132, 163, 164, 247, 250, 263, 305, 306, 329, 574, 663

inside-out, 21, 305, 329outside-in, 306, 329proxy, 135wizard, 307

Web Services Definition Language (WSDL), 164Web Services Description Language (WSDL), 165, 166, 167, 169, 306, 324, 329, 333Web Services Homepage, 324Web Services Navigator, 324Web Widget, 559

Window, 421, 440Window controller, 441Window manager, 441With message class, 126, 127Work area, 388Workbench option, 35Workbench setting, 34Worklist, 337Work process, 49, 108Workset, 618, 624WSDL R see Web Services Description Language, 166WYSIWYG, 43, 415

X

X.509 Certificate, 163XcelsiusSWFFile, 686XML, 708XML document, 707XSLT R see Extensible Stylesheet Language Transformations, 44, 132, 165, 670

Z

ZIP, 133, 149, 150, 151, 157, 159ZIP compression, 20

352 Book.indb 735 12/6/10 3:05:09 PM