How dearly I would like to edit my ABAP-code in my code editor that is ABAP development Tools (AdT) in Eclipse
I like AdT. It’s “new” (kind of), it’s nice, it has many features that help me. All the development efforts in ABAP go towards the Eclipse/AdT-IDE (that’ still true, right?).
I invested time into learning it, enabling me to make good use of this tool. (E.g. learning the shortcuts to steer it keyboard-only).
So: I like, AdT. I want to use it.
Unfortunately, very often, I can not. 🙁
An it is not because my backend is so old, oh no: that is a shiny SAP S/4HANA 1909 !
It is, because AdT won’t let me edit code!
I’ll explain with an example:
I have a report. It’s old, maybe was initially wirten 8 years ago (or longer), but it’s (still) good! Something like this:
It has been well maintained over the years, was even ported to S/4HANA (see the comment about 40-character MATNR?).
So as I say, it’s a good report. It has some includes, and those have may lines of code, and it’s good code, very fine!
But maybe, a few (only a few of the many, many good lines!), I’d like to change! Maybe remove a useless comment.
Or adapt to solve a new ATC-finding. Refactor the code a little, using those very nice features AdT provides me.
That surely isn’t to much to ask?!
..unfortunately, it is!
I haven’t been truly honest with the screenshot. It shows the truth, but not the full truth.
This is the full picture:
Shocking, isn’t it?
How can you not see it? Someone put an Enhancement-Point there (and in other parts of the program, but one would already be enough to foil my editing plans), making the report even better, following the rules SAP gave us to provide means that users down the line (customers, partners,”internal customers” within an organisation) can extend the functionality towards their need, in a good, clean (release-friendly, future-prove, investment-save ….) way.
Your intentions where noble, no doubt, but they place such a burden on me, now that I want to maintain this fine code, make it just a little better, fix a tiny thing or two, rename some variable to give them more meaning. All those thing that where complicated in SE80, but are now so easy in AdT (renaming, extract method only to name two), that’s what I’d like to do.
But I can’t. SAP won’t let me. See what happens, when I hit the spacebar:
No editing for you, my friend, not in AdT! Not even a single character, not even a ‘space’.
You can edit it alright, just not here, just not so easy.
Here’s a hammer and chisel, you go ahead and do this edit the hard way, like we had to do it when we where your age!
So what should I do now?!
PS: I think we (the ABAP users using AdT) often called for “(Editing) Enhancements in Eclipse/AdT!”.
That is NOT what I ask for. I don’t care for the enhancements, I just want to be able to edit my Code. In AdT.
I hope, with this blog I described (maybe for the first time?) that problem:
A single “ENHANCEMENT-POINT” anywhere(!) in a report makes the whole report (including all it’s includes) unchangeable in AdT. The same is true für global Classes by the way!
And that’s really, really sad. I wish that could be changed. Any chance for that Thomas Fiedler ?
I’m on Eclipse Version: 2019-12 (4.14.0) and AdT 3.8.4,
my backend is the mentioned S/4HANA 1909 (initial shipment stack, S4CORE 104 0000; SAP_BASIS 754 0000).
[Edit: It’s the same with AdT 3.8.5]
If you would tell me that a simple upgrade of eclipse or AdT would finally solve that problem (and maybe provide a screenshot?), that would make me very happy! (I can’t upgrade where I am now, but would then do so as soon as possible.)
Interesting, I never thought that inserting enhancement points in custom code was a good practice, could you explain when it is useful ?
When I need something that could be adapted for other cases I use Badi or différent subclass that can be defined by customizing.
I didn't noticed that it was not possible to modify abap code which contains enhancement points, does it mean that SAP developers are still using SE80 ? ?
Hey Louis-Arnaud BOUQUIN , thanks for you feedback!
Please note that I'n my case it's not custom code, but partner code (in an own /NAMESPACE/), I didn't point that out clearly, I think. But than, its not such a big difference:
A Partner, deploying to different customer systems or a customer with a more complex landscape, delivering to different systems (e.g. one per country?) within the Company.
-> same thing. You want to provide means that the following system can add its own code in some way (for partners its a must I think, for customers: optional, maybe even uncommon).
What the best means for that is, I don't know. If Badi or subclass work for you, I think there's no need to switch to enhancements.
I can't exactly tell, why we went for enhancements (might have to do with switch-framework (SFW1), or it is the way that gives the most flexibility...). But fact is: They are in my report, and I couldn't remove them even if I wanted (because customers may have build on it already).
As to "how does SAP do it?" - I don't know. I'm pretty sure some at some still use SE80. I'm also wondering why no one else seems to have that problem.
There's https://answers.sap.com/questions/765841/is-editing-enhancements-with-adteclipse-still-not-.html of course, but that's from a different angel.
Well I use enhancement points as a last resort. But I have used them. Where I use them almost all the time is in the so called "user exits" in the sales order screens. I like the ability to use the exits, but I want to be able to edit the enhancement points when someone else is in there. Usually in a totally different part of the code.
I'm sure I have in other places too. Also as pointed out third party vendors tend to use them a lot.
Yes, I too, would love to be able to edit that code in Eclipse.
I share the same frustration as you do. I have to work on legacy code which have the dreaded explicit enhancement options (enhancement points, sections)
PS - Be rest assured, TPTB are aware of this limitation 😉
Thanks for sharing my pain and acknowledging it exists!
That's also good to heare, because to be honest, I never got that impression!
By the way: the message says the problem would be the “enhanced object” which might be interpreted as “has an enhancement-implementation” but indeed it is – as I said – just the fact that there’s an ENHANCEMENT-POINT (or ENHANCEMENT-SECTION) somewhere in there.
Here’s where I tried this out:
Edit: fixed link.
Edit: seems I didn't fix the link. <- here's a new try!
Stil the same in current ADT with Eclipse 2020-09
Came back to this today....
Wow, I think this is very fine writing! (yes, I'm complimenting myself! Why not? We should do that more often!)
Jerry Janda , you're a writer - if you'd like to share your view's on my writing I would appreciate that a lot! (yes, I'm fishing for compliments (or honest feedback) here; Why not? We should do that more often! )
I enjoyed it. I like posts that reflect the author's personality (and humor), while still getting the important information and points across. I'd say you succeeded in accomplishing all of that.
Update on this case:
I now have the latest and greatest of software available to me:
Frontend: Eclipse 2021-03 (4.19), AdT 3.16.3.
Backend: (S4CORE 105 0000, SAP_BASIS 755 0000).
....it's still the same! :-(((
Eclipse showing versions an the dreaded message (in German)
( Suhas Saha maybe any news on your site? )
You must ask Thomas Fiedler what his plans are. I am an end user just like you 😉
Oh, wow... There is this thing that when something is a annoying you notice it right away.
But when things go smooth, you just take them for granted; you won't notice automatically, only if you actively pay attention to that.
That being said, I'm very happy that currently I have a code base and an environment, where enhancement options (via enhancement points and sections) seem not to be a thing.
...and thus I'm never bother with the trouble I head described above.
This works now in eclipse, at least with hana 2020
Thanks for the heads up! Nice to hear! (though it's no longer relevant for me at them moment.)