Top Banner

Click here to load reader

46

SAP Certified Application Associate - ABAP with …...Bonn Boston Puneet Asthana, David Haslam SAP® Certified Application Associate — ABAP TM with SAP NetWeaver® 7.0 270.book Seite

Jun 12, 2020

ReportDownload

Documents

others

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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/DeleteBreakpoint. 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

  • 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 toClassic 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

  • 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 DebuggerControls 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

  • 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

  • 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 Codeshows 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

  • 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

  • Chapter 5 ABAP Debugger Program Usage122

    The services provided vary depending on the tool. For example, the SourceCode 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

  • 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

  • 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

  • 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

  • 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 , 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.