Skip to Content
Author's profile photo Sergei Haller

AiE Feature Explorer and Missing Features

Following the Become an ABAP in Eclipse Feature Explorer and earn the Explorer Badge Challenge, I took a look at the Feature Explorer…

Some missing Features / Issues I see with AiE:

  • Actually working Offline.
    Eclipse is an offline tool. But I cant save my changes without an online connection… Ther should at least be a “local save” variant.
    Maybe something like “sync down” (syncing a whole package to eclipse) or “sync up” (syncing up to the server). Activation would obviously require a “sync up”.
    See e.g. SAPUI5 Team Provider…
  • Feature Split between AiE and SAP GUI
    Now we’ve got several features working ONLY in AiE (e.g. AMDP, CDS — although both are “jsut plain files”) and others working ONLY in SAP GUI (e.g. BSP. So the developer is kind of forced to use BOTH tools…

Some Answers for the Challenge:

Developing in ABAP: The standard way is SAP GUI. I love the “where used” feature. I hate the double-click-to-navigate feature (douple click is commonly used to select a single word for copy/paste)

Developing in Eclipse: I have a strong background developing in Eclipse (mainly, but not only Java). I love the Ctrl-Click-to-navigate feature (and double-click-tio-select)

Currently, I dont see the point of using Eclipse (apart of new ABAP features that are only available through eclipse), because you cant really work offline.

Use case: sync a few packages, work on a programm offline (be it on a train or from outside the intranet without open VPN connection) Once connected, activate and test/debug.

Assigned Tags

      10 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Daniel Herrera Marmolejo
      Daniel Herrera Marmolejo

      Sergei,

      In my opinion the main difficulty for a true offline mode is managing the lock the object. But i can't come with a good way to manage it.

      Daniel H

      Author's profile photo Sergei Haller
      Sergei Haller
      Blog Post Author

      Currently (AFAIK), Locking happens when you start editing, unlocking when you save. This is a perfectly valid way of doing for an online scenario.

      If going offline, editing must be possible offline and locking/unlocking happens before/after upload. Now, in case somebody else has changed the resource in meantime, this is a conflict that needs to be resolved.

      [just thinking out loud - maybe there are other obstacles]

      Author's profile photo Daniel Herrera Marmolejo
      Daniel Herrera Marmolejo

      But there should be a signal to keep the lock alive to release the lock in case of something goes wrong with the client, one possibility would be to be able to get the lock for a certain amount of time when you're planning to work offline. To keep the lock without the keep alive signal.

      But there is also the case when you locked it for a certain amount of time, but couldn't connect before it expires. and the lock was released,and someone could modify it.

      It's not an easy issue, but let's hear what Thomas Fiedler thinks about this.

      Author's profile photo Thomas Fiedler
      Thomas Fiedler

      Hi Sergei,

      would be really great to have more offline capabilities, no doubt about it. But it is not so easy to provide. All the functions that you need to develop ABAP are implemented in the ABAP server. To provide real offline editing features we have to implement syntax-check and code completion in a way that it it executable locally on your laptop. And you need local sync capabilities for ABAP and DDIC artifatcs that these services are working offline. Without having these editor feature I have some doubts that the local editing with local saved versions is in general a good idea. But a local save might be realistic when estimating the efforts.

      Regards,

      Thomas.

      Author's profile photo Sergei Haller
      Sergei Haller
      Blog Post Author

      Hi Thomas,

      thanks for your reply.

      All the functions that you need to develop ABAP are implemented in the ABAP server.

      I didnt realise that all functions are implemented in Backend (syntax check, syntax highlighting) but then I have to ask myself -- why eclipse at all 😉 (this question is rhetorical)

      As for syncing, locking, conflict management, etc. -- I don't think it is easy. But has been done with other systems before

      Author's profile photo Thomas Fiedler
      Thomas Fiedler

      Hi Sergei,

      we already provide conflict management in case you edit the code offline in eclipse and re-sync it with ABAP backend. So you get a notification in eclipse in case someone else has changed the code in the meantime on the ABAP server.

      Let's assume we offer the possibility to trigger an offline sync mechanism for all ABAP objects belonging to a package and we offer the possibility to edit these object offline without having syntax-check and code completion. Would you use these mode in the train?

      Or isn't the train scenario the case where you often loose your network connection but only for a few seconds?

      Regards,

      Thomas.

      Author's profile photo Sergei Haller
      Sergei Haller
      Blog Post Author

      The train scenario is the one where you may loose your connection everywhere except at train stations (may depend on the country and/or the mobile carrier)

      but it isnt only the train scenario that is involved here. This may be an employee or external consultant working from "outside of the company network" and connected via VPN.

      And its more than just being able to work _without_ a connection to the server. Imagine working over VPN where a save operation (which always connects to the server) may take a few seconds (a dozen? a couple of dozen seconds?). This is highly distracting and the developer constantly keeps loosing concentration.

      It is a common scenario that a "change" requires to modify several objects in order to get a full consistent change -- here you wohld change all the objects in a local store and "upload" or "sync to the server" once

      Author's profile photo Thomas Fiedler
      Thomas Fiedler

      Hi Sergei,

      okay, understood. You are talking about a real offline development scenario.

      This is currently out of scope because of the high efforts to implement the server based services.

      Regards,

      Thomas.

      Author's profile photo Thomas Fiedler
      Thomas Fiedler

      Hi Sergei,

      concerning the question about features in SE80 vs. Eclipse our roadmap goes into the direction of eclipse-only. That means new features will be available in eclipse and not in SE80. But we will limit our efforts in the area of UI tooling. BSP and dynpro tooling is not in scope of eclipse. In Eclipse we only support WebDynpro, FPM and SAPUI5.

      Regards,

      Thomas.     

      Author's profile photo Sergei Haller
      Sergei Haller
      Blog Post Author

      concerning the question about features in SE80 vs. Eclipse our roadmap goes into the direction of eclipse-only.

      I think, the decision shouldnt be followed dogmatically.

      I.e.,

      • things like SWDD or <place here an eclipse based "fancy" Editor for some Object> are perfectly OK to be only developed for one of the worlds.
      • But plain text objects like BSP or AMDP should be available in both worlds in my opinion

      Thanks and best regards, Sergei