Lab preview: SDK for ABAP development tools
Disclaimer: This document describes a lab preview of the ADT SDK. Thus, the information contained in this document is subject to change without prior notice.
In June 2012 SAP released the first version of the ABAP development tools for SAP NetWeaver (aka ABAP in Eclipse). This brought development tools for ABAP to the open Eclipse platform.
Based on this platform, the ABAP development tools are also open for integration of 3rd party tools. Therefore, SAP plans to provide a Software Development Kit (SDK) for ABAP development tools (ADT).
This blog shall give you a first idea what this means for you.
Principal idea behind the SDK
Do you have a program that automates some tasks in the ABAP system? Do you have a tool related to ABAP development that makes your life easier? Wouldn’t it be great to have all these little helpers incorporated in your integrated development environment (IDE)?
The SDK for ABAP development tools shall enable you to implement your own tools related to the ABAP development process and integrate them in your IDE:
- The process to automate some tasks could be started via a menu entry in your IDE; maybe as a context menu entry for an ABAP development object.
- Your tool could be integrated in your IDE and interact with ABAP development tools, by navigating in the ABAP editor and vice versa.
In 2012, SAP started two pilot projects to evaluate the current scope of the ADT SDK by integrating 3rd party tools into the ABAP development tools. The SAP Mentors and SAP’s partner smartShift were selected as pilots to build their tools in Eclipse and extend the functionality of ADT. Both projects will present their results at SAP TechEd in Las Vegas and Madrid this year.
SAPlink for ABAP development tools
Ivan Femia, Uwe Fetzer, Abdulbasıt Gülşen, Jan Penninkhof and Gregor Wolf (all are SAP Mentors) integrated SAPlink into the ABAP development tools. The goal of the project was to simplify the usage of SAPlink especially for SAP Code Exchange developers.
The classic version of SAPlink is a standalone tool. It is not integrated into the ABAP workbench, because it is not extensible. This means you – as a Code Exchange developer – have to use three different tools: ABAP workbench, SAPlink and a subversion client.
Due to the extensibility of ABAP development tools, the SAP mentors were able to integrate the SAPlink-functionality directly into the ABAP development tools. They extended SAP’s existing menu in the Project Explorer by adding a menu entry to export a development object.
By installing also a subversion client for Eclipse, you are able to run all tools you need in one Eclipse IDE.
The pilot version of SAPlink for ABAP development tools covers the following functionality:
- Importing development objects from Code Exchange to your ABAP system via a context menu in the subversion project in Eclipse
- Exporting development objects from your ABAP system to Code Exchange via a context menu for ABAP development objects in the Project Explorer
- Installing SAPlink in your ABAP system from Eclipse
For more information about the project and the integration of SAPlink in ABAP development tools visit http://saplink.org/.
smartDevelop for ABAP development tools
SAP partner smartShift integrates their tool smartDevelop in ABAP development tools in Eclipse. smartDevelop works as an automated assistant to developers during the ongoing code-development process.
The pilot version of smartDevelop for ADT covers the following functionality:
- Executing additional checks – provided by smartShift – for your development objects via a context menu in the Project Explorer
- Findings are listed in Eclipse Problems View and are highlighted in the ABAP editor
- Findings can be corrected automatically via Quick-Fix and refactoring abilities
How can the ABAP development tools SDK be used?
Integrate your tool directly into standard ADT UIs
The first entry point to your tool might be a menu entry to start your own tool. This might be a context menu entry for a development object in the Project Explorer or ABAP editor as well as a button in Eclipse’s toolbar or menu. The Eclipse platform provides several extension mechanisms to add new menu entries even to existing menus. The SDK for ABAP development tools provides access to the information about the underlying development objects (such as the object’s unique identifier or name).
Reuse built-in functionality of ADT
ABAP development tools already provide a set of various functions that you might want to use in your tool. For example, you could think of calling an API to navigate to an ABAP development object or to create an ABAP program.
Implement and consume your own resources in SAP NetWeaver Application Server ABAP
The resource framework of the ABAP development tools allows the creation of RESTful services (REpresentational State Transfer, see http://en.wikipedia.org/wiki/Representational_State_Transfer). This means, the ABAP backend defines its resources (i.e., entities) that can be addressed via unique resource identifiers (URIs). The ABAP backend exposes these resources at their corresponding URIs and the Eclipse frontend consumes them (like a web browser).
The ADT SDK allows you to define your own resources in the ABAP backend and consume them via appropriate APIs in Eclipse. This enables you to reuse the connection to the ABAP system for an ABAP project and communicate in Eclipse with the ABAP backend in a standardized way.
Now, it’s up to you
You already have an idea for an interesting tool and ask yourself when will the SDK be available?
We plan to publish a core set of APIs for the ADT SDK together with one of the next versions of the ABAP development tools.
Moreover, you can help us to define the future scope of the public APIs of the SDK: Which tool or which functionality would you like to integrate into the ABAP development tools? Just post a comment with your ideas to this blog.
Watch out for updates from the SAP Mentors about SAPlink for ABAP development tools at http://saplink.org. They plan to publish their source code as an example implementation so that you will be able to explore their implementation. This will give you an idea how to extend the ABAP development tools. Please be aware that they had to use APIs that might change in the future.
For more information about the ABAP development tools SDK, you can also join the lecture “Enhancing the ABAP development tools in Eclipse” at TechEd Las Vegas, Madrid or Bangalore (see also ABAP Development Tools @ SAP TechEd 2012).