ABAP Workbench Tools
Overview of the Workbench
Tool Integration and Working Methods
Development Objects and Packages
Development in a Team Environment
Learning More
Object Navigator
Navigation
Switching Between Browsers
Navigation Stack
Navigation Context
Repository Browser
Selecting an Object
Object List Toolbar
Creating a New Object
Creating a Program
Copying an Object
Deleting an Object
Assigning an Object to a Different Package
Creating a Transport Entry
Activating an Object
Using Set Mode
User-Specific Settings
Worklist
Setting Markers
ABAP Editor
Front-End Editor (Source Code Mode)
Changing the Editor Mode
Creating a Program
Saving and Activating a Program
Checking a Program
Extended Program Check
Errors and Warnings
Overview of Former ABAP Editor Modes
Front-End Editor (Plain Text Mode)
Back-End Editor
Editing a Program
Navigating in the Source Code
Navigating by Double-Click
Using Compression Logic
Editing Source Code (Front-End Editor)
Editing Source Code (Back-End Editor)
Using Buffers
Find and Replace (Front-End Editor)
Find and Replace (Back-End Editor)
Inserting Statement Patterns
Inserting Statement Patterns by Drag and Drop
Expanding Includes
Using ABAP Help
Improving the Layout
Features of the Pretty Printer
Local Editing
Function Builder
Overview of Function Modules
Looking Up Function Modules
Interface Parameters of a Function Module
Calling Function Modules From Your Programs
Creating New Function Modules
Creating a Function Group
Creating a Function Module
Specifying Parameters and Exceptions
Understanding Function Module Code
Checking and Activating Function Modules
Testing Function Modules
Saving Tests and Test Sequences
Documenting and Releasing a Function Module
Class Builder
Source Code-Based Class Builder
Form-Based Class Builder
Creating Classes and Interfaces
Creating a Standard Class
Class-Based Exceptions
Creating an Exception Class
Creating a Persistent Class
Generated Classes
Creating an Interface
Maintaining Standard Classes
Creating Attributes
Visibility Sections in Classes
Creating and Defining Methods
Creating Parameters for Methods
Creating Exceptions for Methods
Implementing Methods
Creating Event Handler Methods
Creating Events
Creating Types
Creating Local Definitions and Implementations
Local Definitions not Referred by the Global Class
Local Definitions Referred by the Global Class
Test Classes
Macros (Obsolete)
Activating Classes and Interfaces
Maintaining Persistent Classes
The Mapping Assistant
Defining Persistence Representation
Defining Value Attributes, Key Attributes, and GUIDs
Defining Reference Attributes
Class Diagram: Persistence Representation
Activating Persistent Classes
Editing Persistent Attributes
Maintaining Global Exception Classes
Creating Attributes for Exception Classes
Creating Exception Texts in the Online Text Repository
Inserting Exception Texts from Message Classes
Defining Relationships Between Object Types
Enhancing Classes with Interfaces
Creating a Subclass
Extending a Subclass
Nesting Interfaces
Defining a Friends Relationship
Locking a Class for Edit
Testing
Testing a Class
Creating Instances
Testing Attributes
Testing Methods
Testing Event Handling
Testing an Interface View of an Object
Enhancements to Classes and Interfaces
Enhancing the Components of Global Classes or Interfaces
Nested Enhancement Implementations
Settings in the Class Builder
Naming Conventions in ABAP Objects
Screen Painter
Screen Painter Concepts
Screen Painter: Initial Screen
Creating Screens
The Flow Logic Editor
Flow Logic Keywords
Graphical Layout Editor
Overview of Screen Layout
Screen Elements
Selecting Fields
Creating Screen Elements without Fields
Modifying Screen Elements
Using Icons
Using Radio Buttons
Tabstrip Controls
Defining a Tabstrip Control
Using the Tabstrip Control Wizard
Table Controls
Defining a Table Control
Using the Table Control Wizard
Editing Table Controls
Creating a Custom Container
Working with Step Loops
Converting a Step Loop
Element List in Graphical Mode
The Alphanumeric Fullscreen Editor
Creating Screen Elements
Using Dictionary and Program Fields on a Screen
Creating and Modifying Table Controls
Creating a Tabstrip Control
Creating an SAP Custom Container
Creating and Modifying Step Loops
Modifying Screen Elements
Converting Elements
Using the Field List View
Defining the Element Attributes
General Attributes
Dictionary Attributes
Program Attributes for Screen Elements
Display Attributes
Tabstrip Control Attributes
Table Control Attributes
Attributes of the Subscreen Area
Custom Container Attributes
Choosing Field Formats
Testing Screens
Checking Screens
Saving, Activating, and Deleting Screens
Menu Painter
Basic Concepts
The GUI Status
The Dialog Status
Functions
Special Function Keys and Function Codes
Context Menus
Using the Menu Painter
The Interface of the Menu Painter
Creating a GUI Title
Defining a Status
Creating a GUI Status
Creating a Context Menu
Menu Bars
Creating a Menu Bar
Adding Functions to a Menu
Defining Function Key Settings
Defining an Application Toolbar
Defining Icons and Info Texts in the Application Toolbar
Displaying Inactive Functions
Inserting Separators
Creating the Standard Toolbar
Testing and Activating a Status
Using the Ergonomics Check
Copying a Status
Linking Objects in a GUI Status
Overview Lists
Using Functions
Function Types
Defining Function Types
Defining a Fastpath
Activating and Deactivating Function Codes
Deactivating Functions at Runtime
Defining Dynamic Function Texts
Changing Function Texts
Defining Dynamic Menu Texts
Setting a GUI Status and a GUI Title
Evaluating Function Codes in the Program
Classification Toolset
Basic Concepts
The Nature of Characteristics
Maintaining Object Type Groups
Object Types and Object Type Groups
Object Filters
Working With Object Type Groups
Maintaining Characteristics
Working with Characteristics
Properties of a Characteristic
Assigning Values to a Characteristic
Setting Default Characteristics
Maintaining Classifications
Selection Criteria in the Classification Browser
Tree Browser
List Browser
Classifying Objects in the List Browser
Classification of Objects in the Classification Grid
Classifying Single Objects
Classifying Multiple Objects
Creating Object Links
Running Queries
Defining Conditions for a Classification Report
Executing a Report Run
Checking the Results of a Report Run
The Splitscreen Editor
Overview
Starting the Splitscreen Editor
Initial Screen
Special Splitscreen Editor Functions
Editor Functions
Transformation Editor
Creating the Transformation Program
Activating the Transformation Program
Testing Transformation
Creating Breakpoints in XSLT Programs
XSLT Debugger
Starting and Exiting a Debugging Session
The Debugger User Interface
Result View
Breakpoint View
Call View
Variable View
Breakpoints
Creating Breakpoints in XSLT Programs
Saving Breakpoints
Deleting Breakpoints
Debugger Execution Types
XSLT Debugger and ABAP Debugger
Web Dynpro in the ABAP Workbench
Go and Create First Application with Web Dynpro ABAP
Step 1: Creating and Editing a Component
Step 2: Structuring the First View
Step 3: Context Mapping of the First View
Step 4: Binding the Attribute
Step 5: Designing the Second View
Step 6: Maintaining the Context of the Second View
Step 7: Embedding the View in a Window
Step 8: Defining Navigation
Step 9: Creating and Testing a Web Dynpro Application
Creating a Simple Flight Info Application
Part 1: Creating and Editing the Search View
Part 2: Testing the First View
Part 3: Creating and Editing the "Display View
Part 4: Implementing the Data Transport
Part 5: Setting Up Navigation
Web Dynpro Tools in the ABAP Workbench
Component Editor
Controller Editor
Controller Properties
Controller Context
Creating and Maintaining Context Nodes
Creating and Maintaining Context Attributes
Defining a Mapping
Controller Attributes
Controller Events
Controller Methods
View Editor
View Layout (View Designer)
View: Inbound and Outbound Plugs
View: Components of a View Controller
Window Editor
Window: View Hierarchy
Window: Inbound and Outbound Plugs
Navigation Links of a Windows Outbound Plugs
Window: Components of a Window Controller
Displaying an Interface View
Displaying and Defining the Interface Controller
Web Dynpro Application
Web Dynpro Code Wizard
Screen Design Time Conversion
Restrictions
Transformation Rules
Layout Management
Dynpro Controls
Checkbox
Frame
I/O Field
Pushbutton
Radio Button
Step Loop
Subscreen
Table Control
TabStrip
Text Field
Web Dynpro Text Browser
Web Dynpro ABAP Runtime Analysis
Memory Analysis
Package Assignment and Transport Entry
Web Application Builder for BSPs
Introduction
Structure of a BSP Application
Event Handler
Page Attributes
Global Objects
Basic Functions
Creating BSP Applications
Creating Pages
Creating a Controller
Creating Error Pages
Determining the Page Flow
Creating References to MIMEs
Activating BSP Applications
Executing BSP Applications
Model View Controller (MVC)
MVC Design Pattern
Using MVC for BSP
Creating a Controller
Creating a View
Testing Controllers
Calling (Sub) Controllers
Calling a View
Creating Error Pages
From Pages to Controllers
Call Options of BSP Components
Navigation
Lifetime
Data Binding
Calling the Model Class by the Controller
Components
Process Flow
Creating Your Own Components
Creating the Top-Level Controller
Creating Components
Calling Components
Determining Input Processing
Class CL_BSP_CONTROLLER2
Examples of Architecture
BSP Application with Controllers and Views
BSP Application with Several Views per Controller
Combination of the Previous Examples
Calling Controllers of Other Applications
Calling Several Controllers from a View
Model View Controller Tutorial
Creating a Controller
Creating a View
Calling a Controller
Defining Your Own BSP Extension
BSP Extension Framework
Creating BSP Extensions
Defining BSP Elements
Defining the Element Content
User-Defined Validation
Iteration Through Element Content
Manipulation of the Element Content
Pass by Reference for Attributes
Activating the BSP Extension
Implementing Element Handler Classes
Generated Classes and Class Hierarchy
Basis Class CL_BSP_ELEMENT
Entering Documentation
Using BSP Elements
Example: Using Extensions in BSP Pages
Implementing External Tools with WebDAV
Implementing the Page Layout Using External Tools
Mass Import for MIMEs Using WebDAV
Tips & Tricks
Copying Page Attributes
Mass Import for MIMEs Using WebDAV
MIME Repository
Supported MIME Categories
Importing MIMEs
Uploading and Downloading MIMEs
Creating Folders
Converting MIMEs into BSPs
Deleting MIMEs or Directories
Creating Namespace Folders
Marking MIMEs as Relevant for Translation
Additional Functions
Web Services
Providing a Web Service
Creating a Service Definition
Editing a Service Definition
Configuring a Service Provider
Testing a Service
Consuming a Web Service
ABAP Proxy Generation
Converting WSDL to the Target Language
Tips for Generating ABAP Proxies
Generating Proxies
Naming Proxy Objects
Regenerating Proxy Objects
Attachment: Mapping XSD to ABAP
Programming with Client and Server Proxies
Sending a Message
Implementing a Server Proxy
Error Handling
Fault Messages
Reporting and Handling Errors
Protocols
Querying the Payload
Activating Extended XML Handling
Accessing the Message ID
Runtime Configuration
Publishing a Web service
Publishing Services
Publishing Services with Transaction WSPUBLISH
Classifying Services
Making a Web Service Secure
Transport Security for Web Services (AS ABAP)
Authentication for Web Services (AS ABAP)
Authorizations
Runtime Configuration with SOA Manager
Creating Consumers/Providers for the Enterprise Services Reposit
Developing a Web Service in Outside-In Mode
Consuming a Web Service
Consumer Proxies and Event Providers
Generating a Consumer Proxy
Working with ABAP Proxies
Enterprise Services Repository Browser
Object States
ABAP Proxies - Introduction
ABAP Proxy Generation - General Procedure
Generating a Provider Proxy
Generating a Consumer Proxy
Generating an Event Provider
Working with Service Variants
Displaying ABAP Proxy Objects
Consuming a Stateless Web Service
Consuming a Stateless Web Service (XI 3.0 Compatible)
Sending a Message
Implementing a Server Proxy
Error Handling
Fault Messages
Reporting and Handling Errors
Protocols
Querying the Payload
Activating Extended XML Handling
Accessing the Message ID
Runtime Configuration
Consuming a Stateful Web Service
Consuming a TU&C/C Web Service
Protocols
Types of Message Transmission
Web Services Reliable Messaging
Programming with Sequences
Exactly-Once-in-Order in an LUW
Exactly-Once-in-Order in Multiple LUWs
Using Sequences in Other Modules
Creating a Persistent Sequence Without Proxy
Programming with Sequences at the Provider Side
Idempotent Web Services
Implementing Idempotent Web Services
Configuring Idempotent Web Services
Managing the Web Service Runtime
Configuring the Web Service Runtime
Checking the Configuration
Troubleshooting in the Web Service Runtime
Configuration in Single Steps
Creating a Service Destination
Performing Settings for bgRFC
Monitoring the Web Service Runtime
Web Service Runtime Monitor
Monitoring Event Messages
Monitoring Sequences
General Information on Sequences
Choosing Selection Criteria
Checking the Sequence Overview
Analyzing a Sequence
Ending/Restarting/Debugging Sequences
Monitor for Processed XML Messages
Monitoring Event-Controlled Processing
Debugging bgRFC Units
Supported Standards
Working with the SOA Manager
Glossary of Terms for SOA Manager
Technical Configuration
Setting Up the SOA Manager
Checking Roles
Roles and Authorizations
Migrating Web Service Configurations
What Migration Does
Configuring Reverse Proxies
Setting Up a Connection to a J2EE Server for the Web Services Na
Configuring Service Providers and Consumers
Configuring a Service Provider
Configuring a Service Provider (Simplified)
Configuring Multiple Service Providers
Creating a Configuration Scenario
Creating and Editing a Configuration Profile
Switching Configuration Profile Versions
Configuring a Central Business Scenario
Defining Systems as Central Systems
Creating a Domain in a Central System
Creating and Assigning Logon Data in a Central System
Creating a Central Business Scenario
Distributing Changes from the Central System to Domain Systems
The Central Design Time Cache
Creating a Management Connection to the Central System
Configuring a Consumer Proxy
Configuring an Event Provider
Working with Service Groups
Creating Routing Rules for Service Groups
Logical Receiver Determination
Technical Receiver Determination API
Technical Receiver Determination API: Coding Examples
Creating a Fallback Configuration
Using Configuration Templates
Publishing Services
Setting Up the Connection to the Services Registry
Finding Information in the Services Registry
Publishing Service Endpoints Automatically
Publishing Individual Service Definitions
Creating and Changing Publication Rules in the Back-end System
Accessing and Testing a Service
Testing a Service
Displaying a WSDL Document
Logs and Traces
Displaying Logs and Traces
Configuring Logs
Configuring Tracing
Searching with Trace Patterns
Evaluating SOA Configuration and Publication Logs
Activating and Forwarding SOA Configuration Traces
Monitoring Sequences
General Information on Sequences
Choosing Selection Criteria
Checking the Sequence Overview
Analyzing a Sequence
Ending/Restarting/Debugging Sequences
Configuring Services of Previous Releases
Releasing for the SOAP Runtime (WSCONFIG)
Administration for the SOAP Runtime (WSADMIN)
Creating a Logical Port
Web Service Logging and Tracing
Configuring Logging
Configuring Tracing
Displaying Error Log
Displaying Traces
Trace Overview
Trace Details
Testing Web Service Providers with Playback
Displaying Asynchronous Messages
Web Application Builder for ITS Services
Introduction
User Settings for Internet Services
Basic Functions
Creating an Internet Service
Components of Internet Services
Using Mixed Mode
Creating HTML Templates
Generation Style: Classic
Generation Style: HTML Business
Generation Style: WebGUI
Extending HTML Templates
Creating MIME Objects
Creating Non-Language-Specific MIME Objects
Creating Language-Specific MIME Objects
Editing MIME Objects
Creating Language Resources
Publishing a Service
Statuses of Web Development Objects
Executing a Service
Tools Used for Implementation Support
Navigating Using Double-Click
Using Patterns and Wizards
MiniApp Maintenance
Creating MiniApp Objects
Maintaining Entries for MiniApps
Maintaining Text Elements
Maintaining Text Elements: Overview
Initial Screen
Creating and Maintaining Text Elements
Creating List and Column Headings
Maintaining Selection Texts
Maintaining Text Symbols
Analyzing Text Elements
Analyzing Selection Texts
Analyzing Text Symbols
Copying Text Elements
Translating Text Elements
Maintaining Messages
Creating Message Classes
Adding Messages
Creating Message Long Texts
Assigning IMG Activities to a Message
Maintaining Transactions
Dialog Transactions
Report Transactions
OO Transactions
Variant Transactions
Parameter Transactions
Variant Maintenance
Variants: Overview
Initial Screen
Displaying a List of all Variants
Creating and Maintaining Variants
Creating Variants
Variant Attributes
Changing Variants
Deleting Variants
Printing Variants
Variable Values in Variants
Using Variables for Date Calculations
User-specific Selection Variables
Creating User-Specific Variables
Changing Values Interactively
Changing Values from a Program
Fixed Values from Table TVARVC
Creating Table Variables from TVARVC
Maintaining Entries in Table TVARVC
Executing Programs with Variants
Debugger
ABAP Runtime Analysis
Information on Development Objects
Navigation and Information System: Overview
The Repository Information System
Environment Analysis
Determining the Environment
Where-used Lists
The Application Hierarchy
The Data Browser
Customizing the Data Browser Display
Other Data Browser Functions
Additional Concepts
Inactive Sources
Concept
Support in the ABAP Workbench Tools
Activating an Object
Overview of Inactive Objects
Status Display
Activating Classes and Interfaces
Effect of Inactive Sources on Operations
Further Effects
Inactive Sources and Modifications
Classic BAdIs
The Package Builder and the ABAP Package Concept
Use Case 1: Defining Package Hierarchy
Creating Structure Packages
Structure Packages
Types of Package Interfaces for Structure Packages
Creating Main Packages
Adding Development Packages
Use Case 2: Making Services Available
Creating Package Interfaces
Adding Elements to a Package Interface
Restricting the Use of the Interface
Extending Visibility over Several Levels
Graphic: Extending Visibility
Use Case 3: Using Services from Other Packages
Creating Use Accesses
Permissible Use Accesses
Visibility Rules in Subpackages
Accessing Content from Another Package Hierarchy
Case 1: Using Filter and Virtual Default Package Interfaces
Case 2: Using Default Package Interface
Case 3: Using All Structure Package Interfaces
Case 4: Using Interfaces From First Non-Structure Package Level
Case 5: Server Package Hierarchy with Nested Structure Packages
Package Architecture in SAP ERP
From Software Components to Structure Packages
Software Components in SAP ERP
Structure Packages
From Packages to Structure Packages
Using Objects from Other Structure Packages
Applying Filters in Structure Packages
Package Checks and System Settings
Performing a Package Check
Analyzing Use of Foreign Package Objects
System Settings
Package Check Scenario
Appendix
Short Overview of the Package Concept
Naming Conventions for Packages
Data Modeler