• Explore comprehensive explanations of all ABAP statements
• Expand your knowledge with new information on extended expression handling, pragmas, introduction to internal tables, and database streaming
• The latest edition of the best-selling, one-stop official ABAP reference, authorized by SAP
• Updated for Release 7.2/7.02
• Includes a trial version of SAP NetWeaver 7.02 SP6 on DVD!
Get to know ABAP in all its intricacy and detail with this, your comprehensive reference for all ABAP statements. Each chapter discusses the relevant keywords for the topic at hand, and begins with an introduction that explains the essential concepts, such as character string processing, dynpro development, and more. For each statement, the book offers an explanation of the function, the syntax listing, a description, notes on special usage, and an example. The clear organization of content, a full index, and the comprehensive glossary will help you navigate through the complexities of ABAP with ease.
Comprehensive Discussion of Keywords
Learn about every language construct that you may encounter in dealing with ABAP programs, whether it is brand new or obsolete.
Syntax Diagrams
Explore syntax diagrams for each statement that show you all your options at a glance.
Practical Examples
Expand your knowledge with the various example programs that give you a feel for the surrounding structure of a program statement.
Icons for New Concepts
Easily identify new content and statements via icons throughout the text.
ABAP Glossary
Browse a unique glossary of almost 1,000 entries, which explains all programming concepts from A to Z.
Highlights
• Operands
• Expressions
• Built-in elements
• Function groups
• Exception handling
• String and internal table processing
• Testing and checking programs
• ABAP and XML
• Obsolete language elements
The Author
Dr. Horst Keller works in the NetWeaver Developer Tools ABAP group at SAP. As a knowledge architect, he is responsible for documentation and roll-out relating to ABAP and ABAP Objects. He is also responsible for the programs that prepare and present ABAP documentation.
Table of Contents
- ... Preface ... 19
- 1 ... Introduction ... 23
- 1.1 ... Releases Used ... 23
- 1.2 ... New Features in Releases 7.02 and 7.2 ... 25
- 1.2.1 ... New Features in ABAP ... 25
- 1.2.2 ... New Features in Tools ... 28
- 1.3 ... Syntax Conventions in The Official ABAP Reference ... 30
- PART 1 ... ABAP Overview ... 33
- 2 ... ABAP Programming Language ... 35
- 2.1 ... SAP NetWeaver ... 35
- 2.2 ... Scope and Usage Areas ... 36
- 2.3 ... Programming Models ... 37
- 2.4 ... Unicode ... 37
- PART 2 ... ABAP Syntax ... 39
- 3 ... Statements ... 41
- 3.1 ... ABAP Words ... 42
- 3.2 ... Operands ... 42
- 3.2.1 ... Names for Single Operands ... 43
- 3.2.2 ... Specifying Single Operands ... 49
- 3.2.3 ... Operand Position and Type ... 50
- 3.2.4 ... Data Objects in Operand Positions ... 52
- 3.2.5 ... Functions and Expressions in Operand Positions ... 55
- 3.3 ... Operators and Expressions ... 59
- 3.3.1 ... Operators ... 59
- 3.3.2 ... Expressions ... 60
- 4 ... Names ... 61
- 4.1 ... Naming Conventions ... 61
- 4.2 ... Name Spaces ... 62
- 5 ... Chained Statements ... 63
- 6 ... Comments ... 65
- 7 ... Program Directives ... 67
- 7.1 ... Pragmas ... 67
- 7.1.1 ... Pragma Parameters ... 68
- 7.1.2 ... Positioning Pragmas ... 68
- 7.2 ... Pseudo Comments ... 69
- PART 3 ... Program Structure ... 71
- 8 ... Program Structure ... 73
- 9 ... Programs ... 75
- 9.1 ... Standalone Programs ... 75
- 9.1.1 ... Program Types ... 75
- 9.1.2 ... Introductory Program Statement ... 76
- 9.2 ... Executable Programs ... 77
- 9.2.1 ... Additions for the Basic List of the Program ... 78
- 9.2.2 ... Addition for the Message Class ... 80
- 9.2.3 ... Addition for Subroutine Pools ... 80
- 9.3 ... Module Pools and Subroutine Pools ... 80
- 9.4 ... Function Groups ... 82
- 9.5 ... Class Pools ... 84
- 9.6 ... Interface Pools ... 85
- 9.7 ... Type Groups ... 86
- 10 ... Modularization ... 89
- 10.1 ... Procedures ... 89
- 10.1.1 ... Parameter Interface of Procedures ... 90
- 10.1.2 ... Method Implementation ... 92
- 10.1.3 ... Function Modules ... 93
- 10.2 ... Dialog Modules ... 99
- 10.3 ... Event Blocks ... 100
- 10.3.1 ... Program Constructor ... 101
- 10.3.2 ... Reporting Events ... 102
- 10.3.3 ... Selection Screen Events and List Events ... 106
- 10.4 ... Source Code Modules ... 107
- 10.4.1 ... Include Programs ... 107
- 10.4.2 ... Macros ... 109
- 11 ... Built-in Elements ... 113
- 11.1 ... Built-in Data Types ... 113
- 11.1.1 ... Built-in ABAP Types ... 113
- 11.1.2 ... Generic ABAP Types ... 118
- 11.1.3 ... Built-in Types in the ABAP Dictionary ... 120
- 11.2 ... Built-in Data Objects ... 131
- 11.2.1 ... ABAP System Fields ... 131
- 11.2.2 ... space, me, and screen ... 138
- 11.3 ... Built-in Functions ... 140
- 11.3.1 ... Syntax of Built-in Functions ... 140
- 11.3.2 ... Overview of Built-in Functions ... 141
- PART 4 ... Declarative Statements ... 145
- 12 ... Types and Objects ... 147
- 12.1 ... Validity and Visibility ... 148
- 12.2 ... Absolute Type Names ... 149
- 12.3 ... Shared Objects ... 152
- 13 ... Data Types and Data Objects ... 153
- 13.1 ... Declaring Data Types ... 153
- 13.1.1 ... Defining Types with Predefined ABAP Types ... 154
- 13.1.2 ... Defining Types by Referring to Existing Types ... 155
- 13.1.3 ... Defining Reference Types ... 156
- 13.1.4 ... Defining Structured Types ... 158
- 13.1.5 ... Defining Table Types ... 164
- 13.1.6 ... Defining Ranges Table Types ... 174
- 13.1.7 ... Defining LOB Handle Structures ... 175
- 13.2 ... Declaring Data Objects ... 179
- 13.2.1 ... Literals ... 179
- 13.2.2 ... Declaring Variables ... 182
- 13.2.3 ... Declaring Constants ... 194
- 13.2.4 ... Declaring Static Data Objects in Procedures ... 195
- 13.2.5 ... Declaring Table Work Areas ... 196
- 13.2.6 ... Declaring Data Objects for HR Infotypes ... 200
- 14 ... Classes and Interfaces ... 203
- 14.1 ... Defining Classes ... 203
- 14.1.1 ... Declaration ... 204
- 14.1.2 ... Specifying Class Properties ... 205
- 14.1.3 ... Visibility Sections of Classes ... 213
- 14.1.4 ... Class Components ... 217
- 14.1.5 ... Implementation Section ... 218
- 14.1.6 ... Declaring Classes ... 220
- 14.1.7 ... Local Friends of Global Classes ... 221
- 14.2 ... Defining Interfaces ... 221
- 14.2.1 ... Definition ... 222
- 14.2.2 ... Interface Components ... 223
- 14.2.3 ... Declaring Interfaces ... 224
- 14.3 ... Declaring Components ... 224
- 14.3.1 ... Attributes and Data Types ... 224
- 14.3.2 ... Methods ... 226
- 14.3.3 ... Events ... 249
- 14.3.4 ... Interface Components ... 252
- 15 ... Field Symbols ... 259
- 16 ... Typing ... 261
- 16.1 ... Syntax of Typing ... 261
- 16.1.1 ... Generic Typing ... 262
- 16.1.2 ... Complete Typing ... 264
- 16.2 ... Checking the Typing ... 265
- 16.2.1 ... General Rules ... 265
- 16.2.2 ... Return Values of Functional Methods ... 267
- 16.2.3 ... Literals as Actual Parameters ... 268
- 16.2.4 ... Functions and Expressions as Actual Parameters ... 270
- PART 5 ... Generating Objects ... 273
- 17 ... Creating Objects ... 275
- 17.1 ... Creating Data Objects ... 275
- 17.1.1 ... Defining the Data Type Implicitly ... 276
- 17.1.2 ... Defining the Data Type Through Built-in ABAP Types ... 277
- 17.1.3 ... Defining Data Through an Existing Type ... 278
- 17.1.4 ... Creating Data with Reference to a Type Object ... 280
- 17.1.5 ... Creating Reference Variables ... 281
- 17.1.6 ... Creating Internal Tables ... 282
- 17.1.7 ... Creating Shared Objects ... 284
- 17.1.8 ... Treatable Exceptions ... 287
- 17.2 ... Creating Instances of Classes ... 287
- 17.2.1 ... Specifying the Class Implicitly ... 288
- 17.2.2 ... Specifying the Class Explicitly ... 289
- 17.2.3 ... Creating Shared Objects ... 290
- 17.2.4 ... Static Parameter Passing ... 291
- 17.2.5 ... Dynamic Parameter Passing ... 292
- 17.2.6 ... Treatable Exceptions ... 294
- PART 6 ... Executing Program Units ... 295
- 18 ... Calling Programs ... 297
- 18.1 ... Calling Executable Programs ... 297
- 18.1.1 ... Processing an Executable Program ... 297
- 18.1.2 ... Calling of an Executable Program ... 299
- 18.2 ... Calling Transactions ... 315
- 18.2.1 ... Calling a Transaction with Returning to the Calling Program ... 315
- 18.2.2 ... Calling a Transaction without Returning to the Calling Program ... 321
- 19 ... Calling Processing Blocks ... 323
- 19.1 ... Calling Procedures ... 323
- 19.1.1 ... Internal and External Procedure Call ... 323
- 19.1.2 ... Calling Methods ... 327
- 19.1.3 ... Calling Function Modules ... 341
- 19.1.4 ... Calling Subroutines ... 349
- 19.2 ... Calling Event Handlers ... 354
- 19.2.1 ... Triggering Events ... 354
- 19.2.2 ... Registering Event Handlers ... 355
- 19.3 ... Calling Event Blocks ... 359
- 20 ... Exiting Program Units ... 361
- 20.1 ... Leaving Programs ... 361
- 20.2 ... Exiting Processing Blocks ... 362
- 20.2.1 ... Terminating Processing Blocks Normally ... 362
- 20.2.2 ... Exiting Processing Blocks Unconditionally ... 363
- 20.2.3 ... Exiting Processing Blocks Conditionally ... 366
- 20.3 ... Exiting Loops ... 368
- 20.3.1 ... Exiting Loops Unconditionally ... 368
- 20.3.2 ... Exiting Loop Passes Unconditionally ... 369
- 20.3.3 ... Exiting Loop Passes Conditionally ... 370
- PART 7 ... Program Flow Control ... 371
- 21 ... Logical Conditions ... 373
- 21.1 ... Logical Expressions ... 373
- 21.1.1 ... Comparisons ... 374
- 21.1.2 ... Predicates ... 388
- 21.1.3 ... Evaluating Selection Tables ... 393
- 21.1.4 ... Boolean Operators and Brackets ... 395
- 21.2 ... Logical Functions ... 400
- 21.2.1 ... Boolean Functions ... 400
- 21.2.2 ... Predicate Functions ... 401
- 22 ... Control Structures ... 405
- 22.1 ... Branches ... 405
- 22.1.1 ... Conditional Branches ... 406
- 22.1.2 ... Case Distinction ... 407
- 22.2 ... Loops ... 408
- 22.2.1 ... Unconditional Loops ... 408
- 22.2.2 ... Conditional Loops ... 409
- 22.2.3 ... Interrupting the Program ... 410
- 22.3 ... Exception Handling ... 411
- 22.3.1 ... Class-Based Exceptions ... 411
- 22.3.2 ... Exceptions Before the Introduction of Class-Based Exceptions ... 428
- 22.3.3 ... Exceptions in ABAP Statements ... 432
- 22.3.4 ... Runtime Errors ... 433
- PART 8 ... Assignments ... 435
- 23 ... Assignment Rules ... 437
- 23.1 ... Compatibility of Data Types ... 438
- 23.1.1 ... Compatibility of Non-Generic Data Types ... 438
- 23.1.2 ... Compatibility of Generic Data Types ... 439
- 23.1.3 ... Reference Types ... 439
- 23.2 ... Conversion Rules for Elementary Data Objects ... 440
- 23.2.1 ... Source Field Type c ... 441
- 23.2.2 ... Source Field Type d ... 444
- 23.2.3 ... Source Field Type decfloat16 or decfloat34 ... 446
- 23.2.4 ... Source Field Type f ... 448
- 23.2.5 ... Source Field Type i, b, or s ... 449
- 23.2.6 ... Source Field Type n ... 452
- 23.2.7 ... Source Field Type p ... 453
- 23.2.8 ... Source Field Type string ... 454
- 23.2.9 ... Source Field Type t ... 455
- 23.2.10 ... Source Field Type x ... 457
- 23.2.11 ... Source Field Type xstring ... 458
- 23.2.12 ... Numeric Values in Character-Type Fields ... 459
- 23.3 ... Conversion Rules for Structures ... 461
- 23.3.1 ... Unicode Fragment View ... 462
- 23.3.2 ... Conversion between Flat Structures ... 463
- 23.3.3 ... Conversion between Flat Structures and Single Fields ... 466
- 23.4 ... Conversion Rules for Internal Tables ... 467
- 23.5 ... Assignment Rules for Reference Variables ... 467
- 23.5.1 ... Static and Dynamic Type ... 468
- 23.5.2 ... Assignments between Data Reference Variables ... 469
- 23.5.3 ... Assignments between Object Reference Variables ... 470
- 23.6 ... System Class for Character Set Conversion and Number Format Conversion ... 472
- 24 ... Assigning Values ... 473
- 24.1 ... General Assignment ... 474
- 24.2 ... Lossless Assignment ... 476
- 24.2.1 ... Lossless Assignment of Elementary Data Objects ... 477
- 24.2.2 ... Lossless Assignment of Structures ... 484
- 24.2.3 ... Lossless Assignment of Internal Tables ... 484
- 24.2.4 ... Lossless Assignment of Reference Variables ... 485
- 24.2.5 ... Treatable Exceptions ... 485
- 24.3 ... Multiple Assignments ... 486
- 24.4 ... Assigning Structure Components ... 486
- 24.5 ... Special Assignment of a Packed Number ... 489
- 25 ... Setting References ... 491
- 25.1 ... Assigning Data Objects to Field Symbols ... 491
- 25.1.1 ... Specifying the Memory Area ... 492
- 25.1.2 ... Specifying the Data Type ... 503
- 25.1.3 ... Specifying Area Limits ... 506
- 25.1.4 ... Treatable Exceptions ... 509
- 25.2 ... Retrieving Data References ... 510
- 26 ... Initializations ... 513
- 26.1 ... Initializing Data Objects ... 513
- 26.2 ... Releasing Memory ... 514
- 26.3 ... Initializing Field Symbols ... 515
- PART 9 ... Processing Internal Data ... 517
- 27 ... Numerical Calculations ... 519
- 27.1 ... Statements for Numerical Calculations ... 519
- 27.1.1 ... Statement for Calculation Expressions ... 519
- 27.1.2 ... Addition ... 522
- 27.1.3 ... Subtraction ... 523
- 27.1.4 ... Multiplication ... 524
- 27.1.5 ... Division ... 524
- 27.2 ... Arithmetic Expressions ... 525
- 27.2.1 ... Arithmetic Operators ... 527
- 27.2.2 ... Bracketing ... 528
- 27.2.3 ... Calculation Type ... 528
- 27.2.4 ... Treatable Exceptions ... 532
- 27.3 ... Numerical Functions ... 533
- 27.3.1 ... General Numerical Functions ... 533
- 27.3.2 ... Numerical Extreme Value Functions ... 534
- 27.3.3 ... Floating Point Functions ... 536
- 27.3.4 ... Rounding Functions ... 538
- 27.3.5 ... Treatable Exceptions ... 544
- 27.4 ... System Classes for Mathematical Operations ... 544
- 27.4.1 ... Operations with Floating Point Numbers ... 544
- 27.4.2 ... Random Numbers ... 545
- 28 ... Character String and Byte String Processing ... 547
- 28.1 ... Properties of Character String and Byte String Processing ... 547
- 28.1.1 ... Character Strings and Byte Strings ... 547
- 28.1.2 ... Operands in Character String and Byte String Processing ... 547
- 28.1.3 ... Trailing Blanks in Character String Processing ... 549
- 28.2 ... Statements for Character String and Byte String Processing ... 550
- 28.2.1 ... Concatenate ... 551
- 28.2.2 ... Find ... 553
- 28.2.3 ... Replace ... 561
- 28.2.4 ... Shift ... 567
- 28.2.5 ... Split ... 571
- 28.2.6 ... Condense ... 574
- 28.2.7 ... Conversion into a Sortable Format ... 575
- 28.2.8 ... Overlay ... 576
- 28.2.9 ... Translate ... 577
- 28.2.10 ... Format ... 579
- 28.2.11 ... Setting Single Bits ... 601
- 28.2.12 ... Reading Single Bits ... 602
- 28.3 ... Character String Expressions ... 603
- 28.3.1 ... Character String Templates ... 604
- 28.3.2 ... Chaining Operator ... 624
- 28.3.3 ... Treatable Exceptions ... 625
- 28.4 ... Character String Functions ... 625
- 28.4.1 ... Description Functions ... 625
- 28.4.2 ... Processing Functions ... 630
- 28.4.3 ... Common Parameters ... 645
- 28.4.4 ... Treatable Exceptions ... 648
- 28.5 ... Regular Expressions ... 649
- 28.5.1 ... Syntax of Regular Expressions ... 649
- 28.5.2 ... Single Character Patterns ... 653
- 28.5.3 ... Character String Patterns ... 660
- 28.5.4 ... Search Patterns ... 664
- 28.5.5 ... Replacement Patterns ... 669
- 28.5.6 ... Simplified Regular Expressions ... 671
- 28.5.7 ... Testing Regular Expressions ... 673
- 28.5.8 ... Exceptions in Regular Expressions ... 674
- 28.6 ... Expressions and Functions for Byte String Processing ... 675
- 28.6.1 ... Bit Expressions ... 675
- 28.6.2 ... Byte String Functions ... 678
- 28.7 ... System Classes for Character String and Byte String Processing ... 679
- 28.7.1 ... String Processing ... 679
- 28.7.2 ... Compression ... 679
- 29 ... Internal Tables ... 681
- 29.1 ... Properties of Internal Tables ... 681
- 29.1.1 ... Table Type ... 681
- 29.1.2 ... Table Category ... 683
- 29.1.3 ... Table Key ... 684
- 29.1.4 ... Access to Internal Tables ... 693
- 29.1.5 ... Administration Costs of Internal Tables ... 694
- 29.2 ... Statements for Internal Tables ... 696
- 29.2.1 ... Reading Single Lines ... 696
- 29.2.2 ... Loop Processing ... 712
- 29.2.3 ... Control Level Processing ... 722
- 29.2.4 ... Inserting Lines ... 726
- 29.2.5 ... Inserting Compressed Lines ... 733
- 29.2.6 ... Appending Lines ... 736
- 29.2.7 ... Modifying Lines ... 742
- 29.2.8 ... Deleting Lines ... 749
- 29.2.9 ... Sorting ... 757
- 29.2.10 ... Syntax for Component Specifications ... 764
- 29.2.11 ... Syntax for Key Specifications ... 766
- 29.2.12 ... Character and Byte String Processing in Internal Tables ... 766
- 29.3 ... Table Function ... 772
- 29.4 ... Special Statement for Internal Tables ... 772
- 30 ... Extracts ... 779
- 30.1 ... Declaring Field Groups ... 779
- 30.2 ... Defining the Line Structure ... 780
- 30.3 ... Filling the Extract Dataset ... 781
- 30.4 ... Sorting the Extract Dataset ... 782
- 30.5 ... Reading the Extract Dataset ... 785
- 30.6 ... Control-Level Processing ... 785
- 30.6.1 ... Counter ... 788
- 30.6.2 ... Sums ... 789
- 31 ... Properties of Data ... 791
- 31.1 ... Specifying Elementary Properties ... 791
- 31.1.1 ... Elementary Properties of Any Data Objects ... 791
- 31.1.2 ... Elementary Properties of Internal Tables ... 798
- 31.1.3 ... Distance between Data Objects ... 799
- 31.2 ... Run Time Type Services ... 801
- 32 ... Streaming ... 803
- 32.1 ... Classes and Interfaces for Streams ... 803
- 32.1.1 ... Classes for Data Streams and Filter Streams ... 804
- 32.1.2 ... Interfaces and Superclasses ... 804
- 32.1.3 ... Important Methods ... 805
- 32.2 ... Streaming for Data Objects ... 806
- 32.2.1 ... Streaming for Strings ... 806
- 32.2.2 ... Streaming for Internal Tables ... 807
- PART 10 ... User Dialogs ... 809
- 33 ... Classic Dynpros ... 811
- 33.1 ... SAP GUI ... 812
- 33.2 ... Dynpro Fields ... 813
- 33.3 ... Dynpro Flow and Dynpro Sequences ... 814
- 33.4 ... Statements in the Dynpro Flow Logic ... 815
- 33.4.1 ... Event Blocks of the Dynpro Flow Logic ... 816
- 33.4.2 ... Calling Dialog Modules ... 818
- 33.4.3 ... Controlling Data Transfer and Flow Logic ... 822
- 33.4.4 ... Processing Chains ... 828
- 33.4.5 ... Table Controls ... 829
- 33.4.6 ... Subscreens, Tabstrip, and Splitter Controls ... 833
- 33.5 ... ABAP Statements for Dynpros ... 839
- 33.5.1 ... Calling a Dynpro Sequence ... 839
- 33.5.2 ... Setting the GUI Status ... 840
- 33.5.3 ... Determining the GUI Status ... 842
- 33.5.4 ... Setting the GUI Title ... 843
- 33.5.5 ... Suppressing the Display ... 845
- 33.5.6 ... Reading Attributes of Screen Elements ... 846
- 33.5.7 ... Modifying Attributes of Screen Elements ... 848
- 33.5.8 ... Setting the Cursor ... 850
- 33.5.9 ... Evaluating the Cursor Position ... 852
- 33.5.10 ... Declaring Controls ... 853
- 33.5.11 ... Initializing Table Control ... 859
- 33.5.12 ... Exiting Step-Loop Processing ... 859
- 33.5.13 ... Holding Input Data ... 860
- 33.5.14 ... Setting the Next Dynpro ... 861
- 33.5.15 ... Leaving a Dynpro ... 861
- 34 ... Selection Screens ... 863
- 34.1 ... Creating Selection Screens ... 864
- 34.1.1 ... Creating Selection Screens ... 864
- 34.1.2 ... Laying Out Selection Screens ... 868
- 34.1.3 ... Adopting Elements of Other Selection Screens ... 885
- 34.2 ... Defining Parameters ... 889
- 34.2.1 ... Data Type of the Parameter ... 891
- 34.2.2 ... Attributes of Screen Elements ... 894
- 34.2.3 ... Attributes of the Value and Passing of Values ... 898
- 34.3 ... Defining Selection Criteria ... 902
- 34.3.1 ... Data Type of the low and high Columns ... 906
- 34.3.2 ... Attributes of Screen Elements ... 908
- 34.3.3 ... Attributes of the Value and Passing of Values ... 910
- 34.3.4 ... Addition for Selection Screens of Logical Databases ... 912
- 34.4 ... Calling Selection Screens ... 913
- 34.4.1 ... Call via SUBMIT ... 913
- 34.4.2 ... Call via Report Transaction ... 913
- 34.4.3 ... Call via Dialog Transaction ... 914
- 34.4.4 ... Call in the Program ... 914
- 34.5 ... Selection-Screen Processing ... 915
- 34.6 ... Selection Screen Events ... 916
- 34.6.1 ... PBO ... 917
- 34.6.2 ... Passing Individual Data ... 918
- 34.6.3 ... Passing a Multiple Selection ... 918
- 34.6.4 ... Block Transfer ... 918
- 34.6.5 ... Passing the Data of a Radio Button Group ... 919
- 34.6.6 ... Overall Transfer ... 919
- 34.6.7 ... POH and POV ... 919
- 34.6.8 ... Exit Command ... 920
- 34.7 ... Free Selections ... 921
- 34.7.1 ... Free Selections in Logical Databases ... 921
- 34.7.2 ... Free Selections in Any Programs ... 922
- 35 ... Classic Lists ... 925
- 35.1 ... Properties of Classic Lists ... 925
- 35.1.1 ... Lists in ABAP Programs ... 925
- 35.1.2 ... Basic List ... 925
- 35.1.3 ... Details Lists ... 926
- 35.1.4 ... Structure of a List ... 926
- 35.1.5 ... Print Lists ... 927
- 35.1.6 ... Lists and ABAP Objects ... 927
- 35.2 ... Creating Lists ... 928
- 35.2.1 ... Writing Lists ... 928
- 35.2.2 ... Output Length in Lists ... 934
- 35.2.3 ... Processing the Output ... 938
- 35.2.4 ... Formatting the Output ... 939
- 35.2.5 ... Automatic Line Elements ... 940
- 35.2.6 ... List Elements ... 940
- 35.2.7 ... Creating Blank Lines ... 945
- 35.2.8 ... Creating Horizontal Lines ... 945
- 35.2.9 ... Formatting List Sections ... 946
- 35.2.10 ... Controlling Blank Lines ... 953
- 35.2.11 ... Positioning the List Cursor Vertically ... 954
- 35.2.12 ... Positioning the List Cursor Horizontally ... 958
- 35.2.13 ... Fixed Area When Scrolling Horizontally ... 959
- 35.2.14 ... Page Breaks and Print Lists ... 960
- 35.2.15 ... Conditional Page Break ... 968
- 35.2.16 ... Storing Variables in the List Level ... 969
- 35.3 ... Processing Lists in the List Buffer ... 970
- 35.3.1 ... Reading List Lines ... 970
- 35.3.2 ... Modifying List Lines ... 973
- 35.3.3 ... Scrolling Lists ... 975
- 35.3.4 ... Reading List Attributes ... 978
- 35.4 ... Displaying Lists ... 981
- 35.4.1 ... Calling Basic Lists ... 982
- 35.4.2 ... Leaving the List Display ... 983
- 35.4.3 ... Displaying a List in the Dialog Window ... 984
- 35.4.4 ... GUI Status of a Screen List ... 985
- 35.4.5 ... Title of a Screen List ... 987
- 35.4.6 ... Positioning the Cursor on the List ... 987
- 35.4.7 ... Evaluating the List at the Cursor Position ... 990
- 35.5 ... Printing Lists ... 992
- 35.5.1 ... Switching Printing On and Off ... 992
- 35.5.2 ... Print List Levels and Spool Requests ... 993
- 35.5.3 ... Print Parameters ... 995
- 35.5.4 ... Print Control ... 1001
- 35.5.5 ... Printing Screen Lists ... 1005
- 35.6 ... Event Blocks for List Events ... 1006
- 35.6.1 ... Events during List Creation ... 1006
- 35.6.2 ... Events after User Actions in Displayed Lists ... 1008
- 35.6.3 ... Triggering List Events from the Program ... 1011
- 36 ... Messages ... 1013
- 36.1 ... Storing Messages ... 1013
- 36.2 ... Behavior of Messages ... 1014
- 36.2.1 ... Messages in List Processing ... 1014
- 36.2.2 ... Messages in Dialog Processing ... 1015
- 36.2.3 ... Messages in Control Processing ... 1019
- 36.2.4 ... Messages in Batch Input ... 1019
- 36.2.5 ... Messages in Background Processing ... 1020
- 36.2.6 ... Messages during Updates ... 1020
- 36.2.7 ... Messages in Conversion Routines ... 1021
- 36.2.8 ... Messages in Procedures ... 1021
- 36.2.9 ... Messages in RFC Processing ... 1022
- 36.2.10 ... Messages in HTTP Servers ... 1022
- 36.3 ... Sending Messages ... 1022
- 36.3.1 ... Specifying a Message ... 1023
- 36.3.2 ... Specifying a Character String ... 1028
- 36.3.3 ... Message Options ... 1029
- PART 11 ... Processing External Data ... 1033
- 37 ... Database Accesses ... 1035
- 37.1 ... Database Tables ... 1035
- 37.1.1 ... Relational Databases ... 1035
- 37.1.2 ... Indexes of Database Tables ... 1036
- 37.2 ... Open SQL ... 1036
- 37.2.1 ... Environment of Open SQL ... 1036
- 37.2.2 ... Read Accesses ... 1043
- 37.2.3 ... Write Accesses ... 1098
- 37.2.4 ... Work Areas for Open SQL ... 1119
- 37.2.5 ... Streaming and Locators for Open SQL ... 1121
- 37.2.6 ... Treatable Exceptions ... 1125
- 37.3 ... Object Services ... 1125
- 37.3.1 ... Persistence Service ... 1125
- 37.3.2 ... Transaction Service ... 1128
- 37.3.3 ... Query Service ... 1129
- 37.4 ... Native SQL ... 1131
- 37.4.1 ... Integrating Native SQL ... 1131
- 37.4.2 ... Host Variables ... 1133
- 37.4.3 ... Cursor Processing ... 1134
- 37.4.4 ... Calling Stored Procedures ... 1136
- 37.4.5 ... Defining a Database Connection ... 1138
- 37.4.6 ... Treatable Exceptions ... 1142
- 37.5 ... ADBC ... 1142
- 37.5.1 ... Executing SQL Statements ... 1142
- 37.5.2 ... Preparing SQL Statements ... 1147
- 37.5.3 ... Database Connections ... 1148
- 37.5.4 ... Exception Class for ADBC ... 1150
- 38 ... Data Clusters ... 1151
- 38.1 ... Creating Data Clusters ... 1151
- 38.1.1 ... Defining Data Clusters ... 1152
- 38.1.2 ... Specifying the Memory Medium ... 1153
- 38.1.3 ... Treatable Exceptions ... 1158
- 38.1.4 ... INDX-Like Database Tables ... 1158
- 38.1.5 ... SQL Access to Data Clusters ... 1160
- 38.2 ... Reading Data Clusters ... 1161
- 38.2.1 ... Specifying the Source ... 1161
- 38.2.2 ... Specifying the Memory Medium ... 1163
- 38.2.3 ... Conversion Additions ... 1166
- 38.2.4 ... Text Language Rule ... 1173
- 38.2.5 ... Treatable Exceptions ... 1174
- 38.3 ... Importing the Directory ... 1174
- 38.4 ... Deleting Data Clusters ... 1176
- 38.5 ... Deleting Data Clusters in the ABAP Memory ... 1178
- 38.6 ... System Classes for Data Clusters ... 1178
- 39 ... File Interface ... 1179
- 39.1 ... Properties of the File Interface ... 1179
- 39.1.1 ... Addressing Files ... 1179
- 39.1.2 ... Authorizations for Accessing Files ... 1180
- 39.1.3 ... Locks ... 1182
- 39.1.4 ... File Interface and Unicode ... 1182
- 39.2 ... Opening a File ... 1183
- 39.2.1 ... Specifying the Access Type ... 1184
- 39.2.2 ... Specifying the Storage Type ... 1185
- 39.2.3 ... Specifying the Position ... 1193
- 39.2.4 ... Operating System-Dependent Additions ... 1194
- 39.2.5 ... Error Handling ... 1196
- 39.2.6 ... Treatable Exceptions ... 1198
- 39.3 ... Writing a File ... 1199
- 39.3.1 ... Specifying Lengths ... 1200
- 39.3.2 ... Defining the Line End Marker ... 1201
- 39.3.3 ... Treatable Exceptions ... 1202
- 39.4 ... Reading a File ... 1202
- 39.4.1 ... Specifying the Maximum Length ... 1205
- 39.4.2 ... Determining the Length Read ... 1206
- 39.4.3 ... Treatable Exceptions ... 1206
- 39.5 ... Determining File Attributes ... 1207
- 39.5.1 ... Determining the Position ... 1207
- 39.5.2 ... Determining Attributes ... 1208
- 39.5.3 ... Treatable Exceptions ... 1210
- 39.6 ... Changing File Attributes ... 1211
- 39.6.1 ... Specifying the Position ... 1211
- 39.6.2 ... Changing Attributes ... 1213
- 39.6.3 ... Treatable Exceptions ... 1215
- 39.7 ... Changing the File Size ... 1215
- 39.8 ... Closing a File ... 1217
- 39.9 ... Deleting a File ... 1218
- 40 ... Data Consistency ... 1219
- 40.1 ... Database LUW ... 1219
- 40.1.1 ... Database Commit ... 1220
- 40.1.2 ... Database Rollback ... 1221
- 40.1.3 ... Database Commits/Rollbacks for a Database Connection ... 1222
- 40.2 ... SAP LUW ... 1223
- 40.2.1 ... Registering Update Function Modules ... 1224
- 40.2.2 ... Registering Subroutines ... 1226
- 40.2.3 ... Executing an SAP Commit ... 1227
- 40.2.4 ... Executing an SAP Rollback ... 1230
- 40.2.5 ... Activating a Local Update ... 1231
- 40.3 ... Database Locks ... 1232
- 40.3.1 ... Setting Database Locks ... 1232
- 40.3.2 ... Types of Database Locks ... 1232
- 40.3.3 ... Isolation Level ... 1233
- 40.3.4 ... Deadlock ... 1233
- 40.3.5 ... Releasing Database Locks ... 1234
- 40.4 ... SAP Locks ... 1234
- 40.4.1 ... Setting and Checking SAP Locks ... 1234
- 40.4.2 ... Releasing SAP Locks ... 1235
- 40.5 ... Authorizations ... 1236
- PART 12 ... Program Parameters ... 1239
- 41 ... Parameters in the SAP Memory ... 1241
- 41.1 ... SPA/GPA Parameters ... 1241
- 41.1.1 ... SPA/GPA Parameters and ABAP Programs ... 1241
- 41.1.2 ... Administrating SPA/GPA Parameters ... 1242
- 41.1.3 ... SPA/GPA Parameters and Dynpro Fields ... 1243
- 41.2 ... Setting SPA/GPA Parameters ... 1243
- 41.3 ... Reading SPA/GPA Parameters ... 1245
- 42 ... Language Environment ... 1247
- 42.1 ... Text Pools ... 1247
- 42.2 ... Text Environment ... 1249
- 42.2.1 ... Text Environment in Unicode Systems ... 1250
- 42.2.2 ... Text Environment in non-Unicode Systems ... 1250
- 42.2.3 ... Setting the Text Environment ... 1251
- 42.2.4 ... Determining the Text Environment ... 1255
- 42.3 ... Formatting Settings ... 1255
- 42.3.1 ... Country-Specific Formats ... 1256
- 42.3.2 ... Setting Formatting Settings ... 1259
- 43 ... Date and Time Information ... 1261
- 43.1 ... System Fields for Date and Time ... 1261
- 43.2 ... Time Stamps ... 1263
- 43.2.1 ... Properties of Time Stamps ... 1263
- 43.2.2 ... Creating Current Time Stamp ... 1266
- 43.2.3 ... Converting Time Stamp Into Local Time ... 1267
- 43.2.4 ... Converting Local Time Into a Time Stamp ... 1269
- PART 13 ... Program Processing ... 1273
- 44 ... Testing and Checking Programs ... 1275
- 44.1 ... Checkpoints ... 1275
- 44.1.1 ... Assertions ... 1275
- 44.1.2 ... Breakpoints ... 1279
- 44.1.3 ... Logpoints ... 1282
- 44.2 ... Runtime Measurement ... 1282
- 44.2.1 ... Relative Program Runtime ... 1282
- 44.2.2 ... Setting the Time Resolution ... 1284
- 44.2.3 ... Class for Runtime Measurements ... 1285
- 44.3 ... Runtime Analysis ... 1285
- 45 ... Program Editing ... 1287
- 45.1 ... Source Code ... 1287
- 45.1.1 ... Dynamic Subroutine Pool ... 1287
- 45.1.2 ... Reading a Program ... 1293
- 45.1.3 ... Syntax Check ... 1295
- 45.1.4 ... Creating or Overwriting a Program ... 1299
- 45.1.5 ... Calling the ABAP Editor ... 1303
- 45.2 ... Text Elements ... 1304
- 45.2.1 ... Reading a Text Pool ... 1304
- 45.2.2 ... Creating or Overwriting a Text Pool ... 1306
- PART 14 ... Data and Communication Interfaces ... 1309
- 46 ... Remote Function Call ... 1311
- 46.1 ... Properties of an RFC ... 1311
- 46.1.1 ... RFC Interface ... 1312
- 46.1.2 ... RFC Language Elements ... 1312
- 46.1.3 ... RFC Destination ... 1313
- 46.1.4 ... RFC Context ... 1314
- 46.1.5 ... RFC Protocol ... 1314
- 46.1.6 ... RFC Exceptions ... 1315
- 46.1.7 ... RFC System Fields ... 1317
- 46.1.8 ... RFC Authorizations ... 1317
- 46.1.9 ... RFC Trust Relationships ... 1317
- 46.1.10 ... RFC Dialog Interactions ... 1318
- 46.1.11 ... RFC Restrictions ... 1319
- 46.2 ... Remote Function Call ... 1320
- 46.2.1 ... Synchronous Remote Function Call ... 1320
- 46.2.2 ... Asynchronous Remote Function Call ... 1326
- 46.2.3 ... Background RFC ... 1333
- 46.2.4 ... Transactional Remote Function Call ... 1335
- 47 ... XML Interface ... 1337
- 47.1 ... XSL Transformations ... 1337
- 47.2 ... Simple Transformations ... 1338
- 47.3 ... Canonical XML Representation ... 1339
- 47.3.1 ... General Format ... 1339
- 47.3.2 ... Mapping ABAP Data Types ... 1341
- 47.4 ... Calling a Transformation ... 1360
- 47.4.1 ... Transformation Source ... 1361
- 47.4.2 ... Transformation Result ... 1362
- 47.4.3 ... Transformation Parameters ... 1364
- 47.4.4 ... Transformation Options ... 1366
- 47.4.5 ... Treatable Exceptions ... 1370
- 48 ... OLE Interface ... 1373
- 48.1 ... Creating an Automation Object ... 1373
- 48.2 ... Calling an Automation Method ... 1375
- 48.3 ... Determining the Attributes of an Automation Object ... 1378
- 48.4 ... Changing the Attributes of an Automation Object ... 1379
- 48.5 ... Releasing an Automation Object ... 1380
- PART 15 ... Enhancements ... 1381
- 49 ... Source Code Enhancement ... 1383
- 49.1 ... Implicit Enhancement Options ... 1383
- 49.2 ... Explicit Enhancement Options ... 1384
- 49.2.1 ... Enhancement Option for Point ... 1384
- 49.2.2 ... Enhancement Option for Section ... 1386
- 49.2.3 ... Enhancement Implementation ... 1389
- 50 ... BAdIs ... 1391
- 50.1 ... Creating a BAdI Object ... 1392
- 50.1.1 ... Specifying Filter Values ... 1394
- 50.1.2 ... Specifying the Context ... 1395
- 50.1.3 ... Treatable Exceptions ... 1396
- 50.2 ... Calling BAdI Methods ... 1396
- PART 16 ... Obsolete Statements ... 1399
- 51 ... Obsolete Syntax ... 1401
- 51.1 ... Obsolete Statement Structures ... 1401
- 51.2 ... Obsolete Pseudo Comments ... 1401
- 51.2.1 ... Pseudo Comments for the Extended Program Check ... 1401
- 51.2.2 ... Pseudo Comments for Test Classes ... 1402
- 51.3 ... Obsolete Deactivation of the Program Check ... 1403
- 52 ... Obsolete Modularization ... 1405
- 52.1 ... Obsolete Subroutines ... 1405
- 52.1.1 ... Creating a Subroutine ... 1405
- 52.1.2 ... Defining a Subroutine in Parts ... 1411
- 52.2 ... Obsolete Function Module Parameters ... 1412
- 52.2.1 ... Declaring Table Parameters ... 1412
- 52.2.2 ... Obsolete Typing ... 1413
- 52.2.3 ... Global Parameters ... 1414
- 52.3 ... Obsolete Temporary Storage ... 1415
- 53 ... Obsolete Declarations ... 1417
- 53.1 ... Obsolete Type Definitions ... 1417
- 53.1.1 ... Implicit Type Specifications ... 1417
- 53.1.2 ... Unnecessary Length Specifications ... 1417
- 53.1.3 ... Anonymous Components ... 1418
- 53.2 ... Obsolete Declaration and Loading ... 1418
- 53.2.1 ... Loading a Type Group ... 1418
- 53.2.2 ... Loading a Class or Interface ... 1419
- 53.2.3 ... Declaring a Data Object ... 1420
- 53.3 ... Obsolete Interface Work Areas ... 1420
- 53.3.1 ... Common Data Area ... 1421
- 53.3.2 ... Additional Table Work Area ... 1423
- 53.4 ... Obsolete Internal Tables ... 1423
- 53.4.1 ... Internal Tables with Header Line ... 1423
- 53.4.2 ... Obsolete Declaration of Any Line Types ... 1426
- 53.4.3 ... Explicit Declaration of a Header Line ... 1427
- 53.4.4 ... Obsolete Declaration of Structured Line Types ... 1427
- 53.4.5 ... Obsolete Declaration of Ranges Tables ... 1428
- 53.5 ... Obsolete Field Symbols ... 1429
- 53.5.1 ... Obsolete Typing ... 1429
- 53.5.2 ... Obsolete Casting ... 1429
- 53.6 ... Obsolete Type Reference ... 1431
- 54 ... Obsolete Object Creation ... 1433
- 55 ... Obsolete Calls ... 1437
- 55.1 ... Obsolete Dialog Modules ... 1437
- 55.1.1 ... Suppressing the Initial Screen ... 1438
- 55.1.2 ... Batch Input Session ... 1438
- 55.1.3 ... Parameter Passing ... 1439
- 55.2 ... Obsolete Function Module Exit ... 1439
- 55.3 ... Obsolete Function Module Exception ... 1441
- 55.4 ... Obsolete External Subroutine Call ... 1442
- 55.5 ... Obsolete Exiting ... 1442
- 55.5.1 ... Obsolete Exiting of Called Programs ... 1442
- 55.5.2 ... Obsolete Exiting of Any Processing Blocks ... 1443
- 56 ... Obsolete Program Flow Control ... 1445
- 56.1 ... Obsolete Logical Expressions ... 1445
- 56.1.1 ... Obsolete Relational Operators ... 1445
- 56.1.2 ... Obsolete Short Form for Selection Table ... 1445
- 56.1.3 ... Obsolete Check of Output Parameters ... 1446
- 56.2 ... Obsolete Control Structures ... 1447
- 56.2.1 ... Obsolete Statements in Case Distinctions ... 1447
- 56.2.2 ... Obsolete Branching ... 1447
- 56.2.3 ... Obsolete Unconditional Loop Processing ... 1449
- 56.2.4 ... Obsolete Conditional Loop Processing ... 1452
- 56.3 ... Obsolete Exception Handling ... 1452
- 57 ... Obsolete Assignments ... 1455
- 57.1 ... Obsolete Percentaged Subfield ... 1455
- 57.2 ... Obsolete Conversion ... 1455
- 57.3 ... Obsolete Casting ... 1456
- 57.4 ... Obsolete Dynamic Memory Area ... 1457
- 57.5 ... Obsolete Initialization ... 1458
- 58 ... Obsolete Calculation Statements ... 1459
- 58.1 ... Obsolete Addition of Field Sequences ... 1459
- 58.2 ... Calculating Component by Component ... 1461
- 59 ... Obsolete Character String and Byte String Processing ... 1463
- 59.1 ... Obsolete Search ... 1463
- 59.2 ... Obsolete Replacement ... 1466
- 59.3 ... Obsolete Translation ... 1467
- 59.3.1 ... Code Page and Number Format ... 1467
- 59.3.2 ... Forming Complement on Nine of a Date ... 1469
- 60 ... Obsolete Processing of Internal Tables ... 1471
- 60.1 ... Obsolete Short Forms ... 1471
- 60.2 ... Obsolete Key Specifications ... 1471
- 60.2.1 ... No Specification ... 1472
- 60.2.2 ... Specifying a Subfield of a Line ... 1473
- 60.2.3 ... Specifying the Entire Line ... 1474
- 60.3 ... Obsolete Search ... 1475
- 60.4 ... Obsolete Assignment of Formatted Character Strings ... 1476
- 60.5 ... Obsolete Short Form of a Special Statement ... 1478
- 60.6 ... Obsolete Deletion ... 1480
- 61 ... Obsolete User Dialogs ... 1481
- 61.1 ... Obsolete Dynpro Flow Logic ... 1481
- 61.1.1 ... Database Access ... 1481
- 61.1.2 ... Checking Values in the Flow Logic ... 1481
- 61.1.3 ... Obsolete Subscreen Enhancement ... 1484
- 61.1.4 ... Obsolete Step Loop Processing ... 1484
- 61.2 ... Obsolete List Processing ... 1490
- 61.2.1 ... Obsolete Formatting ... 1490
- 61.2.2 ... Obsolete Calculations ... 1491
- 61.2.3 ... Obsolete List Event ... 1494
- 61.2.4 ... Obsolete Printing ... 1494
- 61.3 ... Obsolete Text Editor ... 1495
- 62 ... Obsolete Processing of External Data ... 1497
- 62.1 ... Obsolete Database Accesses ... 1497
- 62.1.1 ... Obsolete Short Forms in Open SQL ... 1497
- 62.1.2 ... Obsolete Cursor Processing in Native SQL ... 1498
- 62.1.3 ... Obsolete Access Statements ... 1499
- 62.2 ... Obsolete Data Cluster Accesses ... 1504
- 62.2.1 ... Obsolete Short Forms ... 1504
- 62.2.2 ... Obsolete Implicit ID ... 1505
- 62.2.3 ... Obsolete Implicit Work Area ... 1506
- 62.2.4 ... Obsolete ID ... 1507
- 62.3 ... Obsolete Contexts ... 1507
- 62.3.1 ... Buffering of Contexts ... 1508
- 62.3.2 ... Creating Instances of Contexts ... 1509
- 62.3.3 ... Providing Contexts with Key Values ... 1510
- 62.3.4 ... Querying Contexts ... 1510
- 62.4 ... Obsolete Logical Databases ... 1512
- 62.4.1 ... Interface Work Areas for Logical Databases ... 1513
- 62.4.2 ... Statements in Logical Databases ... 1513
- 62.4.3 ... Statements for Logical Databases ... 1522
- 62.4.4 ... Function Module for Logical Databases ... 1523
- 63 ... Obsolete Data and Communication Interfaces ... 1525
- 63.1 ... Obsolete XML Handling ... 1525
- 63.2 ... Obsolete CPI-C Interface ... 1525
- 63.3 ... Obsolete JavaScript Processing ... 1526
- ... Appendices ... 1527
- A ... ABAP Memory Organization ... 1527
- A.1 ... General Memory Organization ... 1527
- A.2 ... Programs in the Internal Session ... 1529
- B ... Memory Management of Deep Data Objects ... 1533
- B.1 ... Memory Requirement of Deep Data Objects ... 1534
- B.2 ... Maximum Size of Dynamic Data Objects ... 1535
- B.3 ... Sharing between Dynamic Data Objects ... 1536
- C ... ABAP Glossary ... 1539
- ... Index ... 1623