Table of Contents

Open all
Close all
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