Skip to Content
Author's profile photo Florian Henninger

A wishlist of features – ABAP in Eclipse

Hi all,

today’s blog is about features I love to see in eclipse. A lot of it is already built in (here I mentioned some How to get your colleagues into ABAP in Eclipse), but there are some I really miss or maybe I just wasn’t able to “refactor” my thinking. What I hope, is to just talk about daily problems and get some other insights from you.

As you might know (or not:-)) the roundtable SAP Stammtisch Würzburg – Community Events – SCN Wiki had the first come together and this was a really hot topic.


1st The Scope-functionality

Good old fashioned SE80 I see it at the bottom of my window.

I use this function to make sure, that I’m not at a silly spot and also to search for the initial loop for example. Right now, I do not find an alternative in AIE so far.



2nd Search String in Program/Source

This hurt me from time to time. Also some of my colleagues are also complaining about it. At the moment I switch to the GUI to use it, because STRG-F just search my displayed include. An example would be that I search for a field, if it is already included in any select…

The where-used-function (STRG-SHIFT-G) is not able to this with a string, is it?

My solution to this problem would be a function that allows in eclipse to expand every include to a onepager…

What I mean is, that all includes are expanded in one big source

Example:


3rd Focus on a program/object

Maybe it is just me, but I really like the focusing on a program and navigating through the stack via the tree. I also like the Eclipse-tree, but it would be really nice to have a focused tree similar to the se80-tree because right now there are a lot of programs left, which are not class-based and the outline-view does not help that much.

I would also be happy, if this is an option would be available with forms in the outline-view.



4th Assist to create dictionary-objects

This is something I have a long time in my mind. With eclipse I’m able to declare variables local or even delete the unused variables in my program using the onboard-tools. I would love to see a function, that I’m able to refactor my local data-definitions to global dictionary-types. To be exact range-types. While using classes I need a lot of it and in my opinion a global type is better than a local type. That must not be true for everything, but having the option would be really nice


5th Defining a Standard-Header in the backend

Also something not really new, but would be a nice feature if it would be possible to define a mandatory-header for the different sources in the backend and every time one is created, the predefined header is included.

IMPLEMENTED (See SAP-OSS http://service.sap.com/sap/support/notes/2193295)

6th Multiple Logon pads

I think I’m not alone with my problem here… would really be nice to have this supported. Creating system direct in eclipse is good and works fine but in the end I also have a lot systems in my local logon-pad which I really use only once a year.


7th Extraction of ABAP Doc for Technical Documentation

Dreaming about a TD directly out of the source… this is a really far away idea. I think I could generate my TD with all the data I have available while developing and just press a button at the end. I’m sure it is possible but I have no clue how to do it.


8th Including the SFP-Transaction – Isn’t it a Webdynpro Interface 🙂

I have a strong focus on developing forms and so I would love to see the implementation of Adobe as part of the eclipse. Not the tool itself, but the interface. So I’m able to just switch between two worlds and two different shortcut-features. Perhaps it is my personal problem, but I nearly always forget to activate my interface because of the other shortcut:-(


9th Enhancements

Last but not least, I would love to do my enhancements via eclipse without leaving the new world…:-) No need to add anything here…

That’s it. This is my personal wish list with a few points I really like to see implemented. Feel free to add your personal wishes in the comments or give me a clue, if I can solve one of my points:-)


Cheers

Florian


PS Bruno , below you have as much space as you want to add your points discussed at our roundtable-meetup.

Assigned Tags

      40 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Christian Drumm
      Christian Drumm

      Hi Florian,

      nice set of features. Some of them are also high on my personal wish list.

      Quite a while I started a similar effort on the SCN wiki (ABAP in Eclipse - Community Feature Requests). Maybe we could somehow combine those two list to create a nice backlog for the AiE development team 😉

      Christian

      Author's profile photo Florian Henninger
      Florian Henninger
      Blog Post Author

      Hi Christian,

      I really had something similar in my mind. To get the points on the backlog I thought having a release-poll in the end to create a list of importance.

      Most clicks need to implemented first and the community decide one function per release 🙂 (of course, if there are more implemented we'll take it also 😛 )

      ~Florian

      Author's profile photo Bruno Esperança
      Bruno Esperança

      I'll start making a list and I'll get back to you when I have a few points to add to yours 🙂

      Honestly, I'm "forcing" myself to use Eclipse. At this point I still don't think I'm more productive with Eclipse than with the "standard" SAP GUI.

      Time will tell...

      Cheers,

      Bruno

      Author's profile photo Joao Sousa
      Joao Sousa

      If you are developing mostly with classes, with little use of SAP standard tables of data elements, you will be more productive in ABAP for Eclipse. The problem is everytime you need to open SAP GUI to do something it breaks your workflow.

      Author's profile photo Bruno Esperança
      Bruno Esperança

      PS: For the non-German readers, STRG means CTRL 🙂

      Cheers,

      Bruno

      Author's profile photo Paul Hardy
      Paul Hardy

      At every SAP conference I go to you will find people from SAP talking about "customer connection" projects where you are encouraged to tell them what is missing in CRM or what have you.

      Yet when someone tries to put something on "Idea Place" in regard to ABAP (and  presume this would include ABAP in Eclipse) then they just get laughed at.

      I am not on a high enough system to use ABAP in Eclipse yet, but I am looking forward to it.....

      Cheersy Cheers

      Paul

      Author's profile photo Ondrej Seman
      Ondrej Seman

      Hi,

      well I think number 1 is already there (already longer actually) via the breadcrumb:

      /wp-content/uploads/2015/04/bread_crumb_688985.png

      Or did you mean something else?

      Have a nice day!

      Ondrej

      Author's profile photo Thomas Fiedler
      Thomas Fiedler

      Hi Ondrej,

      that's right. We want to add the ability to see in which statement (Loop, IF...) I'm currently working. Then it is exactly what Florian proposes. 

      Regards,

      Thomas.

      Author's profile photo Florian Henninger
      Florian Henninger
      Blog Post Author

      Hi Ondrej,

      Thomas got my point.

      ~Florian

      Author's profile photo Thomas Fiedler
      Thomas Fiedler

      Hi Florian,

      very good points that you have on your wish list. Most of the described features are already with high prio in our backlog. DDIC and ABAP Doc Extraction is already available in the labs and will be shipped with the next AS ABAP version. Search in reports and the standard templates for reports we just discussed last week. 

      The only unrealistic point is the Formbuilder because of the huge efforts.  

      But I will tell my colleagues that you want to have it.

      Regards,

      Thomas.

      Author's profile photo Former Member
      Former Member

      Well, more interessting features in my opinion would be

      • Extract Function Module Calls to Method (ALT+SHIFT+M), in Local/Global Class
      • Redefine Methods of inherited Classes via Shortcut
      • Generate Getter and Setter
      • More Refactoring Options
      • Configurable Pretty Printer
      Author's profile photo Joao Sousa
      Joao Sousa

      Getter and setter smart enough for the compiler to know that if the getter and setter is "simple" it should be compiled as a direct attribute access (as in .Net).

      I do understand that making method calls for every attribute is too much overhead, but frameworks like .Net handle this nicely. If the getter/setter is default, the runtime code is the same as a direct attribute access so there is no runtime overhead.

      I point this out, because it's against ABAP guidelines to use getter/setters for "simple" attributes, something that in my opinion breaks encapsulation.

      Author's profile photo Thomas Fiedler
      Thomas Fiedler

      Hi Mathias,

      I just tested the Getter/Setter generation for class attributes in our lab version.

      So you can be sure that this feature will be available in one of the next versions.

      Maybe you can elaborate a bit more in your point 'More refactoring options'.

      Regards,

      Thomas.

      Author's profile photo Joao Sousa
      Joao Sousa

      But will the guidelines change? Because nowadays you can't use automatic getters/setters according to the guidelines.

      Author's profile photo Thomas Fiedler
      Thomas Fiedler

      Hi Joao,

      to which guideline do you refer?

      Regards,

      Thomas.

      Author's profile photo Joao Sousa
      Joao Sousa

      ABAP Keyword Documentation

      "However, the modularization at the level of a few single statements is and will remain untypical for ABAP. On the one hand this is because of performance reasons, because the costs for the method call must remain low in comparison to the costs for executing the implementation. For example, instead of providing the get_attribute methods typical for other object-oriented languages that only set their return value to the value of an attribute attribute, you should use public READ-ONLY attributes in ABAP."

      Author's profile photo Christian Drumm
      Christian Drumm

      The real question for me is why in 2015 the ABAP runtime isn't able to optimize these calls. In other languages (Java, C#) the compiler/runtime takes care of this.

      Are there any reasons I'm not awar of that don't allow these kind of optimizations in the ABAP runtime?

      Christian

      Author's profile photo Thomas Fiedler
      Thomas Fiedler

      Hi Christian,

      we just had a discussion about inlining of ABAP methods.

      Let's see what the future brings.

      Regards,

      Thomas.

      Author's profile photo Joao Sousa
      Joao Sousa

      I understand this wasn't the focus in the beginning but OO has been available for 15 years. Following this guidelines makes little sense because the purpose of encapsulation is maintainability. When I create the class maybe the method is only one line, but the purpose of encapsulation is to make it robust enough to handle changes without breaking the API.

      If I create the method as public read-only I'm limiting the class flexibility. Imagine over time the attribute becomes complex enough that I need to implement lazy loading... with the current guideline I'm screwed.

      I know this isn't a Eclipse specific issue, I have this problem with ABAP OO in general.

      Author's profile photo Former Member
      Former Member

      totally with you, that guideline doesn't make sense to me either

      Author's profile photo Former Member
      Former Member

      Hi Thomas,

      with more refactoring options i mean a few things,

      1. The option to override Methods from parent classes
      2. the possibility to rename variables without the syntax check crushing the operation(as long as you have sytanx errors you can't rename)
      3. extract function modules into methods of global/local classes
      4. extract method to interface or move whole mehods including definition to other classes
      5. if there is only one possible code completion available just put it there without having to press enter again
      6. extract variable to global variable and replace occurences in file

      That are functions, which are not all needed but would be very nice to have, especially the renaming, overriding and extracting function modules.

      Would speed up the process of refactoring all those ugly very old school reports and classes which don't seperate Business Logic from Function module calls which i treat as "Blackbox" and not unittestable so they all went into local classes, that way they are more easy to mock.

      Otherwise (again) great tool, just love it, all the time i have to use SE80 again it pains me seriously because my production rate lowers significantly

      Author's profile photo Uwe Fetzer
      Uwe Fetzer

      +1000 for point 9. The Eclipse team already know, but "denied" that there really is a need for this.

      @ eclipse team ( Thomas Fiedler ) : until we get real enhancement support, please have a look at the behaviour when we are in Eclipse and have a break-point within an enhancement or try to jump into an enhancement from within a "where used"-list...

      Author's profile photo Florian Henninger
      Florian Henninger
      Blog Post Author

      That's why I mentioned it here also.

      I have some colleagues that call this point the "show-stopper" right now to use AIE.

      I'm hoping that it is a high prio point at the backlog.

      ~Florian

      Author's profile photo Thomas Fiedler
      Thomas Fiedler

      Hi Uwe,

      I have only denied the editing support for modifcations in the near future.

      Your two points are in the read scenario.

      -1- Break-points: The problem is that you can't set break-points in the enhancement. Or what do you mean?

      -2- Where-Used: I will check with my colleague how we can support that.

      Regards,

      Thomas.

      Author's profile photo Uwe Fetzer
      Uwe Fetzer

      Hi Thomas,

      1 - if I want to edit an enhancement, I have to open the source in SAP GUI (Open with...), where I am able to set a break point.

      Author's profile photo Thomas Fiedler
      Thomas Fiedler

      Hi Uwe,

      so your request is to set a break-point within in the enhancement in the AIE Editor.

      Let's see what we can offer until the full enhancement support is there.

      Thanks for that point.

      Regards,

      Thomas.

      Author's profile photo Uwe Fetzer
      Uwe Fetzer

      Not the setting of the break point is the problem, but the behaviour of ADT when the runtime comes to the break point. Try it out for yourself.

      Author's profile photo Bruno Esperança
      Bruno Esperança

      I am building a list... but I just found out a pretty extraordinary "bug". I can't activate an include which has multiple main programs.

      Cheers,

      Bruno

      Author's profile photo Bruno Esperança
      Bruno Esperança

      Here you go, my new list:

      Eclipse revisited - New pros and cons

      Cheers,

      Bruno

      Author's profile photo Ondrej Seman
      Ondrej Seman

      Hi Bruno,

      this problem is known. According to Michael Schneider it should work from 7.40 SP8.

      (See Message Include * is used in multiple main programs (210) )

      Author's profile photo Bruno Esperança
      Bruno Esperança

      Hi!

      Great, good to know! I'm just calling them as I see them 🙂

      Cheers,

      Bruno

      Author's profile photo Ondrej Seman
      Ondrej Seman

      Hi Bruno,

      our system was updated just week ago and it really works. It asks in Eclipse for a main program, similarly as in SAP GUI. 🙂

      But even in our company this is the only system, with such version. All others are older. As they are by most of customers...

      Have a nice day!

      O.

      Author's profile photo Joao Sousa
      Joao Sousa

      Working through SAP Router. Sometimes I use SAP GUI because I'm too lazy to connect the VPN.

      Author's profile photo Former Member
      Former Member

      Great, Good document.

      Regards

      Biswaranjan

      Author's profile photo Thomas Fiedler
      Thomas Fiedler

      Hi Florian,

      I have very good news for Feature Request #5:

      http://service.sap.com/sap/support/notes/2193295

      Looking for Testers 🙂

      Kind Regards,

      Thomas.

      Author's profile photo Uwe Fetzer
      Uwe Fetzer

      tested -> it works

      (NW 7.40 SP10 + note 2193295)

      Author's profile photo Uwe Fetzer
      Uwe Fetzer

      P.S.: $User and $date never have worked, am I right?

      Author's profile photo Florian Henninger
      Florian Henninger
      Blog Post Author

      Awesome! I will test it at Friday 😉

      ~Florian

      Author's profile photo Florian Henninger
      Florian Henninger
      Blog Post Author

      Works perfect for me. I'm pretty happy about this feature. Now I have to define my guidelines just once 🙂

      ~Florian

      Author's profile photo Priyank Jagannatha
      Priyank Jagannatha

      For point number 2, you can use the Outline Function - lists all the includes subroutines and variables of program - Alt+Shift+Q then O

      Similarly lists all methods for classes