Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Dear Reader
Notes on Usage
Table of Contents
Acknowledgments
Preface
The Objective of this Book
Target Audience
Structure of this Book
1 Introduction to ERP and SAP
1.1 Historical Overview
1.2 Understanding an ERP System
1.2.1 What Is ERP?
1.2.2 ERP vs. Non-ERP Systems
1.2.3 Advantages of an ERP System
1.3 Introduction to SAP
1.3.1 Modules in SAP
1.3.2 Types of Users
1.3.3 Role of an ABAP Consultant
1.3.4 Changing and Adapting the Data Structure
1.4 ABAP Overview
1.4.1 Types of Applications
1.4.2 RICEF Overview
1.5 System Requirements
1.6 Summary
2 Architecture of an SAP System
2.1 Introduction to the Three-Tier Architecture
2.2 SAP Implementation Overview
2.2.1 SAP GUI: Presentation Layer
2.2.2 Application Servers and Message Servers: Application Layer
2.2.3 Database Server/RDBMS: Database Layer
2.3 Data Structures
2.3.1 Client Overview
2.3.2 Client-Specific and Cross-Client Data
2.3.3 Repository
2.3.4
2.3.5 Transport Organizer
2.4 Summary
3 Introduction to the ABAP Environment
3.1 SAP Environment
3.1.1 ABAP Programming Environment
3.1.2 Logging On to the SAP Environment
3.1.3 Elements of the SAP Screen
3.1.4 Transaction Codes
3.1.5 Navigating and Opening Transactions
3.2 ABAP Workbench Overview
3.2.1 ABAP Editor
3.2.2 Function Builder
3.2.3 Class Builder
3.2.4 Screen Painter
3.2.5 Menu Painter
3.2.6 ABAP Data Dictionary
3.2.7 Object Navigator
3.3 Eclipse IDE Overview
3.4 Summary
4 ABAP Programming Concepts
4.1 General Program Structure
4.1.1 Global Declarations
4.1.2 Procedural
4.2 ABAP Syntax
4.2.1 Basic Syntax Rules
4.2.2 Chained Statements
4.2.3 Comment Lines
4.3 ABAP Keywords
4.4 Introduction to the TYPE Concept
4.4.1 Data Types
4.4.2 Data Elements
4.4.3 Domains
4.4.4 Data Objects
4.5 ABAP Statements
4.6 Creating Your First ABAP Program
4.7 Summary
5 Structures and Internal Tables
5.1 Defining Structures
5.1.1 When to Define Structures
5.1.2 Local Structures
5.1.3 Global Structures
5.1.4 Working with Structures
5.1.5 Use Cases
5.2 Internal Tables
5.2.1 Defining Internal Tables
5.2.2 Types of Internal Tables
5.2.3 Table Keys
5.2.4 Working with Internal Tables
5.2.5 Control Break Statements
5.3 Introduction to Open SQL Statements
5.3.1 Database Overview
5.3.2 Selecting Data from Database Tables
5.3.3 Selecting Data from Multiple Tables
5.4 Processing Data from Database via Internal Tables and Structures
5.5 Introduction to the Debugger
5.6 Practice
5.7 Summary
6 User Interaction
6.1 Selection Screen Overview
6.1.1 PARAMETERS
6.1.2 SELECT-OPTIONS
6.1.3 SELECTION-SCREEN
6.1.4 Selection Texts
6.2 Messages
6.2.1 Types of Messages
6.2.2 Messages Using Text Symbols
6.2.3 Messages Using Message Classes
6.2.4 Dynamic Messages
6.2.5 Translation
6.3 Summary
7 Modularization Techniques
7.1 Modularization Overview
7.2 Program Structure
7.2.1 Processing Blocks
7.2.2 Event Blocks
7.2.3 Dialog Modules
7.2.4 Procedures
7.3 Events
7.3.1 Program Constructor Events
7.3.2 Reporting Events
7.3.3 Selection Screen Events
7.3.4 List Events
7.3.5 Screen Events
7.4 Procedures
7.4.1 Subroutines
7.4.2 Function Modules
7.4.3 Methods
7.5 Inline Declarations
7.5.1 Assigning Values to Data Objects
7.5.2 Using Inline Declarations with Table Work Areas
7.5.3 Avoiding Helper Variables
7.5.4 Declaring Actual Parameters
7.6 Summary
8 Object-Oriented ABAP
8.1 Introduction to Object-Oriented Programming
8.1.1 Classes
8.1.2 Methods
8.1.3 Instance and Static Components
8.1.4 Events
8.2 Encapsulation
8.2.1 Component Visibility
8.2.2 Friends
8.2.3 Implementation Hiding
8.3 Inheritance
8.3.1 Inheriting Components
8.3.2 Abstract Classes and Methods
8.3.3 Final Classes and Methods
8.3.4 Composition
8.3.5 Refactoring Assistant
8.4 Polymorphism
8.4.1 Static and Dynamic Types
8.4.2 Casting
8.4.3 Dynamic Binding with the CALL Method
8.4.4 Interfaces
8.5 Working with XML
8.5.1 XML Overview
8.5.2 XML Processing Concepts
8.6 Summary
9 Exception Handling
9.1 Exceptions Overview
9.2 Procedural Exception Handling
9.2.1 Maintaining Exceptions Using Function Modules
9.2.2 Maintaining Exceptions Using Methods
9.2.3 Maintaining Exceptions for Local Classes
9.3 Class-Based Exception Handling
9.3.1 Raising Exceptions
9.3.2 Catchable and Non-Catchable Exceptions
9.3.3 Defining Exception Classes Globally
9.3.4 Defining Exception Classes Locally
9.4 Messages in Exception Classes
9.4.1 Using the Online Text Repository
9.4.2 Using Messages from a Message Class
9.4.3 Using the MESSAGE Addition to Raise an Exception
9.5 Summary
10 ABAP Data Dictionary
10.1 Database Tables
10.1.1 Creating a Database Table
10.1.2 Indexes
10.1.3 Table Maintenance Generator
10.1.4 Foreign Keys
10.1.5 Include Structure
10.1.6 Append Structure
10.2 Views
10.2.1 Database Views
10.2.2 Projection Views
10.2.3 Maintenance Views
10.2.4 Help Views
10.2.5 ABAP CDS Views
10.3 Data Types
10.3.1 Data Elements
10.3.2 Structures
10.3.3 Table Types
10.4 Type Groups
10.5 Domains
10.6 Search Helps
10.6.1 Elementary Search Helps
10.6.2 Collective Search Helps
10.6.3 Assigning a Search Help
10.6.4 Search Help Exits
10.7 Lock Objects
10.8 Summary
11 Persistent Data
11.1 Working with Data in Databases
11.1.1 Open SQL
11.1.2 Logical Unit of Work
11.2 ABAP Object Services
11.2.1 Persistence Service Overview
11.2.2 Building Persistent Classes
11.2.3 Working with Persistent Objects
11.3 File Interfaces
11.3.1 Working with Files in the Application Server
11.3.2 Working with Files in the Presentation Layer
11.4 Data Clusters
11.4.1 Exporting Data Clusters to Databases
11.4.2 Importing Data Clusters
11.5 Security Concepts
11.6 Summary
12 Dialog Programming
12.1 Screen Events
12.2 Screen Elements and Flow Logic
12.2.1 Components of a Dialog Program
12.2.2 Screens
12.2.3 Screen Elements
12.3 Basic Screen Elements
12.3.1 Text Fields
12.3.2 Checkboxes and Radio Buttons
12.3.3 Push Button
12.4 Input/Output Fields
12.5 List Box
12.6 Table Controls
12.6.1 Create a Table Control without a Wizard
12.6.2 Create a Table Control with a Wizard
12.7 Tabstrip Controls
12.8 Subscreens
12.9 Working with Screens
12.9.1 Screen Flow Logic
12.9.2 GUI Status
12.9.3 GUI Title
12.9.4 Modifying Screen Fields Dynamically
12.9.5 Field Help and Input Help
12.9.6 Screen Sequence
12.9.7 Assigning Transaction Codes
12.10 Control Framework
12.10.1 Using Container Controls
12.10.2 Implementing Custom Controls
12.11 Practice
12.11.1 Application Flow
12.11.2 Delete Functionality
12.11.3 Validations and Autofills
12.12 Summary
13 List Screens
13.1 Program Types
13.1.1 Executable Programs
13.1.2 Module Pool Programs
13.1.3 Function Groups
13.1.4 Class Pools
13.1.5 Interface Pools
13.1.6 Subroutine Pools
13.1.7 Type Pools
13.1.8 Include Programs
13.2 Program Execution
13.2.1 Executable Program Flow
13.2.2 Module Pool Program Flow
13.2.3 Calling Programs Internally
13.3 Memory Organization
13.4 List Events
13.4.1 TOP-OF-PAGE
13.4.2 END-OF-PAGE
13.4.3 AT LINE-SELECTION
13.4.4 AT USER-COMMAND
13.5 Basic Lists and Detail Lists
13.6 Classical Reports
13.7 Interactive Reports
13.7.1 HIDE
13.7.2 READ LINE
13.7.3 GET CURSOR
13.7.4 DESCRIBE LIST
13.8 Practice
13.9 Summary
14 Selection Screens
14.1 Defining Selection Screens
14.2 Selection Screen Events
14.3 Input Validations
14.4 Selection Screen Variants
14.4.1 Creating a Variant
14.4.2 Variant Attributes
14.4.3 Table Variables from Table TVARVC
14.4.4 Dynamic Date Calculation
14.4.5 Dynamic Time Calculation
14.4.6 User-Specific Variables
14.5 Executing Programs in the Background
14.6 Displaying and Hiding Screen Elements Dynamically
14.7 Calling Programs via Selection Screens
14.8 Summary
15 ALV Reports
15.1 Standard ALV Reports Using the Reuse Library
15.1.1 List and Grid Display: Simple Reports
15.1.2 Block Display
15.1.3 Hierarchical Sequential Display
15.2 Interactive Reports
15.2.1 Loading a Custom SAP GUI Status
15.2.2 Reacting to User Actions
15.2.3 Printing TOP-OF-PAGE
15.3 ALV Reports Using the Control Framework
15.4 ALV Object Model
15.4.1 Table Display
15.4.2 Hierarchical Display
15.4.3 Tree Object Model
15.5 Summary
16 Dynamic Programming
16.1 Field Symbols
16.1.1 Using Field Symbols to Make Programs Dynamic
16.1.2 Defining Field Symbols
16.1.3 Assigning a Data Object
16.1.4 Checking if a Field Symbol is Assigned
16.1.5 Unassigning a Field Symbol
16.1.6 Casting
16.2 Data References
16.2.1 Defining Reference Variables
16.2.2 Getting Data References
16.2.3 Anonymous Data Objects
16.2.4 Assignment between Reference Variables
16.3 Runtime Type Services
16.3.1 Runtime Type Information
16.3.2 Runtime Type Creation
16.4 Dynamic Token Specification
16.5 Dynamic Procedure Calls
16.6 Dynamic Program Generation
16.7 Summary
17 Debugging
17.1 Classic Debugger
17.1.1 Activating and Using the Classic Debugger
17.1.2 Field View
17.1.3 Table View
17.1.4 Breakpoints View
17.1.5 Watchpoints View
17.1.6 Calls View
17.1.7 Overview View
17.1.8 Settings View
17.1.9 Additional Features
17.2 New Debugger
17.2.1 UI and Tools
17.2.2 Layout and Sessions
17.3 AMDP Debugger
17.4 Using the Debugger to Troubleshoot
17.5 Using the Debugger as a Learning Tool
17.6 Summary
18 Forms
18.1 SAPscripts
18.1.1 Overview and Layout
18.1.2 Creating the Form Layout
18.1.3 Maintaining Window Details
18.1.4 Processing Forms with Function Modules
18.2 Smart Forms
18.2.1 Overview and Layout
18.2.2 Maintaining the Global Settings
18.2.3 Maintaining Elements
18.2.4 Driver Program
18.3 SAP Interactive Forms by Adobe
18.3.1 Form Interface
18.3.2 Form Context and Layout
18.3.3 Driver Program
18.3.4 Downloading the Form as a PDF
18.4 Summary
19 Interfaces
19.1 Batch Data Communication
19.1.1 Direct Input
19.1.2 Batch Input
19.2 Business Application Programming Interface
19.2.1 Business Object Types and Business Components
19.2.2 BAPI Development via BAPI Explorer
19.2.3 Standardized BAPIs
19.2.4 Standardized Parameters
19.2.5 Implementing BAPIs
19.3 EDI/ALE/IDocs
19.3.1 Electronic Data Interchange
19.3.2 Application Link Enabling
19.3.3 Intermediate Documents
19.3.4 System Configurations
19.3.5 Inbound/Outbound Programs
19.4 Legacy System Migration Workbench
19.4.1 Getting Started
19.4.2 Migration Process Steps
19.5 Web Services
19.5.1 Creating a Web Service
19.5.2 Consuming Web Services
19.6 OData Services
19.6.1 Data Model Definition
19.6.2 Service Maintenance
19.6.3 Service Implementation
19.6.4 READ
19.7 XSL Transformations
19.7.1 Serialization
19.7.2 Deserialization
19.8 XML and JSON Data Representation
19.9 WebSockets (ABAP Channels and Messages)
19.9.1 Creating an ABAP Messaging Channel
19.9.2 Creating a Producer Program
19.9.3 Creating a Consumer Program
19.10 Summary
20 Modifications and Enhancements
20.1 Customization Overview
20.2 Modification Overview
20.3 Using Modification Assistant
20.3.1 Modifications to Programs
20.3.2 Modifications to Class Builder
20.3.3 Modifications to Screen Painter
20.3.4 Modifications to Menu Painter
20.3.5 Modifications to ABAP Data Dictionary
20.3.6 Modifications to Function Modules
20.3.7 Resetting to Original
20.4 Using Modification Browser
20.5 Enhancements Overview
20.6 User Exits
20.7 Customer Exits
20.7.1 Create a Customer Exit
20.7.2 Function Module Exits
20.7.3 Screen Exits
20.7.4 Menu Exits
20.8 BAdIs
20.8.1 Overview
20.8.2 Defining a BAdI
20.8.3 Implementing a BAdI
20.8.4 Implementing a Fallback Class
20.8.5 Calling a BAdI
20.9 Enhancement Points
20.9.1 Explicit Enhancements
20.9.2 Implicit Enhancements
20.10 Business Transaction Events
20.10.1 Implementing a BTE
20.10.2 Testing a Custom Function Module
20.11 Summary
21 Test and Analysis Tools
21.1 Overview of Tools
21.2 ABAP Unit
21.2.1 Eliminating Dependencies
21.2.2 Implementing Mock Objects
21.2.3 Writing and Implementing Unit Tests
21.3 Code Inspector
21.4 Selectivity Analysis
21.5 Process Analysis
21.6 Memory Inspector
21.6.1 Creating Memory Snapshots
21.6.2 Comparing Memory Snapshots
21.7 Table Call Statistics
21.8 Performance Trace
21.8.1 Activating and Filtering a Performance Trace
21.8.2 SQL Trace
21.8.3 RFC Trace
21.8.4 Enqueue Trace
21.8.5 Buffer Trace
21.9 ABAP Trace/Runtime Analysis
21.9.1 Running ABAP Trace
21.9.2 Analyzing the Results
21.10 Single-Transaction Analysis
21.11 Dump Analysis
21.12 Summary
A The Author
Index
Service Pages
Legal Notes
← Prev
Back
Next →
← Prev
Back
Next →