1 2 3 10 Previous Next

ABAP in Eclipse

150 Posts

Hi,

 

I'm Ruks from Sri Lanka. I'm not an ABAP expert. I started my ABAP journey 1 1/2 years early. I was doing same coding almost every day and was seeking something new in SAP/ABAP. Yes I found it. It's very cool to here about Eclipse with ABAP.

 

When I was in university, I knew about Eclipse and also did some projects using Eclipse but never knew the features of ABAP, I think at that time it was not introduced. So it's time to start the Eclipse again after long time with the features of ABAP.

 

Before start Eclipse, I go through with some documents about Eclipse features too. Here are some documents that I have gone through.

ABAP Development Tools version 2.24 available now on Updatesite

More cool features of ABAP in Eclipse

How to get your colleagues into ABAP in Eclipse

 

When I knew that I can integrate the SAPGUI into the Eclipse environment, Yes its really cool. I'm not sure that it's covered almost everything, but it may be the beginning of new view of ABAP.

 

So my friends, it's time to feel the difference of classic ABAP and new ABAP in eclipse. Try yourself and let us know your ideas too.

 

Regards,

Ruks.

Rohit Mahajan

ABAP in Eclipse explored

Posted by Rohit Mahajan Sep 12, 2014

Introduction


My name is Rohit Mahajan and I live in Bangalore. I started working on ABAP development for  5 years now and also working on some HANA stuff.

 

ABAP in Eclipse

 

SAP TechEd 2012 was first when I really saw ABAP in Eclipse. I attended a 4hr hands on about ABAP in Eclipse which was really great.

 

ABAP in Eclipse Feature Explorer

 

Web Dynpro ABAP application using ABAP in Eclipse is feature i really liked where i can work on views, windows and other things easily. Only the binding feature is also great.

 

Spread the word

 

Finally, I think that all my ABAP colleagues should know ABAP in Eclipse.

  • My name is Phil and I live in the United Kingdom. I have a technical background having previously programmed in COBOL, Fortran, C++ and Python with various API's. I also write SQL code in my current role. I have never used ABAP and this is a fact finding mission!

 

  • I have previously used Eclipse mainly to experiment with the BPMN2 Modeler software.

 

  • From the current reviews in the SCN ABAP is being well received.

 

  • I think the most useful feature is the ctrl+space and shift+enter to suggest code completion templates.

 

  • There are many other developers on SCN that know about ABAP in Eclipse:


         I particularly enjoyed reading the article by @Jeroen Custers and he also mentions @Thomas Fiedler

        @Bert Schlicher. Other includes @Martin Steinberg

Dear community,

 

I stumbeld upon some aspect of developing ABAP in eclipse which just boosted my efficiency which I did not think of at all:

 

It often happens to me (particularly during maintenance) that I execute a test (pereferrable a unittest) and find a constellation of data for which I need to adapt my code. My practice was to set a breakpoint, execute the test, note down the relevant variables on either a piece of paper or some other medium (notepad), then let the code execute (or abort ) and then to correct the artifact.

It often occurred to me that I forgot to note down some other context information which was just available at runtime, so I had to re-execute the test. Particularly after having noted the fact that some information's missing after starting to correct the code, this is tedious: Since I removed the breakpoint previously and cannot set a breakpoint in the inactive source, I had to undo (comment) my changes, ... you know what I mean.

With AiE, the debugger starts in a new view in a new perspective - but what's more important: The other views share the context. This has the effect that while developing, you can access the context of the current debugger-session - and you can inspect the content of all variables in your ABAP editor!

Don't get what I mean? Have a look at the screenshot:

 

AiE developing while debugging.png

 

My personal comclusion: Resist terminating the debugger while correcting (but don't tell your sys-admins )

 

Cheers,

Oliver

Ahmed Yehia

Feature Explorer in AiE

Posted by Ahmed Yehia Sep 1, 2014

Introduction


First of all I want to thank all the people who worked on this project and special thanks to Thomas Fiedler for this awsome mission, i am happy to use Eclipse as am familiar with it since i was in college.

 

My name is Ahmed Yehia, I graduated from Misr International University Faculty of computer science and i have overall 4 years of ABAP experience in Reporting, Conversions, Interfaces, and Customizations for SAP R/3.

I really like programming and i am looking forward to increase my skills and knowledge and to discover new techniques and tools.

 

I have been using eclipse for 4 years in college for my java projects, and i think it is an excellent tool because

1- Its fast to install and it has a very powerful code assist.

2- GUI is awesome

3- Debugger is easy

4- Re factoring is very advanced

5- All errors are highlighted with no need to recompile the whole project

6- Many plugins and 3rd party are available and integrates easily with other development tools such as HANA studio  , UI5 ... .

 

Eclipse will be a good start for the developers who used to use Eclipse and new to ABAP development, and it will be a center point development environment.

I have been following the news about ABAP in Eclipse and i was very excited and waiting to start using it.

 

Features

 

The first feature i would like to talk about is the shortcuts, it makes the life easy:

To start a new program all you need is to type CTRL + SHIFT + N instead of the following:

1.jpg

CTRL + SPACE and SHIFT + ENTER to suggest code completion and code templates

2.jpg

CTRL + F2 to check your code syntax

3.jpg

CTRL + F3 to compile your code

4.jpg

 

The second feature is the pretty printer function and templates usage demo

You can check the ABAP source code for matter and check your code style either your keywords is upper case and identifiers lowercase or vice versa

 

5.jpg

 

also for evey program  created you can keep history updated using template

 

6.jpg

7.jpg

 

The third features is the Where Used List CTRL + SHIFT + G

 

8.jpg

 

Fourth Feature is the powerful search, you can search for any ABAP object

 

9.jpg

 

Fifth Feature is utility function keys

F1 Brings up ABAP Documentation of the keyword

F2 Shows the code element information

F3 Used for Navigation

F4 Shows Up the ABAP Type Hierarchy

F5 Refresh

F8 Excute

Sixth Feature is the re factoring Support

CTRL + 1 To bring up the quick fix option to rename variable / declarations

 

10.jpg

 

ALT + SHIFT + R To rename variable if it spans in more than 1 related objects

 

11.jpg

 

CTRL + 2, R To rename variable in source unit alone

 

Seventh Feature is version management,  you can keep history of your code files and compare it to each other

 

12.jpg

 

Eighth Feature is transport organizer

 

13.jpg

 

I will ask my friends Amal Aloun Akshay Gupta Vivek Singh Bhoj  jitendra kansal Ashwini Deshpande Willi Eimler Marssel Vilaça sriramula kishore Midhun VP ' MoazzaM '  Srinivas Salpala Ravi Sankar Venna   Diwa p    Chandra Agarwal Ahmed Ibrahim to join this experince

Introduction

In the first part (Creating a ABAP in Eclipse plug-in using the ADT SDK) of this blog series I described the eclipse side of a plug-in enabling the creation of a transport of copies with just one click. In this part I will describe the ABAP side of the plug-in. The full source code of the plug-in as well as a binary release and installation instructions are available on github: ceedee666/adt_transport_utils_plugin · GitHub.

 

The ADT REST Framework

The ABAP development tools are integrated with the back end system via and RFC and REST (Representational state transfer - Wikipedia, the free encyclopedia) based protocol. A description of the high level architecture of the integration is given in Olga Dolinskajas document Get Started with the ABAP Development Tools for SAP NetWeaver.

In order to enable the registration of new resources in this framework, SAP provides the enhancement spot SADT_REST_RFC_APPLICATION. The enhancement spot defines two BAdIs, BADI_ADT_DISCOVERY_PROVIDER and SADT_REST_RFC_APPLICATION. As the name suggest, the BAdI BADI_ADT_DISCOVERY_PROVIDER is used to implement a discovery provider for a resource. The discovery provider enables the discovery of the concrete URI of a resource in the eclipse plug-in. While it is also possible to hard code the URI of a back end resource in the eclipse plug-in it is recommended to use the discovery service instead. (cf. SAP NetWeaver How-To Guide: SDK for the ABAP Development Tools). Therefore, the eclipse part of the example plug-in implements a getResourceUri() (see the first part of this blog details) for method that uses the discovery provider to get the URI of the back end resource. The BAdI SADT_REST_RFC_APPLICATION is used to implement a custom resource.


The Architecture of the ABAP plug-in

The following images shows an overview of the architecture of the ABAP side of the plug-in. The ABAP side of the plug-in will be called ADT Transport Utils in the remained of this blog.

The RFC handler is the central entry point into the back end for any request from an ABAP development tools plug-in. The RFC handler is part of the ADT REST framework and calls functionality provided by the ADT Transport Utils using the BAdIs mentioned above. ADT Transport Utils consist of two parts. The first part is a custom discovery controller, the ADT Transport Utils Discovery Controller. The custom discovery controller is needed to provide a custom URI schema (i.e. /ztansportutils) to access the resources provided by the ADT Transport Utils. In its current version the ADT Transport Utils provide only one resources, the resource to create transports of copies. This resource  consists of the Transport of Copies App and the Transport of Copies controller

blog.png

Implementing the Discovery Controller

The discovery controller (ZCL_TRANS_UTILS_DISC_RES_CONTR) is implemented by creating a subclass of CL_ADT_RES_APP_BASE and implementing the abstract methods FILL_ROUTER and IF_ADT_REST_RFC_APPLICATION~GET_STATIC_URI_PATH. The following snippet shows the implementation of these two methods. In the GET_STATIC_URI_PATH method the base URI for the ADT Discovery Tools, i.e. /ztansportutils, is returned. The FILL_ROUTER method registers the class CL_ADT_RES_DISCOVERY as the discovery handler for the path template /discovery. As a result any requests to the URI /ztransportutils/discovery will be handled by the class CL_ADT_RES_DISCOVERY.


  METHOD fill_router.
    router->attach( iv_template = '/discovery'
                    iv_handler_class = cl_adt_res_discovery=>co_class_name ).
  ENDMETHOD.
  METHOD if_adt_rest_rfc_application~get_static_uri_path.
    result = zif_trans_utils_constants=>co_trans_utils_static_uri.
  ENDMETHOD.


After implementing the discovery controller, the next step is to create an implementation of the BAdI BADI_ADT_REST_RFC_APPLICATION and link it to the discovery controller class (ZCL_TRANS_UTILS_DISC_RES_CONTR). Furthermore, the filter value /ztransportutils/discovery needs to be created for the filter STATIC_URI_PATH. This filter value is used by the RFC handler to invoke the correct BAdI for a particular URI. The following screen shot shows the implementation Z_TRANSPORT_UTILS_DISC_RES of the BAdI BADI_ADT_REST_RFC_APPLICATION and the assigned filter value.

2014-08-31 13_58_10-ABAP - IFD_100_drumm_en_[IFD] Z_TRANSPORT_UTILS_ADT - Eclipse.png

Implementing the Transport of Copies Resource

The implementation of the transport of copies resource consist of two parts. The transport of copies resource application (ZCL_TRANS_UTILS_TOC_RES_APP) and the transport of copies resource controller (ZCL_TRANS_UTILS_TOC_RES_CONTR). The resource application is implemented by subclassing CL_ADT_DISC_RES_APP_BASE and implementing its abstract methods. The following code snippet shows the implementation of the resource application class.


CLASS ZCL_TRANS_UTILS_TOC_RES_APP IMPLEMENTATION.
  METHOD get_application_title.
    result = zif_trans_utils_constants=>co_trans_utils_app_title.
  ENDMETHOD.                    "get_application_title
  METHOD if_adt_rest_rfc_application~get_static_uri_path.
    result = zif_trans_utils_constants=>co_create_toc_static_uri.
  ENDMETHOD.                    "if_adt_rest_rfc_application~get_static_uri_path
  METHOD register_resources.
    registry->register_discoverable_resource(
           EXPORTING
             url             = zif_trans_utils_constants=>co_create_toc_url
             handler_class   = zif_trans_utils_constants=>co_create_toc_res_controller
             description     = 'Create and optionally release a transport of copies'
             category_scheme = zif_trans_utils_constants=>co_create_toc_resource_scheme
             category_term   = zif_trans_utils_constants=>co_create_toc_term ).
  ENDMETHOD.                    "register_resources
ENDCLASS.

The method GET_APPLICATION_TITLE simply return the application title, "Discovery Provider for ADT Transport of Copies" in this case. The IF_ADT_REST_RFC_APPLICATION~GET_STATIC_URI_PATH method returns the URI path (i.e. /ztransportutils/toc_app) for the app. Finally, the REGISTER_RESOURCES method registers the resource controller ZCL_TRANS_UTILS_TOC_RES_CONTR as the handler class for request to the URI /toc/create_toc. As a result. the resource controller will be accessible at the URI  /ztransportutils/toc_app/toc/create_toc. In the registration also the category schema and category term are provided. This information is used to discover the concrete URI of the resource in the eclipse plug-in (cf. Creating a ABAP in Eclipse plug-in using the ADT SDK).

After implementing the resource application class, it is used to implement the BADI_ADT_DISCOVERY_PROVIDER and SADT_REST_RFC_APPLICATION BAdIs. Again it is necessary to set appropriate filter values. The implementation Z_TRANPORT_UTILS_TOC_DISC of the BAdI BADI_ADT_DISCOVERY_PROVIDER uses the filter "/ztansportutils/discover = URI", while the implementation Z_TRANPORT_UTILS_TOC_RES of the BAdI SADT_REST_RFC_APPLICATION uses the filter "STATIC_URI_PATH CP /ztransportutils/toc_app/*".2014-08-31 22_12_01-ABAP - IFD_100_drumm_en_[IFD] Z_TRANSPORT_UTILS_ADT - Eclipse.png

2014-08-31 22_11_14-ABAP - IFD_100_drumm_en_[IFD] Z_TRANSPORT_UTILS_ADT - Eclipse.png

The result of these filter values is, that the transport of copies resource is discoverable via the discovery controller and that all request to a URI starting with /ztransportutils/toc_app/ will be forwarded to the resource controller ZCL_TRANS_UTILS_TOC_RES_CONTR.

The final step is the implementation of the resource controller ZCL_TRANS_UTILS_TOC_RES_CONTR. It is implemented by subclassing CL_ADT_REST_RESOURCE. The resource controller has only one public method, the POST method. This method handles all post request send to URI  /ztransportutils/toc_app/toc/create_toc. The following snippet show the implementation of the POST method.

In the post method, the transport request to copy and if it should be released are not are read from the query parameters. Using this information the transport of copies is created and optionally released. The source code of the methods used in this snippets are straight forward. Therefore, these methods are not further detailed here. However, the full source code is available at ceedee666/adt_transport_utils_plugin · GitHub

as a SAPLink nugget (http://www.saplink.org).


  METHOD post.
    DATA: trans_request TYPE trkorr,
          should_be_released TYPE abap_bool,
          success TYPE abap_bool.
    trans_request = me->get_transport_request( request ).
    IF trans_request IS INITIAL.
      response->set_status( status = cl_rest_status_code=>gc_client_error_bad_request ).
      RETURN.
    ENDIF.
    should_be_released = me->get_should_be_released( request ).
    TRY.
        me->create_transport_of_copies( i_trans_request      = trans_request
                                        i_should_be_released = should_be_released ).
        response->set_status( status = cl_rest_status_code=>gc_success_ok ).
      CATCH zcx_trans_utils_exp.
        response->set_status( status = cl_rest_status_code=>gc_client_error_bad_request ).
    ENDTRY.
  ENDMETHOD.

Summary

The completion of the ABAP part of the plug-in concludes the second part of the blog series. The final part of the bolg series will describe how to create a deployable plug-in, a corresponding update side and how to make it this update side available using github.

 

Christian

Gabriel SAULESCU

aie_feature_explore

Posted by Gabriel SAULESCU Aug 28, 2014
  • Please introduce yourself and tell us how long you’ve developed with ABAP

My name is Gabriel SAULESCU, I am working as programmer from 1987, I start programming in dBASE 2.4, FoxBase, VisualFox, Cobol, Fortran and after  2000 I was programming in PHP/mySQL, HTML/CSS and Javascript, I learnt to programm in  CodeIgniter and from few months in Java. 

 

  • Did you know about Eclipse before you took this ABAP in Eclipse Explorer challenge?

I discover Eclipse few years ago but my first believe is too much for what I need in that moment.

When I was starting a course in SAP HANA Cloud, in June 2014, I discovered again Eclipse

 

  • Do you think the feature explorer is helpful to onboard new developers?

             ABAP in eclipse offers new perspectives. 

Excellent IDE for developers that already use eclipse.

 

 

  • What is your favorite feature of the beginners tour?

My favorites with ABAP in eclipse are code completion and the refactoring of variables.

 

  • Have you explored additional features of Eclipse that you like?

          Templates my be a good candidate for the next feature explorer.

          The delete unused variables is very useful       

 

  • Mention some ABAP developers in the community that should know ABAP in Eclipse. You can use “@” and then type their name so that they get notified when you mention them.

 

           I want to thank you to Thomas Fiedler for his nice work.

          

Introduction

In my point of view the release of the SDK for the ABAP development tools (cf. First version: SDK for ABAP development tools) was a major change to the way SAP provides developer tools. For the first time it is possible to easily extend the development environment provided by SAP. Therefore, the SDK enables developers to enhance the development environment with new functionality or missing features.

One feature that is missing in the the SE80 as well as in the ABAP development tools is an simple way to create transports of copies. While the usage of transports of copies is recommended e.g. by the German SAP User Group (DSAG) in its development best practices guide line (cf. Andreas Wiegensteins blog DSAG Best Practice Guideline for ABAP Development now available in English), creating transports of copies is quite cumbersome. As a consequence custom transactions or reports are usually used to simplify the creation of transports of copies. While such a report simplifies the creation of transports of copies it is not integrated into the development environment. consequently, the usability is far from perfect.

In this blog series I'll show how I extended the transport organizer view of the ABAP development tools. The plug-in that I've developed enable the creation of a transport of copies with just one click. The blog series consist of three parts. In the first one I'll explain the eclipse side of the plug-in, in the second part (Creating a ABAP in Eclipse plug-in using the ADT SDK - Part 2) the ABAP side. The third part will focus on releasing the plugin using github. The idea behind this blog series is twofold. First, I want to provide an overview of what is necessary in order to create a ABAP development tool plug-in that invokes some back end functionality. Second, I hope to encourage other developers to create and release useful enhancements for the ABAP development tools. Consequently the complete source code of the plug-in is available at ceedee666/adt_transport_utils_plugin · GitHub.

Getting Started

If you are not yet familiar with the SDK for the ABAP development tools I would recommend the following documents and blogs. The two blogs Starting with ADT SDK is easy - Pt.1 and Starting with ADT SDK is easy - create your own transaction launcher (Pt.2) by SAP mentor Martin Steinberg provide a nice starting point. In addition to that the excellent document NetWeaver How-To Guide: SDK for the ABAP Development Tools by Wolfgang Woehrle provides a full tutorial including the development and invocation of back end functionality.

 

Developing the Eclipse Plug-In

As Martin Steinberg already has described hot to create a simple eclipse plug-in I will skip this step and start with the necessary configuration of the the plug-in project. In order to use the SDK some ABAP development tools plug-ins need to be added to the list of required plug-ins. This is done by editing the plugin.xml file.

2014-08-26 22_12_32-ABAP - adt_transport_utils_plugin_plugin.xml - Eclipse.png

After opening the plugin.xml file in the editor, the required plug-ins can be added in the dependencies tab.

2014-08-26 22_13_04-ABAP - adt_transport_utils_plugin_plugin.xml - Eclipse.png

Unfortunately there is currently no documentation available which plug-in contains which classes. So finding the correct plug-in to add to required plug-ins list is sometimes quite challenging. Furthermore, the plug-ins are provided by SAP without the plug-in source code. This makes understanding the usage of some methods as well as debugging quite difficult. Hopefully, SAP will address these two issues in future releases of the SDK.

 

Extending the Transport Organizer View

The next step is to extend the transport organizer view with the menu entries to create the transport of copies. I wanted to add two feature to the transport organizer view:

  1. the possibility to create a transport of copies based on existing transport request
  2. the possibility to create and directly release a transport of copies based on en existing request.

To provide this functionality, I created the menu entries shown in the following screen shot:

2014-08-26 22_25_51-ABAP - adt_transport_utils_plugin_plugin.xml - Eclipse.png

The eclipse RCP enable the extension of views and menus using extension points. In order to extend the menu of the transport organizer view it is first necessary to identify the appropriate extension point. This can be done using the eclipse plug-in spy. By pressing <ATL>+<SHIFT>+<F1> the plug-in spy shows information regarding the current view. The information provided by the plug-in spy are shown in the following screenshot. In order to extend the menu of the transport organizer view the information regarding the active menu contribution identifier, in this case com.sap.adt.tm.ui.tmview, is important.

2014-08-27 07_39_06-ABAP - adt_transport_utils_plugin_plugin.xml - Eclipse.png

In order to extend the popup menu of the transport organizer view a menu extension (extension point org.eclipse.ui.menus) needs to be added to the "Extensions" section of the plugin.xml file. The easiest way to add an extension is to use the "Extensions Wizards". These wizards can be started by clicking on the "Add" button in the extensions tab. In order to create the menu items shown above I added a menu contribution consisting of a menu and two commands to the extension point.

2014-08-27 07_59_14-ABAP - adt_transport_utils_plugin_plugin.xml - Eclipse.png

Furthermore, I created a icon for each of the menu and the commands. The icons are located in the icons folder in the plug-in project. To add an icon to a menu or command is simply done using the "Browse..." button next to the icon element in the "Extension Element Details" part of the editor. Finally, I also externalized the strings like label and tooltip to allow for late internationalization of the plug-in. This can easily be done by right clicking on an extension element and selecting "Externalize strings" in the popup menu. This will create a folder named OSGI-INF in the plug-in project. The folder contains a file named bundle.properties that contains the externalized strings.

 

Implementing the Menu Command Handlers

The next step is to implement the command handlers underlying the menu entries. Command handlers are created by extending the extension point org.eclipse.ui.handlers. The link between a command and a handler is created via the commandID. In the screenshot above the command "Create Transport of Copies" is linked to the commandID adt_transport_utils_plugin.commands.createAndRelease. The command itself is implemented by a class de.drumm.adt_transport_utils.ui.CreateAndReleaseTransportOfCopiesHandler.

Furthermore, a expression is linked to each command specifying when the command is enabled. In this example the commands are only enabled when only one item is selected an the item in a subclass of com.sap.adt.tm.IRequest. The expressions are defined using the Command Core Expressions. A details explanation of Command Core Expressions is beyond the scope of this blog post. A detailed explanation of Command Core Expressions is available at Command Core Expressions - Eclipsepedia.

2014-08-27 10_53_44-ABAP - adt_transport_utils_plugin_plugin.xml - Eclipse.png

The handler class for a command is implemented by inheriting from org.eclipse.core.commands.AbstractHandler and implementing the execute method. The following code snippet shows the complete code of the CreateAndReleaseTransportOfCopiesHandler class. In the execute method the current selection is read from the active window. Using this information an instance of the TransportOfCopiesRequest class is created and the its executePost method is invoked.

public class CreateAndReleaseTransportOfCopiesHandler extends AbstractHandler {
    public CreateAndReleaseTransportOfCopiesHandler() {
    }
    public Object execute(ExecutionEvent event) throws ExecutionException {
        IWorkbenchWindow window = HandlerUtil
                .getActiveWorkbenchWindowChecked(event);
        ITreeSelection selection = (ITreeSelection) window
                .getSelectionService().getSelection();
        new TransportOfCopiesRequest(window, selection, true).executePost();
        return null;
    }
}





The executePost method is shown in the next code snippet. In the method first the destination of the ABAP project is read. Next, the getResourceUri method uses teh discovery service provided by the ABAP development tools SDK to get the URI of the back end service implementation. Finally, the post method of this URI is invoked.

public void executePost() {
        String destination = this.getAbapProjectDestination();
        URI tocResourceUri = this.getResourceUri(destination);
        if (tocResourceUri != null) {
            this.executePost(destination, tocResourceUri);
        } else {
            MessageDialog.openError(this.window.getShell(),
                    "ADT Transport Utils Error",
                    "Necessary backend resource could not be found. ");
        }
    }




In the getRessourceUri method the discovery service is instantiated wit a DISCOVERY_URI (in this case /ztransportutils/discovery). Next the discovery service is used to get an instance of IAdtDiscoveryCollectionMember using the TOC_RESOURCE_SCHEME (http://www.drumm.de/transportutils) and the TOC_TERM (create_toc). These strings will be relevant when implementing the discoverable resource in the backend as they provide the connection between the discovery service and the concrete service implementation.

 

private URI getResourceUri(String destination) {
        IAdtDiscovery discovery = AdtDiscoveryFactory.createDiscovery(
                destination,
                URI.create(IAdtTransportUtilsConstants.DISCOVERY_URI));
        IAdtDiscoveryCollectionMember collectionMember = discovery
                .getCollectionMember(
                        IAdtTransportUtilsConstants.TOC_RESOURCE_SCHEME,
                        IAdtTransportUtilsConstants.TOC_TERM,
                        new NullProgressMonitor());
        if (collectionMember == null) {
            return null;
        } else {
            return collectionMember.getUri();
        }
}



The executePost method is quite simple. It adds the ID of the selected transport request and if the transport of copies shall be released immediately as query parameters and executes the post method. The remainder of the executePost method then mainly consists of error handling.

 

Plug-in Build Parameters & Testing

The last thing that is necessary to complete the implementation of the eclipse part of the plug-in is to adjust the build parameters. Here it is necessary to add the icons folder to set of folders that need to be included in the binary build. This is done on the build tab of the plugin.xml file. While this isn't required to test the plug-in in the development environment it is required to create a fully functional release of the plug-in afterwards.

2014-08-27 22_12_24-ABAP - adt_transport_utils_plugin_plugin.xml - Eclipse.png

With the build parameters set up correctly it is now possible to perform a fist test of the plug in. The easiest way to do this is to right-click on the plug-in project an select Run as -> Eclipse application. This will start a new eclipse instance including the new plug-in.

Summary

The completion of the eclipse plug-in concludes the first part of the blog series. If you want to have a detailed lock on the source code of the plug-in itself, the easiest way is to use the Import -> Projects from Git wizard in eclipse to simply clone the git repository (ceedee666/adt_transport_utils_plugin · GitHub).

If you only want to try out the plug-in, there is also a brief description of the installation procedure for the plug-in (for both, the eclipse and the ABAP part) available on the GitHup repository.

 

Christian

Hello community,

 

I presented different integrations scenarios with ABAP in Eclipse in the last time:

  1. Java Meets ABAP
  2. COM Meets ABAP
  3. FreeBASIC Meets ABAP

 

 

Here now another one: Python in the context of ABAP development with ABAP in Eclipse.

 

I presented four steps of using NetWeaver RFC library with Python:

  1. The Connection
  2. Invoke Functions
  3. Execute ABAP Report
  4. Read Table

 

 

To use Python with Eclipse I get the PyDev - Python IDE for Eclipse. After copying the files from the ZIP Archive in the features und plugins folder, the Python view is ready.

 

I copied one of my examples - ping - in the editor and add the line  # -*- coding: iso-8859-15 -*- on top of the source and all is ready to rumble.

 

005.jpg

You see, ABAP, Java via JCo and Python via NW RFC development peaceful side by side.

 

Cheers

Stefan


Hello Thomas Fiedler, first of all thank for so clear instructions which allow people not only from development but also from other areas to familiarize with Eclipse. I work in Product Support, I do not need right now to write ABAP code, but soon I will need to create reports/note corrections to SAP Customer. I intend to make use of Eclipse.


I did not know Eclipse with ABAP, I knew Eclipse with other languages plugin before Eclipse Explorer challenge.


I think feature explorer in the beginning helps, once it is practiced it is no longer necessary as any other similar guidance tool. For new features it can be always relevant.


I do not know for sure about if that is helpful to onboard new developers I would like to check the comments of Brazil ABAP expert Carlos Machado.


I liked the QuickFix variable rename, quite useful.


Besides Carlos I would like to present this to Fernando Giroleti and Israel Lemes.


Cheers,

Christian Rosa



I found an issue in Eclipse, when trying to write "(" in the source code of a program, which on a German keyboard layout is typed by "Shift+8". Meanwhile i heard from others with an English keyboard layout, that they have the same issue with the "*". So i suppose it seems to be a general issue for all users, who have a character on "Shift+8", that they need in the Source code... And this is the story:

 

Have you ever tried writing an opening bracket "(" in an ABAP source in Eclipse (or probably in any other source in Eclipse)? For example, when you need to define a length? Or use a function of ABAP like "lines ( ... )"? Or wherever you need to put something in "( )"?

 

Well, when i started with AiE, i first tried to modify some of my existing sources, which all in all was not a big deal. But i struggled, when i came to the point, where i had to enter brackets in the code, especially the opening bracket "(". On a German keyboard this character is typed by "Shift+8". Try to do this in the default setup of Eclipse ... you will not succeed, because "Shift+8" starts two Editor commands.

 

Well, i did not think any longer about that as long as i was modifying existing code, because there i used a workaround by copying the bracket and paste it to where i needed it. But when i created my first new program with AiE, i came to the same point, where i needed these brackets. And then i thought: "There should be a way to solve that without always opening a source with a bracket and copy it from there".

 

While searching around in the menus of Eclipse i found the solution in the preferences of Eclipse (Window -> Preferences). There you can find, under section General, the command settings in Keys. I sorted the table descending by column "Binding", and then looked for "Shift+8", which i found rather easy. I clicked on the command with "Shift+8, W", and changed it to "Ctrl+Shift+8, W", not without checking before, if this key sequence is free. I did the same with the next command ("Shift+8, I" -> "Ctrl+Shift+8, I"), and saved the new settings by clicking OK.

 

I tried the changes immediately, but didn't fully succeed. "Shift+8" did not start those two commands any more, but it also did not write a "(" into the source code. So i restarted Eclipse ... SUCCESS!

 

So far so good. But what do i do, if at one point in the evolution of Eclipse this new key sequence will be used for some other commands? Well, i decided to no longer think about this and wait what future will bring. Maybe at some point the developers of Eclipse notice, that there command keys could "kill" some essential feature of the keyboards by using those "Shift+<character>" key sequences. For now it should be ok for me, and perhaps for everyone, who has the same issue.

 

P.s.: i tried all other "Shift+<character>" sequences, to find out, if there could be more problems, but luckily this was the only example...

P.s.s.: i found, that this is an Kepler specific issue, which is not present anymore in the Luna installation... So let's see, what the AiE Luna variant will bring...

Hi Everyone,

  This is my first blog which I am considering to represent my self over in SCN. I started my career 4 years ago, Currently working as ABAP Consultant in SAP Partner company, the company which use to provide the SAP Software service all over the world.

 

I am here posting this blog after read the following blog wrote by Thomas Fiedler

 

Become an ABAP in Eclipse Feature Explorer and earn the Explorer Badge

 

I use to attend more number of conferences all over India. Based on that, have more number of friends. Even in every technical conference, I use to hear one sentence 'Use Eclipse for Development'. Everyone push me to do that. But at the time, I thought to do it. I didn't did, because of maybe time constrains and also some client are not getting upgraded(below 7.31 version).

 

As everyone knows,  sometime still the problem comes we won't step forward to find the solution.

download (1).jpg

According to Murphy's law,

 

"Anything that can go wrong will go wrong"

 

In the same way, I too faced one problem in development system, due to network issue which is not faced before, I shifted to eclipse from SAP GUI.

download.jpg

 

Done a development a month ago, whenever I use to do the coding, always have a thought in mind to save the code for every 10 minutes. But now, I forget to save the code, that lead me to rewrite the 100 lines of code again.

images (1).jpg

But I make sure the same thing should not repeat it again. In order to move forward with my career over development, It is required to find the development tool which works even in offline.

15084553-offline-key-showing-internet-communication-status-disconnected.jpg

 

I found the solution after browsing the Internet as 'Use Eclipse for Development'.

 

images.jpg

In the same way, I shifted from SAP GUI to Eclipse for development.

Shift from SAP GUI to Eclipse.jpg

In order to survive in the world it is required to learn new things also have to adopt the old one too, else we will be thrown out as shown below .

reconnect-nature-outside.jpg

 

Eclipse Feature Explorer will really help the new ABAP Developer in Eclipse Environment. There are more number of options available in eclipse that helps the developer for developing the complex application.

 

Also I am suggesting the following post to everyone

 

How to get your colleagues into ABAP in Eclipse

 

Please find the link to Install the Eclipse in your system

 

SAP Development Tools for Eclipse

 

I would like to say one thing to everyone as per my experience 'It is not easy to learn anything, also it is not too far to learn'. Everything depends on ourself.

 

I would like to suggest Eclipse to the following Person

 

R Sampath Kumar Kannan Nair  Midhun VP Dhivya Shanmugam ManiGandan G.

 

Regards

 

Rajkumar Narasimman

Gabriel SAULESCU

aie_feature_explorer

Posted by Gabriel SAULESCU Aug 18, 2014

I'm pretty new to the SAP environment.

My career was as an analyst-programmer  where I studied business informatics.

In my new challenge at Economic Software Systems  I'm learning to develop in ABAP since Jan 2014.

 

I had installed Eclipse before taking the Eclipse Explorer Challenge, for working with SAP HANA Cloud Platform.

 

The feature explorer shows for all who are starting, like I, that the ABAP language has a plent of options even for those who have an ERP SAP installed, or does not work directly with it.

 

I think the feature explorer is a good first step - for getting tied to Eclipse much to less information, I guess.

 

All the best,

Gabriel

Hello community,

 

in my last blog posts here, here and here I showed different scenarios of COM development integration - all with ABAP in Eclipse. To increase the integration I developed a library which delivers the complete interfaces of all methods and properties of a COM library. The library calls TypeLibInf.dll.

 

TypeLibInf library offers three ways of information to the interface information of a COM library:

  1. Via StdCall interface
    Function DLL_TypeLibInf (TypeLibName As String Ptr) Export As Long
    TypeLibName = Path and name of the type library
    Delivers the address to a string with the interface information
  2. Via Java interface
    Delivers a string with the interface information
  3. Via COM interface
    Delivers a string with the interface information

 

You can use it via Java e.g. like this:

 

// Begin----------------------------------------------------------------

 

  public class TypeLib

  {


    public native String Inf(String s);

 

    static

    {

      System.loadLibrary("TypeLibInf");

    }

 

    public static void main(String[] args)

    {

      TypeLib TL = new TypeLib();

      try

      {

        String Interface = TL.Inf("C:\\Windows\\System32\\wshom.ocx");

        System.out.println(Interface);

      }

      catch (Exception e)

      {

        System.out.println(e);

      }

    }


  }

 

// End------------------------------------------------------------------

 

Also you can use it via COM e.g. like this:

 

'-Begin-----------------------------------------------------------------


  Set TypeLibInf = CreateObject("COM_TYPELIBINF")

  If IsObject(TypeLibInf) Then

    Interface = TypeLibInf.COM_TYPELIBINF("C:\Dummy\COMBeep.dll")

    MsgBox Interface

    Set TypeLibInf = Nothing

  End If

 

'-End-------------------------------------------------------------------

 

Also I developed as example a tiny program which uses the StdCall interface of the library. It shows all methods and properties of a COM/ActiveX library in a tree, below their interfaces. With a double click on the method or property the program generates an associated ABAP code. Also you can see the interface definition with all arguments and their types.

 

001.JPG

 

I hope in this way it is much more easier to developing ABAP programs with COM/ActiveX connection.

 

I integrate the Java interface for a future development, to integrate the same functionality as view for ABAP in Eclipse.

 

You can download the library and the program with the examples here.

 

2014/08/25 - Tiny update of the program, now instantiation of OLE object in ABAP code generation with subrc request.

2014/08/28 - Tiny update of the program, small bug fixing in ABAP code generation (Thanks to Holger) and the most variable types are now identified in ABAP code generation.

2014/09/08 - Tiny update of the program, small bug fixing in ABAP code generation and some advances to the program itself.

 

Enjoy it.

 

Cheers

Stefan

And the winner is ...

 

 

My name is Stefan, and i’m working with SAP development (namely ABAP) since our migration to SAP in 2003/2004. Shortly after our Go Live with SAP my company was bought by a big Danish company, and during the years our SAP system was first integrated into their SAP landscape, and then after a new migration phase, in 2011 closed down. In that phase I was lucky having enough experience to get “drafted” by the ERP development team. Since then I do ABAP development for the “big mother”.

 

My first contact to ABAP in Eclipse was during the “DSAG Jahreskongress” 2010 in Nürnberg, where Thomas Fiedler held his first presentation about the upcoming tools and the Eclipse framework. I was really pleased and looking forward to the first release of this fantastic development tool. But then I did not hear or read anything about it until the “DSAG Jahreskongress” 2012 in Leipzig .

 

The more I was pleased with that news, so I instantly decided to inform my new boss and my colleagues about it, well knowing, that we would not have a chance to use it without an upgrade of our ERP systems. But I followed every possible event, where I could get news about the AiE.

 

And then the fantastic thing happened: my IS department announced an upgrade of our systems to 7.31 SP11 in June 2013! Great! I will be able to use AiE!

I couldn’t even wait for the finishing of the upgrade and already started to get contact with AiE to our Modelling system. Of course with little luck, as there were not even the basic settings in the system and also the necessary roles and authorizations for development from the Eclipse platform were missing in my profile. But I thought: time will bring…

 

But then the worst case happened: the upgrade was stopped 2 days before the Go-live-to-Production weekend! Damn!!!

 

Well, to make a long story short: I had to wait until this year (2014), in June. The next try for upgrade took place, and this time it should be 7.40 SP05! Even better, I thought!

 

I got in contact with Thomas, and he suggested to schedule a Websession with all my development colleagues to introduce the AiE to my department. Which I thought was a brilliant idea, and after a short talk to my boss, who also was totally hooked to that idea, was immediately done.

 

Meanwhile we had this session, I have installed Eclipse and the ABAP Development tools, and have done my first steps in AiE with help of this fantastic Feature Explorer! And I must say: it overcame my expectations by far! It is such a great experience to use this AiE, that I think by myself: “How could we have done our work all these years?”… Ok, this wouldn’t be fair against SE80 and all the fantastic development tools within SAP, which I used through the past 11 years. But I think, this is a “quantum leap”.

 

So, next thing for me will be to learn and try and work with the new tools, and visit one of these “CodeJam” sessions. And I think I’ll gonna be something like a “Mentor” for my colleagues, helping them to use these tools (maybe not all, but at least some of them ).

 

I’d like to thank Thomas for his support introducing the tools to my department. And even more for this great work in improving the tools and bringing them to this state.

 

And to every “Newbie” out there: try out the Feature Explorer, it will help you! It is a very good tool to get known to the basic features of AiE, and in addition with the Reference card for the Shortcuts it is rather easy to make the first steps into a new world of ABAP development.

 

So: Let the community grow!

 

Stefan

@Jacob Rasmussen, @Rock Chen, @Amy Liu, @Dorthe Røhr Lauritzen,

Actions

Filter Blog

By author:
By date:
By tag: