sappress certified abap with netweaver

46
Bonn Boston Puneet Asthana, David Haslam SAP ® Certified Application Associate — ABAP TM with SAP NetWeaver ® 7.0

Upload: son-pham

Post on 30-Oct-2014

118 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Sappress Certified Abap With Netweaver

Bonn � Boston

Puneet Asthana, David Haslam

SAP® Certified Application Associate — ABAPTM with SAP NetWeaver® 7.0

270.book Seite 3 Freitag, 29. Mai 2009 1:05 13

Page 2: Sappress Certified Abap With Netweaver

Contents at a Glance

PART I General Introduction

1 ABAP Development Certification Track — Overview ................... 27

2 Courses and Experience .............................................................. 45

PART II Exam Preparation

3 SAP NetWeaver — Overview ...................................................... 55

4 ABAP Workbench Usage ............................................................. 79

5 ABAP Debugger Program Usage .................................................. 111

6 ABAP Types and Data Objects .................................................... 137

7 Internal Table Definition and Use ............................................... 161

8 SQL Statements Including Update Strategies ............................... 197

9 Basic ABAP Programs and Interface Creation .............................. 231

10 ABAP Dictionary ......................................................................... 283

11 Unicode ..................................................................................... 323

12 Classical Screens ......................................................................... 343

13 Selection Screens ........................................................................ 391

14 ABAP Object-Oriented Programming .......................................... 417

15 ALV Grid Control ........................................................................ 453

16 User Interfaces (Web Dynpro) .................................................... 485

17 Class Identification Analysis and Design ...................................... 511

18 Enhancements and Modifications ............................................... 537

19 Table Relationships ..................................................................... 577

270.book Seite 5 Freitag, 29. Mai 2009 1:05 13

Page 3: Sappress Certified Abap With Netweaver

7

Contents

Acknowledgments ......................................................................................... 15Preface .......................................................................................................... 17

PART I: General Introduction

1 ABAP Development Certification Track — Overview ............... 27

Certification Exam Scoring Changes ............................................................... 28Certification Levels .................................................................................... 29Advanced Certification Levels ................................................................... 31

Becoming an SAP Certified ABAP Development Associate — Overview ......... 32Associate Examination Specifics ................................................................ 32Competency Areas .................................................................................... 33

Becoming an SAP Certified ABAP Development Professional — Overview ..... 36SAP Certified Development Professional — ABAP System Integration — SAP NetWeaver 7.0 .................................................................................. 36Professional Examination Specifics ............................................................ 37Competency Areas .................................................................................... 37SAP Certified Development Professional — ABAP User Interfaces — SAP NetWeaver 7.0 .................................................................................. 40Professional Examination Specifics ............................................................ 40Competency Areas .................................................................................... 40

Summary ....................................................................................................... 43

2 Courses and Experience ............................................................ 45

Training Courses for ABAP ............................................................................. 46Sources of Information .................................................................................. 47Strategic Understanding ................................................................................ 48SAP Examination Strategies ........................................................................... 50General Examination Strategies ..................................................................... 52Summary ....................................................................................................... 52

270.book Seite 7 Freitag, 29. Mai 2009 1:05 13

Page 4: Sappress Certified Abap With Netweaver

Contents8

PART II: Exam Preparation

3 SAP NetWeaver — Overview .................................................... 55

Objectives of this Portion of the Test ............................................................. 56Key Concepts Refresher ................................................................................. 56

SAP Products in a Nutshell ........................................................................ 57Product Evolution ..................................................................................... 58SAP NetWeaver Architecture ..................................................................... 62Kernel and Administration Services ........................................................... 63Software-Oriented View ............................................................................ 64User-Oriented View .................................................................................. 66Structure of a Work Process ...................................................................... 69

Important Terminology .................................................................................. 73Practice Questions ......................................................................................... 73Practice Question Answers and Explanations ................................................. 75Take Away ..................................................................................................... 76

Refresher ................................................................................................... 76Tips ........................................................................................................... 78

Summary ....................................................................................................... 78

4 ABAP Workbench Usage ........................................................... 79

Objectives of this Portion of the Test ............................................................. 80Key Concepts Refresher ................................................................................. 81

ABAP Workbench ...................................................................................... 81Repository Browser ................................................................................... 85Repository Information System .................................................................. 86Workbench Settings .................................................................................. 88New ABAP Editor and Workbench Settings ............................................... 89ABAP Workbench Tools in Detail .............................................................. 93Enhancement Information System ............................................................. 95Packages and their Attributes .................................................................... 97Transport Organizer ................................................................................... 101

Practice Questions ......................................................................................... 104Practice Question Answers and Explanations ................................................. 107Take Away ..................................................................................................... 109

Refresher ................................................................................................... 109Summary ....................................................................................................... 110

270.book Seite 8 Freitag, 29. Mai 2009 1:05 13

Page 5: Sappress Certified Abap With Netweaver

Contents 9

5 ABAP Debugger Program Usage .............................................. 111

Objectives of this Portion of the Test ............................................................ 113Key Concepts Refresher ................................................................................. 113

New and Classic Debugger ........................................................................ 114New Debugger Tools and UI ..................................................................... 118Assertions and Breakpoints ....................................................................... 126New Debugger Customization and Settings ............................................... 128

Important Terminology ................................................................................. 130Practice Questions ........................................................................................ 130Practice Question Answers and Explanations ................................................. 133Take Away .................................................................................................... 135

Refresher .................................................................................................. 135Tips ........................................................................................................... 136

Summary ....................................................................................................... 136

6 ABAP Types and Data Objects ................................................. 137

Objectives of this Portion of the Test ............................................................ 139Key Concepts Refresher ................................................................................. 139

ABAP Types and Data Objects .................................................................. 139ABAP Data Types ...................................................................................... 146Local Data Types ....................................................................................... 149Global Data Types ..................................................................................... 152Data Object Visibility ................................................................................ 154

Important Terminology ................................................................................. 155Practice Questions ........................................................................................ 155Practice Question Answers and Explanations ................................................. 158Take Away .................................................................................................... 159

Refresher .................................................................................................. 159Summary ....................................................................................................... 160

7 Internal Table Definition and Use ............................................ 161

Objectives of this Portion of the Test ............................................................ 162Key Concepts Refresher ................................................................................. 163

Internal Table Definition and Use .............................................................. 163Defining ABAP Internal tables ................................................................... 167Using ABAP Internal Tables ....................................................................... 176

Important Terminology ................................................................................. 189

270.book Seite 9 Freitag, 29. Mai 2009 1:05 13

Page 6: Sappress Certified Abap With Netweaver

Contents10

Practice Questions ......................................................................................... 189Practice Question Answers and Explanations ................................................. 192Take Away ..................................................................................................... 194

Refresher ................................................................................................... 194Summary ....................................................................................................... 195

8 SQL Statements Including Update Strategies .......................... 197

Objectives of this Portion of the Test ............................................................. 199Key Concepts Refresher ................................................................................. 199

Data Modeling .......................................................................................... 199Data Retrieval ........................................................................................... 202Performance of Database Access ............................................................... 205Logical Units of Work ................................................................................ 208Enqueue and Dequeue .............................................................................. 210Inline Updates ........................................................................................... 216Perform on Commit ................................................................................... 216Update Modules ....................................................................................... 217

Practice Questions ......................................................................................... 222Practice Question Answers and Explanations ................................................. 226Take Away ..................................................................................................... 229

Refresher ................................................................................................... 229Tips ........................................................................................................... 230

Summary ....................................................................................................... 230

9 Basic ABAP Programs and Interface Creation .......................... 231

Objectives of this Portion of the Test ............................................................. 233Key Concepts Refresher ................................................................................. 233

Organizing Development ........................................................................... 234ABAP Programming Overview ................................................................... 235ABAP Event Blocks .................................................................................... 242Basic ABAP Statements .............................................................................. 246ABAP Subroutine ....................................................................................... 249ABAP Function Module ............................................................................. 251ABAP Classes and Methods ....................................................................... 255ABAP Selection Screen .............................................................................. 258Authorization Checks ................................................................................ 260ABAP Dynpros .......................................................................................... 262Dialog Messages ........................................................................................ 265

270.book Seite 10 Freitag, 29. Mai 2009 1:05 13

Page 7: Sappress Certified Abap With Netweaver

Contents 11

Important Terminology ................................................................................. 271Practice Questions ........................................................................................ 272Practice Question Answers and Explanations ................................................. 277Take Away .................................................................................................... 280

Refresher .................................................................................................. 281Tips ........................................................................................................... 282

Summary ....................................................................................................... 282

10 ABAP Dictionary ....................................................................... 283

Objectives of this Portion of the Test ............................................................ 284Key Concepts Refresher ................................................................................. 285

Overview .................................................................................................. 285Basic and Complex Data Types .................................................................. 287Transparent Tables .................................................................................... 300Search Helps ............................................................................................. 305Append Search Helps ................................................................................ 309Lock Objects ............................................................................................. 309View Types and Maintenance ................................................................... 311

Important Terminology ................................................................................. 315Practice Questions ........................................................................................ 316Practice Question Answers and Explanations ................................................. 318Take Away .................................................................................................... 320

Refresher .................................................................................................. 320Summary ....................................................................................................... 321

11 Unicode ..................................................................................... 323

Objectives of this Portion of the Test ............................................................ 325Key Concepts Refresher ................................................................................. 325

Unicode Compliance ................................................................................. 326Unicode Tools ........................................................................................... 327

Important Terminology ................................................................................. 339Practice Questions ........................................................................................ 339Practice Question Answers and Explanations ................................................. 340Take Away .................................................................................................... 341

Refresher .................................................................................................. 342Tips ........................................................................................................... 342

Summary ....................................................................................................... 342

270.book Seite 11 Freitag, 29. Mai 2009 1:05 13

Page 8: Sappress Certified Abap With Netweaver

Contents12

12 Classical Screens ....................................................................... 343

Objectives of this Portion of the Test ............................................................. 345Key Concepts Refresher ................................................................................. 345

Screen Design ........................................................................................... 346GUI Status and Title Design ....................................................................... 366Table Control Programming ....................................................................... 375

Important Terminology .................................................................................. 383Practice Questions ......................................................................................... 383Practice Question Answers and Explanations ................................................. 386Take Away ..................................................................................................... 387

Refresher ................................................................................................... 388Summary ....................................................................................................... 389

13 Selection Screens ...................................................................... 391

Objectives of this Portion of the Test ............................................................. 392Key Concepts Refresher ................................................................................. 392

Selection Screens ....................................................................................... 393Selection Screen Design ............................................................................ 393

Important Terminology .................................................................................. 410Practice Questions ......................................................................................... 410Practice Question Answers and Explanations ................................................. 412Take Away ..................................................................................................... 414

Refresher ................................................................................................... 414Summary ....................................................................................................... 415

14 ABAP Object-Oriented Programming ....................................... 417

Objectives of this Portion of the Test ............................................................. 419Key Concepts Refresher ................................................................................. 419

Object-Oriented Programming Concepts ................................................... 419ABAP Objects ............................................................................................ 421ABAP Class ................................................................................................ 421Objects ..................................................................................................... 429Attributes .................................................................................................. 430Methods ................................................................................................... 432Events ....................................................................................................... 442

Practice Questions ......................................................................................... 447Practice Question Answers and Explanations ................................................. 449Take Away ..................................................................................................... 451

270.book Seite 12 Freitag, 29. Mai 2009 1:05 13

Page 9: Sappress Certified Abap With Netweaver

Contents 13

Refresher .................................................................................................. 451Summary ....................................................................................................... 452

15 ALV Grid Control ....................................................................... 453

Objectives of this Portion of the Test ............................................................ 454Key Concepts Refresher ................................................................................. 455

Overview of ALV Programming ................................................................. 456ALV Grid Programming (CL_GUI_ALV_GRID) ............................................ 456ALV Object Model .................................................................................... 467

Important Terminology ................................................................................. 477Practice Questions ........................................................................................ 480Practice Question Answers and Explanations ................................................. 482Take Away .................................................................................................... 483

Refresher .................................................................................................. 483Tips ........................................................................................................... 484

Summary ....................................................................................................... 484

16 User Interfaces (Web Dynpro) .................................................. 485

Objectives of this Portion of the Test ............................................................ 486Key Concepts Refresher ................................................................................. 487

Web Dynpro Design ................................................................................. 487Controllers ................................................................................................ 492Contexts ................................................................................................... 495Events ....................................................................................................... 495Web Dynpro Application .......................................................................... 496Graphical Elements ................................................................................... 497

Important Terminology ................................................................................. 503Practice Questions ........................................................................................ 505Practice Question Answers and Explanations ................................................. 507Take Away .................................................................................................... 508

Refresher .................................................................................................. 509Tips ........................................................................................................... 509

Summary ....................................................................................................... 509

17 Class Identification Analysis and Design ................................. 511

Objectives of this Portion of the Test ............................................................ 512Key Concepts Refresher ................................................................................. 513

Functional Methods .................................................................................. 513

270.book Seite 13 Freitag, 29. Mai 2009 1:05 13

Page 10: Sappress Certified Abap With Netweaver

Contents14

Inheritance ................................................................................................ 518Interfaces .................................................................................................. 524Class Identification .................................................................................... 526

Important Terminology .................................................................................. 528Practice Questions ......................................................................................... 529Practice Question Answers and Explanations ................................................. 532Take Away ..................................................................................................... 534

Refresher ................................................................................................... 534Tips ........................................................................................................... 535

Summary ....................................................................................................... 535

18 Enhancements and Modifications ............................................ 537

Objectives of this Portion of the Test ............................................................. 538Key Concepts Refresher ................................................................................. 539

Enhancing SAP Applications ...................................................................... 539Enhancement Techniques .......................................................................... 540Enhancement Framework .......................................................................... 564Modification ............................................................................................. 567

Practice Questions ......................................................................................... 569Practice Question Answers and Explanations ................................................. 572Take Away ..................................................................................................... 574

Refresher ................................................................................................... 574Summary ....................................................................................................... 575

19 Table Relationships ................................................................... 577

Objectives of this Portion of the Test ............................................................. 578Key Concepts Refresher ................................................................................. 579

Table Relationships ................................................................................... 579Value Help ................................................................................................ 587

Practice Questions ......................................................................................... 591Practice Question Answers and Explanations ................................................. 594Take Away ..................................................................................................... 595

Refresher ................................................................................................... 595Tips ........................................................................................................... 596

Summary ....................................................................................................... 596

The Authors .................................................................................................... 597Index .............................................................................................................. 599

270.book Seite 14 Freitag, 29. Mai 2009 1:05 13

Page 11: Sappress Certified Abap With Netweaver

ABAP Debugger Program Usage

Techniques You’ll Master:

� Examine the runtime behavior of ABAP programs using the ABAP Debugger

� Use the ABAP Debugger to systematically test ABAP programs

� Plan correctness of your ABAP programs

� Use watchpoints, breakpoints, assertions, and checkpoint groups effectively

� Understand the design differences between the two versions of the Debugger

270.book Seite 111 Freitag, 29. Mai 2009 1:05 13

Page 12: Sappress Certified Abap With Netweaver

Chapter 5 ABAP Debugger Program Usage112

A debugger is typically a major component of every development environment.During the development of applications, either simple or complex, the Debuggeris a valuable tool in detecting and analyzing error situations. You need to befamiliar with the functional scope of the ABAP Debugger, and this chapter coversthe most important concepts of this very useful tool. It is a tool used duringdevelopment, during testing, and when attempting to analyze problems in theproduction system.

We will cover the primary differences between the old “classic” Debugger thathas existed since SAP R/3 and the new Debugger, first available in a limited formin version 6.40 and then completely in SAP NetWeaver 7.0. We will also covera number of the tools available in the new Debugger and the user interface. Alsocovered will be customizing the Debugger to meet your needs and preferences,assertions, watchpoints, and breakpoints. Each of these topics will be coveredseparately and will be followed by the practice exercise and the solution to theexercise.

Real-World Scenario

A report currently in use in production does not produce correct results.This program was developed by a programmer who is no longer with thecompany, and there is no documentation.

Sometimes an error message is produced in production that cannot bereproduced in any of the other systems in the landscape, and no one is surewhat is causing the message. You have been told to identify why the mes-sage is being produced and to correct the report.

After examining the program in the ABAP Editor, you are still unable todetermine the cause of the problem. The report does a number of dynamiccalls based on values read from database tables and performs some routinesbased on the user’s authorization checks.

The solution to quickly identify what the program is doing is to use theABAP Debugger in the production system. To identify where the error mes-sage is being produced, you create breakpoints on the statement MESSAGE.Once the message statement that is producing the unknown error is iden-tified, the cause of the error can be easily deduced. It is also possible toexamine variables to determine the actual flow of the program and thenidentify why the results are incorrect.

270.book Seite 112 Freitag, 29. Mai 2009 1:05 13

Page 13: Sappress Certified Abap With Netweaver

Objectives of this Portion of the Test Chapter 5 113

Objectives of this Portion of the TestThe purpose of this portion of the certification examination is to verify that youhave detailed knowledge of the ABAP Debugger, which is a major component ofthe environment. By verifying that you have the appropriate knowledge to usethe Debugger efficiently, you will become a more effective and efficient pro-grammer.

This portion of the examination will test your knowledge of the Debugger. Thepoints that you need to understand from this section include:

� Various ways to start the Debugger

� Breakpoints

� Watchpoints

� Assertions

� Viewing and modifying data objects

� Understanding the architecture of the Debugger

Key Concepts RefresherThe ABAP Debugger is part of the ABAP Workbench that you use either as anintegrated testing tool or to identify issues with code execution. The Debuggerallows you to execute ABAP programs, by line or by section. With this tool, youcan display data objects and check the flow logic of programs. The running pro-gram is interrupted after each step, allowing you to check its processing logic andthe results of individual statements.

You typically use the Debugger as a way of identifying errors in ABAP programs.It contains the following functions:

� Different ways of starting the Debugger

� Different views of contents of data objects

� Different execution options

� Displaying source code in the Debugger

� Setting and deleting breakpoints

� Setting and deleting watchpoints

� Setting and deleting database locks

� Stopping code execution at a particular statement or event

270.book Seite 113 Freitag, 29. Mai 2009 1:05 13

Page 14: Sappress Certified Abap With Netweaver

Chapter 5 ABAP Debugger Program Usage114

� Displaying and changing field contents at runtime

� Displaying objects and references

� Displaying and positioning strings

� Opening the code in the ABAP Editor or Object Navigator

New and Classic Debugger

Currently, you have access to two versions of the ABAP Debugger. The older ver-sion (commonly called the classic Debugger), which has existed since the begin-ning of SAP R/3, has always had the majority of the functions listed above. Asthe language has evolved, the Debugger has also evolved, for example, the inclu-sion of objects in both ABAP and the Debugger. Figure 5.1 shows the flow con-trol area, and Figure 5.2 shows the variable display area of the classic Debugger.

The original Debugger has always had certain limitations: The layout is mostlyfixed, and there were restrictions on the amount of data that could be displayedat one time. For example, a maximum of eight data objects could be displayed,and of those, only four at a time. Only one internal table could be displayed, andtable scrolling, especially horizontally, was often tedious. Whereas it is possibleto reorder columns, knowledge of the fields of the internal table was necessaryto complete it. Other areas also required detailed knowledge of the executingcode. There is no way, from within the Debugger, to look up within the reposi-tory a function module, method, or subroutine name to set a breakpoint.

Figure 5.1 Standard Flow Control of the Classic Debugger

Figure 5.2 Variable Display of the Classic Debugger

270.book Seite 114 Freitag, 29. Mai 2009 1:05 13

Page 15: Sappress Certified Abap With Netweaver

Key Concepts Refresher Chapter 5 115

This Debugger shared the same external mode roll area of the code beingdebugged. This external mode corresponds to the session window in which youare running the code. This restricted the amount of interaction the Debugger hadwith the repository or the system as a whole without impacting the code beingdebugged. Each of the Debugger’s actions could influence the program flow ofthe application and was limited as a result.

Also with the classic Debugger, it is generally not possible to analyze programs indebugging mode that run in an ABAP processor unit and are called recursively froma subordinate unit. For example, a conversion exit cannot be analyzed using thisDebugger if it runs within a WRITE statement. A conversion exit executes wheneveris sent to the presentation or retrieved from the presentation layer. If called from aWRITE statement, the Debugger is called recursively from within itself.

Starting with SAP NetWeaver 6.40, SAP released a new version of the Debugger.The Debugger available in Release 6.40 was not considered complete (and wasnot the default debugger as a result); it did eliminate the above restrictions.

The reason for this is that the new Debugger executes in its own external mode.This allows the code to be analyzed to run with virtually no impact from theDebugger. This separation of functionality allows for much greater interactionwith the system, allowing search help use, the display of more than one internaltable simultaneously, and an unlimited number of data objects.

The Debugger specified as the default starts when needed. You can change thedefault, in either the ABAP Editor (Transaction SE38) or the Object Navigator(Transaction SE80), by following the menu path Utilities � Settings � ABAP Edi-

tor � Debugging. Figure 5.3 and Figure 5.4 show the menu and resulting dialogbox. Both Debuggers are started in exactly the same way.

Figure 5.3 Menu Path To Set the Default Debugger

270.book Seite 115 Freitag, 29. Mai 2009 1:05 13

Page 16: Sappress Certified Abap With Netweaver

Chapter 5 ABAP Debugger Program Usage116

Figure 5.4 Dialog to Set the Default Debugger

Note

Primary methods of starting the Debugger:

1. In the navigation area, select the menu path Execute N Debugging for theselected program. This is shown in Figure 5.5.

2. In the editing area, select the desired program line and select Set/Delete

Breakpoint. Then start the program by selecting (Execute) Direct Processing

or (F8).

3. Select System � Utilities � Debug ABAP or System � Utilities � Debug Screen.

4. Enter “/h” in the command field in the standard toolbar and press (¢)or usea shortcut to provide the command to the session.

Figure 5.5 Navigation Start of the Debugger

270.book Seite 116 Freitag, 29. Mai 2009 1:05 13

Page 17: Sappress Certified Abap With Netweaver

Key Concepts Refresher Chapter 5 117

However, each time the new Debugger is started, a new mode is started automat-ically. You have a maximum of six external modes available as a default, thoughyour system may be configured differently. If no further external mode is avail-able when the new Debugger is started, the message “No additional externalmode for new ABAP debugger available” is displayed, the new Debugger start iscancelled, and the classic Debugger is started in its place. In this case, you shouldclose modes that are no longer required.

In the new Debugger, control can be passed from the application to the newDebugger at any time using the function code /h, even if the Debugger wasalready started.

You can exit the new Debugger with one of several methods:

� If the Debugger is ready for input (active) and the application is waiting, youcan select Debugger � Exit Debugger, which closes just the Debugger, andthe application continues to run.

� You can select Debugger � Exit Application and Debugger, which closesboth the Debugger and the application.

� The third option is if the application is ready for input and the Debugger iswaiting, in which case you can enter “/hx” in the command field and press(¢), which closes just the Debugger and allows the application to continueto run.

It is possible to switch between the classic Debugger and the new Debugger byselecting Debugger � Switch to New ABAP Debugger or Debugger � Switch to

Classic ABAP Debugger. You must be aware, however, if you switch from thenew Debugger to the classic Debugger when the ABAP code is called from thekernel of the application server (primarily conversion and field exits), that theruntime error RPERF_ILLEGAL_STATEMENT will be triggered as a result of therecursive call.

You will find the functions for analyzing source code similar between versionsof the Debugger. It is possible to navigate from the variable overview to thedetailed view of the data object simply by double-clicking. The difference withthe new Debugger is simply that you can process an unlimited number of dataobjects simultaneously, and the number visible at a single time depends on thesize of the window and the font size. You also need to double-click on theChange icon (the pencil icon) to open up the data object for change and thenpress (¢) to confirm the change, unlike the classic Debugger, where the field

270.book Seite 117 Freitag, 29. Mai 2009 1:05 13

Page 18: Sappress Certified Abap With Netweaver

Chapter 5 ABAP Debugger Program Usage118

was always open and you needed to click on the Change icon to accept thechange.

New Debugger Tools and UI

As soon as you start the new Debugger, using one of the methods shown in theprevious note (from a menu, with a breakpoint, or the command “/h”), you willsee the message “Session “x” connected to Debugger” in the status line of theapplication. “x” is the number of the current external mode. When the Debuggerstarts, you will see the window title (x) – ABAP Debugger Controls Session x(Exclusive), where again “x” is the external mode of the application. This pro-vides a visible link between application and Debugger mode at all times. If it isnot possible to achieve an exclusive mode, the title will be (x) – ABAP Debugger

Controls Session x (NOT Exclusive).

If the Debugger obtains an exclusive mode, it means that the application to beanalyzed exclusively occupies a work process of the application server duringdebugging. If all exclusive debug work processes are occupied, the Debugger isswitched to non-exclusive mode. In this state, you can attempt to occupy a workprocess exclusively by selecting Debugger � Exclusive Debugging Mode On

(shown in Figure 5.6). However, this is only possible if another exclusive debugwork process has become available in the meantime.

Figure 5.6 Menu to Turn Exclusive Mode On

270.book Seite 118 Freitag, 29. Mai 2009 1:05 13

Page 19: Sappress Certified Abap With Netweaver

Key Concepts Refresher Chapter 5 119

You will find 11 work areas or desktops when the new Debugger starts. This isan increase from the previous version in SAP NetWeaver 6.40 because not all ofthe tools were complete. You can customize the first three desktops so that theywill start with the Debugger to satisfy your own preferences and eight “pre-defined” desktops. You can modify each of these desktops at any time.

Each desktop can hold from one to four tools. The tools displayed on a desktopcan be the same or different based on your needs at the time. You can change thesize or location of any of these tools while in the Debugger. For example, fortools placed horizontally, the right or left tool can be either made wider or nar-rower. You can make tools with a vertical alignment longer or shorter. Tools canbe swapped vertically, horizontally, or diagonally. You can replace any tool withany other by simply clicking on the Replace button. An individual tool can bemaximized to fill the entire desktop. You can undo any layout change with theBack button (or (F3)).

Tip

The difference between exclusive and non-exclusive modes is that you will findthe Debugger function limited in non-exclusive mode. The limitations are mostlydue to the fact that a roll-out is forced in the application after each Debuggerview while in non-exclusive mode. Therefore, a database commit must be exe-cuted. This has the following consequences:

� It is not possible for you to debug between the statements SELECT and END-SELECT because the database cursor needs to be closed using a commit. In thiscase, program execution is terminated.

� Debugging mode is not possible for conversion or field exits.

� Owing to the commit, inconsistent datasets can occur in the database.

Because inconsistent datasets in the database are possible, the non-exclusivemode is impossible in productive systems. If the number of exclusive debuggingwork processes is occupied, the runtime error DEBUGGING_NOT_POSSIBLE is trig-gered whenever you attempt to start another Debugger.

The number of work processes that are available exclusively for debugging isdefined by the profile parameter rdisp/wpdbug_max_no. In development sys-tems, this should be approximately half the number of dialog work processes.

The special requirements demanded of debugging in a production client are thesame for the new and the classic Debugger. Therefore, they are processedexactly the same as in the classic Debugger.

270.book Seite 119 Freitag, 29. Mai 2009 1:05 13

Page 20: Sappress Certified Abap With Netweaver

Chapter 5 ABAP Debugger Program Usage120

At this time you can create 15 tools. The tools are grouped into three categories:Standard Tools, Data Objects, and Special Tools (see Figure 5.7).

You will see differences between the two source code displays. The Source Code

shows the code as with the “old front-end editor.” The Source Code (Edit Con-

trol) uses the “new front-end editor,” which displays additional formatting andprovides information regarding data objects when you hover over the name withthe mouse.

Table 5.1 shows where the tools can be found in the new Debugger when startedbefore modification; Figure 5.8 and Figure 5.9 show the desktops.

Figure 5.7 New Tool Dialog

Tool Initially Found on Desktop

Source Code (Not initially found on a desktop)

Call Stack Desktop 2 and Standard

Variable Fast Display Desktop 1 and Standard

Breakpoints Break./Watchpoints

Source Code (Edit Control) Desktop 1, Desktop 2, Desktop 3, and Standard

Table 5.1 Debugger Tools

270.book Seite 120 Freitag, 29. Mai 2009 1:05 13

Page 21: Sappress Certified Abap With Netweaver

Key Concepts Refresher Chapter 5 121

Most of the tools also provide additional services. You will always be able toaccess the tool services by clicking on the Services of the Tool button as shownin the Figure 5.10 or through the context menu of the tool.

Object Objects

Table Tables

Structure Structures

Single Field Detail Displs

Data Explorer Data Explorer

Web Dynpro Desktop 3

Loaded Programs (Global Data) (Not initially found on a desktop)

Memory Analysis (Not initially found on a desktop)

Screen Analysis (Not initially found on a desktop)

Diff Tool Diff

System Areas (Internal) (Not initially found on a desktop)

Tool Initially Found on Desktop

Table 5.1 Debugger Tools (cont.)

Figure 5.8 First Six Desktops

Figure 5.9 Last Five Desktops

Figure 5.10 Services of the Tool

270.book Seite 121 Freitag, 29. Mai 2009 1:05 13

Page 22: Sappress Certified Abap With Netweaver

Chapter 5 ABAP Debugger Program Usage122

The services provided vary depending on the tool. For example, the Source

Code tool only allows you to navigate to the currently executing line or to openthe editor. Most provide the ability to save the contents of the tool to a local fileor to search. The Variable Fast Display provides options for sorting the local orglobal data objects or saving the data as test data in Transaction SE37, whereasthe internal table services provide the ability to append, insert, or delete rows inthe table. You have the option to change the sequence of the fields through theservice or just drag them as you would in an ALV (the ABAP List Viewer or, as ithas been renamed, the SAP List Viewer is discussed in Chapter 15, ALV GridControl) or table control.

All of the tools except the standard tools provide a history of all objects displayedin the tool, and any prior one can be retrieved simply by selecting it from the list.

The table tool has many more capabilities than the classic Debugger provided.Whereas you could handle standard internal tables through the use of theChange, Insert, Append, and Delete buttons below the table display, keyedtables (sorted or hashed) were more restricted. With those you only had accessto the Change and Delete buttons to modify the contents of non-key fields or toremove the record. The new Debugger offers many more options (see Figure5.11 and Figure 5.12).

Figure 5.11 Context Menu of the Table Tool

270.book Seite 122 Freitag, 29. Mai 2009 1:05 13

Page 23: Sappress Certified Abap With Netweaver

Key Concepts Refresher Chapter 5 123

You have multiple ways of modifying the internal table through either the con-text menu (right mouse-click while over a row containing data) or the servicemenu of the tool. The same options exist for a standard internal table, whereas ahashed internal table does not allow you to insert using an index. If you use theInsert Row (Key) option, regardless of where you attempt to insert the record forsorted or hashed internal tables, the row will be inserted in the correct location.

The dialog presented (shown in Figure 5.13) allows you to copy the contents ofan existing row to use a template. The new row is indicated without a numericalline number (there is an icon in its place) until you press the (¢) key to acceptthe row into the internal table.

Figure 5.12 Table Service Menu

Figure 5.13 Insert Using Key

270.book Seite 123 Freitag, 29. Mai 2009 1:05 13

Page 24: Sappress Certified Abap With Netweaver

Chapter 5 ABAP Debugger Program Usage124

Using Source Code (Edit Control) provides several advantages over the olderSource Code. First, as in the new editor, you have the same flexibility with set-tings. You can define different fonts and colors for keywords, comments, andother types of items. The display allows for collapsible blocks, word wrap, andother visual feedback.

Figure 5.14 shows several of the more important features:

� The arrow heads in the top-left corner, as with all tools, allows you to resizethe tool to different widths or heights.

� On the right side of the tool, the third, fourth, and fifth buttons from the topallow you to maximize the tool to fill the desktop, maximize the tool to usethe entire height of the desktop, and maximize the width of the tool to theentire desktop.

� The status bar at the bottom of the tool shows the scope of the line selected,in this case within a function and within an IF.

� The closest scope to the cursor, in this case, the IF keywords, are also madebold.

� The status bar also shows the line and column of the cursor, and double-click-ing on this box produces the go to line dialog box.

� The line to be executed is indicated with a yellow arrow, and hovering overvariables with the mouse produces quick information (tooltip) showing thevariable name, value, and type.

You can now instruct a breakpoint to skip a number of occurrences before stop-ping. You simply enter the number of skips in the skip column (any positivenumber between 0 and 4,294,967,296 [232] can be used) to prevent the break-

Figure 5.14 Source Code (Edit Control) Tool

270.book Seite 124 Freitag, 29. Mai 2009 1:05 13

Page 25: Sappress Certified Abap With Netweaver

Key Concepts Refresher Chapter 5 125

point from stopping. You can change a breakpoint to active or inactive or deletethe breakpoint. In addition, you can edit conditional and unconditional check-points using the Breakpoint tool. You first set conditional checkpoints in thesource code using the ASSERT statement; unconditional checkpoints are set usingthe BREAK-POINT statement. These have the effect that programs will be contin-ued only if a preset condition is fulfilled. These checkpoints can be searched for,activated, or deactivated.

As with a breakpoint, watchpoints are places in the program that instruct theABAP runtime processor to interrupt the program execution at a particular point.In contrast to breakpoints, however, watchpoints do not activate debuggingmode until the contents of a specified field change. You can define watchpointsonly within the Debugger (shown in Figure 5.15).

Watchpoints, like breakpoints, are user specific and do not affect other users run-ning the same program. Unlike the classic Debugger, which has a limit of 10watchpoints, there is no limit on the number of watchpoints at one time in thenew Debugger. If you set a watchpoint for a field without specifying a relationaloperator or comparison value, program execution continues until the contentsof the field change. If you specify a relational operator and comparison valuewhen you define a watchpoint, program execution continues until the specifiedcondition is met. You can use watchpoints to display changes to references ofstrings, data, or objects, as well as internal tables.

Figure 5.15 Creating a Conditional Watchpoint

270.book Seite 125 Freitag, 29. Mai 2009 1:05 13

Page 26: Sappress Certified Abap With Netweaver

Chapter 5 ABAP Debugger Program Usage126

The ABAP Debugger differentiates between the breakpoint variants shown inTable 5.2.

Assertions and Breakpoints

Checkpoints define places in a program where the program state can be testedduring execution. A BREAK-POINT statement represents an unconditional check-point. In this case, the program execution is unconditionally interrupted at thispoint in the program, and the Debugger is started.

Assertions are another form of checkpoint, which you use to implement condi-tional checkpoints within your program. An assertion checks whether a definedcondition is satisfied. An assertion is defined by an ASSERT statement as a condi-tional checkpoint.

Type of Breakpoint Behavior

Static breakpoints Keyword BREAK-POINT inserts a user-independent breakpoint as an ABAP statement in the source text. Related is the statement BREAK <user_name>, which sets a user-dependent breakpoint in the source text.

Directly set dynamic breakpoints These are set in the ABAP Editor or the Debugger (by either double-clicking before the line number if you are using the older source code display or single-clicking before the line number if you are using the newer source code with edit control). Dynamic breakpoints are always user specific and are deleted when you log off from the SAP system.

Breakpoints for statements, subroutines, function modules, or methods

The Debugger interrupts the program directly before the specified statement is executed.

Breakpoints for exceptions and system exceptions

The Debugger interrupts the program directly after a runtime error is raised.

Table 5.2 Types of Breakpoints

270.book Seite 126 Freitag, 29. Mai 2009 1:05 13

Page 27: Sappress Certified Abap With Netweaver

Key Concepts Refresher Chapter 5 127

Assertions and BREAK-POINT statements are either always active or can be acti-vated by assigning them to a checkpoint group (shown in Figure 5.16).

When the program reaches an active assertion, it evaluates the correspondingcondition or logical expression. If no checkpoint group is assigned to a failedassertion, the default behavior is for a runtime error to be produced. If the con-dition is violated, the program terminates with a runtime error, accesses theABAP Debugger, or creates a log entry; otherwise, the program continues withthe next statement. If you assign the assertion to a checkpoint group, the pro-gram behavior is controlled by the corresponding activation settings of thecheckpoint group.

You can also edit the conditional and unconditional checkpoints using the Break-point tool in the Debugger as shown in Figure 5.17.

Figure 5.16 Checkpoint Group

Figure 5.17 Changing the Activation in the Debugger

270.book Seite 127 Freitag, 29. Mai 2009 1:05 13

Page 28: Sappress Certified Abap With Netweaver

Chapter 5 ABAP Debugger Program Usage128

New Debugger Customization and Settings

One of the main benefits of the Debugger interface redesign is to have the optionof making it configurable for your use. This provides you with the option ofbeing able to set the views and their sizes as required. You also have the abilityto group certain views together and have them available at each restart of thenew Debugger.

In its current form, the Debugger provides you with a flexible and designableinterface with a total of 11 work areas or desktops. Depending on your selection,you can have up to four tools simultaneously in each of these work areas. Theirsizes can be set individually. The first three desktops allow you to specify indi-vidual settings using the Save layout function (see Figure 5.18). The Debuggerwill use your last saved settings the next time you start the Debugger.

When you start the Debugger, below the title bar in the application tool bar youwill find the standard flow control buttons (see Figure 5.19). These flow controlbuttons remain unchanged from the classic version of the Debugger.

The first button provides a single-step function, the second an execute function,the third a return function, and the last continues execution. The buttons alsoprovide a way to set a breakpoint or create a watchpoint, or as mentioned above,save the layout configuration.

Below the application toolbar you will find the information regarding the currentcode being executed (see Figure 5.20). You will see the program and the name ofthe Include or program of the source currently executing, and below that, theprogram event and the name of the event currently executing. To the right of theInclude or program name is the current line that will execute. The button directlybelow this line number positions the screen to show this line in the source code

Figure 5.18 Save Layout Button

Figure 5.19 Flow buttons

270.book Seite 128 Freitag, 29. Mai 2009 1:05 13

Page 29: Sappress Certified Abap With Netweaver

Key Concepts Refresher Chapter 5 129

tool. The blue i button displays the program attributes of the source code. Thebuttons displayed before the program name or event, if clicked, open a new win-dow with the source code displayed. The same button is available when viewingthe ABAP call stack tool for each call. Again, clicking on the button opens thesource code at that point in the program.

To the right of the program information you will find two system variables andtheir contents displayed. The default is SY-SUBRC (the system variable containingthe statement return code) and SY-TABIX (the system variable containing theinternal table row last accessed), but you can override either or both simply bytyping over their names.

Most of the screen is used to display the desktops or tool area. Unlike the classicDebugger, the larger your screen or the higher your screen resolution, the moredata can be displayed.

The Variable Fast Display tool currently has four tabs (see Figure 5.21). The firsttwo are provided empty, and you can either type or double click a name in thesource code to add it to the list. The third tab (Locals) shows all local variablesfor the current program modularization unit, and the fourth (Globals) shows allglobal variables in the current program.

The Variable Fast Display on the first two tabs also provides a button to selecttwo objects displayed and do a comparison. Alternatively, you can navigate tothe Difference tab and specify the variables directly (see Figure 5.22 for the Difftool).

Figure 5.20 Program Information

Figure 5.21 Variable Fast Display

270.book Seite 129 Freitag, 29. Mai 2009 1:05 13

Page 30: Sappress Certified Abap With Netweaver

Chapter 5 ABAP Debugger Program Usage130

Finally, it is possible to change how secondary tools, for example, the editor, areopened: either in a new parallel window or in the current window. It is also pos-sible to customize the behavior of the navigation to Detail Views and where thevariable will be displayed when clicked on from the source code tool.

Important TerminologyYou will need to understand the difference between a breakpoint and a watch-point for effective use of the Debugger. Remember that a breakpoint relates tothe actual code, either a statement or point within the code, whereas a watch-point is related to the value of a data object. It is also important to understandhow checkpoint groups can modify the behavior of breakpoints.

Another possible cause of confusion is the difference between an external modeand an exclusive mode. Remember that an external mode describes the numberof sessions opened within a login session, whereas an exclusive mode is whatkeeps the Debugger in one work process within the server. Remember that anon-exclusive mode will be rolled out between steps in the Debugger and mayswitch work processes.

Practice QuestionsThe practice questions below will help you evaluate your understanding of thetopic. The questions shown are similar in nature to those found on the certifica-tion examination, but although none of these questions will be on the examitself, they allow you to review your knowledge of the subject. Select the correctanswers and then check the completeness of your answers in the following solu-

Figure 5.22 Diff Tool

270.book Seite 130 Freitag, 29. Mai 2009 1:05 13

Page 31: Sappress Certified Abap With Netweaver

Practice Questions Chapter 5 131

tion section. Remember that you must select all correct answers and only correctanswers to receive credit for the question.

1. The Debugger displays a maximum of eight data objects at one time.

� A. True

� B. False

2. A watchpoint stops program execution every time the condition specified ismet.

� A. True

� B. False

3. Both the classical Debugger and the new Debugger can be used on all ABAPcode without restriction.

� A. True

� B. False

4. Under which circumstances will the classical Debugger start as the Debug-ger? (Select all that apply.)

� A. None. The new Debugger will always start as the Debugger.

� B. When five modes already exist for this logon session.

� C. When the number of debugging sessions exceeds half the number of dia-log sessions.

� D. When you specify the default as the classical Debugger in the settings ofthe Object Navigator.

� E. If you manually switched to the classical Debugger during your last ses-sion.

5. A non-exclusive debugging mode means? (Select all that apply.)

� A. A roll-out is forced in the application after each Debugger view.

� B. Someone else is debugging the same source code.

� C. Debugging is not possible between the statements SELECT and ENDSELECTbecause the database cursor needs to be closed using a COMMIT.

270.book Seite 131 Freitag, 29. Mai 2009 1:05 13

Page 32: Sappress Certified Abap With Netweaver

Chapter 5 ABAP Debugger Program Usage132

� D. Debugging is not possible for conversion or field exits.

� E. Owing to the commit, inconsistent datasets can occur in the database.

� F. It may be used anywhere in the landscape.

6. What is the maximum number of watchpoints that can exist at one time?

� A. 8

� B. 10

� C. 16

� D. No limit

7. Setting breakpoints for a method or function module within the Debuggerallows the use of [F4] (value help) to find the correct name.

� A. True

� B. False

8. All breakpoints are valid for the entire Debugger session, and all can bechanged by the Debugger.

� A. True

� B. False

9. It is possible to make multiple changes to data objects at the same time inthe Debugger.

� A. True

� B. False

10. When starting the Debugger, what circumstance causes the runtime errorDEBUGGING_NOT_POSSIBLE?

� A. Starting a non-exclusive mode in a productive system.

� B. When more than five sessions are already associated with this login user.

� C. When the number of debugging sessions on the server exceeds the valuedefined by the profile parameter rdisp/wpdbug_max_no.

270.book Seite 132 Freitag, 29. Mai 2009 1:05 13

Page 33: Sappress Certified Abap With Netweaver

Practice Question Answers and Explanations Chapter 5 133

11. There are ___ work areas available in the Debugger.

� A. 7

� B. 9

� C. 11

� D. 15

12. What button undoes layout changes to the Debugger? (Fill in the blank.)

______________________________

Practice Question Answers and Explanations1. Correct answer: A

The classic Debugger only allowed a maximum of eight data objects. The newDebugger allows an unlimited number (restricted only by font and windowsize) to be displayed at the same time.

If you encounter a question discussing an ability or limitation of the classicDebugger, you should assume that the question refers to the classic Debuggerand answer accordingly. If the question references the new Debugger, theanswer would be false.

2. Correct answer: B

Whereas it is true that if a condition is specified, the watchpoint will not stopuntil the condition is true, the watchpoint will not be triggered until the vari-able contents change. Therefore if you set a watchpoint that is already true,the watchpoint will not be triggered.

3. Correct answer: B

The classic Debugger cannot analyze conversion exits or field exits. It also hasside effects with search help (F1), value help (F4), and list output.

4. Correct answers: B, D

When you already have five external modes in use (or more accurately whenyou only have one external mode remaining), the classic Debugger is auto-matically started when starting another external mode would prevent furthersessions from being created. If you have the default Debugger specified as theclassic, it will always start with this version.

270.book Seite 133 Freitag, 29. Mai 2009 1:05 13

Page 34: Sappress Certified Abap With Netweaver

Chapter 5 ABAP Debugger Program Usage134

5. Correct answers: A, C, D, E

A non-exclusive mode means the session is not locked into a work processand will be rolled out and rolled in between steps. The roll-out forces a COM-MIT WORK between steps, which means the database cursor will be lost, caus-ing a short dump if it occurs between a SELECT and ENDSELECT. Because data-base commits occur without regard to logical units of work, the databasemay become inconsistent. The Debugger prevents this inconsistency in aproduction environment.

6. Correct answer: B

Only 10 watchpoints can exist at one time with the classic Debugger. Thenew Debugger has no limit.

If you encounter a question discussing an ability or limitation of the classicDebugger, you should assume that the question refers to the classic Debug-ger and answer accordingly. If the question references the new Debugger theanswer would be option D.

7. Correct answer: A

With the new Debugger executing in a separate mode, it has access to searchhelps that may be used for setting breakpoints.

If you encounter a question discussing the absence of an ability of the classicDebugger, you should assume that the question refers to the new Debuggerand answer accordingly.

8. Correct answer: A

Breakpoints set in the editor can be changed in the Debugger. Local break-points can be converted to either session or external breakpoints.

9. Correct answer: A

If you open up multiple data objects for change, the (¢) key will accept allchanges to all objects.

10. Correct answer: A

If you attempt to start the Debugger on a production system and an exclusivemode is not available, the system will produce the runtime error DEBUGGING_NOT_POSSIBLE. On a non-productive system you would receive the indica-tion of a non-exclusive mode in the title, but owing to the potential forinconsistent data, this mode is not allowed on production systems.

11. Correct answer: C

There are 11 desktop areas currently available for use.

270.book Seite 134 Freitag, 29. Mai 2009 1:05 13

Page 35: Sappress Certified Abap With Netweaver

Take Away Chapter 5 135

12. Correct answer: Back

The Back button undoes the layout changes you have made to each desktop.Using the Back button multiple times will undo each layout change.

Take AwayYou should now be able to examine the runtime behavior of ABAP programsusing the ABAP Debugger. By examining data objects within the Debugger, it ispossible to determine why a program behaves correctly or incorrectly. If youdetermine the cause of a problem in the program, it is easier to provide a correc-tion or a solution to the issue.

If you design programs with an eye to identifying issues during testing throughthe use of assertions and checkpoint groups, your programs will be easier tomaintain and produce fewer issues once they are in production.

Refresher

You must understand watchpoints and breakpoints — both their use and how todefine them. You need to understand how to define and use assertions andcheckpoint groups in your program.

The final thing you should take away from this unit is the differences betweenthe classical Debugger and the new Debugger. You should understand the archi-tecture of each, what limitations exist, and why the limitations exist. It is alsoimportant to understand the tools and what options exist within the differenttools.

Table 5.3 shows the key concepts of the Debugger.

Key Concept Definition

Architecture of the Debugger

The classic Debugger shared the same external mode roll area as the executing program, whereas the new Debug-ger runs in its own external mode.

Desktops and their tools The desktops in the Debugger and how the various tools function in the Debugger.

Table 5.3 Key Concepts Refresher

270.book Seite 135 Freitag, 29. Mai 2009 1:05 13

Page 36: Sappress Certified Abap With Netweaver

Chapter 5 ABAP Debugger Program Usage136

Tips

As you take the examination, read the questions carefully. If a question oranswers are valid for only one of the two Debuggers, you should answer thequestion assuming that the question refers to that Debugger. The majority of thequestions can be answered for either Debugger because both contain very simi-lar functionality. If the question specifies a specific Debugger, answer the ques-tion as it pertains to that specific Debugger.

As with the majority of the subjects in the certification examination, it is impor-tant to have as much practical experience with the subject as possible. Unlike themajority of subjects in the certification examination, you typically will learnmore using the Debugger than just reading about it.

SummaryYou should now be able to examine the runtime behavior of an ABAP programusing the ABAP Debugger to identify issues with the program and to systemati-cally test the program. You should be able to identify and create watchpoints andbreakpoints and know the various types of breakpoints. Lastly, you shouldunderstand the differences between the two versions of the Debugger. Theseabilities will enable you to pass this section in the certification exam easily.

Checkpoint groups Used to define and use assertions and checkpoint groups and their behavior during program execution.

Breakpoints Used to define various types of breakpoints.

Watchpoints Used to define a watchpoint.

Key Concept Definition

Table 5.3 Key Concepts Refresher (cont.)

270.book Seite 136 Freitag, 29. Mai 2009 1:05 13

Page 37: Sappress Certified Abap With Netweaver

599

Index

A

ABAP 81, 235, 236, 246Data object 139Data type 137, 146, 160, 316Global declaration 236, 272Global definition 236Procedural 236Processing block 238Runtime environment 235, 236, 242, 247,

522, 523Statement 246, 514Text translation 236Type 293Type of program 236

ABAP application server 56, 66, 67, 71, 72, 202

ABAP class 421Attribute 430CLASS-EVENTS 442CONSTRUCTOR 438CREATE OBJECT 429Event 442Global class 423Local class 421Method 432Private 423Private instantiation 427Private section 425Protected 423Protected instatiation 427Protected section 426Public 423Public section 425RAISE EXCEPTION 438READ-ONLY 430Returning 436Static method 441

ABAP Debugger 89, 113, 114, 122, 249Architecture 113Classic 114, 115, 117, 119, 122, 125, 128,

129

ABAP Debugger (cont.)New 115, 117, 118, 119, 122, 125, 128,

129, 130Starting 113, 115, 116, 117Stopping 117Switching 117

ABAP Dictionary 70, 94, 200, 252, 258, 262, 283, 285, 296, 320, 335, 471, 503, 578, 579, 587, 590Append structure 335Check table 578, 579, 580, 583, 584, 585,

587, 588, 590Customizing include 335Data element 201, 264, 464, 471, 503,

578, 580, 588, 589, 590Data type 138, 157Domain 201, 580, 581, 582, 584, 585, 590Fixed value 580, 582, 590Foreign key 578, 583, 584, 585, 586, 587Search help 578, 579, 580, 587Service 305Structure enhancement 335Table 321Text table 586, 588, 590Type 293Value table 578, 580, 582, 583, 585View 588

ABAP Editor 93, 114, 124, 129New ABAP Editor 79, 89, 91

ABAP List Viewer � ALVABAP Objects 114, 121, 236, 249, 255, 418,

419, 421, 512, 513Reference 114

ABAP processor 70ABAP Workbench 79, 81, 93, 109, 234

Settings 88Abstraction 420Access mode 298Alias 525ALV 454, 580

Container 454, 455, 456, 457, 458, 459, 467, 476

Currency 465

270.book Seite 599 Freitag, 29. Mai 2009 1:05 13

Page 38: Sappress Certified Abap With Netweaver

Index600

ALV (cont.)Display data table 460, 469Display variant 460, 462Event handling 454, 455, 465, 476Event registration 465, 467, 477Field catalog 459, 460, 461, 463, 464, 471,

477Field group 460Filtering 461Full screen 454, 455, 459, 467Grid control 454, 456, 459, 460Layout 460, 463Object model 455, 467, 472, 473Print output 460Sorting 460, 461, 463, 471Unit of measure 465

American Standard Code for Information Interchange � ASCII

APPEND 176, 177, 194Application layer 66, 206, 210, 235ASCII 326Assert 113, 125, 126ASSIGNING 181Associate certification 30Associate examination

Competency area 33Specifics 32

AT EXIT-COMMAND 368AT SELECTION-SCREEN 409

ON 409ON BLOCK 409ON HELP-REQUEST FOR 409ON RADIOBUTTON 409ON VALUE-REQUEST 410OUTPUT 400

Attribute 255, 431, 452Instance 456, 467, 514Static 256, 468, 514, 521

Authorization check 232, 260Authorization object 261

B

Back-End Editor 89BAdI 538, 539, 555

Definition 556Filter-depend 555

BAdI (cont.)Implementation 561Menu enhancement 562Multiple use 555New 565Screen enhancement 563Searching 557

BAPI 64Definition 297

BEGIN OF BLOCKTitle 404With frame 404

BINARY SEARCH 182, 191Breakpoint 113, 120, 124, 125, 126, 130,

240BSP 60BTE 539, 551

FIBF 552Process interface 552Publish and subscribe 552Search 554

Buffering type 303Business Add-In � BAdIBusiness Application Programming Interface

� BAPIBusiness Process Platform 57Business Server Pages � BSPBusiness Transaction Event � BTEByte type 326, 329, 330, 331, 336, 338, 339

C

CALL METHOD 439Cardinality 585Central instance 211Certification

Associate 30Master 30Professional 30

Certification examScoring 28

Certification level 29, 31Change request 232, 234, 235, 271

Task 234, 271Character type 146, 326, 329, 330, 331, 333,

334, 336, 339Checkpoint 125, 126, 127, 130

270.book Seite 600 Freitag, 29. Mai 2009 1:05 13

Page 39: Sappress Certified Abap With Netweaver

Index 601

Class 452FRIENDS 517INHERITING FROM 519

Class Builder 93, 431Class constructor 417, 439CLASS-DATA 145CLASS-EVENTS 442CLASS-METHODS 432Cluster table 320CMOD 544Code execution 113, 128Code page 326, 337, 338COLLECT 178Component

Lifetime 490, 493Composite enhancement spot 567Constructor 520

Instance 459, 520Static 515, 520

Context mapping 495, 502Control Framework 456Controller

Component controller 493Configuration controller 494Context controller 490Custom controller 494View controller 494Window controller 494

Conversion routine 319Course

BC400 46BC401 46BC402 46BC405 46BC414 46BC425 46BC427 46BC430 46NET310 47NW001 47TAW10 46TAW11 46TAW12 46

CREATE OBJECT 452Customer exit 539, 543CUSTOMER-FUNCTION 545

D

Data binding 495Data element 153, 283, 285, 286, 287, 295,

321Data encapsulation 249Data modeling 198, 199, 200, 261Data object 139, 141, 160

Classic 114FORM...ENDFORM 154Literal 141Local 157Modifying 113, 114, 117, 123MODULE...ENDMODULE 154Offset 332, 333, 334Predefined 143Viewing 113, 114, 117, 120, 121, 122,

124, 129, 130Visibility 154

Data retrieval 198, 199, 202Data type 139, 140, 160, 287, 290

Basic 285Complex 150, 285, 287Elementary 138, 148, 152Generic 137, 139Global 137, 152, 157, 160LCHR 291Local 149, 160LRAW 291PARAMETERS 140Predefined 139QUAN 291RAWSTRING 292SELECT-OPTIONS 140SSTRING 292STRING 148, 292TIMS 292TYPES 140VARC 292XSTRING 148

Database interface 70, 71, 72, 77, 202, 205, 206, 207, 583

Database layer 62, 64, 65, 69, 198, 206, 210, 235

Database lock 72, 113, 211, 222Database update 198, 199

Asynchronous 220

270.book Seite 601 Freitag, 29. Mai 2009 1:05 13

Page 40: Sappress Certified Abap With Netweaver

Index602

Database update (cont.)Bundled 210, 212, 216Inline update 212, 216Local 221Synchronous 221Update task 212, 217

Database view 207, 286, 314Debugger 112Deep structure 137, 160, 318Default component name 297DELETE 187Delivery and maintenance 300DEQUEUE 309, 315Desktop 119, 120, 128, 129Dialog program 343Dialog screen 388

Event 388Dialog step 68, 73, 210, 216Dictionary 351Dictionary type

ACCP 293CLNT 293DATS 293FLTP 293Predefined 152

Diff tool 121Dispatcher 68Domain 283, 285, 288, 295, 321

Format 288Output property 288, 293

Down cast 523

E

EBCDIC 326Encapsulation 420Enhancement 537

ABAP Dictionary 563Append structure 563BAdI 555BTE 551Concept 574Customer exit 543Customizing include 564Explicit enhancement point 565Implicit enhancement point 565Menu exit 550

Enhancement (cont.)Option 565Screen exit 549Search tool 575Spot 566Technique 540, 575User exit 540

Enhancement Framework 95, 537, 539, 564, 575Composite Enhancement 567Enhancement option 565Enhancement point 565Enhancement spot 567New BAdI 565

Enhancement Information System 79, 95, 110, 575

Enhancement spot 96ENQUEUE 309, 315Enterprise extension 58Entity relationship model � ERMERM 199Event 452

Sender 442Event block 232, 243, 272

AT LINE-SELECTION 246, 270AT SELECTION-SCREEN 242, 245, 267,

269AT USER-COMMAND 246, 270END-OF-PAGE 246, 267END-OF-SELECTION 245, 267GET node 242, 245, 267INITIALIZATION 243, 267LOAD-OF-PROGRAM 243, 267START-OF-SELECTION 242, 243, 267TOP-OF-PAGE 245, 267, 270

ExaminationStrategy 52

ExamineProcessing logic 113Result 113Source code 113, 117, 120, 122, 124, 128,

130Exclusive lock 311Exclusive mode 118, 119, 130External mode 115, 117, 130

270.book Seite 602 Freitag, 29. Mai 2009 1:05 13

Page 41: Sappress Certified Abap With Netweaver

Index 603

F

FIBF 552FIELD 355Field label 296File interface 338

OPEN DATASET 338Fixed point arithmetic 147Flat structure 137, 160, 318

Type 150Flow logic 262Foreign key 301Fragment view 326, 330, 333, 334, 339FREE 189Friendship � ClassFront-End Editor 90Full buffering 303Function Builder 94Functional method 513Functional type 367

G

Gateway 68Generic buffering 304Global class 423

Public instantiantion 427Graphical Screen Painter 350GUI

Creating GUI status 371Creating GUI title 371Setting GUI status 373Setting GUI title 373Status 344, 366, 388Title 344Title design 366

H

Hashed table 166, 169, 173, 298Internal 195

Help view 315, 320Hexadecimal type 147

I

Identifying error 112, 113Index 286, 304Index table 169Inheritance 420, 471, 518, 524, 528

Tree 519INITIALIZATION 399, 408Inner join 311, 312, 318INSERT 176, 177INSERT LINES 178INSERT TABLE 169Instance 62Instance attribute 431Instance component 428Integer type 147Interface 524, 529Internal table 162, 163, 195, 251

Access mode 169APPEND 166ASSIGNING 181AT...ENDAT 184BINARY SEARCH 182CLEAR 188COLLECT 178Column 164Define 167DELETE 187DELETE ADJACENT DUPLICATES 187ENDLOOP 183Hashed 251Hashed table 166Header line 165Index access 167INITIAL SIZE 172INSERT 177Key access 167Line type 165LOOP 183MODIFY 185Non-unique key 171OCCURS 190Populate 166READ TABLE 179REFRESH 188SORT 187Sorted 251

270.book Seite 603 Freitag, 29. Mai 2009 1:05 13

Page 42: Sappress Certified Abap With Netweaver

Index604

Internal table (cont.)Sorted table 166Standard 251Standard key 165Standard table 166Table key 165Table row 164Table type 168TRANSPORTING 180Uniqueness of key 167User-defined key 165WITH HEADER LINE 172, 174WITHOUT HEADER LINE 165Work area 165

Internet Communication Manager 60Internet Transaction Server 60

J

Java Connector 61JOIN 311

K

Kernel and administration services 63Key 298

L

LayoutFlowLayout 499GridLayout 500MatrixLayout 500RowLayout 499

LENGTH 150LIKE 146Line type 298Literal 141

Constant 142Numeric 142String 142

Local class 417, 421Lock object 57, 72, 198, 199, 211, 284, 286,

309, 579Dequeue 210, 212, 216, 220, 579Enqueue 210, 212, 213, 216, 579Local lock container 213, 214

Lock object (cont.)Lock mode 311

Lock parameter_COLLECT 213, 214_SCOPE 213, 215_WAIT 213, 215MODE 213, 214

Log data change 304LUW 57, 198, 199, 208, 216, 217, 221, 222

Commit 209, 211, 216, 220, 221, 222Database 69, 72, 208, 209, 210, 211, 222Implicit commit 209, 210, 211Rollback 208, 209, 218, 220, 222SAP 72, 208, 210, 218, 236

M

Maintenance 311Maintenance view 286, 314, 317, 318, 320Master certification 30Memory analysis 121Menu exit 550Menu Painter 94Message 232, 239, 265

Class 265Number 265Placeholder 265Server 63, 66, 67, 72Type 265

Method 452, 524Changing 436Default 438Exporting 436Importing 438Instance 256, 515, 519Optional 438Static 515, 521

MIME Repository Browser 84Model View Controller � MVCModification 537, 567Modification browser 568MODIFY 185, 186, 208MODIFY TABLE 169Modularization unit 232, 236, 247, 248,

272, 476, 514Function module 236, 238, 239, 241, 249,

251, 255, 258, 271, 514

270.book Seite 604 Freitag, 29. Mai 2009 1:05 13

Page 43: Sappress Certified Abap With Netweaver

Index 605

Modularization unit (cont.)Method 236, 238, 239, 241, 249, 255,

271, 514Subroutine 236, 238, 239, 240, 241, 249,

252, 256, 258, 476, 514MODULE 355Module pool program

Create 381Multiple inheritance 519, 524, 529Multiple use 557MVC 487, 488

Controller 488Model 488View 488

N

Narrowing cast � Down castNested structure 160Non-cumulative lock 311Non-Unicode system 327Numeric literal 142Numeric type 147

O

Object 429, 452Instantiation 256

Object Navigator 82, 83Object-oriented programming 417

Concept 419OK_CODE 264ON 355Outer join 312, 318Overloading 520Overview 285

P

Package 97GLOBAL_SWITCH 100Interface 100Nesting 99PAKPARAM 100Visibility 99

Package Builder 99PAI 347

Parameter 240, 249Changing 238, 241, 249, 250, 252, 255,

513Input 238, 241, 249, 252, 255, 466, 589Output 238, 241, 249, 252, 255, 513, 589Pass by reference 239, 240, 241, 250, 272Pass by value 239, 240, 241, 250, 254,

256, 272Returning 238, 255, 258, 513Table 238, 250, 252

Parameter ID 297PARAMETERS 140, 145, 393

AS CHECKBOX 395Default 395MEMORY ID 395OBLIGATORY 394, 395PARAMETER ID 395RADIOBUTTON GROUP 395VALUE CHECK 396

PBO 347Personalization 539, 540Physical lock 211Plug 491, 492POH 347, 388Polymorphism 420Pooled table 320POV 347, 388Presentation layer 66, 209, 210, 235Primary index 304Private attribute 431Procedure 242

Exception 238, 239, 251, 253, 255, 523Parameter 238

PROCESS AFTER INPUT � PAIPROCESS BEFORE OUTPUT � PBOProcess interface 554PROCESS ON HELP-REQUEST � POHPROCESS ON VALUE-REQUEST � POVProcessing block 236, 238, 267, 272

Dialog module 238, 590Event block 238, 242Procedure 238

Professional certification 30Professional examination

Competency area 37, 40Specifics 37, 40

Program 351

270.book Seite 605 Freitag, 29. Mai 2009 1:05 13

Page 44: Sappress Certified Abap With Netweaver

Index606

Program attribute 327Program context 210Program type 266

Class 237, 238, 255Executable 237, 263Function group 237, 238, 251, 253, 263Interface 237, 238Module pool 237, 263Type group 237, 238

Projection view 314, 318, 320Public attribute 431

R

Read lock 311READ TABLE 169, 179, 181, 183REF_FIELD 464REF_TABLE 464Refactoring Assistant 518, 526Reference data type 319Reference table 301Reference type 152REFRESH 188Relational operator 337Remote Function Call � RFCRepository Browser 85, 109Repository Information System 79, 86, 109Repository object 65, 73, 77, 234, 235Reuse component 203, 248, 251, 489Reuse Library 83RFC 64, 209, 236, 251Root component 497

S

SAP application server 56, 210, 211SAP Business All-in-One 57SAP Business ByDesign 57SAP Business One 57SAP Business Suite 57SAP Certified ABAP Development Associate

30, 32SAP Certified ABAP Development Professio-

nal 36SAP Developer Network � SDNSAP development 48SAP ERP 59

SAP examinationStrategy 50

SAP GUI 64, 66, 68, 69, 456SAP Help Portal 47SAP List Viewer � ALVSAP Logon 66SAP NetWeaver

Documentation 48Release change 48

SAP NetWeaver Application Server 56, 57, 60, 64, 327, 455, 488ABAP 61, 62, 64, 66, 67, 68, 71ABAP+Java 60, 62Java 61, 62

SAP Notes Assistant 568SAP Web Application Server 58, 60Screen 66, 252, 262, 380, 456

CHAIN 355Container control 456, 457, 459, 475Control 456, 459Design 346Dynpro 69, 232, 258, 262, 456, 458, 476,

487Element attribute 350ENDCHAIN 355ENDLOOP 355Exit 549FIELD 357Field help 362Function code 352Function type 367LOOP 355Modal dialog box 232, 264Modifying dynamically 380Module 353ON CHAIN-INPUT 358ON INPUT 358ON REQUEST 358PROCESS AFTER INPUT 345PROCESS BEFORE OUTPUT 345Processing 355Processor 69Show element list 351Structure 380Type 349Value help 362VALUES 355

270.book Seite 606 Freitag, 29. Mai 2009 1:05 13

Page 45: Sappress Certified Abap With Netweaver

Index 607

Screen flow logic 353AT CURSOR-SELECTION 359AT EXIT-COMMAND 359Keyword 355PROCESS AFTER OUTPUT 354PROCESS BEFORE OUTPUT 354

Screen Painter 305, 343, 347SDN 47Search help 284, 286, 297, 301, 305, 317,

319, 590Append 306, 309Attachment 587, 589, 590Collective 306, 307Dialog behavior 587, 588Elementary 306Interface 587, 589Parameter 306, 308Selection method 587, 588, 591Value list 587, 588

Secondary index 304SELECT 203, 206, 207, 591

Array fetch 205Field list 204FROM clause 203INTO clause 203, 204, 205Join column 207Join condition 207Join table 207Loop 203, 204SELECT clause 203SINGLE 203WHERE clause 203, 204, 205

Selection method 306, 307Selection screen 140, 145, 232, 258, 346,

391, 393, 396, 403As subscreen 406BEGIN OF BLOCK 404BEGIN OF LINE 404CALL SELECTION-SCREEN 403Design 393END OF BLOCK 404END OF LINE 404HIGH 397LOW 397MEMORY ID 400Nesting Level 407NO INTERVALS 400NO-DISPLAY 400

Selection screen (cont.)NO-EXTENSION 399OBLIGATORY 400OPTION 397Parameter 258PARAMETERS 391, 393Processing 408Selection text 394SELECT-OPTIONS 258, 391, 393SIGN 397SKIP 405Text element 394ULINE 405Variant 403

SET HANDLER 445Shared lock 311Shared memory 69Singleton 515, 518SMOD 544Sorted table 166, 169, 173, 298

Internal 195Specialization 518, 524SQL 198, 199, 208

Access method 205Buffering 71, 201, 202, 206, 235Key field 201, 203, 205Native SQL 70, 71, 202Open SQL 70, 71, 199, 202, 203, 206, 207,

208, 235Optimize 205Secondary index 201, 205

Standard table 166, 169, 298Internal 195

Static attribute 431Static component 428STRING 148String literal 142Structure 201, 204, 286, 288, 297Syntactically forbidden 526

T

Table 261, 286DBTABPRT 304Field 300Join 207Primary key 201Secondary key 201, 205

270.book Seite 607 Freitag, 29. Mai 2009 1:05 13

Page 46: Sappress Certified Abap With Netweaver

Index608

Table (cont.)Transparent 200, 201, 202

Table controlAttribute 376Programming 375Screen flow logic 377

Table type 151, 168, 286, 298Key category 170Line type 168

TABLES 154Tag Browser 84Target � SELECTTechnical platform 58, 59Technical settings 303Test Repository Browser 85Text field literal 142Text symbol 143Tool 119, 120, 122, 124, 125, 128, 129, 130

Service 121, 122Transaction

CMOD 544FIBF 552SMOD 544UCCHECK 327, 328

Transparent table 285, 300, 316, 317Transport Management System 102Transport Organizer 101, 104, 110TRANSPORTING 184Type 146, 311TYPES 140, 149

U

UCCHECK 327, 328Understanding

Comprehension 49Effective memory 48Mnemonics 49Testing 49

Unicode 246, 324Alignment 325, 330, 332, 334Byte order 332Character set 327Check 324, 325, 326, 327Compliant 325Fragment view 334, 335Program 236, 327, 328, 329, 331, 335,

336

Unicode (cont.)Syntax 325, 326, 328System 327, 328, 338Tool 326, 327

Unicode Check transaction � UCCHECKUp cast 521Update module 72, 199, 219, 220

V1 219, 221V2 219, 221

User exit 539, 541, 543

V

VALUE 146Variable 143View

Container 498Context 491, 493, 502Controller 491, 493, 502Layout 497, 498, 502UI element 489, 495, 496, 497, 498, 501,

502Visibility section 519, 524

Private 515, 517, 519, 520Protected 517, 520Public 516, 517, 520, 524

W

Watchpoint 113, 125, 130Web Application Builder 94Web Dynpro 61, 67

Component 489, 492, 493Component interface 489, 496Controller 489, 490, 492, 493Event handling 491, 495Explorer 95Text Browser 84View 489, 491, 492Window 489, 492

Widening cast � Up castWork process 63, 68, 69, 72, 210, 221Write lock 311

X

XSTRING 148

270.book Seite 608 Freitag, 29. Mai 2009 1:05 13