ABAP Development - s4-p1

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 164

6/18/2019

SAP (On-Premise) - ABAP Development


User Guide
Generated on: 2019-06-18

| 201809.000

PUBLIC

Warning

This document has been generated from the SAP Help Portal and is an incomplete version of the official SAP product
documentation. The information included in custom documentation may not re ect the arrangement of topics in the SAP Help
Portal, and may be missing important aspects and/or correlations to other topics. For this reason, it is not for productive use.

For more information, please visit the SAP Help Portal.

This is custom documentation. For more information, please visit the SAP Help Portal 1
6/18/2019

About the ABAP Development User Guide


Scope of Documentation
This documentation describes the functionality and usage of the ABAP Development Tools (ADT) within the ABAP core
development scenario. In particular, it focuses on use cases for creating, editing, testing, debugging, and pro ling development
objects in an Eclipse-based IDE.

Target Audience
ABAP developers who are involved in the ABAP core development scenario and want to work with an Eclipse-based IDE.

Validity of Documentation
This documentation belongs to ABAP Development Tools client version 2.96 and refers to the range of functions that have been
shipped as part of the standard delivery for Application Server ABAP 7.53 SP00.

Caution
Consider that debugging of ABAP code in ABAP Development Tools at least requires:

721 Kernel version

SAP NetWeaver 7.3 EHP1 SP04 for ABAP back end.

More on ABAP Core Scenario

Note
To enable you developing ABAP source code, your ABAP system administrator needs to con gure an ABAP system. For this,
the Con guration Guide for Con guring the ABAP Back-end for ABAP Development Tools is provided.

Visit also the ABAP Development SAP community channels for more information and to interact with other ABAP
developers.

Eclipse Basics
The following information provides you with a selected overview of Eclipse features in order to make your transition working
with ABAP Development Tools (ADT) easier.

This section describes general information about Eclipse that is relevant for ABAP developers working with ADT.

Note
To get more information about Eclipse in general and getting started with ADT, see the Related Information below.

In addition, you can gain more experience with ADT using the Feature Explorer. It provides interactive tours to explore ADT
features directly on the UI. To open it, enter Feature Explorer in the Quick Access input eld beside the toolbar. Then
choose the Views entry as follows:

This is custom documentation. For more information, please visit the SAP Help Portal 2
6/18/2019

You will nd here the following frequently asked questions:

What is displayed when I open ADT for the rst time?

What does the Eclipse UI display and where can I found what?

How can I browse through the repository content?

Can I open the SAP GUI anyway?

How can I arrange and modify the perspective?

How can I reset the perspective?

Where can I set general properties/preferences?

How can I open a view quickly?

How can I display input help?

What is displayed when I open ADT for the rst time?


After installing and opening the Eclipse-based IDE for the rst time, the Welcome page is displayed. From here, you can open a
feature overview of the elementary activities in the area of ABAP projects, perform tutorials like cheat sheats, use case, and
code examples, as well as get information about new Eclipse features.

Welcome page that provides further details about working with ADT

This is custom documentation. For more information, please visit the SAP Help Portal 3
6/18/2019

What does the Eclipse UI display and where can I found what?
After creating an ABAP project, you are connected with the back end. You can then open and edit a development object.

Your screen might look like as follows:

Example of your screen when editing an ABAP class with ADT

Each tab can represent

A view such as the Project Explorer to re ect the repository as well as, for example, the Outline or Properties to display
object-speci c information

A source- or form-based editor to display or edit objects

From here you start working.

For more information, see ABAP Source Code Editor

How can I browse through the repository content?


In the Project Explorer, the whole repository is represented as ABAP repository trees and folders. From here you can, for
example, open or navigate to other development objects. In addition, you can perform functions from the context menu of a
development object.

For more information, see

ABAP Repository Trees

Working with ABAP Repository Trees

Can I open the SAP GUI anyway?


Some development objects or development scenarios are not yet fully integrated in Eclipse. To handle them, you can open the
integrated SAP GUI.

This is custom documentation. For more information, please visit the SAP Help Portal 4
6/18/2019
For more information, see

Opening in the SAP GUI

List of Development Objects with an Eclipse-based Editor

How can I arrange and modify the perspective?


A perspective is the initial arrangement of views and editors. You can adapt the perspective in order to arrange it to your
current needs. To do this, position the mouse cursor on the tab of a view or editor. Drag it to the relevant new position. A green
frame will highlight the position where you can drop them.

Tip
You can also move a view or editor outside of the Eclipse application, for example, on a second screen.

For more information, see here Perspectives

How can I reset the perspective?


To get the default perspective back, choose Window Perspective Reset Perspective... from the menu bar.

For more information, see here Resetting perspectives

Where can I set general properties/preferences?


In the ABAP Workbench, you can de ne the behavior of the Object Navigator (SE80) choosing Utilities Settings... page from the
menu.

In Eclipse, you de ne the behavior of ADT, for example, the ABAP source editors, Project Explorer, debugging, and so on, using
the Preferences pages.

For more information, see Setting Con gurations and Preferences

How can I open a view quickly?


The fastest way to open a view is using the Quick Access next to the toolbar. Just type in your search string.

 Example

Example of displaying the Problems view using the Quick Access

How can I display input help?


When you have focused an input eld that provides input help, the lightbulb or "i" decorator is shown. To display the relevant
information for the current position in the tooltip, mouse over the relevant decorator.

This is custom documentation. For more information, please visit the SAP Help Portal 5
6/18/2019

 Example
The lightbulb decorator displays information about input values, such as using, asteriks and so on:

Example for the lightbulb decorater when using Ctrl + Shift + A

The "i" decorator displays information about possible input features, such as using code completion and so on:

Example for the "i" decorator when using the ABAP Source Search

Related Information
Quick Launch
Basic Tutorials
Eclipse documentation - Current Release
Get Started with the ABAP Development Tools for SAP NetWeaver

Quick Launch
This Quick Launch aims to provide you with the compact knowledge you may need when working with ABAP Development Tools
(ADT) during the introductory or training period.

Getting Started...
To start, create an ABAP project from the New ABAP Project menu path. An ABAP project always represents one
system connection. It acts as an intermediary between an ABAP back-end system and the front-end IDE client. TIP: To be
able to work in multiple ABAP systems in parallel, you only need to create one additional ABAP project.

More on this: Creating ABAP Projects

Open ABAP Development Objects in your project using Ctrl + Shift + A .

More on this: Searching Development Objects

Browse the contents of an ABAP project in the Project Explorer. The root of an ABAP project contains a list of ABAP
packages that are grouped either under the favorites list (Favorite Packages) or the System Library node. You can nd
the development objects simply by expanding the package node. More on this: Browsing Development Objects in the
Project Explorer

This is custom documentation. For more information, please visit the SAP Help Portal 6
6/18/2019
Add ABAP packages that are relevant for your work to the list of favorites. More on this: Adding or Removing a Favorite
Package

To open a development object, starting from the project tree, double-click the corresponding node in the ABAP project.
More on this: Opening Development Objects

Use Link with Editor to synchronize the project structure in the Project Explorer with the editor. Whenever you
change an object in the editor, this object will be selected in the expanded Project Explorer tree.

Use the Outline view to display the structure of a development object.

Add a new ABAP development object (for example: a new class) to a package by selecting the package and using the
context menu New ABAP Class . More on this: Creating Development Objects

Working with the Editor


You can open multiple development objects in multiple editor tabs.

You can search for ABAP source code or development objects.

More on this:

Searching ABAP Source Code

Searching Development Objects

Search for references to your development object using the Where-Used function ( Ctrl + Shift + G ).

More on this: Searching Usages (Where-Used)

Open the Quick Outline in the source editor currently opened using Ctrl + O .

More on this: Using Quick Views

Navigate the source code using F3 or Ctrl + Click .

To navigate between editors, click the back or forward arrow key on the toolbar.

To switch between the class, its local types or its ABAP Unit test classes, use the bottom tabs of the class editor.

Press F2 to display the signature of a class or method.

Writing ABAP Source Code


To change the source simply start typing directly in the editor.

Use code completion ( Ctrl + Space ) in the editor.

Insert source code templates using code completion and then Shift + Enter .

More on this: Working with Source Code Templates

Start the ABAP language help with F1 in the source code editor.

More on this: Accessing ABAP Keyword Documentation

Format the complete source code ( Shift + F1 ) or a source code block ( Ctrl + Shift + F1 ) within the editor.

More on this: Formatting ABAP Source Code

Activate one or multiple development objects using the corresponding icons in the toolbar.

More on this: Activation

Compare source code objects, even across different ABAP systems, using the Compare with function in the context
menu of the editor or Project Explorer.

More on this: Comparing Source Code

This is custom documentation. For more information, please visit the SAP Help Portal 7
6/18/2019

Running ABAP Unit Tests


Run ABAP Unit tests for one or multiple development objects using the context menu Run As ABAP Unit Test in the
editor or Project Explorer.

More on this: Launching ABAP Unit Tests

ABAP Unit test results are displayed automatically for you in the ABAP Unit Runner view.

More on this: Evaluating ABAP Unit Test Results

Running ABAP Programs and Test Environments


Run ABAP programs or test environment for classes or function modules using the context menu Run As ABAP
Application in the Project Explorer or by pressing F8 .

Working with ABAP Runtime Errors (ABAP Short Dumps)


If a runtime error occurs in a program that you have started, the IDE will alert you to an ABAP feed with a small window.
However, you can also subscribe to an ABAP feed from the ABAP repository. To subscribe to an additional ABAP feed,
press Ctrl + 3 and select Feed Reader.

More on this: Subscribing to Feeds from ABAP Repository

Getting User Assistance Support


The Welcome page Help Welcome provides a standardized set of pages that introduce the ABAP Development Tools to
new users.

To access the complete reference user guide in the context of standard ABAP development, choose
Help Contents ABAP Development User Guide .

Press F1 to request context-sensitive help for a given tool or UI component.

The cheat sheets Help Cheat Sheets... provided will guide you interactively through some essential tasks.

Enabling Accessibility Features in ADT


To con gure Eclipse for using a screen reader, bigger fonts, higher contrasts

More on this: Accessibility Features in ADT

Most Common Keyboard Shortcuts

Development Objects Source Code Editing

Ctrl + Shift + A Open development object Shift + F1 Format source code (Pretty
Printer)

Ctrl + Shift + N New development object Ctrl + Shift + F1 Format source block

Ctrl + S Save development object Ctrl + < Add comment

Ctrl + F2 Check development object Ctrl + Shift + < Remove comment

Ctrl + F3 Activate development object Ctrl + Space Code completion

Navigation Search and Help

F3 Open source code Ctrl + Shift + G Where-used list

This is custom documentation. For more information, please visit the SAP Help Portal 8
6/18/2019

Navigation Search and Help

Alt + Left Backward navigation F1 Show context-sensitive help

Alt + Right Forward navigation F2 Show tooltip description

More on this: Keyboard Shortcuts for ABAP Development

Basic Tutorials
This topic aims to provide you with the introductory knowledge material that you may need when working with ABAP
Development Tools the rst time.

Bene t from the cheat sheets available


Learn to use the new ABAP IDE by stepping through the interactive tutorials available:

Creating ABAP Projects

This cheat sheet demonstrates step by step how to set up your development environment when you start working the
IDE.

Adding Development Objects to ABAP Project

This cheat sheet demonstrates how to add new development objects to your ABAP project that you have created in the
previous tutorial.

Searching for Development Objects

This cheat sheet shows you how to carry out a global search for any development object in an ABAP system.

ABAP Development Objects


Development objects are the individual parts that are used to build an ABAP application.

The AS ABAP stores the development objects in a repository, which is a part of the system database. For this reason, they are
also called repository objects. When the user activates the development objects, the system generates a corresponding
runtime version of these objects. The runtime objects are also stored in the repository.

Examples of development objects are:

ABAP program types such as global classes, interfaces, executable programs, or function groups

Components of programs such as screens and function modules

Objects that programs can share: database elds, data elements, program messages, and so on.

ABAP packages are used to group development objects into units that belong together semantically. In addition to organizing
the development objects, packages also take care of the link-up of the development objects to the software logistics.

There are two occurrences for the development objects available in the ABAP Repository, namely:

Main development objects, such as function groups or global ABAP classes

Subobjects (so-called LIMU objects), such as function modules as part of a function group or class methods as part of a
class

This is custom documentation. For more information, please visit the SAP Help Portal 9
6/18/2019
A main development object is uniquely determined by the speci cation of its name and object type whereas for the speci cation
of a subobject the name and type of the main object is required in addition.

In the Eclipse-based IDE, a corresponding ABAP project is required for processing development objects in an AS ABAP.

Related Information
ABAP Type Hierarchy View
Messages and Message Classes
Modularization with Function Modules
List of Development Objects with an Eclipse-based Editor
Source Code Unit
Activation
Status of a Development Object
ABAP Projects

Tools for ABAP Development


ABAP Development Tools integrates two different types of tools for ABAP development:

Eclipse-based tools: Tools of this type have been created using Eclipse means and they integrate seamlessly into the
Eclipse environment. They are characterized by the same look and feel and the same navigation setup that is typical of
the Eclipse Workbench. Some striking examples of such native Eclipse tools are the different variants of ABAP Source
Code editors, the integration in Outline, and the Tasks and Problems view.

GUI-based tools: Not all ABAP development tools that are available in the new development environment are integrated
into the native Eclipse environment. Some ABAP tools are made available in the new IDE through the SAP GUI, which is
installed locally together with the Eclipse-based client. GUI-based tools represent, in the broadest sense, the tools and
utilities of the traditional GUI-based ABAP Workbench. Typical examples are Package Builder tools and the utilities for
maintaining text elements for ABAP programs. The particular strength of the integration of these tools is that
navigation to them in SAP GUI for Java is normally seamless. Ask for the de nition of a structure, and the Java GUI is
automatically opened to the Data Dictionary structure editor.

Status of a Development Object


During the course of being processed within the ABAP Development Tools, a development object takes on various statuses.

The following gure shows the different statuses, depending on the user action involved:

This is custom documentation. For more information, please visit the SAP Help Portal 10
6/18/2019

Status of a development object in the ABAP Development Tools

The status of a development object is indicated by a decorator:

Icon/Decorator Meaning

Inactive development object in editor or editor tab

Inactive development object (ABAP class)

Locked development object (ABAP class)

Locked and inactive development object (ABAP class)

Related Information
ABAP Development Objects
Activation
Displaying Properties of Development Objects
Switching between Inactive and Active Versions of a Source-based Object

Source Code Unit


A source code unit comprises a coherent source-code part of an ABAP development object that is output to an editor window.
Certain functions within the ABAP Development Tools can only be used within one and the same source code unit. For example,
changes in variable names only take effect for occurrences within the same source code unit. Version compares of ABAP
sources are also performed at the level of individual units.

The entire source code of a development object can even be divided across several source code units. This is the case, for
example, with global ABAP classes where the different source code units are spread across the respective editor tabs. In this
way, the de nition and implementation part of a class forms a single source code unit and is output under the Global Class tab.
Local de nitions and test classes that belong to the class de ne their own source codes, respectively.

This is custom documentation. For more information, please visit the SAP Help Portal 11
6/18/2019
Another example can be seen in function groups. Each individual include of a function group as well as the function group itself
form precisely one source code unit in each case.

Each individual tab in the class editor represents exactly one source code unit of an ABAP class

Related Information
ABAP Development Objects
Creating ABAP Classes
Renaming Identi ers
Comparing Source Code

Modularization with Function Modules


Function modules allow you to encapsulate and reuse global functions in an ABAP system.

You can create, display, test, and administer the following development objects in the ABAP Development Tool for SAP
NetWeaver (ADT):

ABAP function group: Container for grouping and to de ning the interface of function modules with similar or
complementary functionals

ABAP function module: Procedures with interfaces that allow the reuse of functions within other programs

ABAP function group include: Container for grouping other units - for example, subroutines, PAI, PBO modules, local class
declarations, event blocks, etc.

The following chapters inform you about the differences for editing function modules in the Function Builder of the SAP GUI
based Workbench (SE37) and ADT.

The editor generates a synthetic view of a function module. The function module will be displayed as one source code unit. The
content set is displayed as the De nition Part and Implementation Part in the editor, retrieved from the back end.

This is custom documentation. For more information, please visit the SAP Help Portal 12
6/18/2019

Editor that displays the source code of a function module, divided into definition part and implementation part

Related Information
De nition Part
Implementation Part
Creating an ABAP Function Group
Creating an ABAP Function Module
Creating an ABAP Function Group Include
Adding Include Suffixes

De nition Part
The de nition part declares the parameters of a function module. It starts with FUNCTION < func_name > and ends with a
period after the last declaration.

Note
You must de ne a type for each parameter. Otherwise the meaning is not clear.

When you open an existing function module, the system checks if the type of an IMPORTING, EXPORTING, or CHANGING
parameter has been declared in the back end. If this is not the case, the editor automatically assigns the addition TYPE ANY to
the parameter. For table parameters without a type, the editor adds the addition TYPE STANDARD TABLE.

For both untyped parameters, the ##ADT_PARAMETER_UNTYPED pragma is added to the de nition.

When you save, the parameter is kept untyped and unchanged in the back end; that is, the system does not explicitly add TYPE
ANY or TYPE STANDARD in transaction SE37.

Note
Global, untyped parameters are supported with SAP NetWeaver 7.5 SP00. So, 2054349 is obsolete in these releases.

This is custom documentation. For more information, please visit the SAP Help Portal 13
6/18/2019

Example

The following example shows a de nition part that starts with FUNCTION and ends after the last parameter declaration with a
period. You can also see how TYPE ANY has been added to the exporting parameter EX_PARAM_3. The table parameter
TAB_PARAM_2 was not assigned a type and will be changed to TYPE STANDARD TABLE.

FUNCTION MY_FUNCTION_MODULE
IMPORTING
VALUE(IM_PARAM_1) TYPE STRING OPTIONAL
VALUE(IM_PARAM_2) TYPE I DEFAULT 42
IM_PARAM_3 TYPE STRING
EXPORTING
EX_PARAM_1 TYPE REF TO STRING
EX_PARAM_2 TYPE ANY
VALUE(EX_PARAM_3) TYPE ANY
VALUE(EX_PARAM_4) TYPE ANY
CHANGING
CH_PARAM_1 TYPE STRING
VALUE(CH_PARAM_2) LIKE TADIR
TABLES
TAB_PARAM_1 LIKE TAB LINE
TAB_PARAM_2 TYPE STANDARD TABLE
EXCEPTIONS
EXCEPTIONS_1.

Limitations
The ADT source code-based view of a function module is not persisted in the database in the back end. This leads to the
following limitations:

You cannot add or save any comments in the de nition part. They will be lost after activation.

After activation, since the source code is rebuilt from the persisted components in the back end, the pretty printer will
convert the de nition part into upper case letters.

Related Information
Modularization with Function Modules
Implementation Part
Creating an ABAP Function Group
Creating an ABAP Function Module
Adding a De nition Part and Implementation Part to a Function Module
Creating an ABAP Function Group Include
Adding Include Suffixes

Implementation Part
The implementation part of a function module contains the functionality of the function module. It ended with the statement
ENDFUNCTION.

When you open a function module in the editor, there can be empty lines between the de nition part and the implementation
part. The reason for this is that the editor automatically adapts the rst implementation line, so that it is the same line both in
the ADT editor and in the Function Builder of the ABAP Workbench. The position is important for the navigation services, the
syntax check, and the position of error markers.

Example

This is custom documentation. For more information, please visit the SAP Help Portal 14
6/18/2019

Display of the first line of the implementation part in the Function Builder (SE 80)

Display of the first line of the implementation part and the added empty lines in the editor of ADT

Related Information
Modularization with Function Modules
De nition Part
Creating an ABAP Function Group
Creating an ABAP Function Module
Adding a De nition Part and Implementation Part to a Function Module
Creating an ABAP Function Group Include
Adding Include Suffixes

ABAP Doc Comments


This is custom documentation. For more information, please visit the SAP Help Portal 15
6/18/2019
ABAP Doc enables you to document code elements (for example, attributes, methods, local variables) as ABAP Doc comments.
These comments consist of one or more comment lines, each of which is pre xed by "!.

Note
ABAP Doc is supported if your Eclipse-based IDE is connected with SAP NetWeaver 7.4 SP03 or higher.

Editing ABAP Doc Comments


ABAP Doc comments consist of a single comment line or a coherent block of several comment lines. In the source code editor,
they can be placed in an empty line directly in front of a declarative statement like data declarations, method de nition, class
de nitions. In SAP GUI, they are displayed in the ABAP editor. They contain descriptions, parameter de nitions, and such like,
and describe code elements (for example, classes, attributes, methods, local variables) of a development object.

ABAP Doc comments can be added in ABAP classes, interfaces, or function groups to describe functionality of the code element.
In addition, you can generate ABAP Doc, for example, by:

importing the existing descriptions of global classes and interfaces including their attributes, methods, parameters,

performing the quick assist "Add missing parameters to documentation"

 Example
In the following example, the ABAP Doc comments are added one line before the corresponding declarative statements:

"! <p class="shorttext synchronized" lang="en">ABAP class that contains ABAP Doc</p> CLASS

If you show the ABAP Element Info view in the ABAP perspective and select the method name in the source code editor, the
corresponding ABAP Doc comment is displayed:

In the ABAP Element Info view, the ABAP Doc comment of the method_with_variable method is displayed

This is custom documentation. For more information, please visit the SAP Help Portal 16
6/18/2019

Checking ABAP Doc Comments


The source code editor veri es the position and the content structure of ABAP Doc comments when you execute the ABAP
syntax check. So, if comments are added at the wrong position or contain incorrect syntax, a warning is displayed in the
Problems view.

Displaying ABAP Doc Comments


ABAP Doc comments can be displayed in the code element information popup, ABAP Element Info view, and code completion
list in order to provide developers with further information about the source code.

To display documentation, ABAP Development Tools (ADT) checks the availability of the respective content:

If an ABAP Doc comment is available, the ABAP Doc comment related to the source code is displayed.

If not, ADT checks whether a description has been saved. If one is available, the description related to the source code is
displayed also.

Otherwise, ADT only displays the de nition.

Note
To prede ne the formatting of ABAP Doc comments, open the General Appearance Colors and Fonts preference page.
From there, expand the ABAP folders and edit the ABAP Docu Font entry.

Related Information
ABAP Element Info View
Editing ABAP Doc Comments
ABAP Doc (ABAP Keyword Documentation)
Comments (ABAP Keyword Documentation)

ABAP Element Info View


Use the ABAP Element Info view to get more details of the elements of a development object. In addition, the Element
Information popup is provided. This popup displays the same content.

Displaying Details
In the source code editor, you can open the ABAP Element Info view and the Element Information popup from each element in
the implementation. You can also display details on the usage from the de nition of elements.

In the ABAP Element Info view, you can obtain the following details of a development object after selecting an element such as a
variable, method, its parameters, types, and so on:

De nitions

ABAP documentation

Short text descriptions

Links to long text documentation

Toolbar and Search Field


From the integrated toolbar, you can do the following:
This is custom documentation. For more information, please visit the SAP Help Portal 17
6/18/2019
Link with the editor to connect or disconnect the updating of the displayed content in accordance with the current
mouse position in the source code editor

Pin and unpin the display

Go back or forward to the previous or next display

Increase or reduce the font size to maximize or minimize the size of the displayed letters

From the integrated search eld, you can search for usage or navigate between the search results.

Example of an ABAP Element Info view that is displayed for a method

How to Get Element Information


The ABAP Element Info view is permanently displayed as long as you close it. This view also automatically adopts its displayed
content when you select another usage within the source code. The Element Information popup is only temporary displayed as
long as you select another position with mouse cursor.

The ABAP Element Info view is opened when you select

the name, parameters, and exceptions of the method in the ABAP source code editor,

the Show in ABAP Element Info View button from the code element information popup, or

Window Show View Other... ABAP Element Info from the menu bar

and press F2 .

Related Information
Displaying Details in the Element Information Popup and the ABAP Element Info View
ABAP Doc Comments

ABAP Packages
An ABAP package is a transportable ABAP repository object that groups development objects of an ABAP system.

This is custom documentation. For more information, please visit the SAP Help Portal 18
6/18/2019

Overview
In ABAP Development Tools (ADT), packages form the basic modules of ABAP projects. They are displayed as ABAP repository
tree in the Project Explorer. Each package node can contain subpackages or development objects as subnodes.

The package hierarchy is represented as a node tree. It represents the technical view of the architecture from an application or
an SAP system.

 Example
The following example displays how the hierarchy of an ABAP package might be represented in the Project Explorer:

Example of a package hierarchy represented in the Project Explorer

Note that in your package could be further superpackages and subpackages displayed than in the example above.

Use the functionalities of the ABAP repository trees to adopt the representation of a package to your current needs.

Packages which contain no development objects within their hierarchy are highlighted with the empty package icon in the
Project Explorer.

Types
You can work with the following package types:

Type Description

Structure package A structure package is the root container of a package hierarchy that de nes the basic
architecture of an application.

It is used to provide the technical prerequisites for decoupling software components.

 Note
Structure and main packages cannot contain any development objects except their own
package interfaces and subpackages.

This is custom documentation. For more information, please visit the SAP Help Portal 19
6/18/2019

Type Description

Main package A main package de nes the root container for one or more development packages.

It is used to group functions semantically that share the same system, transport layer, and
customer delivery status.

 Note
Main packages cannot contain any further repository objects except its own package
interfaces and subpackages.

Structure and main packages cannot contain any development objects except their own
package interfaces and subpackages.

Development package A development package groups development objects of the same transport layer in a self-
contained unit.

 Note
Development packages can contain any number of repository objects, but each one can
only be assigned to one development package.

Features
Packages provide the following features:

Creating packages and their subpackages to build up a package hierarchy

De ning the transport behavior of all development objects from each package

Encapsulating and exposing development objects externally. In the integrated SAP GUI, you can de ne package
interfaces or restrict the use of interfaces for users. This means that an object can automatically use objects from the
same package but not from a different package

Note
Development objects of a different package can only be accessed if both packages (server and client packages)
explicitly allow this.

De ning use access for client packages

Adding package nodes to your Favorite Packages list within the ABAP repository tree

Components
An SAP product consists of a delivery unit and product unit which consist of a set of single packages. Such a set of functions
forms a software component that represents a view on software logistics. A package or development object is assigned to a
software component through its superpackage or when you assign it manually.

SAP's development objects belong to packages that are assigned to an SAP-internal application component.

Note
Customers cannot adopt SAP-internal packages.

Rule Mechanisms
This is custom documentation. For more information, please visit the SAP Help Portal 20
6/18/2019
The package concept de nes the following rule mechanisms:

Visibility: A package interface is a repository object. You use it to expose development objects that can only be used in a
speci c development package, in order to make them also available in other packages. A server package access to its
visible development objects by adding them to its package interface.

Note
You can create package interfaces from the context menu of the relevant package node using the integrated SAP
GUI.

Dependency control: A client package declares its dependence on other packages whose development objects it uses.

Related Information
ABAP Package Editor
ABAP Projects
ABAP Repository Trees
Adding or Removing a Favorite Package
Changing the ABAP Package Assignment
Working with ABAP Packages

ABAP Repository Trees


An ABAP repository tree is a container that represents a prede ned structure of development objects in the Project Browser. It
consists of ABAP repository folders. Each folder contains one or more development objects.

Note
ABAP repository trees and folders are supported since SAP NetWeaver AS for ABAP 7.51 innovation package SP00. In
addition, your ABAP system needs to be connected with a SAP HANA database.

For simpli cation, ABAP repository trees and folders are called trees and folders in this documentation.

Overview

Example of an ABAP repository tree and its ABAP repository folders

This is custom documentation. For more information, please visit the SAP Help Portal 21
6/18/2019
By default, ABAP Development Tools (ADT) displays the following trees:

Local Objects ($TMP): Contains your local objects – sorted by owner and object type

System Library: Contains all development objects of the whole ABAP system – sorted by ABAP package and object type

Favorite Packages: Contains a prede ned list of ABAP packages – sorted by ABAP package and object type

Note
The Favorite Packages tree is only displayed if you have explicitly added one or more packages when creating your
ABAP project.

The following information is displayed for each tree and folder:

Object counters that inform you how many objects are contained in a speci c folder

Short texts for each development object (including ABAP packages)

Note
To hide this information, deselect the Display object counters and Display short description of development objects
checkboxes on the Preferences ABAP Development Project Explorer preferences page.

General Functionalities
You can use existing trees to:

Browse through themselves, for example, to navigate to a development object that you want to open or edit.

Modify them anytime, for example, to add packages or users.

Perform mass operations on each folder, for example, ATC checks, ABAP Unit Tests, and so on.

Link the content of trees and folders with the source code editor. Then, the cursor automatically navigates to the
position where the currently opened development object is located in the tree. In this special case, you can also load the
full content if only a limited selection is displayed.

Visualize the apportionment of the containing development objects from a tree in a chart. This enables you to get an
impact, for example, in which year most of the development objects have been created, and so on.

Delete them anytime. Note that no development object is then removed from the repository.

You can adjust these trees or even create new ones from scratch to display favorite content of the ABAP repository in the
Project Explorer. For this reason, you can de ne your own tree structure by con guring the so-called tree levels such as the
creation year, object types, user who created an development object, and so on.

Creating ABAP Repository Trees


You have the following possibilities to create trees:

1. For each ABAP project through the con guration wizard from the context menu of the Project Explorer.

2. On base of templates that contain a prede ned lter set.

3. By deriving from an existing one, for example, through duplicating the relevant tree.

Adjusting ABAP Repository Trees


You can adjust the total set of objects to be displayed in the tree through re ning the lters to your new needs. You can do this,
for example, by adding a package to the Favorite Packages tree or by adding an owner to the Local Objects ($TMP) tree.

This is custom documentation. For more information, please visit the SAP Help Portal 22
6/18/2019
You can also change its structuring. You can do this, for example, by adding the Creation Year tree level to the Local Objects
($TMP) tree.

You can use the following properties to change the structuring/ ltering of a tree and/or folder:

Name Description

Owner User who has created or is responsible for a development object

Object Type Object type of the development objects

Package ABAP package where the development objects are assigned to

API State Release state that describes the availability of a development


object

Creation Year Year in which a development object was created

Original Language Original language in which a development object has been created

Related Information
Working with ABAP Repository Trees
Released APIs

ABAP Runtime Errors and Short Dumps


If an ABAP program encounters a runtime error (because of an uncaught exception, an exit message, or a failed assertion), the
program writes a short dump to document the runtime error and help in its analysis.

A short dump provides a great deal of well-structured information for localizing and understanding a runtime error, including a
textual description of the error and its likely cause, an excerpt showing the location of the error in the source code, tables of
variables and their values, and more.

If a runtime error occurs in a program that you have started from the ABAP Development Tools (ADT), then the ADT alerts you
of the runtime error in a small dialog window. From this dialog, you can navigate to the ABAP Runtime Error viewer or display
the last state of the terminated process in the post-mortem ABAP debugger.

You can subscribe to an ABAP feed of the runtime errors. In the Feed Reader view, two entries for runtime errors are added by
default. These are runtime errors caused by you and runtime errors for objects you are responsible for. You can add new feed
queries and edit feeds by de ning lter conditions for runtime errors.

Related Information
Analyzing ABAP Runtime Errors
Displaying ABAP Runtime Errors
Analyzing ABAP Runtime Errors with Debugger
Selecting ABAP Runtime Errors for a Feed
ABAP Dump Analysis
Short Dump (ABAP Keyword Documentation)
Runtime Error (ABAP Keyword Documentation)

ABAP Perspectives
This is custom documentation. For more information, please visit the SAP Help Portal 23
6/18/2019
Just like any other perspectives in Eclipse, the ABAP perspectives de ne the initial set and layout of tools (views and editors) in
the Eclipse window and in this way provide a set of functions aimed at accomplishing a speci c type of task. In particular, they
work with ABAP development objects that are managed by an ABAP backend system. When using ABAP perspectives, you
always have to establish a system connection that is managed by a corresponding ABAP project. The ABAP perspectives enable
access to both Eclipse-based and GUI-based ABAP development tools.

The ABAP development tools contribute the following perspectives to the Eclipse workbench:

ABAP
This (default) perspective is designed for working with arbitrary ABAP development objects that the user can access by means
of ABAP projects.

It consists of an editor area, where the various (ABAP) source code editors are placed, and the following views:

Project Explorer

Outline

Task Repositories

Task List

Problems

Templates

ABAP Pro ling


This is a perspective designed for analyzing ABAP statements and performance with the ABAP trace functionality. It consists of
the following views:

Project Explorer

ABAP Traces

ABAP Trace Requests

Related Information
ABAP Projects

ABAP Pro ling


ABAP pro ling lets you analyze the runtime behavior of an ABAP program and the memory consumption of an ABAP program.

The ABAP Trace has been integrated completely into the ABAP Developer Tools (ADT). The Memory Inspector is available to
you via transaction S_MEMORY_INSPECTOR in the integrated SAP GUI in the ADT.

Pro ling helps both in problem analysis and in refactoring and optimization of code:

The ABAP Trace shows you where runtime is being consumed, and where effort for refactoring and optimization can best
be applied. The ABAP Trace also lets you analyze and understand program ow, useful when you are trying to
understand a problem or learn about code you must analyze or maintain.

The Memory Inspector: ABAP applications bene t from the sophisticated memory management of the ABAP application
server. Even so, as long-running ABAP transactions and programs become more commonplace, and more complex
programming models come into use (there is a difference in memory consumption between an ABAP report and a large-
scale object-oriented application), checking for memory leaks and high memory consumption has become more
important. The Memory Inspector lets you compare memory snapshots, so that you can easily nd memory leaks. In
case of a memory-related program failure, it can quickly show you how and where memory is being consumed.
This is custom documentation. For more information, please visit the SAP Help Portal 24
6/18/2019

Related Information
Pro ling ABAP Code
Starting the ABAP Pro ler
Displaying the Trace Overview
Using Analysis Tools
Setting Trace Preferences
Glossary

ABAP Projects
An ABAP project plays a mediating role between an ABAP back-end system and the Eclipse-based IDE, and it provides a
framework for creating, processing, and testing development objects.

An entry in the SAP Logon represents a system connection to an ABAP system.

Derived from such an SAP Logon entry, an ABAP project always :

represents a real system logon and,

provides a user-speci c view of all the ABAP development objects of the back-end system.

The speci cation for an ABAP project contains the following items:

Project name

System data - This includes speci cations of the system ID, client, user, and password.

Default language - ABAP project-speci c preference for prede ning the original language of the development objects
that are created as well as the language of the messages and UI texts.

Note
The default language of an ABAP project cannot be changed.

[Optional:] List of the ABAP packages that are listed as favorites within the project.

ABAP projects form a part of a user-speci c workspace. They thus de ne the starting point for all development activities within
the new IDE. Several ABAP projects are contained in a workspace. This means that the ABAP developer can work on multiple
ABAP systems in one and the same IDE session without having to leave the immediate work environment. This can be very
useful whenever, for example, the status of development objects from the original development system is to be compared with
the status in the consolidation system.

ABAP projects can only be processed if there is an existing system connection (to the ABAP back end). It is therefore not
possible to have read or write access to the content of an ABAP project in offline mode. The connection data for an ABAP
system is stored in the workspace.

The structure of an ABAP project is usually displayed in the Project Explorer. The root of an ABAP project contains a list of ABAP
packages, which are itemized either under the favorites list (as Favorite Packages) or the System Library node.

Depending on whether you have modi ed the existing system connection, the following project variants are created and
displayed in the Project Explorer:

1. If you have used the existing system connection: The project references a system connection in the SAP Logon. A
decorator is then added to the project icon that re ects the connection to the SAP Logon.

2. If you have modi ed the existing system connection: The project is independent from the SAP logon. The project is
added without a decorator .

This is custom documentation. For more information, please visit the SAP Help Portal 25
6/18/2019

Related Information
ABAP Packages
System Library
Creating ABAP Projects
Adding or Removing a Favorite Package

System Library
The System Library creates a structured list of all packages that are contained in a backend system corresponding to the ABAP
project.

In an ABAP project, the System Library creates one of the project nodes directly underneath the root of a project tree.

The topmost level of a project tree generally consists of 2 entries:

Favorite Packages

System Library

An alphabetical listing of the top-level packages of a system forms the topmost level of the System Library. Top-level packages
are characterized by the fact that they have no superpackage. Such packages can be root packages (structure packages), which
create their own package hierarchy in each case, as well as HOME packages. Each of these package nodes contains either
subpackages or development objects as subnodes.

The structured listing of system packages enables access to all development objects by continually expanding the tree
structure. This procedure is generally less suitable for searching for objects. The best way to perform an object search is using
CTRL + Shift + A in connection with the activated Link with Editor. When the development object is then found, the
corresponding position within the expanded project tree is displayed.

Related Information
ABAP Projects
Adding or Removing a Favorite Package

ABAP Search
ABAP search describes all functions that are provided for performing a search in an ABAP system in all of the back end you work
with.

The following functions are provided:

ABAP Source Search: Full text search inside the ABAP source code of the entire system.

ABAP Development Object Search: Search for development objects on the basis of the corresponding name.

Note
Alternatively, you can search for a development object using the shortcut Ctrl Shift A.

Where-Used Function: Find the usage of identi ers like:

Development objects that are displayed on the main level of the Project Browser like classes, interfaces,
database tables, message class, and so on.

Sub-objects like members of a class, elds of a table, messages, and so on.

This is custom documentation. For more information, please visit the SAP Help Portal 26
6/18/2019
Other identi ers like local variables, parameters, macros, and so on.

Note
In addition, Eclipse provides search functions that are not ABAP-speci c, such as the Task Search, and so on. Use the ABAP
search functions to detect ABAP content. The Eclipse le search results may be incomplete.

Related Information
Searching Development Objects
Searching ABAP Source Code
Searching Usages (Where-Used)
Opening Development Objects

Where-Used Function
The where-used function enables you to determine the development objects that use a speci c object, thereby making the
dependencies between the development objects clear.

Related Information
ABAP Search
Searching Usages (Where-Used)

Availability
You can start the where-used function from the following locations:

Project explorer

Outline

Source code editor

Another where-used result

You can use the where-used function for:

Main ABAP development objects, such as function groups or global ABAP classes

Subobjects, such as attributes, messages, function modules as part of a function group, or class methods as part of a
class, and so on

Note
The improvements in the Where-used view like the general and lter functionalities from the toolbar and context menu are
provided for SAP NetWeaver 7.3 EHP1 SP14 and higher as well as Release SAP NetWeaver 7.4 SP08 and higher.

Execution
You can trigger the where-used function in any of the following ways:

Choose the icon Get Where-Used List... in the toolbar.

Use the shortcut Ctrl + Shift + G

This is custom documentation. For more information, please visit the SAP Help Portal 27
6/18/2019
In the context menu, choose the entry Get Where-Used List.

Display of Search Results


The ndings of a where-used search are displayed in a hierarchical tree in the Search view. They represent the relationships
between development objects and their elements.

The Search view is divided into the following levels:

Summary of the related development object or element and number of matches

Display of the related development objects

Display of the occurrences in a subtree

In addition, on the rst level you will also see the number of matches and the objects where a match was found.

Note
The number of related objects is automatically evaluated and displayed. ABAP Development Tools (ADT) displays a question
mark as placeholder for the number of matches for those levels you have not selected thus far. The reason for this is that
evaluating the number of matches is time-consuming. To evaluate and display this number, select Expand Tree from the
context menu of the relevant subtree.

General Functionalities (Toolbar)


From the integrated toolbar in the Search view, you can do the following:

Navigate to the next or previous match

Expand or collapse a main tree or a subsequent subtree

Show or hide the ABAP package hierarchy

Rerun the search execution

Stop the current search

Display or clear as well as navigate in the search result history

Pin the search view

Display the search result view as list or tree

If you hover a nding, a tooltip is displayed that provides you with further information.

In addition, variables with write or read-only access are highlighted with a colored background.

Note
The color settings can be de ned in the Window Preferences General Editors Text Editors Annotations preferences.

Filter Functionalities (Toolbar)


You can open the lter dialog from the integrated toolbar in the Search view to limit the search.

This is custom documentation. For more information, please visit the SAP Help Portal 28
6/18/2019
You can limit the search with the following criteria:

Note
Use Ctrl + Space to open the Content Assist in order to consider existing entries.

Package(s): Select the main ABAP package or speci c subpackages in which you want to search.

Object Type(s): Select one or more development object(s), like ABAP classes, ABAP interfaces, and so on, that are
relevant for you.

Responsible User(s): Select one or more users that are involved in your project and might have created or edited the
relevant development object(s).

Code Category: Select one of the following categories to de ne the code area you want to investigate:

Production and Test Code

Production Code Only

Test Code Only

Exclude Indirect References: By default, the where-used result also contains indirect usages. Perform a selection in
order to minimize the number of results that relate to components like structures, and so on, or ABAP classes.

Note
When you search for a structure, for example, you will get:

Direct usages: DATA: speed TYPE zmg_speed.

Component usages: speed-value = 50. “value is a field of the searched structure

Other indirect usages: drive( speed ). “speed is typed with the searched structure

You can exclude the indirect matches by selecting the Exclude indirect usages checkbox.

Other Functionalities (Context Menu)


You can run an ABAP unit test or search for another usage from the context menu of a development object or its elements that
are displayed in the search results.

ABAP Editors
An ABAP editor enables you to create and edit ABAP repository objects using ABAP Development Tools (ADT) or the ABAP
Workbench.

In ADT, the following ABAP editor types are provided:

ABAP Source Code Editor to work with ABAP source code

ABAP Package Editor to work with non-ABAP source-based development objects

ABAP Dictionary Editors to develop or edit source-based or form-based ABAP Dictionary objects

Other editors, such as:

Messages and Message Classes

Transformation Editor

This is custom documentation. For more information, please visit the SAP Help Portal 29
6/18/2019

ABAP Source Code Editor


The ABAP source code editor is provided for developing or editing ABAP source code in Eclipse.

The ABAP source code editor corresponds to the ABAP editors in SAP GUI, such as the Program Editor (SE38), Function Builder
(SE37), and the source code-based Class Builder (SE24).

It is based on the Eclipse standard text editor and its functionalities have been broadened for programming ABAP source code.

You can open an editor, for example, by double-clicking a development object from the tree in the Project Explorer or from a
search result list. If no editor is integrated for ADT, the SAP GUI is opened.

Example
The following screenshot provides an overview of the UI elements that might be displayed in an ABAP source code editor:

Example of functionalities that are provided in a source code editor

Related Information
ABAP Code Templates
ABAP Development Objects
Editing ABAP Source Code
Accessing ABAP Keyword Documentation
Comparing Source Code
Keyboard Shortcuts for ABAP Development

This is custom documentation. For more information, please visit the SAP Help Portal 30
6/18/2019
List of Development Objects with an Eclipse-based Editor

ABAP Code Templates


ABAP code templates are structured descriptions of coding patterns that can be used in the ABAP source code.

Code templates help the developer to reduce the time spent on routine editing activities and improve consistency when writing
code. They allow for quick generation of commonly used ABAP code, as well as easy customization. ABAP code templates go
beyond the functionality of simple code snippets. They include direct integration with code completion, the ability to use
prede ned and custom variables, and the ability to improve style uniformity and validity of ABAP code. When using code
snippets, you basically get a shell that you can insert and edit manually.

ABAP Development Tools provides a number of prede ned code templates for ABAP. In addition, you can create your own
templates or edit existing ones. You can view, edit, or create new ABAP code templates using the ABAP Development Source
Code Editor Templates preferences page.

Templates are inserted into the ABAP source editor

Using code assist (Ctrl + Space)

Through Drag & Drop using the Templates view.

Example: LOOP AT statement


A common coding pattern in ABAP is to iterate over the rows of an internal table using a loop that reads the internal table in a
loop, where each row is assigned to a eld symbol. By using a template for this pattern, you can avoid typing in the complete
code for the loop. Invoking code assist after typing the word loop will present you with a list of possible loop templates. Selecting
this template will insert the code into the editor and position your cursor so that you can edit the details.

Inserted code in the ABAP Source Editor when using the loopAtAssign template

Related Information
Working with Source Code Templates
Templates and Variables

Templates and Variables


ABAP code templates can be as simple as a string, but, in general, they contain multiple combinations of string elements and
variables. The variables can insert elements in your code such as the current date and time up to the name of the system or the
logged on user. However, the most useful feature of variables in templates is the ability to create custom variables. These
custom variables act as placeholders in your template for which you provide the values when you insert the template.

Definition of the loopAtAssign template

This is custom documentation. For more information, please visit the SAP Help Portal 31
6/18/2019

General Template Variables


ABAP Development Tools come with the following set of variables:

Variable Description

cursor Speci es the cursor position after leaving template edit mode.

date Equates to the current date.

dollar Equates to the dollar symbol '$'.

line_selection Equates to content of all currently selected lines.

time Equates to the current time.

word_selection Equates to the content of the current text selection.

year Equates to the current year.

ABAP-Speci c Template Variables

Variable Description

enclosing_object Equates to the development object's name of the current editor,


such as name of a class or include.

enclosing_package Equates to the package, which the development object belongs to.

system_id Equates to the ABAP System ID.

user Equates to the name of the user that is currently logged in the
ABAP system.

Related Information
ABAP Code Templates

ABAP Package Editor


As of SAP NetWeaver AS for ABAP 7.52 SP00, you can create and edit ABAP packages in a form-based editor in ABAP
Development Tools (ADT).

Overview Subtap
The editor is a multi-page editor. It displays the following information in the Overview editor tab by default:

This is custom documentation. For more information, please visit the SAP Help Portal 32
6/18/2019

Example of an ABAP package opened in the form-based editor

1. The Toolbar contains actions, such as checking the package for all objects, opening packages in another ABAP project,
and sharing ADT links.

2. General Data displays the application component and the responsible system user.

Note
To edit the description or to display further general data, open the Properties view.

The package breadcrumb and application component are only provided if your ABAP system is connected with an SAP
HANA database.

3. Package Properties display package-relating information, such as a possible superpackage or package type.

4. Transport Properties contains transport-related information, such as transport layer, software component.

Other Editor Tabs


In addition, you can open the following editor tabs:

Use Accesses

This editor tab displays the package interface(s) that are used for the selected package, nested within the package hierarchy, or
visible in the selected package. Here you will also nd details about the severity for each package interface.

This is custom documentation. For more information, please visit the SAP Help Portal 33
6/18/2019

Example of an Use Accesses editor tab where the used package interfaces are listed

From the toolbar in the editor tab, you can add package interfaces at the beginning or end of the list. In addition, you can delete
entries from the list.

For each package interface, you can de ne the following severity values for the package check:

No Response

Error

Warning

Information

Obsolete

If you use the same package interfaces several times within the package hierarchy, the one with the supremely severity will then
be considered.

Package Interfaces

This editor tab displays all package interfaces which have been created for the selected package.

Example of a Package Interfaces editor tab where a package interface is listed

Note
You can only create new package interfaces from the context menu in the Project Explorer.

This is custom documentation. For more information, please visit the SAP Help Portal 34
6/18/2019

Subpackages

This editor tab lists all subpackages that are added beneath the main packages.

Example of an Subpackages editor tab where all subpackages are listed

Note
To create a new subpackage, choose New from the context menu of the relevant node in the Project Explorer.

To display the Package Hierarchy, check the node structure in the Project Explorer.

Related Information
ABAP Packages
The Package Builder and the ABAP Package Concept
Transport Layer

ABAP Dictionary Editors


The ABAP Dictionary editors are provided for developing or editing classic objects of ABAP Dictionary in ABAP Development
Tools (ADT).

The following table provides you an overview of the objects, which can be edited in ADT.

ABAP Dictionary Objects Availability of Editors Available since

Data elements SAP NetWeaver 7.5 SP00

SAP NetWeaver AS for ABAP 7.51 innovation


Domains
package SP01

Structures SAP NetWeaver 7.5 SP00

Table types

Database tables SAP NetWeaver AS for ABAP 7.52 SP00

This is custom documentation. For more information, please visit the SAP Help Portal 35
6/18/2019

ABAP Dictionary Objects Availability of Editors Available since

Views

Lock objects Application Server ABAP 7.53 SP00

Search helps

Source-based editors
The following source-based editors are provided in ADT:

Editor for structures

Editor for database tables

The programming language of the source code is similar to the DDL of ABAP CDS, where metadata is de ned using annotations
and technical properties (for example, elds or components) are de ned in SQL. The source code is generated when it is read
from the database. When you save or activate a structure or a database table, the source code is converted to the existing
persistence. The source code represents the metadata of the database table, but it is not a transport object itself.

Underneath the editor saves the de nition in ABAP Dictionary. This means that any individual formatting of the source code is
overwritten after saving.

Use the source-based editors to edit annotations (@EndUserText.label, @AbapCatalog.enhancementCategory) and


to de ne table elds.

The enhancement marker in the ruler before the define statement informs you that customizing includes or append
structures are included. Hover the marker, to open a popup that displays the enhancements. To navigate to an enhancement,
select the linked object name in the popup.

Database tables are persisted as metadata and represented as source code in the source-based editor. A database table
consists of its name and elds. One or more elds build the table key, which is mandatory. Database Table Annotations are used
to provide additional information for the entire table and individual elds.

Note
To edit technical settings (data class, size category, buffering, and storage type) or to create/edit indexes, open the
integrated SAP GUI.

Form-based editors
The following form-based editors are provided in ADT:

Editor for data elements

Editor for domains

Editor for lock objects

Other Classic ABAP Dictionary Objects


Currently, the remaining classic objects in ABAP Dictionary, such as database views, and so on, can be opened and edited in the
integrated SAP GUI.
This is custom documentation. For more information, please visit the SAP Help Portal 36
6/18/2019

Related Information
ABAP Source Code Editor
Syntax of ABAP Dictionary Objects
Working with Classic Objects in ABAP Dictionary
About the ABAP CDS Development User Guide
Working with Lock Objects

Code Templates for ABAP Dictionary


Objects
Code templates help you to reduce the time spent on routine editing activities and improve consistency when writing code.

Structures and Tables


Since SAP NetWeaver 7.5 SP00, you can add code templates to structures and tables in ABAP Development Tools (ADT).

As in the ABAP source code editor, you can add code snippets with speci c syntax like a development object, annotation, or
component at the current cursor position in the ABAP Dictionary editor. After adding, you need to adapt the placeholders with
variables, elements, lengths, decimals, and so on.

You can add code templates, for example, through code completion (Ctrl Space).

For structures, the following template types are provided:

currencyKey: Currency and its Currency Key

quantityUnit: Quantity and its unit

searchHelp: Search help attachment

foreignKey: Foreign key

appendStructure: Append structure

And so on

Note
For further details about the variables used in the corresponding code templates, see Related Information.

Related Information
Templates and Variables
ABAP Code Templates

Messages and Message Classes


You can create and group messages in message classes in order to inform the user about an error or a status, or to issue a
warning.

Messages

This is custom documentation. For more information, please visit the SAP Help Portal 37
6/18/2019
Messages notify a user about unexpected behavior, an error, a status, or a result of an action. An application will display the
message at runtime – for example, in a dialog box or in the status bar.

A message is speci ed by a unique 3-digit message number, a single-digit language key, text information, and a message class.

Messages are stored in the database table T100.

Message with a Long Text


Messages with a long text display additional information as to the cause and the potential solution of a problem.

Display of a message in a dialog window. The long text can be opened by clicking the question mark button

Message Classes
Message classes are created within an ABAP project at the ABAP package level. They are used to group messages within a
development object. So, you can combine related messages and reuse them in other programs. After creating a message class,
you add the individual message(s).

Example

The message with the number 045 contains the placeholder for a parameter. The placeholder "&" stands for the value of the
parameter "carrid". In ABAP programs, messages are called using the MESSAGE statement.

Example of a message class where you can add messages

This example of MESSAGE statement MESSAGE i045(SABAP_DOCU) WITH carrid contains the following elements:

Message type: "i"

Message number: "045"


This is custom documentation. For more information, please visit the SAP Help Portal 38
6/18/2019
Message class: "SABAP_DOCU"

Short text: "No authorization for airline carrier &"

Placeholder "&" which is de ned for the parameter "carrid"

Related Information
Message Types
Creating a Message Class
Adding a Message to a Message Class
Adding a Long Text to a Message
Filtering Messages in Message Classes
Previewing a Message Long Text
Opening a Message from the Source Code in the Message Class Editor
Opening in Another System
Sharing Links of Selected Messages
Searching the Usage (Where-used) of a Message

Message Types
A message type determines how program execution is handled after the message has been raised.

The following message types are available:

Message Type Message Behavior Message will be displayed in /


on:

I Information Once the user has con rmed the Dialog box
message, the program
continues immediately after the
MESSAGE statement.

S Status The program continues normally Status line of the next screen
after the MESSAGE statement.

W Warning Depending on the program Status line


context, an error dialog box
appears and the program stops
or terminates. Here the user has
to take action.

E Error Depending on the program Status line or dialog box


context, an error dialog box
appears and the program stops
or terminates. Here the user has
to take action.

A Termination The program terminates when Dialog box


the user has con rmed the
message. Control returns to the
next highest area menu.

This is custom documentation. For more information, please visit the SAP Help Portal 39
6/18/2019

Message Type Message Behavior Message will be displayed in /


on:

X Exit The program will terminate with -


a short dump if a runtime error
occurs. In this case no message
will be displayed. NOTE:
Message type X allows you to
force program termination. The
short dump contains the
message ID.

Related Information
Creating a Message Class
Adding a Message to a Message Class
Adding a Long Text to a Message
Filtering Messages in Message Classes
Previewing a Message Long Text
Opening a Message from the Source Code in the Message Class Editor
Opening in Another System
Sharing Links of Selected Messages
Searching the Usage (Where-used) of a Message

Transformation Editor
The kernel of the SAP Netweaver Application Server contains processors for transformations for XML.

The development objects created there are called simple transformations (ST) and XSL transformations. They are, stored in
the Repository, and linked to the Transport Organizer. ST is an SAP programming language used for describing transformations
between ABAP data and XML formats. XSL transformations transform XML to XML.

The Transformation Editor is a tool for de ning transformations for XML that are later executed on the application server. They
are displayed and edited in XML format. As of SAP NetWeaver 7.5 SP00, you can, for example, create and edit transformations
in their own source-based XML editor.

You can use the Transformation Editor to:

Create transformation programs for de ning transformation rules

Edit source code, for example, to map structures or data elements onto XML documents

Check and activate transformation programs

Test transformations

Create breakpoints for debugging simple transformations (enabled for at least 747 kernel version)

Related Information
Working with Transformations for XML
Transformation for XML (ABAP Keyword Documentation)
Transformation Editor

RND Parser
This is custom documentation. For more information, please visit the SAP Help Portal 40
6/18/2019
Recursive Non-Descent (RND) parsing is used for obtaining a descriptively speci ed parser for the programming language
ABAP.

In the context of ABAP source code development, the RND parser is used for syntax coloring and code completion. To this end,
the de nition of the ABAP language is loaded from the ABAP back end.

To de ne the RND parser, open the context menu from an ABAP project and choose Properties. From the Properties page,
navigate to the ABAP Development Editors Source Code Editors RND Parser properties page.

From here, you can set the following options:

Option Description

Open folder This button is used by kernel developers who want to replace the existing .pad le
directly. After you have restarted the client, the syntax coloring of all opened editors is
performed.

 Note
A restart itself is not required.

Reload from backend This button is used whenever new ABAP language features are available, such as ABAP
keywords and so on, or if the syntax coloring has changed. In this case, you need to reload
the con guration from the back end.

Reload from client This button is only used in the context of kernel development.

ABAP Type Hierarchy View


The ABAP Type Hierarchy view displays the inheritance tree of a selected ABAP class or interface.

In the case of classes, it lists the superclass(es) and subclasses of a given class that are located in the relevant ABAP backend
system (which is associated with the chosen ABAP project).

Related Information
Viewing the ABAP Type Hierarchy

Activation
A development object (repository object) can exist as an inactive and an active version. When you create a new development
object, it is always available rst as an inactive version.

In its inactive form, the development object is saved as a database object and is thus part of the ABAP Repository of a system.
With the activation process you create an active version of a development object, thus also a corresponding runtime object,
from an existing inactive version. Successful activation requires that the development object in question is free of syntax errors.
Hence, when you trigger an activation process, a syntax check is performed for the entire development object before a runtime
object is generated. An active version of development object is therefore always used for generating a runtime object.

Advantages of the Activation Concept


The inactive versions of development objects provide the developers with a separate local view of the repository and they form
the basis for a "local runtime system". Changes to development objects can be tested within this local system without

This is custom documentation. For more information, please visit the SAP Help Portal 41
6/18/2019
disturbing the wider development environment.

The main advantage of this is that the development process becomes seamless. For example, it makes it possible for you to
change the interface of a function module without the changes immediately becoming visible in programs that call it. The
changes are only visible system-wide once the development object has been activated.

Activation Process in ABAP Development Tools


When working with ABAP projects, you can apply the activation to:

An individual development object of a project

A multiple number of development objects of a project.

All inactive objects that belong to an ABAP project are listed in the Worklist of Inactive Objects. This worklist allows you to
create a selection of objects you wish to activate in one single step.

The activation status of development objects affects the following operations and activities:

Operation Description

Create Creates an inactive version that is stored in the database of the


ABAP system (ABAP Repository). Adds the development object to
the worklist of inactive objects of your ABAP project.

Save Saves the development object as an inactive version without a


syntax check.

Activate Creates an active version from the existing inactive version. The
active version is used to generate the runtime version of the
development object.

Delete Deletes active and inactive versions.

Syntax check Checks the current editor content.

Run / Execute Executes the runtime object (active version). A runtime object can
only be generated from a syntactically correct active version.

Transport Releasing of transport requests is only used for active objects. You
cannot release a transport request until all objects included have
been activated.

Related Information
Activating Development Objects

Unit Testing in ABAP


ABAP Unit is a unit-testing framework that is integrated into the ABAP language.

In unit testing, a developer ensures that the correct behavior of the smallest testable units – such as the methods of classes –
of his or her code is veri able. Unit testing makes it easier to verify quality, to refactor code, to perform regression testing, and
to write tests according to the test-driven development model.

The most important features for writing ABAP unit tests are the following:

ABAP Unit tests are written in ABAP. You do not have to learn an additional scripting language for testing.
This is custom documentation. For more information, please visit the SAP Help Portal 42
6/18/2019
You write tests with the standard ABAP Development Tools (ADT). You do not have to use additional tools for developing
tests.

ABAP Unit tests are transported with the ABAP repository objects that they test. They are therefore available in all of
the systems of your development and testing landscape.

The most important features of ABAP Unit for running and evaluating unit tests are these:

You can run ABAP Unit tests as you develop code. You can launch tests, for example, directly from the ABAP editor in the
ADT.

Code coverage measurement is integrated into ABAP Unit testing, so that you can verify the thoroughness of your unit
testing and easily nd untested code.

ABAP Unit testing can be automated and is part of mass quality testing.

Test results are displayed in the ABAP Unit view for easy evaluation and analysis.

ABAP Unit test methods have no parameters. No special knowledge or test framework is required to run ABAP tests;
they can be run by anyone, and not just by the developer.

ABAP Unit tests cannot be executed in productively used ABAP systems.

Related Information
Writing ABAP Unit Tests
Launching ABAP Unit Tests
Evaluating ABAP Unit Test Results
Checking Quality of ABAP Code with ATC

ATC Quality Checking


The ABAP Test Cockpit (ATC) is the main ABAP tool for quality assurance.

Using the ATC, you can check your ABAP programs for many types of problems, including syntax errors, potential problems in
performance, sub-optimal or potentially faulty programming, adherence to standards, errors in ABAP Unit testing, and many
others.

Here are the main features of the ATC for developers working in the ABAP Development Tools (ADT):

Local quality check of your ABAP programs directly in your development environment, starting from Project Explorer or
the ABAP source editor

Display of ATC ndings, nding-speci c details, and help directly in the ATC Problems view

Noti cation of high-priority ATC ndings from central ATC quality checks through an ABAP feed

Display of complete central ATC results originating from mass regression check runs in your quality system in a speci c
ATC Result Browser view in ADT

Tool integration for handling exemptions for ATC ndings.

More Details on the ATC


The ATC reports problems as ndings, messages that describe the problem. Findings have a priority, whereby priority 1 and 2
usually indicate a serious problem that needs to be corrected quickly. All ndings offer context-sensitive help, which includes
details of each nding that may not appear in the nding messages themselves.

In the ADT, you can use the ATC to check your programs as you work, directly from the Project Explorer or the ABAP Editor. In
this case, the ndings are for your own use.

This is custom documentation. For more information, please visit the SAP Help Portal 43
6/18/2019
Your quality manager can use the ATC to run central "official" quality checks, usually in your integration or consolidation system.
You can see your priority 1 and 2 ATC ndings from the active central ATC runs with an ABAP feed.

You usually need to clear central ATC ndings by correcting your program with the ADT in your development system, and then
transporting the changes to the integration and consolidation systems, or wherever central ATC testing takes place. Should you
not be able to clear an "official" ATC nding, you can request an ATC exemption that has to be approved by the quality manager.
An exemption suppresses an ATC nding either temporarily or permanently.

The ATC Result Browser is provided in ADT for requesting exemptions and for working with the complete set of ATC ndings in
central ATC runs. Quality managers can set up the ATC so that ndings from central runs are replicated to development
systems. The ATC can also be set up to let you request central exemptions from the ATC Result Browser in your development
system.

Related Information
Checking Quality of ABAP Code with ATC
ABAP Testing and Analysis Community

ABAP Debugging in ADT


The Debug perspective allows you to manage the debugging of ABAP development objects.

When ABAP encounters an active breakpoint, ABAP Development Tools (ADT) opens the Debug perspective in the IDE.
Depending on how you have adjusted the IDE, the Debug perspective may automatically start, or you may be asked to con rm
the start.

This section gives you a quick orientation to the Debug perspective, so that you know what you are seeing.

The navigation toolbar on top of the Debug perspective lets you control execution in the debugger, stepping through
your code, resuming or canceling execution.

The Debug view also shows you the active call stack. You can click on entries in the call stack to open the code at that
level of the stack. You can then inspect active variables, set breakpoints, or edit your code.

Variables and Breakpoints on different tabs.

This is custom documentation. For more information, please visit the SAP Help Portal 44
6/18/2019

A double-click on a variable in the source code editor shows you the value and attributes of the variable in the Variables
view.

In the Breakpoints view, you can see the list of active and inactive breakpoints.

Double-click on a breakpoint to jump to its locations in the source code. Mark or unmark a breakpoint to activate or
deactivate it. Any such changes are effective immediately in the current debugging session.

The editor displays the code that you are debugging. You can follow debugger execution in the code, show the values of
variables by hovering with the cursor over them, or open them in the Variables view by clicking on them.

You can correct mistakes in your coding directly in the editor; there's no need to switch to the ABAP perspective to edit
your code.

Tip
SAP recommends to restart the debug session after activating changes in the currently executed code. To do so,
terminate or disconnect the debugger and then restart your program.

The ABAP Internal Table view opens at the bottom of the Debug perspective. Double-clicking on an internal table opens
the table not only in the Variables view but also in the ABAP Internal Table view. You can type an internal table name
directly into the view or nd a table in the code that you are debugging.

The ABAP Internal Table view offers you some of the same comfort as the Internal Tables tool of the ABAP Debugger in
SAP GUI. Here and there, you can see and change the content of the internal table, re-arrange table columns for better
display using drag-and-drop, and so on.

Related Information
Comparing ABAP Debugging in SAP GUI and ABAP Development Tools
Watchpoints
Breakpoints in the Debugger - Characteristics
Debugging ABAP Code

Breakpoints in the Debugger -


Characteristics
Breakpoints in the ABAP Development Tools (ADT) are by default external user breakpoints. They are valid:

In your current ABAP Project

For programs running under your ABAP user


This is custom documentation. For more information, please visit the SAP Help Portal 45
6/18/2019
On all of the application servers of the back end system.

These breakpoint attributes mean that you can use breakpoints to debug your ABAP code when you start a program and run it
interactively.

You can also use breakpoints to capture in the debugger a program that has been started asynchronously and without your
direct action. You do not necessarily have to run your code interactively from the ADT to debug it. A program that you want to
capture in the debugger does not even have to be started from your current computer.

For example, you can set a breakpoint in the IDE in ABAP code that handles an HTTP or RFC request. If you send an HTTP
request from an Internet browser to the back end system, then the IDE will open the code in the debugger when the request
processing reaches your breakpoint. It is best to have the code with the breakpoint open in the IDE editor. But the breakpoint is
respected even if you do not have the program with the breakpoint open in the editor.

You can of course also start an ABAP program to debug interactively from the IDE. Even if you run an ABAP PROGRAM that
executes in the embedded SAP GUI, the IDE Debug perspective opens when your breakpoint is reached.

Dynamic and Static Breakpoints


You can set a static breakpoint at a particular line of code. The breakpoint sticks to the code line; if you add or delete code above
the line, then the breakpoint relocates along with the code line.

You can also set dynamic breakpoints. These are breakpoints that are triggered when the program that you are running reaches
a particular ABAP statement or exception class.

Dynamic breakpoints take effect for any program that runs under your user. But you can limit their scope to the scope of the
debugger debugger in order to avoid stopping at all different kind of programs that are executed along the way.

Related Information
Debugging ABAP Code
Setting and Managing Breakpoints
Comparing ABAP Debugging in SAP GUI and ABAP Development Tools

Watchpoints
A watchpoint is a conditional breakpoint that is only de ned in the ABAP Debugger during a running debug session. It is one of
the runtime utilities provided to stop and debug ABAP programs. When debugging ABAP code, you can use watchpoints to track
the value of individual ABAP variables. The ABAP debugger stops as soon as the value of a watched variable has changed.
Watchpoints help ABAP developers monitor the contents of speci ed variables and the change of their values during runtime
processing.

Watchpoint features are as follows:

Watchpoints can be created while ABAP Debugger is on and are removed automatically when that debug session is
terminated.

Logical conditions may be speci ed for watchpoints. A watchpoint is provided with a relational operator and comparison
eld to specify the conditions for interrupting.

Like Breakpoints, watchpoints may be deleted as needed.

Once a watchpoint is reached, it is indicated on the program statement and a corresponding alert is given.

Note

This is custom documentation. For more information, please visit the SAP Help Portal 46
6/18/2019
Because a watchpoint creates a clone of the speci ed object, it can negatively impact performance and memory, especially
with large size data objects like internal tables. Watchpoints are ideal for variables of less size that are active during runtime,
but only for a short duration.

Related Information
Using Watchpoints
Conditions for Watchpoints

Debugging in Non-Exclusive Mode in ADT


Beyond this standard debug mode, you as an ABAP developer might experience a “restricted” debug mode during ABAP
debugging. This restricted mode is called non-exclusive debugging.

The non-exclusive debugging mode that is known from the SAP GUI debugger is also available for the ADT debugger (for NW
7.68 / SAP NetWeaver AS for ABAP 7.51 innovation package or higher).

What is Exclusive and Non-Exclusive Debugging?


By default, every new debug session runs in exclusive mode. Exclusive means that the application that is being analyzed
exclusively allocates one work process on the ABAP server for a debug session. The allocated work process cannot then be used
for other sessions. To ensure that the server is not completely blocked, there is a limit to how many exclusive debug sessions
are possible at the same time. By default, the limit is half the number of available dialog work processes. On a server with 50
dialog work processes for example, up to 25 of these can be used for exclusive debugging at the same time.

Tip
To check the maximum number of exclusive debug sessions that can be used in parallel in your ABAP system, call transaction
RZ11 and check pro le parameter rdisp/wpdbug_max_no. By default, the value for this should be half the number of
dialog work processes: (max(1, $(rdisp/wp_no_dia)/2)).

Remember
Once the limit is reached, older versions of ADT are not able to start new debug sessions at all. The current version of the
ADT can provide non-exclusive debug sessions in this kind of scenario however. Since non-exclusive debug sessions do not
require an exclusive server work process, their number is theoretically unlimited.

In non-exclusive debug mode, the system requests a roll-in/roll-out in the application after each debugger interaction.
Therefore, every debug step performs an implicit database commit. Due to the implicit database commit, you must consider the
following effects when debugging in non-exclusive mode:

Since implicit commits are changing operations caused by the debugger, only users with debug-change-authorization can
use the non-exclusive debug mode.

Datasets that are usually committed together might be committed in separate steps. This can cause data
inconsistencies at database level. Rollbacks have no effect because intermediate results have already been committed
by previous stepping.

Note
For this reason, the non-exclusive mode is not enabled in productive systems. If you experience non-exclusive debug
mode in such systems, ABAP server you are using might be con gured incorrectly.

It is not possible to step through SELECT and ENDSELECT loops because the database cursor needs to be closed when
using an implicit database COMMIT statement. In cases like this, program execution is terminated by a
DBIF_RSQL_INVALID_CURSOR short dump.

It is not possible to debug Open Cursor or Fetch commands, since the cursor is closed after implicit database
commit.
This is custom documentation. For more information, please visit the SAP Help Portal 47
6/18/2019

Non-Exclusive Debugging in ADT


The ABAP debugger in ADT always tries to open an exclusive debug session. The number of exclusive debugging work processes
is limited however, as otherwise the application server would not respond at all (in case all work processes were allocated for
exclusive debugging).

When you start to debug in ADT, and your session is non-exclusive, you will receive a noti cation in the form of a yer (see gure
below). You can ignore this noti cation however, and just continue working. The yer will disappear automatically after a few
seconds.

Notification in ADT appears if debugger session is non-exclusive

In addition, the description text <Non-exclusive mode: each step results in DB commit> is displayed for the corresponding
debug session in the Debug view.

Text that informs you about the non-exclusive debug mode in the Debug view
The ABAP debugger in ADT automatically tries to re-allocate an exclusive debugging session after every single debugging action
(such as after a single step). If this attempt is successful, the information text above is no longer displayed.

You will be informed through a noti cation yer in some other situations in the context of non-exclusive debug mode (and in the
case of missing debug authorization):

Non-exclusive debug mode without debugging change privilege for the current user

The message "Missing authorization for non-exclusive debugging" is issued

In a productive system, all exclusive debugging work processes are occupied

The message "Non-exclusive debugging in productive systems not possible" is issued

This is custom documentation. For more information, please visit the SAP Help Portal 48
6/18/2019

User has no debugging privileges at all

The message "Missing authorization" is issued

Comparing ABAP Debugging in SAP GUI and


ABAP Development Tools
The ABAP Debugger in ABAP Development Tools can satisfy most of your debugging requirements. And it adds comfort and
features to the ABAP debugging functionality that you may know from the New ABAP Debugger in the back end ABAP System.

But the ABAP Debugger in the ADT does not implement all of the tools that are available in the ABAP Debugger in the ABAP
back end system. This section compares the feature sets of the debuggers and highlights the special purposes for which you
may want to switch from ABAP debugging in the ADT to ABAP debugging directly in the back end ABAP System.

Debugger Use Case Capabilities in Comparison


Legend: Use case optimally ful lled Use case ful lled better in other debugger Use case not covered in this debugger

Use Case ABAP Debugger in ABAP Development ABAP Debugger in Back End System
Tools

Setting breakpoints By default ABAP breakpoints in ABAP


Development Tools are external user
breakpoints, valid across back end servers
and valid for RFC and HTTP requests to the
ABAP back end. The ADT supports both
static (line of code) and dynamic
breakpoints.

Setting watchpoints and conditional


breakpoints

Stepping through code

Activating layer-based debugging Use the new ABAP debugger in the back
end system to de ne software layers and
activate layer-based debugging. ADT Step
Filters can be used only with Java coding.

Displaying values of variables

Analyzing internal tables

Displaying structures Display of structures by eld is


supported, but the capabilities for
customizing the data display of the
Structure tool in the back end debugger are
not offered. Use the back end debugger if
you need to apply a layout to the display of
a structure.

This is custom documentation. For more information, please visit the SAP Help Portal 49
6/18/2019

Use Case ABAP Debugger in ABAP Development ABAP Debugger in Back End System
Tools

Displaying objects Structured display of object contents is


supported, but the capabilities for
customizing the data display of the Objects
tool in the back end debugger are not
offered. Use the back end debugger if you
need to apply a layout to the display of a
structure.

Comparing data objects Use the diff tool in the back end
debugger if you need to compare the values
of complex data objects.

Analyzing memory use Use the new ABAP debugger in the back
end system if you need to examine the
memory use of objects in the debugger.

Debugger scripting Use the new ABAP debugger in the back


end system if you need to automate
debugging tasks with debugger scripts.
JavaScript breakpoint scripts in cannot be
used in ABAP coding.

Activating traces After You may switch on/off the ABAP


Pro ler at de ned breakpoints when
debugging your program. More on this:
Starting and Stopping the ABAP Pro ler in
the Debugger

Start the garbage collector

Perform a database commit or rollback

Change debugger settings The ADT supports the most important


ABAP debugger settings.

Data Preview
Data Preview is a tool in the ABAP Development Tools, similar to the Data Browser tool (SE16) in the ABAP Workbench.

It retrieves, sorts, and lters records available in the ABAP Data Dictionary tables, Views, external Views, and ABAP DDL
sources. Data Preview constructs and executes ABAP SQL queries to perform the operations listed below:

Provide a result-set size in the Data Preview tool, which represents the records that the tool can retrieve from ABAP
Dictionary. The default value is 100 and the maximum value is 5000.

Con gure columns to view.

Sort records in ascending or descending order.

Set lter criteria. You can set lter criteria for multiple columns.

Remove lters applied to a column or delete a lter.

Set local lters to view speci c data. Local lters lter the data from the result-set fetched from the ABAP Dictionary.

View Data preview logs. These logs display SQL queries generated while working with several options in data preview
tool.

Set Distinct Value option for a column. This option allows you to view unique values in tabular format.

Save records on local system.

This is custom documentation. For more information, please visit the SAP Help Portal 50
6/18/2019

Related Information
Saving Result Set
Viewing Distinct Column Values
Viewing Logs
Adding or Removing Filters
Con guring Columns
Setting Result-Set Size
Accessing Data Preview

Dynamic Logpoints in ABAP


Logpoints indicate to the ABAP runtime that an ABAP program is to execute a custom action at a certain point within the
program.

When the logpoint is reached during program execution, the logpoint is evaluated. The logpoint evaluation rst checks the
condition. If the condition is ful lled, a log entry is written according to the speci ed logpoint parameters.

You can de ne logpoints by writing the LOG-POINT statement in an ABAP program (static logpoint) or by setting a dynamic
logpoint at a certain location in the source code, without having to modify your source code.

Dynamic logpoints have been introduced in order to support logging in quality or productive systems where the source code
cannot be changed. For example, you have found a location in the source code for which you need additional monitoring details,
or you may be facing a poorly localizable error situation that happens from time to time in a batch job and cannot be debugged.

You can set a dynamic logpoint...


Like a breakpoint, in the source code editor

At any source code line that contains an executable ABAP statement.

You can use dynamic logpoints, for example…


To store variable values in the context of a de ned ABAP program line if a certain condition is ful lled.

To analyze execution of an individual ABAP SQL statement that you found in SQL Monitor in the context where a certain
condition is ful lled.

To view the call stack for a speci c ABAP program line where a certain condition is ful lled.

To activate SQL tracing for an individual ABAP SQL statement in order to be able to analyze performance issues in detail.

To activate table buffer tracing for memory consumption analysis at a dedicated ABAP SQL statement.

For dynamic logpoints, there are two different statuses available:


Active logpoints - When an active logpoint is reached during program execution, the logpoint is evaluated.

Inactive logpoints - Inactive logpoints are ignored during program execution.

Related Information
Using Dynamic Logpoints
Processing Logpoints at Runtime

Processing Logpoints at Runtime


This is custom documentation. For more information, please visit the SAP Help Portal 51
6/18/2019
You can set dynamic logpoints at any source code line that contains an executable ABAP statement. Along with the dynamic
logpoint de nition, you can specify logpoint properties such as condition, key de nition, and eld values.

The key de nition and the eld values in dynamic logpoints are quite similar to the SUBKEY and FIELDS addition of the LOG-
POINT ABAP statement (static logpoints). When an active dynamic logpoint has been set at a certain ABAP source code
position, the ABAP runtime evaluates the logpoint whenever the source line is processed. Logpoint evaluation always takes
place before execution of the rst ABAP statement in that line.

During evaluation of a logpoint, the ABAP runtime rst evaluates the logpoint condition. If the condition is not ful lled (value =
false), the ABAP runtime skips further evaluation of the logpoint and continues to execute the ABAP statement. If the logpoint
condition is true, then - as a log event - a log entry is written.

Much like with static logpoints, log entries are aggregated by the values found for the key de nition.

For example, if the key de nition contains the variable SY-UNAME, there will be only one log entry for each user as a result,
regardless of how often the individual user requests ran through the logpoint’s source code location.

Aggregated log entries contain a counter, which represents the overall number of log events for the particular logpoint.

During a log event, the content of the variables speci ed for eld values are logged. Aggregated log entries always contain the
variable content of the last log event.

Related Information
Dynamic Logpoints in ABAP

Enhancement with Source Code Plug-ins


Your ABAP system contains source code-based repository objects of the standard SAP software. These objects can be
enhanced by implementing source code plug-ins at prede ned positions referred to as enhancement options. Using these
options you change the behavior of a repository object without editing the object itself.

Note
Only the source code plug-ins are covered here. Other enhancement technologies like BAdIs, class enhancements, or
function group enhancements are currently not supported in ADT.

In ABAP Development Tools, the enhancement implementations are displayed in the Project Explorer. Enhancement
implementations of the source code plug-in technology can be edited in ADT since AS ABAP 7.53. In earlier releases, the source
code plug-ins can be opened in the SAP GUI.

Example of an enhancement folder display in the Project Explorer

In SAP NetWeaver 7.4 SP5 as well as SAP NetWeaver 7.3 EHP1 SP11 or higher, the following ABAP repository objects and
subobjects can be displayed in ADT:

This is custom documentation. For more information, please visit the SAP Help Portal 52
6/18/2019
Classes

Class includes

Programs

Includes

Function group main includes

Function group includes

Function modules

Type groups

If the source code is enhanced, this is indicated by the source code plug-in marker . The source code plug-ins are not directly
displayed in the original source code.

The marker is shown for the following enhancement options:

Explicit enhancement options (introduced by the ABAP statements ENHANCEMENT-POINT or ENHANCEMENT-


SECTION)

Implicit enhancement options(for example at the beginning or the end of a method implementation)

Related Information
Displaying Source Code Plug-ins
Editing Source Code Plug-Ins

Feed Reader View


Use the Feeds view to display and read feeds from ABAP repository or other native feeds. You can also add or delete a feed.

Once you have subscribed to a feed, the ABAP Developer Tools refresh the feed periodically. You can change the default refresh
interval when you subscribe to the feed.

Feeds are updated automatically only if you have opened an ABAP project. Otherwise, the feeds are dormant. Dormant feeds
are shown in gray type in the Feed Reader view.

In addition, you can also subscribe to any native feed that is published in Atom or RSS format. In this case however, you only
have to specify the URL that you get from the feed provider.

Related Information
Getting Feeds

Outline View
The Outline view displays the internal structure of an ABAP class, interface, or program that is currently opened in the ABAP
source code editor.

In a tree, structuring elements like attributes, data types, methods, and so on are displayed in the order of their occurrence in
the open source code-based development object.

This is custom documentation. For more information, please visit the SAP Help Portal 53
6/18/2019

Display of an internal structure of an ABAP class in the Outline view

When you select one of the structural elements, the cursor navigates to its relevant source code position. In addition, you can
also lter the display in order to hide:

All non-public members of ABAP classes

All members that are not methods, such as attributes, data types, and events

Synchronized navigation from the Outline view to an element

The Outline view is opened in the ABAP perspective by default.

Related Information
Tools for ABAP Development
Advantages of Using the Outline View
Icons in the Outline View
Viewing the Outline
Using Quick Views

This is custom documentation. For more information, please visit the SAP Help Portal 54
6/18/2019
Viewing the ABAP Type Hierarchy
Getting Orientation in the Source Code Using Breadcrumbs

Advantages of Using the Outline View


The Outline view supports you by providing the following advantages:

Particularly for development objects with a more complex structure, the outline provides a good overview of the internal
object structure. Here, you can also avail of the lter functions with which you can display or hide certain elements in
order to achieve a better overview.

The outline is synchronized with the contents of the source editor. Therefore, when you select an element in the Outline
view, you can navigate quickly to the corresponding position in the ABAP source code.

Note
The outline is synchronized with the contents of the editor, even if the latter are not yet saved. If you add a new
attribute in the class editor, for example, it is immediately shown in the Outline view (without the editor contents
having been saved beforehand).

Related Information
Tools for ABAP Development
Icons in the Outline View
Viewing the Outline
Using Quick Views
Viewing the ABAP Type Hierarchy
Getting Orientation in the Source Code Using Breadcrumbs

Icons in the Outline View


In the Outline view, the following icons are provided:

Main Icons

Icon Description

ABAP class

ABAP interface

Method (public)

Method (protected)

Method (private)

Method (visibility unknown)

Attribute (public)

Attribute (protected)

Attribute (private)

Type (public)

This is custom documentation. For more information, please visit the SAP Help Portal 55
6/18/2019

Icon Description

Type (protected)

Type (private)

Event (public)

Event (protected)

Event (private)

Event handler method (public)

Event handler method (protected)

Event handler method (private)

Friend

ABAP program

ABAP include

Subroutine

Global variable

Type

Macro

Function group

Function module

Type group

Test seam for ABAP programs

Decorators

Decorator Description

Static member

Final member

Abstract member

Rede nition

Test class or test method

Read-only

Constant

Constructor

Receiving event

Sending event

Related Information
This is custom documentation. For more information, please visit the SAP Help Portal 56
6/18/2019
Outline View
Advantages of Using the Outline View
Tools for ABAP Development
Viewing the Outline
Using Quick Views
Viewing the ABAP Type Hierarchy
Getting Orientation in the Source Code Using Breadcrumbs

Quick Assists
Quick assists help you to change ABAP source code in a semi-automated way.

ABAP Development Tools (ADT) provides a set of quick assists that can be divided into the following categories:

ABAP Refactorings for changing the structure of source code without changing its behavior

ABAP Quick Fixes for resolving errors and warnings

Various quick assists are neither refactorings nor quick xes. These are, for example, generating constructors or creation of text
symbols.

All supported transformations are available through the quick x menu that can be triggered from the Source menu or through
the Ctrl 1 shortcut. As an alternative the Quick Assist view provides a permanent view on the available quick assists.

The proposals are context-sensitive. This means that, depending on your current source code position, appropriate proposals
are provided.

Many of the quick assist options can be triggered on identi ers from the following types:

Elements describe all named parts of the ABAP source code.

Variables are named values that stand for a storage location.

Members represent the data and behavior of an ABAP class.

Locals are internal data elds within a class that can have any data type.

And so on

This is custom documentation. For more information, please visit the SAP Help Portal 57
6/18/2019

Positions in the ABAP source code where a refactoring option can be executed

Related Information
Quick Assist View
Quick Assist Overview
Refactoring ABAP Source Code
Applying ABAP Quick Fixes
Applying Other Quick Assists

ABAP Refactorings
Refactoring is the structural improvement of source code. The functional behavior of source code is retained.

Your wish to minimize the effort required for error analysis and the need to improve the following items may prompt you to
refactor source code:

readability

understandability

maintenance

enhancement possibilities

Good support for automized refactoring of source code is a key part of test-driven development (TDD) and other advanced
programming techniques. To this end, ABAP Development Tools (ADT) provides various refactoring functionalities.

Related Information

This is custom documentation. For more information, please visit the SAP Help Portal 58
6/18/2019
Quick Assists
Quick Assist Overview
Refactoring ABAP Source Code

Extracting Constants from Literals


In the source code editor of a development object, you can substitute literals with constants. This enables you to replace a
speci c, unchanging value that is used several times and to improve the readability of ABAP source code. However, literals
should only be extracted if the abstraction results in a compliant solution.

Note
Literals are separated into:

Textual literals: character, string, string template

Numeric literals: integer (> i), oat (> dec oat 16)

Example

In the following examples, literals can be replaced with a constant:

The number 18 with the constant "voting_age"

The message 'Hello World' with a generated constant "hello_world" wherever it is used in the source code of a certain
development object

The following examples display the extraction of a certain literal in a constant:

Literal Type Example Constant Name Constant Type Constant Value

Character 'Hello World !' hello_world String 'Hello World !'

String 'Hello World !' hello_world String 'Hello World !'

String Template |Hello { name }!| hello String 'Hello ' or '!'

Integer 255 _255 i 255

Float '3.141529' _3141529 dec oat16 '3.141529'

Functionalities
You can extract constants from a literal using the following refactoring functions:

Extract a local constant from a literal that is used only in the current method. The new constant de nition is created in
the current method. Here all occurrences of the literal are replaced. Extract a member constant from a literal to de ne it
in the private section of the current ABAP class. Here all occurrences of the literal are replaced.

Use an existing constant with the same value as the literal.

Results
When you extract a constant in the source code of a development object, the de nition CONSTANTS 'your name' TYPE
<type> VALUE <value> is added. Also, in the development object the corresponding literal is replaced with the constant.

This is custom documentation. For more information, please visit the SAP Help Portal 59
6/18/2019
The name of the generated constant is derived from the literal and automatically generated. These are the rules for the
creation of the constant name:

Spaces are replaced by underscores.

Invalid characters (for example &, %, blanks, and so on) are eliminated.

The maximum length is 30 characters.

If the literal starts with a number, an underscore pre x is set.

Finally a pragma (##NO_TEXT) is added in the declaration. Therefore, no translation warnings will be issued by the ABAP
Compiler syntax check.)

Limitations
The following limitations exist for extracting constants from literals:

Member constants are always created as private members.

If the same literal is already used in other classes or interfaces, these instances are not replaced.

Expressions cannot be extracted to a constant, because in ABAP they are allowed in constant de nitions.

This option is provided only within ABAP classes and interfaces. Global constants in reports and ABAP function groups
are currently not supported.

Related Information
Extracting Variables from Literals
Quick Assists
Extracting Constants
Extracting and Converting Variables
Changing Visibility of Members

Extracting Variables from Literals


In the source code editor of a development object, you can substitute literals with variables. This enables you to replace a
speci c, unchanging value that is used several times or to improve the readability of ABAP source code. However, literals should
only be extracted if the abstraction results in a compliant solution.

Note
Literals are separated into:

Textual literals: character, string, string template

Numeric literals: integer (> i), oat (> dec oat 16)

Example

In the following examples, literals can be replaced with a variable:

The number 50 with the constant "max_speed"

The message 'Hello Planet' with a generated constant "hello_planet" wherever it is used in the source code of a certain
development object

The following examples display the extraction of a certain literal in a variable:

This is custom documentation. For more information, please visit the SAP Help Portal 60
6/18/2019

Literal Type Example Constant Name Constant Type Constant Value

Character 'Hello Planet !' hello_planet String Float

'Hello Planet !' 'Hello Planet !' hello_planet String 'Hello Planet !'

String Template |Hello { name }!| hello String 'Hello ' or '!'

Integer 255 _255 i 255

Float '3.141529' _3141529 dec oat16 '3.141529'

Limitations
The following limitations apply when extracting variables from literals:

Member variables are always created as private members.

If the same literal is already used in other classes or interfaces, these instances are not replaced.

Currently, expressions cannot be extracted to a variable.

This option is provided only within ABAP classes and interfaces. Global variables in reports and ABAP function groups are
currently not supported.

Functionalities
You can extract variables from a literal using the following refactoring functions:

Extract a local variable from a literal that is used only in the current method. The new variable de nition is created in the
current method. Here all occurrences of the literal are replaced.

Extract an attribute from a literal to de ne it in the private section of the current ABAP class. Here all occurrences of the
literal are replaced. Attributes are always created as private members.

Results
When you extract a variable in the source code of a development object, the de nition DATA 'your name' TYPE <type> VALUE
<value> is added. Also, in the development object the corresponding literal is replaced with the variable.

The name of the generated variable is derived from the literal and automatically generated. The following limitations exist for
the creation of the variable name:

Spaces are replaced by underscores.

Invalid characters (for example &, %, blanks, etc.) are eliminated.

The maximum length is 30 characters.

If the literal starts with a number, an underscore pre x is set.

Finally, a pragma (##NO_TEXT) is added in the declaration. Therefore, no translation warnings will be issued by the ABAP
Compiler syntax check.

Related Information
Extracting Constants from Literals
Quick Assists
Extracting Constants
Extracting and Converting Variables

This is custom documentation. For more information, please visit the SAP Help Portal 61
6/18/2019
Changing Visibility of Members

ABAP Quick Fixes


Quick xes enable you to resolve errors and warnings in the ABAP source code through the corresponding functionality that is
provided in the Quick Fix popup.

Quick Fixes can be used to make typing much faster.

Related Information
Applying ABAP Quick Fixes
Quick Assists
ABAP Refactorings
Quick Assist Overview

Quick Assist View


The Quick Assist view supports you when executing refactorings and ABAP quick xes, or when generating ABAP source code.

It interacts directly with the ABAP source code editor. At every position where a quick assist can be applied, the content of the
Quick Assist view is therefore automatically updated according to the selection made.

As an alternative to the Quick Fix (Ctrl 1) menu, the Quick Assist view (Ctrl Shift 1) provides a permanent view of the
available quick assists.

The layout of the Quick Assist view is divided into the following areas:

Proposal overview. This provides a list of possible quick assists at the current cursor position in the source code editor.

Description per proposal This provides details about the operating steps of the quick assist that you can do next.

Note
The display depends on the entry that you have selected in the Proposal overview.

Previous Result Displaying the changes performed by the recently applied quick assist. If the quick assist cannot be
applied, an error message is displayed.

From the integrated toolbar, you can do the following:

Apply the selected proposal.

Disable link with editor to turn off automatic proposal calculation.

Rearrange the Quick Assist view layout setup to horizontal, vertical, or automatic to your selected perspective.

Delete the displayed Previous Result content.

Display or clear the history of the executed quick assists.

Enable a preview of changes to be performed.

Note
To open the Quick Assist view, choose Window Show view Other... from the menu. In the Show view dialog, select Quick
Assist from the ABAP tree.

This is custom documentation. For more information, please visit the SAP Help Portal 62
6/18/2019

Example
Before Execution

You get an error message as the method drive is not implemented yet. When you select the method name, the possible quick
assists are displayed in the Proposals area. If you select one of these, additional information is displayed in the area below.

Quick assist view setup before executing a quick assist

After Execution

After double-clicking the proposal or selecting Apply Proposal from the context menu, the method de nition is moved to the
private section of the ABAP class.

The tree in the Proposals area is updated to the quick assists that are now available at the selected cursor position.

If the quick assist is applied without any errors, the Previous Result area is highlighted in green for two seconds. Here, also the
status with the last execution date and the insertion result of the performed changes are now displayed. You can navigate from
here directly to the positions where changes have been performed in the source code editor.

Quick assist view setup after executing a quick assist

Related Information
Quick Assists

Quick Assist Overview


In ABAP Development Tools, you can apply the following refactoring options or ABAP quick x at the following positions:

Methods

Constants

Variables
This is custom documentation. For more information, please visit the SAP Help Portal 63
6/18/2019
Members

Text Literals

Exceptions

ABAP Unit Test Classes

Others

Note
The Rename functionality can be applied to all identi ers.

Related Information
ABAP Refactorings
ABAP Quick Fixes
Quick Assist View
Refactoring ABAP Source Code
Applying ABAP Quick Fixes
Applying Other Quick Assists

Methods
Function Description Available since Available since
SAP NetWeaver 7.3 SAP NetWeaver 7.4
EHP1

Extracting Methods from Creating a new method in the current class. The SP06 SP02
Statements selected code is moved into the body of the new
method and replaced with a call to the new method.
Further occurrences of similar code are not replaced.

Extracting Methods from Creating a new method in the implementation of an SP11 SP05
Expressions ABAP class that returns the result of a selected
expression. The selected expression is replaced with
the call to the new method. Further occurrences of
similar expressions are not replaced.

Creating Method Implementations Creating an empty method implementation from an SP06 SP02
from the Method De nition existing declaration in an ABAP class.

Creating Method De nitions from Creating empty method implementations of the SP06 SP02
Implementation Parts methods de ned in an implemented ABAP interface and
of other unimplemented methods within an ABAP class.

Creating Implementation Parts for Promoting the implementation part of methods that are SP06 SP02
Unimplemented Methods de ned in an ABAP interface as well as method stubs of
other unimplemented methods.

Creating Methods from Method Creating a method from the method call. The signature SP06 SP02
Calls is derived from the existing method call.

Generating Class Constructor Creating an empty class constructor method in SP11 SP05
Methods the public section of the current ABAP class.

This is custom documentation. For more information, please visit the SAP Help Portal 64
6/18/2019

Function Description Available since Available since


SAP NetWeaver 7.3 SAP NetWeaver 7.4
EHP1

Generating Constructor Methods Creating a constructor in the public section of the SP11 SP05
current ABAP class.

 Note
If the class has attributes, a dialog is opened where
you can select the attributes that should be
instantiated by the constructor.

Generating Factory Methods Creating a static create method in the public section SP11 SP05
of the current ABAP class.

 Note
If the class has attributes, a dialog is opened where
you can select the attributes that should be
instantiated by the factory method.

Constants
Function Description Available since Available since
SAP NetWeaver 7.3 SAP NetWeaver 7.4
EHP1

Extracting Constants from Literals Creating a constant with the value of the literal and SP11 SP05
replacing all occurrences.

Reusing Existing Constants Replacing a literal with an existing constant. All other SP11 SP05
occurrences of the same literals are not changed.

Converting Locals to Class Converting a local constant, local variable, or local type SP11 SP05
Members to a class member such as a member constant,
attribute, or member type.

Variables
Function Description Available since Available since
SAP NetWeaver 7.3 SAP NetWeaver 7.4
EHP1

Extracting Local Variables from Assigning the selected expression to a new local SP14 SP05
Expressions variable. The selected expression is replaced with the
new local variable.

Assigning a Statement to a New Assigning the value of the selected statement to a new SP11 SP05
Variable local variable or attribute.

Converting Locals to Class Converting a local constant, local variable, or local type SP11 SP05
Members to a class member such as a member constant,
attribute, or member type of the current class.

Converting Local Variables to In a certain method, converting an existing local variable SP11 SP05
Parameters to a new parameter.

This is custom documentation. For more information, please visit the SAP Help Portal 65
6/18/2019

Function Description Available since Available since


SAP NetWeaver 7.3 SAP NetWeaver 7.4
EHP1

Declaring Variables from Usage Creating a declaration for an attribute within a method. SP11 SP05

Declaring Inline Variables In the method signature, converting an existing inline - SP05
Explicitly declaration of a local variable to an explicit declaration.

Using Similar Variables You have following possibilities for using similar - SP08
variables:

Correcting Misspelled Variables

Correcting an Interface Attribute Access

Deleting Unused Variables Supported deletion of unused data declarations and SP06 SP02
variables.

Members
Function Description Available since Available since
SAP NetWeaver 7.3 SAP NetWeaver 7.4
EHP1

Changing Visibility of Members Changing the visibility of a member by moving it into the SP06 SP02
public, protected, or private section.

Converting Locals to Class Converting a local constant, local variable, or local type SP11 SP05
Members to a class member such as a member constant,
attribute, or member type of the current class.

Pull-up Members to Superclass Removing member de nitions from a subclass and - SP08
adding it to the superclass.

Pull-up Members to Interface Removing member de nitions and adding them to the - SP08
implemented interface. Additionally, aliases are
declared to avoid invalidation of existing usages.

Text Literals
Function Description Available since Available since
SAP NetWeaver 7.3 SAP NetWeaver 7.4
EHP1

Creating a Text Symbol in the Text Creating a text symbol in the text pool of an ABAP SP14 SP08
Pool program.

Editing Text Symbols Changing a text symbol in the text pool of an ABAP SP14 SP08
program.

Correcting Inconsistencies Within Balancing mismatches between source code and text SP14 SP08
Text Symbols pool.

Switching Notations Adopting text changes of an existing text symbol in the SP14 SP08
text pool or the source code and vice versa.

This is custom documentation. For more information, please visit the SAP Help Portal 66
6/18/2019

Exceptions

Source Code Selection That Includes Raised Exceptions

The exception(s) are added to the signature of the calling method or surrounded with a TRY CATCH block.

Function Description Available Available Available


since SAP since SAP since SAP
NetWeaver NetWeaver NetWeaver
7.3 EHP1 7.4 7.5

Propagating All Exceptions Adding the unhandled exceptions of the - - SP00


selected block to the signature of the calling
method in order to propagate them.

Surrounding with TRY CATCH Single catches: Surrounding the selected - - SP00
block of statements with a try catch statement
to handle raised exception(s). Each exception
is handled in a seperate catch block

Multi catch: Surrounding the selected block of - - SP00


statements with a try catch statement to
handle raised exception(s). One catch block
handles all exceptions.

Existing TRY CATCH Block


The statement(s) are surrounded by a TRY CATCH block in order to handle the exceptions.

Function Description Available Available Available


since SAP since SAP since SAP
NetWeaver NetWeaver NetWeaver
7.3 EHP1 7.4 7.5

Extracting a Catch Variable Adding a local variable and adding the INTO - - SP00
clause to an existing catch block.

Extending a TRY CATCH Statement Adding a new catch block to an existing try - - SP00
catch statement.

Removing a TRY CATCH Statement Removing the entire try catch statement. - - SP00

Splitting a MULTI CATCH Block Replacing the existing multi catch block by - - SP00
individual catch blocks per exception.

RAISE EXCEPTION Statement

Function Description Available Available Available


since SAP since SAP since SAP
NetWeaver NetWeaver NetWeaver
7.3 EHP1 7.4 7.5

Propagating an Exception Adding an exception class to the signature of a SP11 SP05


method signature that is based on an existing
RAISE EXCEPTION statement.

This is custom documentation. For more information, please visit the SAP Help Portal 67
6/18/2019

Function Description Available Available Available


since SAP since SAP since SAP
NetWeaver NetWeaver NetWeaver
7.3 EHP1 7.4 7.5

Extracting an Exception Variable from Adding a variable declaration for the exception SP11 SP05
a RAISE Statement and source code to instantiate the exception
before raising it.

ABAP Unit Test Classes


Lists all the supported quick assist proposals for context speci c source code generation in ABAP unit test classes.

CDS Test Double Framework


Lists all the supported quick assist proposals for context speci c source code generation while writing ABAP unit tests for a
CDS entity.

Functions Description Available since Application Server ABAP


7.53

Create all the CDS test xture methods Create all the CDS test xture methods for SP00
the given CDS entity under test along with
the corresponding method de nition. It
generates three xture methods -
class_setup, setup, and
class_teardown.

If some of these three xture methods are


available, then those are not generated
again. If all the three xture methods are
available, then the system does not show
any proposals.

Create CDS test class_setup xture Creating a new xture method SP00
method class_setup to set up the test
environment including creation of required
Doubles and Clone(s). If all the three
methods are available, then this proposal is
not be visible at all. Also, if this xture
method de nition already exists, then the
system does not display any proposals.

Create CDS test setup xture method Creating a new xture method setup to SP00
clear the test data for all the Doubles used
in the test method before executing each
test method. If this xture method
de nition already exists, the system does
not display any proposals.

Create CDS test class_teardown xture Creating a new xture method SP00
method class_teardown to delete the generated
database entities (Doubles and Clones)
at the end of test class execution. If this
xture method de nition already exists, the
system does not display any proposals.

This is custom documentation. For more information, please visit the SAP Help Portal 68
6/18/2019

Functions Description Available since Application Server ABAP


7.53

Prepare test data Generating the boiler plate code for getting SP00
the test double from the CDS test
environment for a given dependency of the
CDS Entity under test. It also sets the test
data into the test double framework. This
proposal must be used for each row of test
data and each dependency separately. This
proposal is displayed only with in the
methods inside an ABAP test class.

Create a new Test Method and prepare test Creates a new test method inside the Test SP00
data Class. It creates doubles from the CDS test
environment for the given dependency of
the CDS Entity under test using wizard. Test
data can also be set to the selected
dependencies as a second step of the code
generation.

Test method name must be provided for


this proposal.

Prepare test data (Using wizard) This proposal is displayed inside the SP00
existing test method only. Allows to set data
to the selected dependencies using wizard
and generates the code accordingly. Test
method name is pre lled for this proposal.

Related Information
Writing a Test for a CDS Entity Using Quick Assist Proposals

Others
Identi er Function Description Available Available Available
since SAP since SAP since SAP
NetWeaver 7.3 NetWeaver NetWeaver
EHP1 7.4 7.5

Classes Creating ABAP Starting the creation wizard of a global ABAP class SP06 SP02
and Classes or ABAP or interface directly from the name of the missing
Interfaces Interfaces from repository object.
Usage

Classes Generating Class Creating an empty class constructor method SP11 SP05
Constructor in the public section of the current ABAP class.
Methods

Generating Creating a constructor in the public section of the SP11 SP05


Constructor current ABAP class.
Methods
 Note
If the class has attributes, a dialog is opened
where you can select the attributes that should
be instantiated by the constructor.

This is custom documentation. For more information, please visit the SAP Help Portal 69
6/18/2019

Identi er Function Description Available Available Available


since SAP since SAP since SAP
NetWeaver 7.3 NetWeaver NetWeaver
EHP1 7.4 7.5

Generating Factory Creating a static create method in the public SP11 SP08
Methods section of the current ABAP class.

 Note
If the class has attributes, a dialog is opened
where you can select the attributes that should
be instantiated by the factory method.

Generating Getters SP00


and Setters

Regenerating a SP00
Constructor for
Exception Classes

Function Creating ABAP Starting the creation wizard of an ABAP function SP11 SP05
Modules Function Modules module from the name of the missing repository
from Usage object.

Includes Creating ABAP Starting the creation wizard of an ABAP include from SP11 SP05
Includes from the name of the missing repository object.
Usage

Text Creating and Editing Creating a text symbol in the text pool of an ABAP SP14 SP08
Symbols Text Symbols program.
(Quick Assists)

Editing Text Changing a text symbol in the text pool of an ABAP SP14 SP08
Symbols program.

Correcting Balancing mismatches between source code and SP14 SP08


Inconsistencies text pool.
Within Text Symbols

Notations Switching Notations Adopting text changes of an existing text symbol in SP14 SP08
the text pool or the source code and vice versa.

Software Component
A software component de nes a delivery and product unit of a SAP software product.

It comprises a set of packages that are delivered in a single unit. As an ABAP developer, you always assign development objects
implicitly to a software component by assigning the package containing these objects. This even makes it possible to move
development objects from one software component to another after a release upgrade. A software component is released in
successive releases with new functions. In addition, you can import patches into each software component separately.

Additional properties:
The customer receives changes to products relating to further development (upgrades) or collected corrections
(Support Packages) for one or more software components.

The availability of a software component is restricted to a maintenance period during which corrections for the software
components are provided in the form of Support Packages.

This is custom documentation. For more information, please visit the SAP Help Portal 70
6/18/2019
A software component can require the installation of other software components if it uses their functions (component
dependency).

Software components group together a multiple number of ABAP packages to minimize the complexity of dependencies,
maintenance, and releases.

Related Information
ABAP Packages
ABAP Development Objects

Released APIs
The API state of a development object de nes whether or not a development object can be used in development objects of
other namespaces.

API States

Remember
As a developer on customer-site, you can use the Use System-Internally (C1) release contract to to make custom objects
available for use in key user apps.. The other release contracts are only relevant for SAP development.

Objects can be released as APIs for different purposes. Depending on the underlying release contract, released objects need to
adhere to different stability criteria. Currently, objects can be released for three different purposes and corresponding release
contracts. The API State tab is visible only for types of objects which can be released as APIs. You have the following release
contracts available:

Add Custom Fields via Key User App (C0)

Use System-Internally (C1)

Use as Remote API (C2)

Related Information
Setting the API Release State
De ning the ABAP Language Version of ABAP Programs and Classes
Checking ABAP Syntax

Add Custom Fields via Key User App (C0)


This API state ensures stability at dedicated extension points in APIs. These extension points must only be used for adding
custom elds using app Custom Fields and Logic or when adding custom elds to web dynpro applications with the help of web
dynpro con guration.

Affected Object Types:

Web Dynpro Application Con gurations

Web Dynpro Applications

In addition, SAP development can de ne extension points in the types of objects listed below. These extension points are
available exclusively in the context of the app Custom Fields and Logic:

This is custom documentation. For more information, please visit the SAP Help Portal 71
6/18/2019
Business Object Types

CDS Entities

OData Services

Function Modules

SOAP Services

IDoc Types

SAP GUI Screens

Use System-Internally (C1)


This API state ensures a technically stable public interface for use in extension items created using key user apps like Custom
CDS Views or Custom Analytical Queries, or with means of the ABAP Development Tools. Compatibility of the public interface
includes all its existing parameters, elements, associations to released targets, and their technical data types. Further optional
parameters, elements, or associations might be added later, but existing parameters, elements, or associations must not be
changed or removed. Alphanumeric elements can be prolonged, but must not be shortened.

System-internal use can be restricted to either Use in Key User Apps or Use in SAP Cloud Platform, or be allowed for both types
of use.

Affected Object Types:

BAdI De nitions

CDS Entities

Domains

Data Elements

Function Modules

Interfaces

Message Classes

Search Helps

Structures

Table Types

Type Groups

Transformations

Use as Remote API (C2)


This contract ensures a technically stable public interface for use as remote API. Like Use System-Internally, compatibility of the
public interface includes all its existing parameters, elements, associations to released targets, and their technical data types.
Further optional parameters, elements, or associations might be added later, but existing parameters, elements, or
associations must not be changed or removed. Furthermore, to ensure that external consumers of the API do not need to be
adjusted after an upgrade, the prolongation of its elements and parameters is not allowed.

This is custom documentation. For more information, please visit the SAP Help Portal 72
6/18/2019
Affected Object Types:

CDS Entities

Transport Organizer
The Transport Organizer in ABAP Development Tools (ADT) contains the basic transport functions of workbench. The requests
record changes made to the ABAP workbench objects.

Overview
The key feature of the Transport Organizer view is the option to display the assignment of objects to the tasks and transport
requests in a folder structure. Also, to perform some basic actions.

The display depends on the logged-on user. For example, you can display the most important information relating to the
transport of change requests of a user without leaving the development environment. A request or task has an editor to view
and edit the properties and objects.

Display of a request that is selected in the Transport Organizer view and opened in ADT

Transport Organizer View

This is custom documentation. For more information, please visit the SAP Help Portal 73
6/18/2019

Transport Organizer View

The Transport Organizer view displays for each ABAP project the following columns:

Transport Request:

Folder Structure of the Transport Request Tree

Folder Level Label Description

1 Name of the ABAP project, client, Details of connection of an ABAP project to an ABAP system
user name, and logon language

2 Workbench Transport requests of the SAP GUI-based workbench that have recorded
changes made to ABAP objects.

 Note
Here you can only open and edit modi able transport requests,
create or delete tasks, or edit ABAP objects.

2 Customizing Modi able and released transport requests of the customer-speci c


development activities

3 Transport Groups A transport domain can consist of one or more transport groups that
share the same transport directory of one or more ABAP systems.

3 Local Change Requests Development activities that are not exported

 Note
These changes are transported only within SAP´s system or customer
systems.

4 Modi able Unreleased transport requests and tasks that can be edited in addition
to the objects that have been released

 Note
The Modi able subfolder is displayed for all transport groups and in
the Local Change Request folder.

 Note
Objects that are assigned directly to a transport request as well as
tasks and the corresponding objects that are already released are
displayed at the same folder level as unreleased tasks.

This is custom documentation. For more information, please visit the SAP Help Portal 74
6/18/2019

Folder Level Label Description

4 Released All transport requests, tasks, and objects that have been released within
the last two weeks

 Note
The Released subfolder is displayed for all transport groups and in
the Local Change Request folder.

Released content cannot be edited.

Owner: User who has created or been assigned to the corresponding transport requests and tasks

Type: Type of ABAP objects that are assigned to the transport request or task

Description: Short descriptions that have been provided

Last Changed: Last changed date and time of the request and the task

Note
You will nd further background information in the help documentation of the SAP GUI- based Transport Organizer.

Related Information
Transport Layer
Transport Request
Request Editor
Task Editor
Icons and Decorators in the Transport Organizer
Filtering Transport Requests and Tasks
Con guring Tree
Adding Users to a Transport Request
Changing the Owner of Transport Requests and Tasks
Checking Consistency of Objects
Releasing in the Transport Organizer
Deleting in the Transport Organizer

Transport Layer
The transport layer de nes the transport behavior of ABAP packages. Since packages are used as transport units, each
individual package determines the transport behavior of all development objects contained therein – that is, whether and how a
package and all its development objects are transported.

The assignment of a package to a transport layer ensures that all its development objects are connected to the Change and
Transport System (CTS), thereby de ning the integration and consolidation system for its development objects.

The transport layer de nes:


Whether the development objects of a package are assigned to a local (objects are kept only locally in a development
system) or transportable change request

The SAP system in which development objects are developed and changed

Whether these objects are transported into a discrete system sequence or – through a well-de ned path – into a
consolidation system.

This is custom documentation. For more information, please visit the SAP Help Portal 75
6/18/2019

Related Information
ABAP Packages
ABAP Development Objects
Transport Organizer
Transport Request

Transport Request
A transport request collects development objects and categories for export to your local computer or to an SAP transport
system.

When you create a development object (ABAP repository object) in a non-temporary ABAP package, you must always assign the
object to a transport request.

You can create transport request from the transport organizer view. For more information, see Creating a Transport Request.

Dialog for creating a transport request

Changes to development objects from non-temporary packages are organized in tasks and take place in transport requests. A
transport request records all changes to development objects. The assignment of a package to a transport layer ensures that
the package is connected to the Change and Transport System, thereby de ning the integration and consolidation system for
its development objects.

With regard to the transport behavior of development objects, we have to distinguish between these three cases:

This is custom documentation. For more information, please visit the SAP Help Portal 76
6/18/2019
Transportable objects – development objects from packages that can be transported within a system landscape.

Transportable packages are assigned to both a software component and a transport layer. So-called "HOME objects"
represent a special case. They can be transported within a system landscape, but are not designated for external
delivery (customer delivery). Packages of this type are assigned to a transport layer and the speci c software
component HOME. All changes to transportable development objects are recorded in transport requests.

Local objects – development objects from local packages (TEST_ ..., $TMP ...) Local packages are assigned to software
component LOCAL, but are not assigned to a transport layer. Thus, they cannot be transported in other systems. Objects
from local packages are not generally designed for productive purposes but solely for local developments, especially as
part of prototyping or testing. All changes to development objects of this type are only recorded in local transport
requests, if the recording option for the relevant package is activated.

Temporary objects – special case of local objects. Temporary objects belong to temporary packages, which are, in turn, a
subset of local packages. Names of temporary packages always start with the $ sign (example: $TMP). Changes to
temporary packages are NOT recorded in transport requests.

Related Information
Transport Layer
Transport Organizer
ABAP Packages
Software Component
Transport Organizer (BC-CTS-ORG)
Creating Development Objects
Request Editor
Task Editor

Icons and Decorators in the Transport


Organizer
The following decorators are used to display transport requests, tasks, and objects in the Transport Organizer:

Decorator Description

Transport requests that can be edited.

Unreleased tasks

Released tasks

Protected transport request

 Note
Only the transport request owner can add users to this type of request.

Objects that cannot be edited in ABAP Development Tools.

 Note
Objects that can be edited are displayed with the same icon as they are represented in the Source Library folder.

Reassign Task

Change Owner

Open Request or Task

New Transport Request

This is custom documentation. For more information, please visit the SAP Help Portal 77
6/18/2019

Decorator Description

Run Consistency Checks

Related Information
Filtering Transport Requests and Tasks
Con guring Tree
Adding Users to a Transport Request
Changing the Owner of Transport Requests and Tasks
Checking Consistency of Objects
Releasing in the Transport Organizer
Deleting in the Transport Organizer
Transport Request
Transport Organizer

Request Editor
The Request Editor allows you to manage the content of an individual change request. Access the Request Editor by double-
clicking a request in the tree structure of the change requests from the Transport Organizer View.

This feature is supported as of Application Server ABAP 7.53 SP00.

Request Editor

The Transport Request Editor has the following information:

Documentation Section:

Short Description: This eld contains a one-line, short description of the request.

Long Description: Detailed description of the request can be documented here.

Properties Section:

Owner: You can change the owner of a request or task only if it has not been released. A owner must be a user
recognized by the system. Only users with the authorization S_CTS_PROJECT can change the owners of projects.

Status: Status of a request

This is custom documentation. For more information, please visit the SAP Help Portal 78
6/18/2019
Modi able: The request or task can be edited by the owner.

Protected: The request can be edited by the owner, however only the owner of the request can create new
tasks.

Release started: The export is running or was terminated. If exports terminate, release the request or task
again.

Released: The request or task is released and can no longer be changed.

Target: The transport target speci es where a transport request is imported.

CTS Project: Name of a project in the Change and Transport System. You can organize requests and tasks in the
Change and Transport System by assigning them to a project. This project assignment can apply across systems,
helping you to group requests when you import them.

Source Client: The source client of a request. All client-speci c objects in this request originate from this client.

Last Modi ed: Gives the last changed time stamp.

Attributes Section: Displays the attributes which de ne change request. They are mainly used for analyses.

Objects Section: The left pane contains the list of tasks under a request and the right pane shows the objects locked
under each task or the request. All objects displays released and modi able ABAP objects under the request.

Related Information
Transport Organizer
Task Editor
Opening a Request or Task Editor

Task Editor
The Task Editor allows you to manage the content of an individual task under a modi able request. Access the Task Editor by
double-clicking a task in the tree structure of the change requests from the Transport Organizer View.

Task Editor

The Task Editor has sections similar to the Request Editor, you can modify the properties and documentation of a task here.

Unlike Request Editor, the Task Editor does not include the attributes section as attributes are speci c to a change request.

Related Information

This is custom documentation. For more information, please visit the SAP Help Portal 79
6/18/2019
Transport Organizer
Request Editor
Opening a Request or Task Editor

Accessibility Features in ADT


Accessibility at SAP refers to the possibility for everyone, including and especially people with disabilities, to access and use
technology and information products.

ABAP Development Tools (ADT) supports following possibilities to utilize accessibility features:

By using Tools like screen readers that read text from the user interface and transfer it into audible voice. So, you can
hear the context of the current position.

By setting speci c window con gurations and Eclipse preferences to adjust font size or contrast of text to the
background. So, you can improve readability.

Note
ADT is integrated into the Eclipse application framework. General information about the accessibility functionalities in
Eclipse can be found here:

Accessibility features in Eclipse

Accessibility

SAP ensures the accessibility of the products through the Product Standard Accessibility .

For more information how to use and set accessibility features in ADT see the Related Information below.

Related Information
Enabling Accessibility Features in ADT
Setting Con gurations and Preferences
Using Screen Readers
Keyboard Shortcuts for ABAP Development

Keyboard Shortcuts for ABAP Development


The following shortcuts are highly frequently used for working with development objects in ABAP Development Tools.

Note
The availability of the shortcuts depends on the user interface area you are currently working.

Select Ctrl+Shift+L to open a list that displays the area-speci c keyboard shortcuts.

You can display a list of all available keyboard shortcuts from the menu bar (Windows Preferences General Keys ).

The subsequent lists are designed for using the operating systems Microsoft Windows© or Linux©. If you are working with
Apple Mac©, you might need to choose the Command tab instead of Ctrl.

This is custom documentation. For more information, please visit the SAP Help Portal 80
6/18/2019

Edit Actions
Function Shortcut

Activate inactive development object Ctrl + F3

Activate all inactive development objects Ctrl + Shift + F3

Check consistency and syntax Ctrl + F2

Close Ctrl + W

Close all Ctrl + Shift + W

Code completion / Content Assist Ctrl + Space

Delete line Ctrl + D

Delete next word Ctrl + Delete

Delete previous word Ctrl + Backspace

Find Next Ctrl + K

Find Previous Ctrl + Shift + K

Format source code (aka Pretty Printer in the SAP GUI) Shift + F1

Format source block (aka Pretty Printer in the SAP GUI) Ctrl + Shift + F1

Keyword completion Tab

Mark word Double-click

Mark whole line Triple-click

New ABAP development object Ctrl + N

Open quick x / quick assist dialog Ctrl + 1

Rename Alt + Shift + R

Save Ctrl + S

Save all Ctrl + Shift + S

Selection to upper case Ctrl + Shift + X

Selection to lower case Ctrl + Shift + Y

Displaying Actions
Function Shortcut

Show the properties of the currently focused object or le Alt + Ctrl + P

Show bookmarks, breakpoints, and tasks of the focused editor row Alt + Ctrl + P

To show the variable view in the debugger and to set the focus into the view. Shift + Alt + V

 Note
Switch back to the source by using F12.

This is custom documentation. For more information, please visit the SAP Help Portal 81
6/18/2019

Function Shortcut

Set the View menu, that for text editors the ruler context menu is shown or to add bookmarks, breakpoints, or Ctrl + F10
tasks

Show bookmarks, breakpoints, and tasks of the focused editor row Alt + Ctrl + F10

Adopt the size of the current editor, view, and so on to the maximum screen size Ctrl + M

Navigation Actions
Function Shortcut

Backward navigation to the previous opened tab Alt + Left

Forward navigation to the next opened tab Alt + Right

Select the next open editor you want to navigate to Ctrl + F6

Switch between perspectives Ctrl + F8

Select the previous open editor you want to navigate to Ctrl + Shift + F6

Navigate to last edited location Ctrl + Q

Open development object Ctrl + Shift + A

Open Quick Outline Ctrl + O

Open Quick Type Hierarchy Ctrl + T

Open SAP GUI Ctrl + 6

Switch to next view Ctrl + F7

Switch to next perspective Ctrl + F8

Navigate to ABAP source code F3 or Ctrl + Click

Move the keyboard focus into the top level editor or the active editor tab F12

Show context menu Shift + F10

Moving Actions
Function Shortcut

Backward one word Ctrl + Left

Forward one word Ctrl + Right

Jump to line Ctrl + L

Move one line down Alt + Down

Move one line up Alt + Up

Commenting Actions
This is custom documentation. For more information, please visit the SAP Help Portal 82
6/18/2019

Function Shortcut

Add comments Ctrl + <

Remove comments Ctrl + >

Toggle comments Ctrl + 7

Search and Help


Function Shortcut

Open search dialog Ctrl + H

Show ABAP Language Help F1

Show ABAP element info F2

Where-used list Ctrl + Shift + G

Windows-based Shortcuts
Function Shortcut

Find / Replace text Ctrl + F

Copy selection Ctrl + C

Close Ctrl + F4

Close all Ctrl + Shift + F4

Cut selection Ctrl + X

Paste selection Ctrl + V

Redo typing Ctrl + Y

Select all Ctrl + A

Undo typing Ctrl + Z

List of Development Objects with an Eclipse-


based Editor
ABAP Development Tools provides an Eclipse-based editor for the following development objects:

Use Case Development Object Available Available Available Available Available Available
since SAP since SAP since SAP since SAP since SAP since
NetWeaver NetWeaver NetWeaver NetWeaver NetWeaver Application
7.3 EHP1 7.4 7.5 AS for ABAP AS for ABAP Server ABAP
7.51 7.52 7.53
innovation
package

This is custom documentation. For more information, please visit the SAP Help Portal 83
6/18/2019

Use Case Development Object Available Available Available Available Available Available
since SAP since SAP since SAP since SAP since SAP since
NetWeaver NetWeaver NetWeaver NetWeaver NetWeaver Application
7.3 EHP1 7.4 7.5 AS for ABAP AS for ABAP Server ABAP
7.51 7.52 7.53
innovation
package

Core ABAP class SP04 SP02


development
ABAP function group SP04 SP02

ABAP function group SP04 SP02


include

ABAP function module SP04 SP02

ABAP include SP04 SP02

ABAP interface SP04 SP02

ABAP program SP04 SP02

Message class - SP04

Simple transformation (ST) - - SP00

XSLT program - - SP00

Other ABAP ABAP packages - - - - SP00


repository
objects

ABAP ABAP type group - SP08


Dictionary
Structure - - SP00

Database Table - - - - SP00

Data element - - SP00

Domain - - - SP01

Lock objects SP00

Connectivity ABAP Push Channel SP00

Messaging Channel SP01

SAP HANA Database procedure proxy - SP02


artifacts
External dictionary view - SP02

SAP HANA transport - SP02


container

Core Data DCL source - SP10


Services
(CDS) DDL source - SP02

Metadata extensions - - - SP00

Abstract CDS entities - - - - - SP00

BOPF Business objects SP04 SP02


Business
Objects

This is custom documentation. For more information, please visit the SAP Help Portal 84
6/18/2019

Use Case Development Object Available Available Available Available Available Available
since SAP since SAP since SAP since SAP since SAP since
NetWeaver NetWeaver NetWeaver NetWeaver NetWeaver Application
7.3 EHP1 7.4 7.5 AS for ABAP AS for ABAP Server ABAP
7.51 7.52 7.53
innovation
package

Business Behavior De nitions - - - - - SP00


Objects
Behavior Implementations - - - - - SP00

Enterprise Consumer-Factory - SP02


services
Consumer-Mapping - SP02

Contract - SP02

Contract implementation - SP02

Integration scenario - SP02


de nition

Operation mapping - SP02

RFC consumer - SP02

Semantic contract - SP02

Service consumer - SP02

Service provider - SP02

Web Dynpro Application SP07 SP02

Application con guration SP07 SP02

Component SP07 SP02

Component con guration SP07 SP02

Custom-Controller SP07 SP02

Floorplan manager SP04 SP02


application

Interface view SP07 SP02

View SP07 SP02

Window SP07 SP02

Note
The remaining development objects are opened in the SAP GUI.

Related Information
ABAP Development Objects
Opening in the SAP GUI
ABAP Source Code Editor
ABAP Dictionary Editors

This is custom documentation. For more information, please visit the SAP Help Portal 85
6/18/2019

FAQs for SE80 Experts Using ADT


The following chapters answer frequently asked questions (FAQs) about the ABAP Development Tools (ADT) – that is SAP’s
Eclipse-based IDE. These FAQs are structured in tables that enable you to skim the features you want to perform in ADT.

Scope
Focus is on SAP GUI-based functionality and its integration within the IDE for easy use and fast transition.

Contents
Each FAQ starts with a header containing the relevant keywords. Below, you will nd a table, split into how to information for
SE80 and ADT. Each column describes the procedure in a text and screenshot. The ADT column also provides a link to the
relevant content in the official ADT help documentation to get further details.

 Example
The FAQs describe use cases from your daily work, such as:

Comparing versions and editing objects across several systems

Arranging the object tree in accordance to your current need

Working with quick xes to get support or the relevant code snippets for the appropriate position/activity

And so on

Note
This document will be continously supplemented in future. If you want to propose an FAQ that needs to be added to this
documentation, comment our SCN blog , please. Thank you for your help!

Target Group
This reference guide is for all ABAP developers who:

Are used to work with the ABAP Workbench so far and are now starting to work with ADT

Already work with ADT and want to nd out how a speci c feature has been integrated

Contents
You will nd here FAQs for the following development areas:

ABAP Core Development

ABAP Dictionary Tools

Testing and Quality Checking

Troubleshooting Tools

Related Information
This is custom documentation. For more information, please visit the SAP Help Portal 86
6/18/2019
Eclipse Basics
Quick Launch
Basic Tutorials

ABAP Core Development


Note
You can trigger most of the subsequent functionalities from the context menu of the selected development object in the
Project Explorer, or alternatively from the opened development object in the source-based editor.

Overview
In the context of creating and editing development objects, the following "how to" information is provided:

How can I logon and get access to development objects?

How can I open a development object?

How can I open a development object from another SAP system?

How can I open an arbitrary transaction?

How can I copy a development object?

How can I switch between the display and edit mode?

How can I unlock a development object?

How can I use code completion?

How can I add a comment?

How can I format (a.k.a. pretty printer) source code?

How can I navigate within source code?

How can I check the syntax of source code?

How can I trigger Where-Used?

Where I can see superclasses and subclasses from a usage?

How can I trigger creating methods?

How can I delete the method of an ABAP class?

How can I insert and edit patterns in the source code?

How to rename a development object?

How can I add favorites?

How can I rede ne a method?

How can I open the SE80 browser from the active editor?

How can I execute an ABAP Program (report)?

How can I compare versions of a development object?

How can I toggle between the active/inactive version of a development object?


This is custom documentation. For more information, please visit the SAP Help Portal 87
6/18/2019
Where can I nd the attributes and so on?

Where can I nd SE09 (transport organizer)?

How can I add short texts?

How can I nd class documentation?

How can I check object type-speci c properties, for example, whether a function module is RFC-enabled?

How can I change the package assignment of a development object?

How can I logon and get access to development objects?

How To with SE80 How To with ADT

In the SAP Logon pad, create a new system entry using the New At the beginning, you need to establish a system connection. To do
icon from the toolbar. Then open transaction SE80. this, create an ABAP project that represents the repository in a
structured tree.

To create an ABAP project, start your IDE and choose


File New ABAP Project from the menu bar.

Example of how to define the system connection in the SAP Logon pad

Wizard page for editing the system connection of an ABAP project

You then enter system and logon credentials. Note that this data is
automatically copied from the system connection of the SAP Logon
pad.

For more information, see Creating ABAP Projects

How can I open a development object?

This is custom documentation. For more information, please visit the SAP Help Portal 88
6/18/2019

How To with SE80 How To with ADT

From the Object Navigator (SE80), choose the relevant mode and You have several possibilities to open development objects. The
select your type from the dropdown menu. Then enter the name in most effective way is using Ctrl + Shift + A from the Project
the input eld and choose the Search or Display button. Explorer. Alternatively, you can click the Open ABAP
Development Object icon from the toolbar.

Enter your search criteria in the dialog. In the search input eld, you
can bene t from the content assist that helps you to limit your
search.

 Note
Using Ctrl + Shift + A , you can limit your selection, for
example, to the object name or object type. To do this, use
asteriks (such as *) or content assist ( Ctrl + Space ).

Area to define a selection of content to be opened

Input field to define the conditions for the object to be opened

For more information, see Opening Development Objects

How can I open a development object from another SAP system?

How To with SE80 How To with ADT

This is custom documentation. For more information, please visit the SAP Help Portal 89
6/18/2019

How To with SE80 How To with ADT

You have to open the other system, and log on. From SE80, open the You can open, edit, and compare development objects from
development object manually. different SAP systems in parallel without logging on again.

 Note
In advance, you need to create a new ABAP project for each
system to establish the relevant system connection.

To open the development object from another system, choose


Open in Project <Relevant System> from the context menu.

Context menu to compare a development object across the available


system connections

For more information, see Opening in Another System

How can I open an arbitrary transaction?

How To with SE80 How To with ADT

This is custom documentation. For more information, please visit the SAP Help Portal 90
6/18/2019

How To with SE80 How To with ADT

In the OK eld, enter /O followed by the relevant transaction code In the editor, choose Alt F8 to open the Run ABAP Application
to open a new session. Press Enter . dialog. In the input eld, enter the name of the object to be
executed or the name of the transaction to be performed. Con rm
with OK.

Example for opening a new session starting with the /O prefix

Run ABAP Application dialog to open transactions in the ABAP


Workbench

For more information, see Copying and Duplicating Source Code


Based Objects

How can I copy a development object?

How To with SE80 How To with ADT

This is custom documentation. For more information, please visit the SAP Help Portal 91
6/18/2019

How To with SE80 How To with ADT

In the Object Navigator (SE80), select the relevant object or In the Project Explorer, select the relevant source-based object
element and choose Copy from the context menu. and choose Copy from the context menu.

 Note
In addition, you can also duplicate an object to create the exact
same entity in a selected ABAP project. Choose then
Duplicate... from the context menu.

Context menu to copy, for example, an ABAP class

For more information, see Copying and Duplicating Source Code


Based Objects

Context menu to copy, for example, an ABAP class

How can I switch between the display and edit mode?

How To with SE80 How To with ADT

From the toolbar in the editor, choose the Display/Change icon. Initially, you are in display mode when opening an object in ADT.
When you start typing in the editor, the object will switch to edit
mode automatically.

To switch back to display mode, choose Unlock from the context


Icon from the toolbar to switch between display and change mode menu. Your changes are then replaced to the initial version.

Note that you can open and edit several objects from different
projects at the same time.

For more information, see ABAP Source Code Editor

How can I unlock a development object?

How To with SE80 How To with ADT

This is custom documentation. For more information, please visit the SAP Help Portal 92
6/18/2019

How To with SE80 How To with ADT

You can only edit development objects when they are unlocked. You can unlock a development object that you are currently editing
in order to make its active version available for other users, for
example.

In the Project Explorer, select the locked object and choose


Edit Unlock from the context menu.

Context menu to unlock development objects

 Note
All changes added after activation are deleted.

For more information, see Unlocking Development Objects

How can I use code completion?

How To with SE80 How To with ADT

In the source code of your development object, choose Ctrl + In the source code of your development object, choose Ctrl +
Space . Space . In addition to SE80, you can overwrite methods from
superclasses using code completion in ADT.

For more information, see Getting Support from the Content Assist

This is custom documentation. For more information, please visit the SAP Help Portal 93
6/18/2019

How can I add a comment?

How To with SE80 How To with ADT

Select, for example, the relevant part of your source code and You can add and remove comments in the same way as in the ABAP
choose Ctrl + < to add a comment, or > to remove it. Workbench.

For more information, see Editing ABAP Comments

How can I format (a.k.a. pretty printer) source code?

How To with SE80 How To with ADT

From the menu bar, choose Utilities Settings ABAP Editor Pretty To perform formatting, choose Source Code Format from the
Printer to de ne the settings. context menu in the source code editor.

From the toolbar, choose the Pretty Printer button to execute.

Button from the toolbar to perform formatting

Context menu path to execute the ABAP formatter

 Note
To use formatting, you need to con gure the relevant
preferences for each ABAP project in advance.

For more information, see Formatting ABAP Source Code

How can I navigate within source code?

How To with SE80 How To with ADT

Double-click an element or usage in the source-based editor. You From an element or usage in the source code editor, choose F3 or
will then navigate to the relevant usage, for example, another editor Ctrl + Click . You will then directly navigate to the selected
is then opened. element/object. The relevant position of the usage is highlighted.

For more information, see Displaying Information of ABAP Source


Code Elements

How can I check the syntax of source code?

How To with SE80 How To with ADT

This is custom documentation. For more information, please visit the SAP Help Portal 94
6/18/2019

How To with SE80 How To with ADT

Open and edit the object in the source-based editor. Choose then You can check the syntax of a source-based development object:
the Check icon from toolbar.
Manually choosing the Check icon from the toolbar

Automatically while programming using the default check


preferences

Icon from the toolbar to check the syntax of a source-based


development object
Icon from the toolbar to check the syntax of a source-based
development object manually

Possible syntax errors are then displayed in the Problems view:

For more information, see Checking ABAP Syntax

How can I trigger Where-Used?

How To with SE80 How To with ADT

From the context menu of the relevant development object in the From the context menu of the relevant development object in the
object tree, choose Where-Used List, or from the toolbar in the Project Explorer, choose Get Where-Used List....
editor, choose the Use of icon.

For more information, see Searching Usages (Where-Used)


Icon from the toolbar to trigger Where-used from the toolbar

Where I can see superclasses and subclasses from a usage?

How To with SE80 How To with ADT

This is custom documentation. For more information, please visit the SAP Help Portal 95
6/18/2019

How To with SE80 How To with ADT

From the Object Navigator (SE80), select the relevant node. You can display the ABAP type hierarchy in its speci c view or in
the ABAP Element Info popup.

In the source code editor, select the relevant element. You can then
choose:

F4 to open the ABAP Type Hierarchy view or

Ctrl + T to open the Quick Type Hierarchy

 Note
If you choose T a second time, the superclass
Example of displaying the subclasses and superclasses in the object
hierarchy is displayed.
tree

Example of displaying the Quick Type Hierarchy in the ABAP Element


Info popup

For more information look here:

Viewing the ABAP Type Hierarchy

Quick Type Hierarchy

How can I trigger creating methods?

How To with SE80 How To with ADT

From the form-based editor of the Class Builder, you can trigger the From the method name in the implementation or de nition, you can
creation of a method implementation by double-clicking the trigger creation of the opposite using the Add implementation or
relevant name of the method to be created in the Methods tab. de nition for quick x. Optionally, you can directly choose Ctrl +
1 from the editor.

Example of creating the method implementation out of the form-based


editor from the Class Builder

Example for creating a method implementation using a quick fix

For more information, see Creating De nitions and Implementations


of Methods

How can I delete the method of an ABAP class?

How To with SE80 How To with ADT

This is custom documentation. For more information, please visit the SAP Help Portal 96
6/18/2019

How To with SE80 How To with ADT

In the form-based editor of the class builder, select the relevant In the source code editor, position the cursor on the relevant
method and choose the Delete Method icon from the toolbar. method name and choose Ctrl 1 . Double-click then the Delete
entry in the Quick Fix dialog box.

Icon from the toolbar to delete methods

Example of a possible trigger position in the editor and the delete entry
in the Quick Fix dialog box

For more information, see ABAP Quick Fixes

How can I insert and edit patterns in the source code?

How To with SE80 How To with ADT

In source code of a, for example, method implementation, choose You can add default patterns by using code completion or by
the Pattern button from the toolbar. double-click from the Templates view.

Example of a default template provided when triggering code


completion

For more information, see Working with Source Code Templates

Button from the toolbar to add a pattern

How to rename a development object?


You want to, for example, rename the name of a method that is used in an ABAP class.

How To with SE80 How To with ADT

This is custom documentation. For more information, please visit the SAP Help Portal 97
6/18/2019

How To with SE80 How To with ADT

In the Object Navigator (SE80), select the relevant method and In the source code editor, select the method and choose
choose Rename... from the context menu. Source Rename from the context menu.

Context menu to rename identifiers

For more information, see Renaming Identi ers

Context menu to rename, for example, a method from the Object


Navigator

How can I add favorites?

How To with SE80 How To with ADT

This is custom documentation. For more information, please visit the SAP Help Portal 98
6/18/2019

How To with SE80 How To with ADT

In the Object Navigator (SE80), select the relevant ABAP object, In the Project Explorer, you have the following possibilities to favor
users, or packages. Choose then Favorites Add from the toolbar. ABAP object, users, or packages:

Select the Favorite Packages tree

and choose Add Packages... from the context menu. Select


the relevant package. The package is then listed in the
Favorite Packages tree.

Select the ABAP package and choose Add to favorites


Menu from the toolbar to add or edit favorites from the context menu. The package is then displayed in
the Favorite Packages tree.

You can de ne ABAP repository trees in order to represent


a speci c structure of development objects.

Select the Local Objects ($TMP) tree

and choose Add Local Objects of User... from the context


menu. Select the relevant package. Select the user. The
user is then listed in the Local Objects ($TMP) tree.

Select the development object and choose Add


Bookmark... from the context menu. The object is then
listed in the Bookmark tree.

 Note
You can also de ne a bookmark for a speci c position
within the source code. To do this, choose Add
Bookmark... from the context menu at the beginning of
the speci c line in the ruler bar. A bookmark decorator
is then added.

For more information, see:

Adding or Removing a Favorite Package

Working with ABAP Repository Trees

Adding Local Objects of Other Users to Favorites

Working with Bookmarks

How can I rede ne a method?

How To with SE80 How To with ADT

This is custom documentation. For more information, please visit the SAP Help Portal 99
6/18/2019

How To with SE80 How To with ADT

In the Class Builder (SE24), select the relevant method in the You can trigger the Override code completion ( Ctrl + Space )
Methods tab. Then choose the Rede ne Method icon from the from the possible positions within the implementation of the
toolbar. relevant subclass.

Icon from the toolbar to redefine a method implementation from the


Class Builder

The selected method is then opened in the source code editor.

Example of a list that displays the superclass methods that can be


overridden, triggered by code completion

For more information, see: Overriding Methods from Superclasses

How can I open the SE80 browser from the active editor?

How To with SE80 How To with ADT

From the toolbar of the editor, choose the Display object list icon. From the toolbar of the Project Explorer or most of the views,
The object tree then displays the relevant object/element in the choose the icon. Then, in the Project Explorer or view the
tree. relevant object is automatically focused when switching between
opened editor. Alternatively, if you have opened several editors, the
relevant editor is opened, when you select an object in the tree.

Icon from the toolbar to display the object list


 Note
The "Link with Editor" functionality is set by default.

Icon from the toolbar to enable/disable the "Link with Editor"


functionality

For more information, see Linking the Project Explorer view to the
active editor

How can I execute an ABAP Program (report)?

How To with SE80 How To with ADT

This is custom documentation. For more information, please visit the SAP Help Portal 100
6/18/2019

How To with SE80 How To with ADT

From the toolbar of the editor, choose the Direct Processing icon or From the source code editor of an ABAP program, choose F8 . The
F8 directly. integrated SAP GUI is then opened.

For more information, seeRunning Executable Objects

How can I compare versions of a development object?

How To with SE80 How To with ADT

From the menu bar, choose Utilities Version Version From the context menu in the source code editor, choose Compare
Management . With

Navigation path to open the version management

Navigation path to compare versions in the available ABAP projects

From the submenu, you can then select

Revison History to compare your changes since the object


was last activated.

An ABAP project that you want to compare your version


with.

Local History to compare your saved changes since


opening the object. This provides you a ner granular
change history.

For more information, see Comparing Source Code

How can I toggle between the active/inactive version of a development object?

How To with SE80 How To with ADT

This is custom documentation. For more information, please visit the SAP Help Portal 101
6/18/2019

How To with SE80 How To with ADT

From the toolbar, choose the Active <-> Inactive icon. In the editor of an inactive object version, choose Show Active
Version and vice versa from the conext menu.

Icon from the toolbar to toggle between the inactive version or active
version of an object

Context menu to toggle from the inactive version to the active version
of an object

In addition, you can open the History view to display and open the
opposite version.

History view to toggle between versions

For more information, see Switching between Inactive and Active


Versions of a Source-based Object

Where can I nd the attributes and so on?

How To with SE80 How To with ADT

This is custom documentation. For more information, please visit the SAP Help Portal 102
6/18/2019

How To with SE80 How To with ADT

From the menu bar, choose Goto Object directory entry This information is displayed in the Properties view. To display
attributes, open the relevant object. Then choose Window Show
View Properties from the menu bar.

Example of display properties using SE80

Example of a Properties view in ADT

In case the Properties view is not visible in your eclipse, choose


Window Show View Properties from the menu bar.

For more information, see Displaying Properties of Development


Objects

Where can I nd SE09 (transport organizer)?

How To with SE80 How To with ADT

From the menu bar, choose Environment Transport Organizer From the menu bar, choose Window Show
(Requests) View Other... ABAP Transport Organizer . Optionally, you can
enter Transport Organizer in the Quick Access.

Quick Access input field from the toolbar to open specific views directly

Integration of the Transport Organizer in the Object Navigator Note that the Transport Organizer view is already displayed by
default.

Example of the representation from the Transport Organizer view in


ADT

For more information, see Working with Transport Organizer

This is custom documentation. For more information, please visit the SAP Help Portal 103
6/18/2019

How can I add short texts?

How To with SE80 How To with ADT

From the, for example, Methods tab in the form-based editor, You use ABAP Doc comments to document code elements (for example,
add your short text in the Description tab. attributes, methods, local variables).

Note that ADT does not support class documentation in particular. You
use ABAP Doc to add short texts.

To add an ABAP Doc comment, add one or more lines starting using the
pre x "! before the code element to be commented.
Example of a short text provided as description in the form-based
editor
To toggle ABAP Doc comments, choose Ctrl + 7 to comment.

In addition, you can synchronize short texts with descriptions saved in


the class builder. To do this, use the following <p> tag:

 Example

...
PRIVATE SECTION.
"! <p class="shorttext synchronized" lang="en">
Short Text to be synchronized with the backend</p>
"!

METHODS description.
...

For more information, see

ABAP Doc Comments

Editing Comments in ABAP Source Code

Synchronizing ABAP Doc Comments

How can I nd class documentation?

How To with SE80 How To with ADT

This is custom documentation. For more information, please visit the SAP Help Portal 104
6/18/2019

How To with SE80 How To with ADT

Open the relevant ABAP class in the source-based editor and then Open the class and select then the relevant class name. Choose
choose the Open Class Documentation icon from toolbar. F2 .

Button from the toolbar to open class documentation

Example of class documentation that is displayed in the Element Info


popup

To add ABAP Doc comments, add "! one row before the relevant
statement and start typing your information.

For more information, see

Displaying Information of ABAP Source Code Elements

Editing ABAP Doc Comments

How can I check object type-speci c properties, for example, whether a function
module is RFC-enabled?

How To with SE80 How To with ADT

From the Attributes tab, check the Remote-Enabled Module radio From the Properties view, open the Speci c subtap. Then check
button in the Processing Type area. the entry for the Processing Type dropdown listbox.

Example of displaying in the Specific subtap of the Properties view


Example of displaying in the Attributes tab
For more information, see

Adding Operations Using RFC Function Module

Creating Remote Function Call (RFC) Consumers

Creating RFC Consumers for Single-Target Consumer


Mappings

How can I change the package assignment of a development object?

How To with SE80 How To with ADT

This is custom documentation. For more information, please visit the SAP Help Portal 105
6/18/2019

How To with SE80 How To with ADT

In the Object Navigator (SE80), select the object and choose In the Project Explorer, select the object and choose Change
Additional Functions Change Package Assignment from the Package Assignment from the context menu.
context menu.

Context menu to change the package assignment from the Object


Navigator

Context menu to change the package assignment of a development


object

For more information, see Changing the ABAP Package Assignment

Related Information
ABAP Dictionary Tools
Testing and Quality Checking
Troubleshooting Tools

ABAP Dictionary Tools


In the context of creating and editing ABAP Dictionary objects, the following "how to" information is provided:

How can I edit ABAP Dictionary objects?

How to with SE80 How to with ADT

This is custom documentation. For more information, please visit the SAP Help Portal 106
6/18/2019

How to with SE80 How to with ADT

From the Repository Information System mode or using SE11: From the relevant ABAP project in the Project Explorer, choose
Select the relevant tree, object type, and object name to be Ctrl + Shift + A and enter the object name or open the
opened. relevant tree from the Dictionary folder.

The relevant editor is opened. From here you can start your work.

Form-based editor for defining structures

Example of general functionalities that are provided to edit structures


in the source code editor

For the following ABAP Dictionary objects an integrated source-


based editor is provided in ADT:

Structures

For the following ABAP Dictionary objects a form-based editor is


provided in ADT:

Domains

Data elements

For more information, see:

Working with Structures

Working with Domains

Working with Data Elements

Related Information
ABAP Core Development
Testing and Quality Checking
Troubleshooting Tools

Testing and Quality Checking


In the context of testing ABAP source code, the following "how to" information is provided:

How can I perform the ABAP Test Cockpit (ATC) for a class, program, or function module?

Where can I nd details about errors?

How and where can I get further information about error handling?
This is custom documentation. For more information, please visit the SAP Help Portal 107
6/18/2019

How can I perform the ABAP Test Cockpit (ATC) for a class, program, or function
module?

How to with SE80 How to with ADT

In the Object Navigator, select the relevant class, program, or In the source code editor, open your class, program, or function
function module. From its context menu, choose Check + ABAP module. From the context menu, choose Run As + ABAP Test
Test Cockpit. Cockpit.

Context menu to run the ATC for a development object

For more information look here Launching ATC Check Run from the
Project Explorer

Context menu to run the ATC for a development object

Where can I nd details about errors?

How To with SE80 How To with ADT

Perform the ATC for the relevant object. To get further details about an error, open the Problems view.

To do this, choose Window + Show View + Problems from the


menu or enter "Problems" in the input eld of the Quick Access.

Example of displaying problems in accordance to their priority

Quick access to open the Problems view directly

Example of a Problems view that displays errors, warnings, and


additional information

For more information, see Working with ATC Findings in the ATC
Problems View

How and where can I get further information about error handling?

How To with SE80 How To with ADT

Double-click the relevant error. Double-click the relevant error in the Problems view.

Example of how to navigate to the relevant position within the source


code where the error occurrs

Example of how to display further error details For more information, see Troubleshooting for ABAP Syntax Errors

Related Information

This is custom documentation. For more information, please visit the SAP Help Portal 108
6/18/2019
ABAP Core Development
ABAP Dictionary Tools
Troubleshooting Tools

Troubleshooting Tools
In the context of debugging ABAP source code, the following "how to" information is provided:

How can I set a breakpoint?

How can I start the ABAP Debugger?

How can I set quickly a breakpoint for a function module?

How can I set a breakpoint?

How to with SE80 How to with ADT

In the source code editor of an ABAP program, set the breakpoint In the source code editor of an ABAP program, set the breakpoint
by selecting the relevant line of code and then clicking the by clicking in the ruler in the relevant position.
Set/Delete Session Breakpoint icon in the toolbar.

Example of a breakpoint set for line 20

For more information look here Setting and Managing Breakpoints

Example of a breakpoint set for a statement in a function module

How can I start the ABAP Debugger?

How To with SE80 How To with ADT

This is custom documentation. For more information, please visit the SAP Help Portal 109
6/18/2019

How To with SE80 How To with ADT

Set the breakpoint(s) in your program. Then choose the Debugging Set the breakpoint(s) in the ruler bar of your program. Choose F8
button from the toolbar of SE38. to run your application and check the position where you have set
the breakpoint.

Example after execution of a program where a breakpoint is set and the


ABAP Debugger is opened

Example after execution of a program where a breakpoint is set and


the ABAP Debugger is opened

ADT then opens automatically the Debug perspective.

For more information, see:

ABAP Debugging in ADT

Using Troubleshooting Tools

How can I set quickly a breakpoint for a function module?

How To with SE80 How To with ADT

Open your function module in SE37. Set the breakpoint(s) and start Open your function module and set the breakpoint(s) for an
the ABAP Debugger. From the menu, choose Breakpoints + executable ABAP statement by clicking in the ruler bar at the
Breakpoint at + Breakpoint at Function Module . beginning of the row.

Menu path for setting a breakpoint for an ABAP function module

Example for setting a breakpoint in an ABAP function module in ADT

For more information, see Working with ABAP Function Groups and
Modules

Related Information
ABAP Core Development
ABAP Dictionary Tools
This is custom documentation. For more information, please visit the SAP Help Portal 110
6/18/2019
Testing and Quality Checking

Security Guide
Target Audience
System administrators

ABAP developers

Why Is Security Necessary?


With the increasing use of distributed systems for managing business data, the demands on security are also on the rise. When
using a distributed system, you need to be sure that your data and processes support your business needs without allowing
unauthorized access to critical information.

This Security Guide assists you in making the ABAP development process secure using the ABAP Development Tools (ADT).

About This Document


The Security Guide comprises the following sections:

User Authentication on Front-End Client provides an overview of the authentication aspects.

Role and Authorization Concept introduces the authorization concept that applies to ABAP Development Tools

Resource Protection on Front-End Client explains how you can protect local resources of ABAP projects

Installing Plug-ins from Third Parties points to risks caused by installing third party plug-ins

Additional Information
For more information about speci c topics, see the Quick Links as shown in the table below.

Content Quick Link on SAP Service Marketplace or SAP Community

Security Security Community

Security Guides SAP Security Guides

Related SAP Notes SAP Security Notes & News

SAP NetWeaver SAP NetWeaver Technology Community

User Authentication on Front-End Client


In ABAP Development Tools, you always work with ABAP projects to access development objects from back-end systems. An
ABAP project represents a real system connection and therefore it requires an authorized user to access the corresponding
system. Every time you work with an ABAP project, you must rst log on to the front-end client. Then, with a logon method for
the SAP system, you connect to the backend system via the ABAP project. For the logon method, also known as standard
authentication, the user enters his or her user ID and password on the front-end client in order to log on to the ABAP back-end
system.

Risks

This is custom documentation. For more information, please visit the SAP Help Portal 111
6/18/2019
Standard authentication with explicit speci cation of user ID and password means that user data entered at the front-end
client is loaded into the main memory of the local host as clear text.

A password that is buffered locally, however, represents a potential security gap because it could be extracted in some way from
the memory by a third party.

Protection Measures
In addition to Secure Network Communication (SNC), ABAP Development Tools support the Single Sign-On (SSO) mechanism
provided by SAP NetWeaver. Using SSO, the user does not need to enter a user ID and password for authentication but can
access the system directly after the system has checked the logon ticket. Therefore, besides SNC (recommended to be enabled
for security reasons), we recommend using the SSO mechanism for authentication when working with ABAP projects on the
front-end client.

Note
The ABAP Development Tools support the measures recommended: Every time you want to create a new ABAP project for a
system connection for which the SNC is not enabled, you will be faced with a corresponding warning message in the creation
wizard.

Warning when creating an ABAP project with no SNC system connection

Recommendation
You can use assertion tickets for communication destinations between various other systems to perform the authentication
of frequent tasks or functions. Assertion tickets provide the highest level of security when creating an RFC or HTTP
connection and easiest usability for working with an ABAP system. We therefore recommend that you use assertion tickets
to allow ABAP developers to log onto an ABAP system.

To use assertion tickets, your ABAP system administrator needs to con gure the pro le parameters of the relevant ABAP
systems.

Related Information
Con guration Guide for Con guring the ABAP Back-end for ABAP Development Tools

Role and Authorization Concept


The identi cation of development objects belonging to the ABAP Repository takes place in the back-end with the speci cation of
the object type and the object name.

The ABAP Development Tools, however, represent a front-end client and it makes use of the HTTP-based REST architecture
when communicating with the back-end. From the viewpoint of this architecture, ABAP development objects are addressed as
resources and identi ed through URIs. A front-end request keeps a URI ready whenever a development object is accessed and it
is passed rst to a router in the back-end. The router, in turn, transfers the request to the responsible resource controller. The
latter uses the incoming URI to ensure the identi cation of the matching development object in the ABAP Repository. The

This is custom documentation. For more information, please visit the SAP Help Portal 112
6/18/2019
registration of resource controllers takes place with the help of BAdIs. The actual BAdI implementation is performed for a given
URI on the basis of prede ned lter values. A lter value contains the respective static URI path, which is used to gain access to
the resource in the back end (that is, to the development object).

Risks
There is a potential possibility of backdoors being introduced in the application server during the registration of resource
controllers. This could happen when speci c BAdI enhancements that were implemented for handling random, even "malicious"
URIs are registered in the system.

Protection Measures
To provide protection against such backdoors, the proven SAP NetWeaver authorization concept is brought into operation. This
allows for the assignment of authorizations to system users on the basis of prede ned roles. The system administrator,
therefore, assigns to the system users one or several roles that, in turn, are based-at a technical level-on authorization objects.

When you are assigning user authorizations for access to development objects, we strongly recommend using the standard
roles (see Table below) and authorization default values that are provided for working with ABAP Development Tools. The
standard roles are linked with the standard authorization object S_ADT_RES, which you can use to check a random incoming URI
against a prede ned URI list-that is, a white list. This authorization object, therefore, retains as an attribute the list of all
allowed URIs. A "malicious" URI would then be discovered through the authorization check.

Standard Roles
The table below shows the standard roles that should be assigned for users of the ABAP Development Tools:

Role Description

SAP_BC_DWB_ABAPDEVELOPER ABAP developer

SAP_BC_DWB_DISPLAY Display user

Standard Authorization Object

Authorization Object Field Description

S_ADT_RES URI Contains the white list of all allowed URI


pre xes

Related Information
Reference Documentation for User and Role Administration

Resource Protection on Front-End Client


In the ABAP Development Tools (ADT), an ABAP project provides a user-speci c view of all development objects of the back-end
system. Like all other projects under Eclipse, ABAP projects, too, have a local representation of their data on the front-end and
are managed in a workspace. In other words: When you have an ABAP project, local copies of development objects also exist on
the front-end. This, in turn, means that both the metadata and the source code of development objects are also accessible
outside the ABAP Repository at the level of the local le system.

This is custom documentation. For more information, please visit the SAP Help Portal 113
6/18/2019

Risks
The potential dangers lie in the following areas:

Metadata and sources of development objects being spied out by third parties

ABAP source code being manipulated locally on the front-end by third parties. If external users have access to the local
workspace folder, they have the chance to manipulate the development objects on the le system level. Data changed at
this level could be then propagated into the ABAP Repository as "hidden changes". In this way, even "malicious" ABAP
source code could nd its way in to the business application system.

Protection Measures
For the protection of local project resources, we strongly recommend the following protection measure:

Create your workspace folder for local storage of project resources in such a way that it cannot be read by third parties. Use the
protection measures that are already provided at operating-system level.

Note
Files that are located under Windows in the user's private folder subtree can only be accessed by the user himself/herself,
and by any user who is a local administrator.

In particular, we recommend making use of the default workspace that has been created with the IDE installation.

Installing Plug-ins from Third Parties


Your installation of ABAP Development Tools can be enriched with additional plug-ins from various providers (3rd parties).

Risks
These plug-ins can gain control over your client installation or even your complete front-end PC.

Protection Measures
You should carefully decide on plug-ins that you are going to install. For this, only use plug-ins from trusted sources and which
are using signatures.

What's New in ABAP Core Development


ABAP Development Tools (ADT) is released to customers in combination with the Application Server ABAP 7.53 SP00 shipment.
This means, in order to use certain ADT functionalities, you need to provide the corresponding back end.

The following table gives you an overview of the released ADT versions and ABAP back ends:

Back End Shipments/Version vs. ADT Client Versions

SAP SAP SAP NetWeaver AS for SAP NetWeaver AS for Application Server ABAP Development
NetWeaver NetWeaver ABAP 7.51 innovation ABAP 7.52 ABAP 7.53 Tools (Client)
7.4 7.5 package

- - - - SP00 Version 2.96

- - - SP01 Version 2.89

This is custom documentation. For more information, please visit the SAP Help Portal 114
6/18/2019

SAP SAP SAP NetWeaver AS for SAP NetWeaver AS for Application Server ABAP Development
NetWeaver NetWeaver ABAP 7.51 innovation ABAP 7.52 ABAP 7.53 Tools (Client)
7.4 7.5 package

- - - SP00 Version 2.83

- - SP03 - Version 2.80

- - SP02 - Version 2.77

- - SP01 - Version 2.73

- - SP00 - Version 2.68

- SP04 - - Version 2.64

- SP03 - - Version 2.60

- SP02 - - Version 2.58

- SP01 - - Version 2.54

- SP00 - - Version 2.51

SP12 - - - Version 2.48

SP11 - - - Version 2.44

SP10 - - - Version 2.41

SP09 - - - Version 2.36

SP08 - - - Version 2.31

SP07 - - - Version 2.28

SP06 - - - Version 2.24

SP05 - - - Version 2.19

SP04 - - - Version 2.16

SP03 - - - Version 2.13

SP02 - 2.7

Version 2.96
Here is an overview of the most signi cant changes in the context of ABAP core development that relate to the following:

Client: ABAP Development Tools (ADT) 2.96

Back end version: Application Server ABAP 7.53 SP00

Note
The following features that are highlighted with a '*' are client-speci c and are therefore available for all supported ABAP
systems.

In this topic, you will nd the release information about the following areas:

Ensuring Quality of ABAP Code

This is custom documentation. For more information, please visit the SAP Help Portal 115
6/18/2019
Support for Customer Extensions

Working with Classic Objects in ABAP Dictionary

Using Troubleshooting Tools

Working with Transport Organizer

Ensuring Quality of ABAP Code

ABAP Unit Test Relations

You can now assign ABAP Unit tests to ABAP Repository objects which cannot have their own tests, such as CDS views and
simple transformations. This means you need to model a relation between production code and test code. This relation is then
used by the ABAP Unit framework to nd the tests when test execution is triggered on the object in question.

To do this, write a speci c @testing link as an ABAP Doc comment in front of the test method or test class.

Executed foreign tests for the CDS view

For more information, see the following:

Writing ABAP Unit with Test Relations

Launching ABAP Unit with Test Relations

ABAP Unit Launch Dialog

You can now con gure your individual test execution using the ABAP Unit Launch dialog.

In the Scope section, you can select your own tests and/or any foreign tests that you want to execute. You can also de ne
restrictions such as the Risk Level and Duration. This makes, for example, the tests run faster.

In addition, you can enable coverage measurement or trace recording of the tests.

This is custom documentation. For more information, please visit the SAP Help Portal 116
6/18/2019

ABAP Unit Launch Dialog

For more information, see: ABAP Unit Launch Dialog

Quick Fixes for ATC Findings

You can now x certain ATC ndings with Quick Fixes. These Quick Fixes provide functions that enable you to resolve errors and
warnings without adapting your source code manually.

ATC ndings that can be xed with a Quick Fix are displayed with a lightbulb icon .

There are two ways of applying Quick Fixes for ATC ndings:

Select an ATC nding in the ATC Problems view and choose Quick Fix in the context menu.

Jump to your source code at the position where the ATC has found a problem and choose Quick Fix in the context menu.

Quick Fix in the context menu of an ATC finding in the ATC Problems View

For more information, see: Applying Quick Fixes for ATC Findings

This is custom documentation. For more information, please visit the SAP Help Portal 117
6/18/2019

Support for Customer Extensions

Editing Source Code Plug-Ins

ADT now provides native support for customer enhancements and modi cations.

You can change existing enhancements and modi ed source code.

Note
If you need to enhance the SAP standard, SAP recommends using customer enhancements instead of modi cations.

Enhancement implementations are enabled as follows:

Available enhancement implementations are indicated by the source code plug-in marker . The source code plug-ins are
displayed in the popup when you hover over the marker.

Popup with a single enhancement implementation

From here you can now navigate to the new Enhancement Implementation Editor:

Enhancement Implementation Editor

For more information, see: Editing Source Code Plug-Ins

Modifying Development Objects in the SAP Namespace

In some situations, the enhancement capabilities are not sufficient so you need to modify the SAP standard code using
Modi cation Assistant.

Editing of modi ed source code is now supported in ADT.

This is custom documentation. For more information, please visit the SAP Help Portal 118
6/18/2019

Replacing the condition in the original code with a new condition

For more information, see: Modifying Development Objects Using Modi cation Assistant

Working with Classic Objects in ABAP Dictionary

Creating and Editing Lock Objects

You can now create lock objects in ADT using the creation wizard. The new lock objects can then be edited in Lock Object Editor.

Lock Object Editor

For more information, see: Working with Lock Objects.

Using Troubleshooting Tools

Analyzing Runtime Errors

Runtime errors can be now displayed and analyzed in ABAP Runtime Error Viewer.

This is custom documentation. For more information, please visit the SAP Help Portal 119
6/18/2019

Runtime Error Viewer

You can open Runtime Error Viewer by clicking Show in the dialog that appears when a runtime error occurs. Alternatively you
can open it from Feed Reader.

For more information, see: Displaying ABAP Runtime Errors

Working with Transport Organizer

Viewing and Editing the Details of a Transport Request

You can now open a transport request or a task in a native editor in ADT. Previously, the transport request details were
displayed in the embedded SAP GUI.

This is custom documentation. For more information, please visit the SAP Help Portal 120
6/18/2019

Transport Request Editor in ADT

For more information, see: Working with Transport Organizer

Version 2.89
Here is an overview of the most signi cant changes in ABAP core development that relate to the:

Client: ABAP Development Tools (ADT) 2.89

Back end: SAP NetWeaver AS for ABAP 7.52 SP01

Note
Following features that are highlighted with a '*' are available for all ABAP systems supported by ADT.

Working with ABAP Projects

Overriding the Detection of File Locations

If system connections are missing from the SAP Logon pad when creating ABAP projects, you can now open the ABAP
Development System Connection preference page. Here you can override the detection of le locations.

For more information, see: Using System Connections from the SAP Logon Pad

Version 2.83
Here is an overview of the most signi cant changes in the context of ABAP core development that relate to the current ABAP
Development Tools (ADT) client and the SAP NetWeaver AS for ABAP 7.52 SP00 back-end.

Note
Following features that are highlighted with a '*' are available for all ABAP systems supported by ADT.

This is custom documentation. For more information, please visit the SAP Help Portal 121
6/18/2019

Debugging ABAP Code

Improved Internal Table Analysis

The ABAP debugger tools have been recently enhanced with new features for the analysis of internal tables during ABAP
debugging.

For more information, see: Analyzing Internal Tables

Debugging Dynpro Flow Logic

You now have the option to debug the ow logic of dynpro screens (PBO, PAI, …). The dynpro debugging enables stepping from
ABAP code into the screen ow logic and vice versa.

For more information, look here: Debugging Dynpro Flow Logic

Debugging Enhancement Implementations

Just like stepping into dynpro ow logic by pressing F5 it is also possible to step into enhancement implementations (implicit
and explicit).

For more information, look here: Debugging Enhancement Implementation

Non-Exclusive Debugging in ADT

The non-exclusive debugging mode which is known from the SAP GUI debugger is now also available for the ADT debugger (for
NW 7.68 / 7.52 or higher).

For more information, see: Debugging in Non-Exclusive Mode in ADT

Dynamic Logpoints in ABAP

Changing Logpoint De nition

In previous ADT versions, you could only change the logpoint activation status at any time while the logpoint de nition was
unchangeable. As of ADT version 2.83, you have the option of changing the logpoint de nition as well.

For more information, see: Changing Logpoints

Resetting Logs for a Logpoint

You now have the option of deleting the accumulated log entries of a dynamic logpoint without deleting the logpoint.

For more information, see: Resetting Logs for a Logpoint

Copying Logpoints

As of ADT version 2.83, you have the option of using copy, cut and paste functions on logpoints.

For more information, see: Copying Logpoints

AMDP Debugger

This is custom documentation. For more information, please visit the SAP Help Portal 122
6/18/2019

Inspection of Long Variable Values

If you have ever worked with long string values in AMDPs, you might have encountered an annoying restriction in the AMDP
debugger: For variable values, or more speci cally, for their string presentation, only the rst 1024 characters are shown in the
corresponding Variables view. For cell values of table variables only 256 characters are shown.

"..." at the end of the value presentation indicates that the value has been truncated

As of ADT 2.83 (and NW 7.52), it is possible to inspect the whole variable value.

For more information, see: Inspecting Long Variable Values

Working with ABAP Repository Trees

Expanding an ABAP Repository Tree

You now con gure how to display the structure of the development objects beneath the ABAP project in the Project Explorer.

To do this, open the context menu from the rst tree level, and chooseExpand Tree by....

From the dialog to be opened, you can choose one of the following radio buttons for sorting:

Owner (default)

Application Component

Package

Object Type

API State

Creation Year

Original Language

Source System

Show development objects directly

For more information, see: Expanding an ABAP Repository Tree

Working with ABAP Packages

Creating ABAP Packages

This is custom documentation. For more information, please visit the SAP Help Portal 123
6/18/2019
You can now create and edit ABAP packages in the integrated form-based editor.

This enables you to

Work with packages without opening SAP GUI.

Open and display packages from different ABAP systems in parallel.

Perform and display where-used lists for packages.

The form-based editor is designed as follows:

Example of an ABAP package opened in the form-based editor

The form-based editor provides the following information about an ABAP pacakge:

1. Toolbar to perform object-speci c actions

2. General Data to get an overview of the most relevant properties

Note
You can nd further data in the Properties view.

3. Package Properties displaying package-relating information, such as possible superpackages and package types

4. Transport Properties containing transport-relating information, such as transport layer, software component,

5. The Properties is no part of the form-based editor, but it also displays additional properties, such as package
breadcrumb, version status, creation date

Note
This is custom documentation. For more information, please visit the SAP Help Portal 124
6/18/2019
The package breadcrump and application component are only provided if your ABAP system is connected with an SAP
HANA database.

For more information, look here:

ABAP Package Editor

Creating ABAP Packages

Working with ABAP Source Code Objects

Launching an ABAP Program in the Console View

You can now execute an ABAP program directly in ADT and display its result in the Console view without launching the
integrated SAP GUI.

To do this, open the relevant program in the source-based editor. Choose Run ABAP Application (Console) from the context
menu.

The following information from top down is displayed:

Creation date

Object description

Pagination

Program result

Note
Parameters are not supported. Otherwise, a runtime error is displayed.

For more information, see: Launching an ABAP Program (Console)

Working with Classic Objects in ABAP Dictionary

Working with Database Tables

You can now create, edit, and delete database tables in the integrated source code editor of your Eclipse-based IDE.

This is custom documentation. For more information, please visit the SAP Help Portal 125
6/18/2019

Example of features that are provided in a source code editor for database tables

To store properties of a database table in the database, metadata is represented and de ned by annotations in the source-
based editor.

The source code is generated when it is read from the database. When you save or activate a structure, the source code is
converted to the existing persistence.

Note
To edit technical settings (data class, size category, buffering, and storage type) or to create/edit indexes, open the
integrated SAP GUI.

For more information, see:

ABAP Dictionary Editors

Working with Database Tables

Database Tables

Editing ABAP Source Code


This is custom documentation. For more information, please visit the SAP Help Portal 126
6/18/2019

Getting Support from the Content Assist when Editing AMDP Method Implementations

When editing AMDP method implementations in ABAP classes, the content assist now proposes datasources, columns, variable
declarations, and so on.

For more information,see : Using Code Completion for ABAP-Managed Database Procedures

Formatting ABAP Source Code

For more information, see: De ning ABAP Formatting Options

Linking to ABAP Repository Objects Out of the Element Information Popup and the ABAP Element Info View

To use this new language element, add the ... {@link [[[kind:]name.]...][kind:]name} ... syntax to your
comment.

For more information, see:

Linking ABAP Repository Objects and Its Components

Displaying Details in the Element Information Popup and the ABAP Element Info View

Ensuring Quality of ABAP Code

ABAP SQL Test Double Framework


The ABAP SQL test double framework is available to manage database dependencies. This framework is an addition to the
existing ABAP unit test framework, which enables testing of ABAP SQL statements present in your ABAP code through the
normal ABAP unit test classes. For more information, see ABAP SQL Test Double Framework.

Installing ADT on the Open Eclipse 4.7 (Oxygen) Platform


You can now install the ADT client also on the latest Eclipse 4.7 (Oxygen) platform.

This ADT client version supports the following Eclipse platforms:

4.6 (Neon)

4.7 (Oxygen)

For more information, see

Installing ABAP Development Tools for SAP NetWeaver

Eclipse Project 4.7 M2 - New and Noteworthy

ABAP in Eclipse 2.80 bene ts from Eclipse Oxygen

Version 2.80
Here is an overview of the most signi cant changes in the context of ABAP core development that relate to the current ABAP
Development Tools (ADT) client and the SAP NetWeaver AS for ABAP 7.51 innovation package SP03 back end.

Note
This is custom documentation. For more information, please visit the SAP Help Portal 127
6/18/2019
The following features that are highlighted with an '*' are available for all ABAP systems supported by ADT.

Running ATC Checks


Overriding the prede ned ATC check variant

You can start an ATC check run with the Run As ABAP Test Cockpit With... to specify an arbitrary global check variant.

As developer, you can use this option to override the prede ned ATC check variant for a speci c check run.

For more information, see: Launching ATC Check Run from the Project Explorer

Version 2.77
This is an overview of the most signi cant changes in the context of ABAP core development that relate to the current ABAP
Development Tools (ADT) client, and the SAP NetWeaver AS for ABAP 7.51 innovation package SP02 back end.

Note
Features highlighted with an asterisk ('*') are available for all ABAP systems supported by ADT.

Editing ABAP Source Code


Formatting ABAP Source Code

The ABAP Formatter preferences page has been redesigned. Its usability has been improved, and the user interface now
provides you with greater exibility when de ning the formatting options of ABAP source code.

It now provides the following new areas:

Upper/Lower Case Conversion to de ne formatting of ABAP keywords and identi ers in lower and upper case more
transparently.

Preview to see what the result of the formatting options will look like before publishing. An example code snippet is used
and displayed for this.

For more information, see:

Formatting ABAP Source Code

De ning ABAP Formatting Options

Unit Testing with ABAP Unit


Displaying and Switching Within the ABAP Unit Test History

You can now display the previously performed test runs in the ABAP Unit Test history. This enables you to switch between
different test runs without performing them again. The advantage is that you save time and will immediately have the already
evaluated test run(s) back at your disposal.

To display the history, choose the arrow from the History... icon displayed in the toolbar for the ABAP Unit Runner view. To
open the relevant test run, double-click it in the ABAP Unit Test History.

This is custom documentation. For more information, please visit the SAP Help Portal 128
6/18/2019

Note
When you perform a test run, the previous result will be overwritten but not deleted.

You can precon gure to display up to the last 99 test runs. To do this, enter the relevant number in the Maximum number of
remembered test runs input eld.

For more information, see: Using the History to Switch Between Results of ABAP Unit Tests

Filtering Test Results

In the ABAP Unit Runner view, you can now restrict the number, for example, to display only unit tests that have errors.

To do this, select one or more of the following checkboxes from the bar above the result tree for the tested development object:

Icon Meaning Description

Errors To nd out where your test run has


investigated an error in your code

Warnings To nd out which test methods result in


warnings

Aborts To nd out which tests have not been


executed

Successful To nd out which test method(s) have


passed the expected behavior

Note
If you deselect a checkbox, the corresponding test methods are hidden. This improves readability and makes it easier for you
to focus on the relevant test results.

If you right-click one of the selected checkboxes, the remaining selections are deselected. This enables you to deselect the
remaining checkboxes in one step.

For more information, see: Evaluating ABAP Unit Test Results

Displaying the Number of Test Methods

The number of test methods in a test class is now displayed at result tree level of the tested development object. This enables
you to investigate where and how many test methods exist.

The number is displayed in total for each main program and test class in blue brackets.

For more information, see: Evaluating ABAP Unit Test Results

Display of the Duration from Test Runs

ADT now displays the total execution time of a test run in the bar above the result tree for the tested development object.

For more information, see: Evaluating ABAP Unit Test Results

Running Parallel Test Execution

This is custom documentation. For more information, please visit the SAP Help Portal 129
6/18/2019
You can run now different test runs in parallel. This makes it possible to trigger several test runs if another test run is already in
progress.

ADT will always overwrite the results of the last test run. Using the ABAP unit test history, you can now select and open the
relevant result.

For more information, see:

Version 2.73
Here is an overview of the most signi cant changes in the context of ABAP core development that relate to the current ABAP
Development Tools (ADT) client and the SAP NetWeaver AS for ABAP 7.51 innovation package SP01 back end.

Note
The following features that are highlighted with an '*' are available for all ABAP systems supported by ADT.

Editing ABAP Source Code


Searching within the Element Info Popup and Element Information View*

The Element Info popup and Element Information view now provide a search input eld at the bottom. This enables you to
search for elements within the element info.

Search input field in the Element Info popup/Element Information view

The relevant search results are then highlighted in the element info. To browse through the search results, you can use
shortcuts and icons.

For more information, see: Displaying Details in the Element Information Popup and the ABAP Element Info View

Browsing within the Element Info Popup and Element Information View*

You can now use shortcuts to browse in the history and the usages in the Element Info popup and Element Information view.

For more information, see: Displaying Details in the Element Information Popup and the ABAP Element Info View

Getting Support from the Content Assist when Editing AMDP Method Implementations

When editing AMDP method implementations in ABAP classes, the content assist now proposes datasources, columns, variable
declarations, and so on.

For more information, see: Using Code Completion for ABAP-Managed Database Procedures

Breadcrumb Provides Information about Control Structures*

In the breadcrumb bar of the ABAP source code editors, information about control structures is now provided. This helps you to
orientate within a processing block and to navigate to other branches of a control structure.

This is custom documentation. For more information, please visit the SAP Help Portal 130
6/18/2019
For more information, see: Getting Orientation in the Source Code Using Breadcrumbs

Working with ABAP Source Code Objects


Launching an ABAP Class as ABAP Application (Console)

You can now execute an ABAP class that implements the if_oo_adt_classrun interface. This class enables you to display
any kind of text and/or content of internal tables in the Console view.

Example of a Console view when launching such an ABAP class

To launch an ABAP class, you have to add the if_oo_adt_classrun ABAP interface to its de nition and implement the
relevant main method. You can then perform Run As + ABAP Application (Console) from the context menu of the source
code editor. Alternatively you can choose F9 .

For more information, see: Launching an ABAP Application (Console)

Working with Classic Objects in ABAP Dictionary


Working with Domains

You use domains to de ne a value range. You can now create, edit, and delete domains in the integrated form-based editor of
your Eclipse-based IDE.

For more information, see:

ABAP Dictionary Editors

Working with Domains

Help Contents
Providing "How to" Information for SE80 Experts who are Switching to ADT

If you are an SE80 expert who has started working with ADT, you will now nd the following information in the Help Contents:

Eclipse basics in the Getting Started chapter that describe the most relevant elements of the Eclipse UI in general.

FAQs in the Reference chapter that compare the "how to" information of the most relevant ABAP development activities
in environment SE80 and in ADT.

The FAQ list is divided into different development areas.

This content enables you a smooth transition from SE80 to ADT.

For more information, see:

Eclipse Basics

FAQs for SE80 Experts Using ADT

This is custom documentation. For more information, please visit the SAP Help Portal 131
6/18/2019

Version 2.68
Here is an overview of the most signi cant changes in the context of ABAP core development that relate to the current ABAP
Development Tools (ADT) client and the SAP NetWeaver AS for ABAP 7.51 innovation package SP00 back end.

Note
Following features that are highlighted with a '*' are available for all ABAP systems supported by ADT.

Working with ABAP Projects


Displaying and Structuring Content Through ABAP Repository Trees

ABAP repository trees enable you to de ne your own selection of the development objects in the Project Browser. In addition,
they display for each level the number of containing objects and a short text.

Note
This functionality requires working on SAP NetWeaver AS for ABAP 7.51 innovation package SP00 that is connected with a
SAP HANA database.

So far, the Favorite Packages and the System Library with all development objects are displayed by default in the Project
Explorer.

They are now replaced by the following default virtual trees:

Local Objects ($TMP) displays your local objects sorted in accordance to the user and object type.

System Library displays all development objects sorted in accordance to the corresponding ABAP package.

For more information, see:

ABAP Repository Trees

Working with ABAP Repository Trees

Working with ABAP Dictionary Objects


Editing the Status of Documentation for Data Elements

You can now specify the documentation status of a data element to de nes whether documentation has already been written or
whether it is still required.

For more information, look here: Changing the Documentation Status

Working with ABAP Development Objects


Searching ABAP Source Code

The ABAP Source Search now also supports the IBM Db2 database type.

For more information, look here: Searching ABAP Source Code

Navigating to Development Objects from the Element Info Popup

This is custom documentation. For more information, please visit the SAP Help Portal 132
6/18/2019
You can now open a development object directly from the position where it is displayed in the Element Info Popup.

Example of the context menu entry in the Element Info popup from where you can navigate to a development object

To do this, select the relevant usage in the Element Info Popup and open the context menu. Choose then Navigate.

For more information, look here Displaying Details in the Element Information Popup and the ABAP Element Info View

Working with Released APIs

You, as a developer, can now check which APIs are released and stable for usage – and which are not. Consequently, customer
objects that only use released APIs do not need to be adapted after the next SAP NetWeaver support package or upgrade.

For more information, see

Released APIs

Setting the API Release State

Editing ABAP Source Code


Using Quick Fixes and Code Completion to Format ABAP Doc Comment*

You can add formatting using code completion ( Ctrl + Space ). In addition, you can also use quick xes ( Ctrl + 1 ) to
adapt formatting to existing comments.

To perform both, position the cursor at the corresponding position or select the relevant text. Press then the shortcut and
choose the relevant formatting from the popup.

For more information, look here: Formatting ABAP Doc Comments

Debugging Support for CDS Table Functions


You have now the option to debug CDS table functions using the AMDP debugger. A table function consists of a CDS de nition
and a SQLScript procedure implementation that is used for data retrieval once the table function is accessed (for example
using OpenSQL).

Now, you cannot only debug AMDPs with ABAP Development Tools (ADT). The integrated debugger that is part of the ADT client
installation, allows you also to debug the CDS table functions within the ABAP development IDE.

For more information, look here: Debugging AMDPs and CDS Table Functions

Working with ABAP Push Channels

This is custom documentation. For more information, please visit the SAP Help Portal 133
6/18/2019
Creating and De ning ABAP Push Channel Applications

ABAP Development Tools now provides a form-based editor to create and edit APC applications. Using this editor you can
con gure an APC application that enables bi-directional communication with user agents through the integration of
WebSockets or TCP Sockets.

For more information, look here Working with ABAP Push Channels

Version 2.64
Here is an overview of the most signi cant changes in the context of ABAP core development that relate to the current ABAP
Development Tools (ADT) client and the SAP NetWeaver 7.5 SP04 back end.

Note
The features below that are highlighted with an '*' are available for all ABAP systems supported by ADT.

Installing ADT on the Open Eclipse 4.6 (Neon) Platform


You can now install the ADT client also on the latest Eclipse 4.6 (Neon) platform.

This ADT client version supports the following Eclipse platforms:

4.5 (Mars)

4.6 (Neon)

For more information, see

Installing ABAP Development Tools

Eclipse Neon - New and Noteworthy (Information published on non-SAP site)

Working with ABAP Development Objects


Navigating Within the Element Information of Development Objects*

You can now navigate from the Element Information Popup of a usage to the Element Information Popup of another usage by
clicking its name. Note that the same functionality is also provided for the ABAP Element Info view.

Example of an Element Information popup from where you can open the corresponding information of another usage

For more information, look here Displaying Details in the Element Information Popup and the ABAP Element Info View

This is custom documentation. For more information, please visit the SAP Help Portal 134
6/18/2019
Overriding Methods from Superclasses*

You can generate the code snippet for the method rede nition and its implementation block in one step. To do this, position the
cursor between the CLASS implementation and the ENDCLASS statement. Then trigger the code completion. As a result, a list
with all methods that can be overridden is displayed. From here you can choose the relevant method.

List that displays the superclass methods that can be overridden, triggered by code completion

Note
The supercall is not added by default. You will have to add it to the method implementation block manually.

For more information, see Overriding Methods from Superclasses

Adding ABAP Doc Comments for Methods Using The Quick Assist

In the de nition of an ABAP class, you can document a method. When using the <p class="shorttext synchronized">
tag, the short texts between the form-based Class Builder in the backend and the ADT source code editor are synchronized
automatically.

In the de nition of an ABAP class, you can now document a method by using the Add ABAP Doc quick assist. The <p
class="shorttext synchronized"> tag is then added in an ABAP Doc comment block. When activating, the short texts
will be synchronized with the back end.

This is custom documentation. For more information, please visit the SAP Help Portal 135
6/18/2019

Quick fix dialog box to add the ABAP Doc comment block for synchronizing with the back end

For more information, look here

Adding ABAP Doc Comments

Synchronizing ABAP Doc Comments

Version 2.60
Here is an overview of the most signi cant changes in the context of ABAP core development that relate to the current ABAP
Development Tools (ADT) client and the SAP NetWeaver 7.5 SP03 back end.

Note
The features below that are highlighted with an '*' are available for all ABAP systems supported by ADT.

Working with ABAP Development Objects


Changing The Color of Individual ABAP Keywords*

Now you can con gure the syntax coloring preference for each single ABAP keyword or the sequence of several ABAP keywords,
for example, "call method", used within a statement. This enables you to highlight all relevant occurrences and to improve
readability when you skim through ABAP source code objects such as ABAP classes, interfaces, programs, and so on.

To proceed, open ABAP Development Editors Source Code Editors ABAP Keyword Colors preference page. From here you can
use a set of prede ned syntax coloring con gurations provided by SAP.

Note
To make these default con gurations visible in your ABAP source code, you also have to apply your preference.

For more information, look here Changing The Color of Individual ABAP Keywords

Prede ning a Background Color for ABAP Method Blocks*

Now you can prede ne a background color to highlight the implementation of a method in the source code editor. Then,
between the METHOD and ENDMETHOD statement, the background color of a method body is displayed in the prede ned color.

To proceed, open the General Appearance Colors and Fonts preference page and expand the ABAP Syntax Coloring folders.
From here you edit the ABAP method block entry.

This is custom documentation. For more information, please visit the SAP Help Portal 136
6/18/2019
For more information, look here Changing the Font Color of Texts

Version 2.58
Here is an overview of the most signi cant changes in the context of ABAP core development that relate to the current ABAP
Development Tools (ADT) client and the SAP NetWeaver 7.5 SP02 back end.

Note
Following features that are highlighted with a '*' are available for all ABAP systems supported by ADT.

Working with ABAP Projects


Usability Improvements in the Creation Wizard for New ABAP Projects*

On the rst page of the creation wizard for ABAP projects, is now a tabular overview displayed. Here, you can nd all system
connections that are con gured in the SAP Logon.

From here, you have the following possibilities:

You can choose an existing system connection. Then, on the second page, all connection details are displayed. From here,
you can review or, if required, modify them.

You can con gure a new system connection for your ABAP project from scratch.

For more information, look here Creating ABAP Projects

Version 2.54
Here is an overview of the most signi cant changes in the context of ABAP core development that relate to the current ABAP
Development Tools the (ADT) client and the SAP NetWeaver 7.5 SP01 back end.

Note
The following features that are highlighted with an '*' are available for all ABAP systems supported by ADT.

Additional Functions in ABAP Debugger

Working with Breakpoint Conditions

When debugging ABAP code, you have now the option to specify a condition for an ABAP breakpoint. The condition is evaluated
at runtime whenever the source code position of the related breakpoint is reached. If the condition is ful lled, the debugger will
stop execution at the breakpoint.

For more information, look here: Adding Conditions to Breakpoints

Working with ABAP Dictionary Objects


Creating, Editing, and Displaying Supplementary Documentation for Data Elements

From the toolbar, you can provide additional supplementary documentation for each data element in order to provide individual
program-speci c and dynpro-speci c eld help.

This is custom documentation. For more information, please visit the SAP Help Portal 137
6/18/2019
For more information, look here: Providing Supplementary Documentation

Working with ABAP Development Objects


Using Search Patterns for Opening ABAP Development Objects

When using Ctrl + Shift + A , you can now de ne the following defaults for the search text eld:

Text combinations, for example, ADT type:class

Input from the previous search

To ll these defaults in the search text eld, de ne the following Search preferences:

Use as initial search pattern to enter a default search pattern in the input eld.

Use pattern from previous search to reuse the previously entered search string.

For more information, look here: Open ABAP Development Object Dialog

Editing ABAP Source Code


Displaying the ABAP Language Version of ABAP Programs and Classes

You can now indicate for which scenario (such as Unicode program (default) and ABAP for Key Users) the syntax rules and
language elements of ABAP programs and classes need to be checked.

For more information, look here De ning the ABAP Language Version of ABAP Programs and Classes

Version 2.51
Here is an overview of the most signi cant changes in the context of ABAP core development that relate to the current ABAP
Development Tools (ADT) client and the SAP NetWeaver 7.5 SP00 back end.

Note
The features listed below that are highlighted with an asterisk ('*') are available for all ABAP systems supported by ADT.

Working with Classic Objects in ABAP Dictionary


Creating and Editing Structures in the Source-Based Editor

You can now access, create, edit, transport, and delete structures from the ABAP Dictionary. For this purpose, the source-based
editor is provided where you can work with structures in the same way as you are used to for ABAP classes, programs, and so
on.

You have, for example, the following functionalities at your disposal:

Syntax highlighting

Code completion

Navigation

Where-used list

Code element info

This is custom documentation. For more information, please visit the SAP Help Portal 138
6/18/2019
Automatic syntax check

Context-sensitive ABAP keyword documentation

For more information, look here:

ABAP Dictionary Editors

Working with Structures

Syntax of ABAP Dictionary Objects

Creating and Editing Data Elements in the Form-Based Editor

You can now access, create, edit, transport, and delete data elements from the ABAP Dictionary. For this purpose, the form-
based editor is provided.

For more information, look here

ABAP Dictionary Editors

Working with Data Elements

Working with ABAP Development Objects


Changing the ABAP Package Assignment

You can move a development object into another ABAP package in order, for example, to ship an ABAP class that was created in
your $TMP package using the productive ABAP source code.

To do this, select the object in the Project Browser and choose Change Package Assignment. Then de ne the new package.

For more information, look here Changing the ABAP Package Assignment

Working with ABAP Classes Assigned to Multiple Transport Requests

You can edit a class that consists of several subobjects, such as a public section, method implementation, or local class includes.
You can then assign each change made to a subobject to a transport request separately.

If you want to edit an ABAP class where the changes have already been assigned to a transport request by another user, the
Link Up of Transport Request dialog opens automatically:

Example of a dialog where you select the assignment of the transport request

Here you can assign your changes to different transport requests.

For more information, look here Working with ABAP Classes Assigned to Multiple Transport Requests

This is custom documentation. For more information, please visit the SAP Help Portal 139
6/18/2019
Using Untyped Parameters in Function Modules

If you edit an existing function module with untyped parameters, the editor automatically adds the
##ADT_PARAMETER_UNTYPED pragma to the de nition. When you perform save, the parameter is kept untyped and
unchanged in the back end – that is, the system does not explicitly add TYPE ANY or TYPE STANDARD in transaction SE37.

For more information, look here De nition Part

De ning Templates for ABAP Programs

You can specify whether you want to generate your own or the standard comment block before the REPORT statement.

For more information, look here:

Creating ABAP Programs

De ning Code Templates for ABAP Programs

Editing ABAP Source Code


Synchronizing ABAP Doc Comments

You can now synchronize ABAP Doc from descriptions of the Class Builder using the source-code editor in ABAP Development
Tools (ADT) and vice versa.

For more information, look here: Synchronizing ABAP Doc Comments

Exporting ABAP Doc Comments

You can now export source code documentation of ABAP classes and ABAP interfaces – for example, if you want to have a
backup for them for audits.

For more information, look here Exporting ABAP Doc Comments

Grouping Inactive Objects for Mass Activation by Transports Requests

When you activate several development objects, the inactive objects are now automatically sorted according to the transport
requests to which the changes are assigned. As a result, the inactive objects are sorted upwards according to the names of the
transport tasks in the Activate inactive ABAP development objects dialog.

 Example
You want to test an ABAP class that refers to a class of the same transport request that was modi ed by another user.

Deselect the Group object list by transport request checkbox if you only want to perform sort for the inactive objects.

For more information, look here Activating Development Objects

Displaying and Changing Object-Speci c Properties

In the General and Speci c tab of the Properties view, you can now display and change the properties of the following ABAP
development objects:

Classes

Interfaces

This is custom documentation. For more information, please visit the SAP Help Portal 140
6/18/2019
Function groups

Function modules

Programs

Includes

Type groups

Transformations (read-only)

For more information, look here Displaying Properties of Development Objects

Navigating to Development Objects Using Ctrl+Shift+A*

When performing Ctrl+Shift+A, you can now limit the number of displayed entries by entering "<". Then, only the
development objects are displayed whose name ends on the value that you entered before the "<" character.

 Example
To see all the development objects ending with "Test", use "*Test<"

For more information, look here Open ABAP Development Object Dialog

Working with Transformations


Creating and Editing Simple Transformation Programs

You can now create and edit simple transformations (ST) and XSL transformations in their own source-based XML editor. For
the creation function, you can use the corresponding templates.

For more information, look here:

Transformation Editor

Working with Transformations for XML

Working with ABAP Projects


Displaying System Connection and Database Con guration

You can display the system information of an ABAP project in the System tab of the Properties view. This enables you to nd
out, for example, whether the requirements for a certain functionality are supported.

For more information, look here: Displaying System Connection and Database Con guration

Refactoring Aids
Surrounding with TRY CATCH

You can surround the selected block of statements with a TRY CATCH statement in order to handle raised exception(s) as a
single or multiple TRY CATCH block.

For more information, look here Surrounding with TRY CATCH

Extracting a Catch Variable

This is custom documentation. For more information, please visit the SAP Help Portal 141
6/18/2019
You can add a local variable to the method signature. Its type refers to the raised exception of the calling method. In addition,
this local variable is added as an INTO clause to the already existing CATCH block. This enables you to handle the result of the
exception in order, for example, to display it in a message.

For more information, look here Extracting a Catch Variable

Extending a TRY CATCH Statement

You can add a new CATCH block to an existing TRY CATCH statement. This enables you to handle another exception in an
existing TRY CATCH statement.

For more information, look here Extending a TRY CATCH Statement

Splitting a MULTI CATCH Block

You can replace an existing MULTI CATCH block by individual CATCH blocks for each exception separately.

For more information, look here Splitting a MULTI CATCH Block

Removing a TRY CATCH Statement

You can remove an entire TRY CATCH statement if you no longer want to handle the exceptions.

For more information, look here Removing a TRY CATCH Statement

Generating Getters and Setters

You can now generate the getter and/or setter method stubs from an attribute in the de nition of an ABAP class in the
implementation. In addition, the corresponding importing and/or returning parameter(s) are set.

For more information, look here Generating Getters and Setters

Regenerating a Constructor for Exception Classes

Exception classes have special constructor methods. If they implement the interface IF_T100_MESSAGE, the signature and
the implementation have a special logic.

You can now regenerate their constructor if you have added or removed:

the interface IF_T100_MESSAGE, or

public or protected attributes.

For more information, look here: Regenerating a Constructor for Exception Classes

Dynamic Logpoints in ABAP


Working with Dynamic Logpoints

Logpoints indicate to the ABAP runtime that an ABAP program is to execute a custom action at a certain point within the
program. Dynamic logpoints have been introduced in order to support logging in quality or productive systems where the source
code cannot be changed.

For more information, look here:

Dynamic Logpoints in ABAP

This is custom documentation. For more information, please visit the SAP Help Portal 142
6/18/2019
Using Dynamic Logpoints

Additional Analysis Tools in the ABAP Pro ler


Condensed Hit List

You can now use the Condensed Hit List to nd top consumers with regard to procedure calls, such as methods, function
modules, subroutines, or other kinds of calls.

For more information, look here:

Finding Top Consumers Using the Condensed Hit List

Understanding ABAP Pro ler Settings

Aggregated Call Tree

Aggregated Call Tree shows the trace events in aggregated form. In this case, the trace events are aggregated By Call Stack
and are displayed in a tree hierarchy.

For more information, look here: Analyzing Trace Events in the Aggregated Call Tree

ABAP Debugger
New Debug Settings

You can now use project-speci c debug settings to change the user for which ABAP breakpoints are in effect. In the special case
where several people are using the same user name and password (group users) the new option. This project only within the
project-speci c settings allows you to handle technical con icts during debugging.

For more information, look here:

Setting ABAP Project-Speci c Debug Settings

Debugging Support for ABAP Managed Database Procedures (AMDP)


AMDP Debugger

ABAP Managed Database Procedures (AMDP) are a new feature in AS ABAP that enable developers to write database
procedures directly in ABAP. You can now debug AMDPs using ABAP Development Tools (ADT).

The integrated AMDP Debugger is used to debug the execution of DB procedures running on HANA DB and provides the
developer with the following activity options:

(De-)Activation of the AMDP debugger

Setting breakpoints

Stepping

Viewing variables and table contents

Version 2.48
This is custom documentation. For more information, please visit the SAP Help Portal 143
6/18/2019
Here is an overview of the most signi cant changes in the context of ABAP core development that relate to the:

Back end: SAP NetWeaver 7.4 SP12

Client: ABAP Development Tools (ADT) 2.48

Installing ADT on the Open Eclipse 4.5 (Mars) Platform


You can now install the ADT client also on the latest Eclipse 4.5 (Mars) platform.

This ADT client version supports the following Eclipse platforms:

4.4 (Luna)

4.5 (Mars)

For more information, look here

Installing ABAP Development Tools

Eclipse Project 4.5 M2 - New and Noteworthy

Version 2.44
Here is an overview of the most signi cant changes in the context of ABAP core development that relate to the:

Back end: SAP NetWeaver 7.4 SP11

Client: ABAP Development Tools (ADT) 2.44

Note
The following features that are highlighted with a '*' are available for all ABAP systems supported by ADT.

Editing ABAP Source Code


Con guring Code Completion to Automatically Insert the Full Signature*

When you perform code completion, you can now con gure the preferences to insert the full signature of a method, function
module, or form routine automatically.

Note
This functionality is not enabled by default. To use it, you need to select the Always insert full signature on completion option
in the Code Completion preferences.

For more information, look here Inserting a Full Signature Automatically

Con guring Code Completion to Overwrite Source Code*

When you perform code completion, you can now con gure the preferences to overwrite the existing keyword or identi er with
the selected proposal from the code completion list.

Note
This functionality is not enabled by default. To use it, you need to select the Completion overwrites radio button in the Code
Completion preferences.
This is custom documentation. For more information, please visit the SAP Help Portal 144
6/18/2019

For more information, look here Inserting or Overwriting Source Code

Version 2.41
Here is an overview of the most signi cant changes in the context of ABAP core development that relate to the:

Back end: SAP NetWeaver 7.4 SP10

Client: ABAP Development Tools (ADT) 2.41

Note
The following features that are highlighted with a '*' are available for all ABAP systems supported by ADT.

ABAP Development Objects


Running Applications in the Same SAP GUI Window

You can open an executable object like an ABAP program in a new or in the same SAP GUI window. If you want to open it in the
same window, select the Open SAP GUI as separate window option on the SAP GUI Integration preference page. To do this,
choose the Window Preferences ABAP Development SAP GUI Integration menu.

For more information, look here Running as ABAP Development Object

Merging and Editing Changes in the Compare Editor*

Firstly, you can edit and merge versions of the same development objects in the Compare Editor.

This enables you to adopt individual or all changes, for example, from one system into another or from a previous version into
the inactive version of the object.

Secondly, if you use the new Alt Shift C shortcut, ADT automatically:

1. Evaluates the ABAP project that you selected previously for comparing code versions across ABAP projects.

2. Triggers the compare editor using the evaluated ABAP project.

For more information, look here Comparing Source Code and Comparing Across ABAP Projects (ABAP Systems)

Displaying BAdI De nitions in the Project Explorer

BAdI de nitions are now displayed underneath their enhancement spots in the Project Explorer. This enables you to open, and
directly navigate to, the selected BAdI de nition in the SAP GUI.

Using Accessibility Features in ADT

ADT now provides help content for people with a physical disability, such as restricted mobility or limited vision, or those with
special needs to use its features successfully.

For more information, look here Accessibility Features in ADT

Refactoring Aids

This is custom documentation. For more information, please visit the SAP Help Portal 145
6/18/2019
Correcting Misspelled Variables

You can correct misspelled variables using a quick x if another variable with a similar name exists.

For more information, look here Correcting Misspelled Variables

Correcting an Interface Attribute Access Using an Interface Attribute

You can reuse existing interface members by adding the corresponding interface name and the '~' component selector.

For more information, look here Adding the Interface Name

Correcting an Interface Attribute Access by Generating an Alias

You can generate and reuse an alias from a variable that points to the ~ component selector of an interface.

For more information, look here Generating an Alias

Version 2.36
Here is an overview of the most signi cant changes in the context of ABAP core development that relate to the:

Back end: SAP NetWeaver 7.4 SP09

Client: ABAP Development Tools (ADT) 2.36

Note
Following features that are highlighted with a '*' are available for all ABAP systems supported by ADT.

ABAP Development Objects


Selecting a Main Program for Multiple-Used ABAP Includes

If you open an ABAP include that is used in several main programs, the following dialog is opened that depends on where the
include is displayed in the node structure of the Project Explorer:

If the main program is not assigned to an include and the include is displayed directly beneath the Include node, the
dialog for selecting a main program is opened as follows:

Dialog for selecting a main program

Then, from the selection list, you can choose:

a speci c main program where you want to use the include.


This is custom documentation. For more information, please visit the SAP Help Portal 146
6/18/2019
<No main program assigned> if you want to keep it open in which main program the include should be used.

If the include node is located beneath the Project Explorer, for example, a function group include, type group, program, in
the selection eld, the corresponding object is already preselected.

If you open the Properties view, the General tab and the Speci c tab are provided. In the Speci c tab your previous selection is
displayed. Here, you can also select a main program from the dropdown list.

Specific tab in the Properties view for selecting a main program

Note
Now, the selection is valid until you close the include editor.

For more information, look here: Selecting a Main Program for Multiple-Use ABAP Includes

Working with ABAP Projects


Creating ABAP Projects from an Existing System Connection*

When you create an ABAP project from an existing system connection, the icon of the ABAP project in the Project Explorer is
displayed with a decorator. Because, the project is referencing a system connection in the SAP Logon Pad, a decorator is added
to the project icon . This decorator re ects the connection to the SAP Logon.

For more information, look here: Using a Prede ned System Connection from the SAP Logon

Duplicating an Existing System Connection*

You create an ABAP project from an existing ABAP project in order to modify or reuse the existing system connection.

For more information, look here: Duplicating an Existing System Connection

Jumping between ABAP Projects*

If you are, for example, working on an object in an ABAP project and debugging it at the same object in another project, you can
now directly jump between these projects. For jumping, open the object and select Open in Project from the context menu.

For more information, look here Opening in Another System

Refactoring Aids
Pull-up Members to Superclass

You can move member de nitions (for example, constants, attributes, methods, types, and events) from a subclass and to its
superclass.

This is custom documentation. For more information, please visit the SAP Help Portal 147
6/18/2019
For more information, look here Pull-up Members to Superclass

Pull-up Members to Interface

You can move member de nitions from a class and add them to the implemented interface. To avoid invalidation of existing
usages, aliases are declared.

For more information, look here Pull-up Members to Interface

Version 2.31
Here is an overview of the most signi cant changes in the context of ABAP core development that relate to the:

Back end: SAP NetWeaver 7.4 SP08

Client: ABAP Development Tools (ADT) 2.31

Note
Following features that are highlighted with a '*' are available for all ABAP systems supported by ADT.

ABAP Development Objects


Switching Between Inactive and Active Versions of a Source-Based Object

You can toggle between the inactive and active version of any source-based objects such as ABAP classes, function modules, or
programs. This functionality enables you to read the inactive version that is saved by another user and not available in your
working area.

For more information, look here: Switching between Inactive and Active Versions of a Source-based Object

Linking for Displaying ABAP Source Code in a Web Browser

From the context menu in the Project Browser, you can copy the hyperlink of a development object and paste it into an email or
any document. This enables you to create a hyperlink so that the receiver can open the ABAP source code of the development
object in a Web browser.

Note
Http links are available for the following development objects:

ABAP programs

ABAP includes

ABAP function groups

ABAP function group includes

ABAP function modules

ABAP classes

ABAP interfaces

For more information, look here: Linking for Displaying ABAP Source Code in a Web Browser

This is custom documentation. For more information, please visit the SAP Help Portal 148
6/18/2019
Generating an Email for Sharing Hyperlinks to ABAP Source Code

You want to share a hyperlink to a development object or a part of ABAP source code through an email. To do this, you can now
select Email link in the Share Link dialog. A new email is then generated from your default email client where the hyperlink is
added.

For more information, look here where this functionality is provided for the following functions:

Linking to Open Development Objects in Another ADT Installation

Linking for Displaying ABAP Source Code in a Web Browser

Linking to Selected Parts of ABAP Source Codes

Selecting a Main Program for Multiple-Use Include Programs

Typically, an include program is used by exactly one main program. If an include program is used in several main programs, you
need to select a speci c main program in order for the functionality to be executed.

You can now select a speci c main program for a multiple-use include program in the Properties view. Note that this selection is
valid until you close your Eclipse-based IDE.

Whenever a speci c functionality (for example, ABAP syntax check, navigation, and so on) is executed that requires a main
program, but none is selected, a dialog is opened. You then need to select a main program in the Properties view.

For more information, look here: Selecting a Main Program for Multiple-Use ABAP Includes

Element Info
In the Element Info view and Element Info popup, the following details are now displayed:

Texts that are provided for message classes and text elements

If a long text exists for any ABAP function module, a link to the corresponding documentation is provided:

Example of a link that refers to a long text document

Working with ABAP Projects


Creating ABAP Projects by De ning a Manual System Connection*

You want to de ne the connection of your Eclipse-based IDE to an ABAP system directly without using the SAP Logon Pad. This
enables you to adopt certain properties like the connection type, message server, instance number, and so on.

For more information, look here: De ning a Manual System Connection

Quick Assist View*


The Quick Assist view supports you in executing refactorings and ABAP quick xes, or when generating ABAP source code. It
interacts directly with the ABAP source code editor. At every position where a quick assist can be applied, the content of the
Quick Assist view is therefore automatically updated according to the selection made.

This is custom documentation. For more information, please visit the SAP Help Portal 149
6/18/2019
The layout of the Quick Assist view is divided into the:

Proposal overview that displays the possible quick assists at the current cursor position in the source code.

Description per proposal that provides details about the operating steps of the quick assist that is selected in the
Proposal overview.

Previous Result that displays the changes performed by the recently applied quick assist.

From the toolbar, you can execute several operations like applying the selected proposal, disabling link with editor, clearing the
result history, and so on.

Example of a Quick Assist view after executing a quick assist

For more information, look here: Quick Assist View

ABAP Quick Fixes


Creating Local ABAP Classes or ABAP Interfaces from Usage

In the source code of an ABAP program, you can now also create a local ABAP class or interface directly from the name of the
missing class or interface. The creation of global classes is already possible.

For more information, look here: Creating ABAP Classes or ABAP Interfaces from Usage

Other ABAP Quick Assists


Creating and Maintaining Text Symbols

Using a text symbol makes a development object translateable and easier to maintain.

In the source code editor, the following other quick assists are now provided for working with text symbols:

Creating a Text Symbol in the Text Pool to add new text symbols to the text pool

Editing Text Symbols to adopt the text content or text key


This is custom documentation. For more information, please visit the SAP Help Portal 150
6/18/2019
Correcting Inconsistencies Within Text Symbols to adopt changes between the text pool and source code editor

Switching Notations to substitute a fully-quali ed literal of a text symbol with a notation

For more information, look here: Creating and Editing Text Symbols (Quick Assists)

ABAP Searches
Expansion of the Where-Used Functionalities

Now, in the Search view, the number of matches and the development objects that contain at least one match are displayed.
The matches themselves are structured according to ABAP packages, development objects, and the subobjects where the
actual matches are highlighted.

In addition, the following functionalities are provided from the toolbar:

Set a lter for:

ABAP package(s)

Development object type(s)

Responsible user(s)

Code category

Exclusion of indirect references

Navigate to the next or previous match

Expand or collapse a main tree or a subsequent subtree

Show or hide the ABAP package hierarchy

Rerun the search function

Stop the current search

Display or clear data as well as navigate in the search result history

Pin the search view

Display the search result view as a list or tree

From the context menu of a selected development object or element, you can:

Run an ABAP unit test

Search for other usages

For more information, look here:

Where-Used Function

Searching Usages (Where-Used)

Searching ABAP Source Code

In the Search Filter input eld, you can now limit the search for the name of the responsible user provided in table TADIR, eld
AUTHOR.

This is custom documentation. For more information, please visit the SAP Help Portal 151
6/18/2019
For more information, look here: Searching ABAP Source Code

Ensuring Quality of ABAP Code with the ABAP Test Cockpit


ABAP developers have various new options at their disposal for using ATC in ABAP Development Tools. In the current shipment,
they can use ATC in the following use cases:

For more information, look here: Checking Quality of ABAP Code with ATC

1. Running ATC checks during development

Developers run the ATC checks to nd potential bugs already during the development and launching of ATC from their
IDE.

For more information, look here: Working with ATC During Development

2. Running ATC checks during transport release

During the transport release, the ATC implicit check run for all development objects that are included in the transport
request provides the rst Q Gate (quality gate).

For more information, look here: Working with ATC During Transport Release

3. Working with central ATC results from mass regression check runs that have been scheduled in a central quality
system

In the target quality system, the mass regression check runs are scheduled and serve as the nal Q Gate before the code
changes are released.

For more information, look here: Working with Central ATC Results

4. Handling exemptions (false positives) for ATC ndings

ATC tools integrate an exemption process for false positives in order to handle ndings that cannot be cleaned up. In a
separate process, the developer requests an exemption for a nding. The quality manager then approves or rejects the
request.

For more information, look here: Requesting Exemptions for ATC Findings

Version 2.28
Here is an overview of the most signi cant changes in the context of ABAP core development that relate to the:

Back end: SAP NetWeaver 7.4 SP7

Client: ABAP Development Tools (ADT) 2.28

Note
Following features that are highlighted with a '*' are available for all ABAP systems supported by ADT.

Working with ABAP Projects


Creating ABAP Projects by De ning a Manual Server Connection*

It is now possible for you to manually de ne the connection of your Eclipse-based IDE to an ABAP system. This will enable you to
adopt certain properties like the connection type, message server, instance number, and so on. For this, no existing connection
from the SAP Logon Pad is required.

This is custom documentation. For more information, please visit the SAP Help Portal 152
6/18/2019
You can create an individual con guration in the following use cases:

You have installed ABAP Development Tools on a Mac OS X operating system.

You want to work in a user-speci ed system.

You want to connect manually because you do not have con guration les that contain value helps. Otherwise, access
through the SAP Logon Pad would be more laborious.

More on this: De ning a Manual System Connection

Version 2.24
Here is an overview of the most signi cant changes in the context of ABAP core development that relate to the:

Back end: SAP NetWeaver 7.4 SP06

Client: ABAP Development Tools (ADT) 2.24

Note
Following features that are highlighted with a '*' are available for all ABAP systems supported by ADT.

ABAP Development Objects


Getting Orientation in the Source Code Using Breadcrumbs*

The breadcrumb functionality helps you to orientate yourself and navigate within the source code of a development object. It
provides you with the same structural information as the Outline view.

Displaying siblings of an element in the breadcrumb bar

You can display the breadcrumbs bar in the source code editor of the following source code-based development objects:

ABAP classes
This is custom documentation. For more information, please visit the SAP Help Portal 153
6/18/2019
ABAP interfaces

ABAP programs

ABAP includes

ABAP function group main inlcudes

ABAP function group inlcudes

ABAP function modules

More on this: Getting Orientation in the Source Code Using Breadcrumbs

Getting Support from the Content Assist for Non-Keywords*

Currently, in a source code-based object, the content assist function also proposes non-keywords such as element names or
type de nitions. This enables you to add the corresponding names or de nitions that are already used in this particular
development object. Note that only non-keywords that are already used in the same development object are proposed.

To activate this functionality, select: Window Preferences ABAP Development Editors Source Code Editors Typing Also
suggest non-keywords

More on this: Non-Keyword Completion

Feature Explorer
Learning More About the Features of ABAP Development Tools*

The Feature Explorer is a new interactive view. It provides a tutorial for ABAP programmers who come from the classic ABAP
Workbench and now want to start working with ADT.

Feature Explorer view that provides the entry task

The tutorial is grouped into tours in accordance with the ADT features that are most relevant for your daily work. In addition, a
link to the corresponding help content is provided if you want to learn more about a particular feature. The Feature Explorer
thus makes it easier for you to get used to working with ABAP Development Tools.

Version 2.19
Here is an overview of the most signi cant changes in the context of ABAP core development that relate to the:

This is custom documentation. For more information, please visit the SAP Help Portal 154
6/18/2019
Back end: SAP NetWeaver 7.4 SP5

Client: ABAP Development Tools (ADT) 2.19

ABAP Development Objects


Previewing a Message Long Text

In the message class editor, you can display the long text of a message that was added through the back end in an ABAP
project. For this purpose, select the Preview button in the toolbar.

The Long Text Preview window displays the:

message number and short text in the header

long text in the main frame

Example of a Long Text Preview window

Take note of the following prerequisites for executing this function:

Your ABAP project is opened in the original language.

The message is not activated as self-explanatory.

Note
This function is also available in SAP NetWeaver 7.3 EHP1 SP10.

More on this: Previewing a Message Long Text

Refactoring Aids
Declaring Variables from Usage

De ning a local variable, attribute, or parameter from its usage

This is custom documentation. For more information, please visit the SAP Help Portal 155
6/18/2019
More on this: Declaring Variables from Usage

Declaring Inline Variables Explicitly

Converting local inline declarations of one or several variables into explicit declarations

More on this: Declaring Inline Variables Explicitly

Extracting Parameters from Literals

Creating a new importing parameter for the current method with the literal as default value. This parameter is used instead of
the literal.

More on this: Extracting Constants from Literals

Extracting Local Variables from Expressions

Creating a local variable from an expression

More on this: Extracting Local Variables from Expressions

Converting Local Variables to Parameters

Promoting local variables to a parameter of a method

More on this: Converting Local Variables to Parameters

Assigning a Statement to a New Variable

Declaring a new variable and assigning the result of a statement to this variable

More on this: Assigning a Statement to a New Variable

Extracting Methods from Expressions

Moving an expression to a new method and replace it with the call of a new method

More on this: Extracting Methods from Expressions

Declaring Exceptions from a Raise Statement

Adding an exception to the method signature based on an existing RAISE EXCEPTION statement in the method
implementation

More on this: Propagating an Exception

ABAP Quick Fixes


Creating ABAP Function Modules from Usage

Creating an ABAP function module from the name of the missing repository object. For this purpose, the corresponding creation
wizard is opened.

More on this: Creating ABAP Function Modules from Usage

This is custom documentation. For more information, please visit the SAP Help Portal 156
6/18/2019
Creating ABAP Includes from Usage

Creating an ABAP include from the name of the missing repository object. For this purpose, the corresponding creation wizard is
opened.

More on this: Creating ABAP Includes from Usage

Generating ABAP Source Code


Generating Class Constructor Methods

Creating an empty static class constructor method in the public section of the current ABAP class

More on this: Generating Class Constructor Methods

Generating Constructor Methods

Creating a instance method in the public section of the current ABAP class.

Note
If the class has attributes, a dialog is opened where you can select the attributes that should be instantiated.

More on this: Generating Constructor Methods

Generating Factory Methods

Creating a static create method in the public section of the current ABAP class

Note
If the class has attributes, a dialog is opened where you can select the attributes that should be instantiated.

More on this: Generating Factory Methods

ABAP Source Search


Searching ABAP Source Code

The SAP HANA-based ABAP Source Search enables you to nd text that is developed in source-based repository objects (like
classes, programs, function pools) of an ABAP project.

Note
In order to enable the ABAP code search functionality, your ABAP system must use a SAP HANA database.

More on this: Searching ABAP Source Code

Enhancement with Source Code Plug-ins


Displaying Source Code Plug-ins

This is custom documentation. For more information, please visit the SAP Help Portal 157
6/18/2019
In the source code editor of an ABAP class, ABAP program, or an ABAP function group, you can display the source code plug-ins
of the available enhancement implementations in the enhancement popup. If there are several enhancement implementation
elements available, the hierarchy of the source code plug-ins is displayed in addition.

Source code plug-in marker that highlights an enhancement option in the ruler of the source code editor

Example

The following enhancement popup is displayed if one source code plug-in is added at an enhancement option:

Enhancement popup for a single source code plug-in

More on this: Displaying Source Code Plug-ins

Debugging ABAP Code


Setting ABAP Watchpoints

When debugging ABAP code, you can use watchpoints to track the value of individual ABAP variables. The ABAP debugger stops
as soon as the value of a watched variable has changed. Furthermore, you can specify conditions for watchpoints. The debugger
then additionally checks whether this condition is ful lled.

More on this: Using Watchpoints

Changing Internal Tables

The tables view of the ABAP Debugger has been enhanced to support changing, deleting, and inserting rows in internal tables.

More on this: Analyzing Internal Tables

Version 2.13
Here is an overview of the most signi cant changes in the context of ABAP core development scenario that relate to the:

Back end: SAP NetWeaver 7.3 EHP1 SP4 vs. SP7 and SAP NetWeaver 7.4 SP00 vs. SP03

Client: ABAP Development Tools (ADT) 2.13

This is custom documentation. For more information, please visit the SAP Help Portal 158
6/18/2019

Note
Following features that are highlighted with a '*' are available for all ABAP systems supported by ADT.

ABAP Development Objects


Automatic Syntax Check*

Now, the ABAP source code editor automatically checks the syntax of a development object you are currently working on.

Note
The automatic syntax check is activated in the preferences by default.

More on this: Checking ABAP Syntax

Automatic code completion*

Now, the ABAP source code editor automatically triggers the code completion if you enter one of the following component
selectors: -, ~, -> , =>

Note
The automatic code completion is activated in the preferences by default.

More on this: Getting Support from the Content Assist

Developer and SAP object registration

For registering a developer and manual changes to SAP objects like database procedure proxies, SAP HANA transport
container, external views, Core Date Services (CDS) entities in an ABAP system an access key is required.

More on this:

Registering SAP Objects as a Developer

Modifying Development Objects in the SAP Namespace

Refactoring Aids
Converting local variables to attributes

Moving a de nition of a local variable, type or constant to the private section of the current class. This enables you, to make the
variables available for all methods within an ABAP class. More on this: Converting Locals to Class Members

Declaring inline variables explicitly

Converting inline declarations of one or several variables to a local variable in the corresponding method de nition.More on this:
Declaring Variables from Usage

Changing visibility of members

Moving a member de nition between the public, protected and private section to change its visibility in your source code. More
on this: Changing Visibility of Members

This is custom documentation. For more information, please visit the SAP Help Portal 159
6/18/2019
Extracting constants

In the source code editor, you can now substitute literals with constants in order to:

Create a local constant from a literal to make it available in a certain method. The corresponding literals are replaced
with the added constant.

Create a member constant by extracting a constant to make it available for all methods of an ABAP class. The
corresponding literals are replaced with the added constant.

Reuse an existing constant that has already been declared for the same value.

More on this: Extracting Constants

Extracting variables

In the source code editor, you can substitute literals with variables in order to:

Create and extract a local variable from a literal to make it available in a certain method. The corresponding literals are
replaced with the added variable.

Create and extract an attribute from a variable to make it available for all methods of an ABAP class. The corresponding
literals are replaced with the new attribute.

More on this: Extracting and Converting Variables

ABAP Quick Fixes


Creating method implementations from the method de nition

Generating the implementation part of a method from an existing declaration in the de nition part of an ABAP class

More on this: Creating Method Implementations from the Method De nition

Creating Method De nitions from Implementation Parts

Generating the declaration of a method directly out of the implementation part of the corresponding method of an ABAP class

More on this: Creating Method De nitions from Implementation Parts

Creating Implementation Parts for Unimplemented Methods

In an ABAP class, generating the implementation part of methods that are de ned in an ABAP interface as well as method
stubs of other unimplemented methods More on this: Creating Implementation Parts for Unimplemented Methods

Note
In SAP NetWeaver 7.0 EHP3 / 7.31, you can only create the implementations for unimplemented interface methods.

In SAP NetWeaver 7.4 and subsequent releases, you can only create the method implementations in certain situations.

Creating Methods from Method Calls

In an ABAP class, generating the missing method de nition and implementation part from the method call

More on this: Creating Methods from Method Calls

This is custom documentation. For more information, please visit the SAP Help Portal 160
6/18/2019
Creating classes or interfaces from the source code

In the source code of an ABAP program, triggering the creation of a global ABAP class or interface directly from the usage of
the missing class or interface

More on this: Creating ABAP Classes or ABAP Interfaces from Usage

Transport Organizer View


Providing source code in another system

Now, the Transport Organizer view is integrated with the basic functions of the SAP GUI-based Transport Organizer. For each
system node, it provides access to the complete object list of the logged-on user. This allows you, to perform the basic
developer operations such as running consistency checks or releasing transport requests and tasks.

Example of a folder structure in the transport organzier view that represents two transport requests

More on this: Transport Organizer

ABAP Doc
Documenting ABAP source code

ABAP doc comments are additional information that can be added or imported to ABAP classes, ABAP interfaces, ABAP
programs, or ABAP function groups. ABAP doc comments are added with ''! in the ABAP source code and can be rendered in the
ABAP element info view or in a tooltip.

Example of an ABAP Doc comment displayed in an ABAP Doc popup

More on this: Editing Comments in ABAP Source Code

ABAP Pro ler

This is custom documentation. For more information, please visit the SAP Help Portal 161
6/18/2019
Analyzing call sequence with the Call Timeline tool

The ABAP Pro ler comes along with a Call Timeline tool, which visualizes the trace events and time consumed in form of a
diagram. In general, the appearance of the trace events in this graphical tool corresponds to those in the Call Tree tool. The
horizontal of the diagram displays the temporal sequence of each trace event measured, whereas the horizontal represents the
call depth within a call hierarchy. In contrast to the Call Tree, the trace events however are represented not as discrete tree
nodes, but as a continuous sequence. The advantage of the new tool is the graphical representation and a quick detection of
eye-catching patterns.

Displaying call stack aggregation

The ABAP Pro ler provides you with a further analysis feature, which is especially relevant for central or framework
components. Starting from the Hit List, you can Display All Executions of a performance hotspot in the list. The resulting view
displays more details for each individual trace event execution. The new property Stack Id allows you to analyze the executions
in relation to their call stack. Furthermore, the context menu action Show Stack Aggregation allows you nd out how, for each
individual stack, the trace event executions are distributed.

This is custom documentation. For more information, please visit the SAP Help Portal 162
6/18/2019

Analyzing database accesses

Whenever the database portion of the overall runtime distribution is (unexpected) high, you may want to nd out, which
database accesses cause it to happen. The Database Accesses tool allows you to identify and analyze the top consumers during
the database accesses. It provides you with a list of tables that are used when running the application in question. In addition,
detailed information for each database access (such as, access type, buffer settings, duration of table accesses) is provided.

More on this: Analyzing Database Accesses

Debugging ABAP Code


Analyzing ABAP exceptions in the debugger

The Variables view of the Debugger now allows you to open an ABAP Exception view to analyze details of a selected ABAP
exception object.

This is custom documentation. For more information, please visit the SAP Help Portal 163
6/18/2019

This is custom documentation. For more information, please visit the SAP Help Portal 164

You might also like