Welcome to SAP ABAP Workbench tutorial. This tutorial is part of our free SAP ABAP training and we will have the first look at what is SAP ABAP Workbench and what tools does it offer to ABAP developers. You will learn about Object Navigator, Repository Information System, and ABAP Editor.
SAP ABAP Workbench transaction (SE80 transaction) is a cornerstone of any developer task in SAP ERP, as it includes full-featured set of tools for accessing all programming and repository objects both standard and created by developers. It is a collection of tools which covers all parts of SAP professional development, and while some authors treat it as a cockpit for easy access to other transaction codes, some of the functionality provided by SE80 is not available separately (e.g. Web Dynpro ABAP development). Anyway, in this tutorial we will review some of the basic SAP ABAP Workbench functionality which was historically dispersed throughout different transactions but now is centrally available in SAP ABAP Workbench. Top-level view of SAP ABAP Workbench can be outlined as a combination of Object Navigator and ABAP Editor.
SAP Object Navigator
Object Navigator is a main place which provides navigation, which is a key function for any SAP developer working in SAP ERP. It is also part of SAP ABAP Workbench. SAP system contains hundreds of thousands of different objects which ABAP developer should navigate through for getting things done, and this makes fast navigation a crucial factor of success. Object Navigator consists of Repository Browser, Repository Information System, Transport Browser and other applets.
SAP ABAP repository Browser
SAP ABAP Repository Browser is a tool for accessing, editing and managing ABAP development objects. Among the main development objects manageable by Repository Browser are:
- Function Group
- Function Module
- Global Class/Interface
All object lists in a Repository Browser have tree structure and can be navigated both in a top-bottom and bottom to top ways, i.e. every object can be accessed through its parent object and vice versa. This is rather convenient when you don’t know target object but do know its parent or child object.
Repository Browser typical scenario:
- Developer enables Repository Browser tab inside Object Navigator
- Then he selects object type he is trying to view or edit
- Then developer should select necessary object by specifying its name in name box. More advanced techniques of selecting objects will be review further.
- Found object is then selected by double click and its contents are viewed or edited in the ABAP editor right-side.
SAP Repository Information System
SAP Repository Information System (RIS) is a tool used to search objects in SAP system in a more advanced and flexible manner than Repository browser allows, though with Browser you can also fulfill those tasks and the functions of these tools are somewhat overlapped. Logically RIS can be divided into two areas: Repository Tree and Search Box, which appears when you double click on the necessary object type in the tree.
Pressing search button in the upper-right corner brings hit list in the search box area, where one can review the results and pick up the target object.
Also, it should be noted that Repository Information System has convenient mass mode, which Repository Browser lacks, and that mode allows mass operations on selected objects. On hit list you can tick needed object and with the provided toolbar you can apply different actions to these objects. Complete set of supported actions depends on object type but typical actions are:
- Edit object
- View object
- Find where the object is user, co-called Where-Used
- Filter objects
Let’s have a look in more detail at the search tooling which Repository Information System provides to a developer. In the main window, one can find a standard toolbar which helps to customize one’s search request.
1 – Execute button. Runs the query.
2 – Select options button. The button calls Maintain Selection Options dialog.
All objects in SAP system are searchable not only inclusively but exclusively too and that dialog allows specification and fine-tuning of search parameters. For example, you want to select all table which start from MAR pattern lexicographically. So, you should enter MAR in name box and in select options specify Greater Than or Equal to parameter.
3 – Get variant button. Allows choosing not the original object but object with predefined set of parameters. We will discuss variants later.
4 – All selection button. Initially search box contains only basic search parameters (aka most used), if you want to enable complex queries you should activate this button. It allows searching objects by last used date, user created, technical type, length, etc.
5 – Selection screen help. Run window with description of parameters.
6 – RIS settings button. Allows changing settings of Repository Information System.
SAP ABAP Editor
SAP ABAP Editor is a central tool which every developer meets in his everyday work and possessing good ABAP Editor skill is closely correlated with developer’s proficiency. The editor can be run standalone via transaction code SE38 or in SAP ABAP Workbench. Often in the official documentation they differentiate the new ABAP Editor also known as Front-End Editor (New) and the old ABAP Editor also known as Front-End Editor (Old) which was actual prior to 6.40 release. Here we suppose you have actual SAP system based on NetWeaver 7.31 or higher, so in this tutorial under ABAP Editor we mean only New ABAP Editor.
ABAP Editor have the same functions as the most common IDE tools (Eclipse, NetBeans) but also have its unique aspect which we are going to consider. In this tutorial, we will show ABAP Editor features in comparison to the similar ones of Eclipse, which is popular IDE nowadays.
Features of ABAP Editor most used by ABAP Developers:
- Code formatting
- Code folding/unfolding
- Forward navigation
- Code completion
Breakpoints in SAP ABAP Editor function similar to Eclipse, however there are some peculiarities. There are two types of breakpoints in ABAP:
- Session breakpoint, which are set in SE38
- Debugger breakpoints which are set directly in Debugger.
The former applied to the whole user session and are active till user log off, whilst the latter are active only till the debugger session lasts. There is also special type of breakpoint exists – external breakpoint. It possesses all features of session breakpoint, but also valid for non-dialog session, i.e. RFC or HTTP-sessions, therefore they are useful for debugging Web-services and BSP-pages. Additionally, external breakpoints can be applied in per-terminal manner and can be set in SICF transaction.
SAP ABAP Editor has separate tool for code formatting, which however, is rather limited comparing to Eclipse. It is called Pretty Printer and can be run from main toolbar
It can capitalize ABAP statements and keywords and adjust indents. Its behavior is customized via main ABAP Editor settings:
Forward navigation is very interesting and somewhat unique SAP feature which allow navigating through programmatic and dictionary objects by double click. It can be used not only in SAP ABAP Editor but also in other developer transactions such as Repository Browser (SE80), Data Dictionary Browser (SE11), Table Viewer (SE16) and literally everywhere. Moreover, it has not only navigation but also developer functions, i.e. one can double-click any programmatic object in the ABAP Editor code and provided the object doesn’t exists SAP will prompt to create it.
It is an invaluable feature that accelerate development process significantly.
Pattern is another interesting tool unique to SAP ABAP that is available on Eclipse only in plugins. It is sort of prototyping tool which allows writing the code statements based on existing program structures and it also allows to eliminate most of the routine developer’s work when calling classes, function modules or other ABAP programmatic objects.
Typical scenario of using Pattern Tool:
- Developer want to call some program unit in his development so he calls Pattern tool. Pattern window consists of a big list of statements where one can select object type one is going to prototype. It can be either function module, or global class method or select query or whatever.
- Then, the developer selects object name and Pattern generates call prototype based on object type description and signature.
Did you like this tutorial? Have any questions or comments? We would love to hear your feedback in the comments section below. It’d be a big help for us, and hopefully it’s something we can address for you in improvement of our free SAP ABAP tutorials.