New ABAP Editor Backport!
In the ten years that I have been working in the SAP world I have seen the development tools go through a lot of changes. However for me the most exciting change came last year as customers got their first peak at the new ABAP editor during the SDN Meets Labs Conferences. For those of us that spend a fair amount of their day knee deep in the ABAP Development environment, any productivity improvements are welcome. But this new editor offered so many enhancements that it is no wonder that it went on to win the Demo Jam at both TechEds last year.
Many people have written about the capabilities of this new editor. In case you have been living under a rock and missed the buzz about the new editor, here are a few links to bring you up to date:
The New ABAP Editor
SAP Insider Article by Karl Kessler: New ABAP Editor and Debugger Boost Developers Productivity
There is only one problem with this new editor – it is available starting with solutions built on top of Netweaver04S. That means that some developers may still have to wait a few years until their companies upgrade their business packages to have access to the new editor.
Up until the beginning of this year, I was a developer that fell right into that category. The company I worked for was just completing an upgrade from 4.6C to ERP2004. ERP2004 is based upon Netweaver04 not Netweaver04S. Although this was a good release level with lots of development tool enhancements, this meant another upgrade that would contain the new ABAP Editor was still years away.
I decided to use SDN to express my opinion that the new editor should be backported to current release levels. I started a Back-porting the New ABAP Editor to older WebAS Releases and wrote Speak Your Voice; New ABAP Editor for Older Releases. To date the weblog has 45 comments and the forum thread has 224 replies. So I guess I wasn’t alone in my desire to see the new editor backported.
At the start of this year everything changed for me however. I left my previous employer and came to work for SAP. I had been in my new role all of one week when I learned about what had been going on around the possible ABAP Editor Backport Project. Mark Finnern had been working on drumming up support for the project for some time. He had money and resources lined up. But he had also trying to arrange for me to possibly be part of the development project. I was quite overwhelmed by the exciting project. Mark has always been very supportive, but this was a dream come true – to go to Walldorf and work on the ABAP Development Tools!
I have to admit that it seem a bit like Karma. I had pushed hard for the editor backport as a customer, it seemed only fair that I now play whatever part I could in making it happen.
I was sitting in a hotel room in Palo Alto at about midnight on March first when I got the final approval email from Mark. The budget had been approved and the timelines were set. The goal was to travel to Walldorf in March for two weeks, then return home and work on the project during the month of April. Our original project scope was to backport the editor to just Netweaver04 (640). The enhancements would ship out with the next available support package for that release.
Arriving in Walldorf
This being my first trip to Walldorf, my first day was really spent on getting familiar with my surroundings. I had left the US on a Sunday Afternoon and arrived in Frankfurt on Monday morning. My very first experience in Germany was the hour long drive on the autobahn from Frankfurt to Walldorf. Still a little groggy from the overnight plane flight, it was an interesting experience to say the least.
For anyone who has never had the pleasure of visiting the SAP headquarters, you might find your first time there a bit overwhelming. There is a large complex of interconnected buildings. I was going to be sitting with the ABAP workbench group in Building 3 Floor 1 Section G. As I explored the buildings, I found that every floor and every section of the building look rather similar. More than once I found myself heading in the wrong direction. One very striking aspect to someone coming from the US was how most meetings are held within the local coffee bar area. I’m used to reserving meeting rooms, so this open public area for meetings seemed strange at first. However by the end of my trip, it actually made a lot of sense.
Near the end of my first day in Walldorf, something really exciting happened. Although fellow SAP employee, Brian McKellar, and I had written a book together we had never had the opportunity to meet in person. Mark Finnern had said before that it was an hope of his to facilitate our meeting some day. It finally happened.
Brian took very good care of me while I was in Walldorf. He snuck me into meetings and demos, let me talk one on one with the Web Dynpro ABAP development team and showed me tons of cool new technology. He also took me site seeing in the evenings and on the weekend. Anyone who is interested in see some of the pictures that I took during these outings are welcome to check them out on Flick. There are also pictures from the Unofficial SDN Meet up and some of the Walldorf offices.
Germany April 2006
As it turned out, other commitments had caused the project to get a later start than intended. I was unable to leave for Walldorf until April 2nd. The main person I was going to be working with on the project was Hans-Christian Weber. He is the developer responsible for the ABAP Editor integration in the Workbench. My late arrival meant that Christian already had a lot of work done before I even arrived. He had the core Editor classes CL_GUI_ABAPEDIT and CL_GUI_SOURCEEDIT already moved back. A lot of the other tools integration (function builder, flow logic, split screen editor, etc) had also already been completed by other members of the workbench team.
My main focus upon arrival was to perform testing on the work that had already been completed. At first testing seemed rather cut and dry. After all I had been using the ABAP workbench for years. However you forget just how many variations there are to test. We wanted to test all the integration points between the front-end editor control and the backend ABAP coding. This meant testing Clipboard functions, pattern, pretty printing, setting breakpoints, double click navigation, F1, F4, cut and paste, Navigation, Outlining, find and replace, formatting, and Drag and Drop. But each of these aspects have to be tested in core editor class, using a test wrapper, and then tested in each of the integrated tools. That means running each test in the wrapper, the function builder, the class editor, the split screen editor, the program editor (se38), the main workbench (se80), and the BSP method editor. To make maters just a little bit more complicated each aspect for each tool has to be tested in normal and modification mode.
To keep track of my testing, I used the high tech method of pen and paper. I’ve included a scan of the actual testing results. As you might notice by the stain on the right hand side of the page, that large amounts of coffee were involved in the editor backport project. It wasn’t until the third day in Walldorf that I learned that every other floor in the building had coffee machines that were decaf and that I was working one of the dreaded decaf floors. I wondered why I was still tired after several cups.
The testing went quite good. We found a few minor problems with being able to make changes in Modification Mode outside the modification area if you used Drag and Drop. But overall we were able to complete the full testing by the middle of the first week.
Given the swift progress backporting the editor to 640, we also decided to increase the scope of the project and backport to 620 as well. By the end of the first week we had 620 integration completed and tested as well. To me this was a major victory for the project. By backporting to both 620 and 640 we will be able to deliver the new editor to a huge amount of ABAP developers.
New BSP Layout Editor
So if we had the backport for 640 and 620 basically finished by the end of the first week of trip, you might be asking yourself what exactly was left to do during the second week of the trip. As it turns out we didn’t all just take the week off and go site seeing.
If you are a user of BSP, you might have noticed that even in Netweaver04s, the layout editor in the workbench still uses the basic text editor. There is actually a mode in the front-end control of the new ABAP editor for BSP. I asked around and found out that it had never been implemented in the ABAP workbench simply because of time constraints. Because we finished early on the main work, the workbench team let me do some new development in for the next release of Netweaver in the BSP workbench tools – which we then down ported to Netweaver04S, Netweaver04, and 620. Knowing my passion for the tool, they thought I might enjoy spending a little time updating and enhancing the BSP tools.
So first we completed the ABAP Editor Integration into the BSP Layout Editor. Now we will have syntax highlighting, code collapse, split screen editing, and all the other excellent features of the new editor for HTML and BSP Extension based development!
Personally as a BSP user I had always wanted some sort of integrated help for choosing BSP extensions and attributes. I decided that this was probably my only opportunity to ever have some thing like that added to the environment. So I stayed late one night and designed and built the following:
Parsing a BSP layout is much simpler than ABAP code because of its basis in XML. I found that I could parse the page and use the context menu to offer a very simple “code completion” for BSP Extensions.
So if you type the Extensions name and choose the context menu, you can get a list of the possible elements in that Extensions. Choosing an element from the context menu will of course insert it into the code:
Once you are within an element, you can use the same process to see all the attributes and choose the one you want:
All the logic is positionally sensitive, so you never receive an invalid option for the area you are working in.
I sent some screen shots and details about these new features to long time SDN members Eddy and Raja asking them for feedback and ideas. While I had the opportunity to effect a change in the BSP tools, I thought it would be wise to involve two of SDN’s strongest supporters for the tool.
First I want to say what a great honor it was to have the opportunity to work on this project. I was only helping out in some small way, the real credit for the final product should go to the men and women who work in the ABAP Workbench Group on a daily basis. It was also great to be able to meet and work with the people that create the tools that make ABAP Developers’ lives easier.
Of course we all also owe a debt of graditude to Alexey Arseniev. Alexey is the person who used his personal time to create the ABAP Editor Front-end control. It was his passion and vision that brought us the new editor in the first place.
You might be asking yourself, when do I get these new tools. Well if you are looking for the new BSP functionality in Netweaver04S, that is available now. It shipped this week at part of SP8. All of the backported functionality will ship with the next support package for 6.40 toward the end of the summer. You should check the Service Marketplace for the scheduled release dates of the support packages. The great news is that the new editor made its way into the most recently released support package for 6.20 (SP59). So 6.20 users, you can start enjoying the new editor today!
This project is the perfect representation of the power of SDN. Through SDN, developers had a voice in which they could influence the direction of SAP’s product. SAP listened and responded to those requests.