How it all began
In the last months I was evaluating enterprise wiki software. On the one hand for our customers projects, but on the other hand for our company. We are also participating at the NetWeaver 7.3 ramp-up, so I thought maybe the Wikis in SAP NetWeaver 7.3 which is part of SAP NetWeaver Portal 7.3 could be the perfect match for our customers, because they already have the licenses and the installation. I was testing the features of the wiki, but in my personal opinion this wiki has not the expected features that I know from the SDN wiki. Anyway, I thought maybe there is a way to unlock the features that I know from SDN, because the look and feel of the 7.3 wiki is almost the same. I contacted Galli Kling Schneider and she forwarded me to SAP Mentor Oliver Kohl. Some days later I have had a very nice call with him regarding the 7.3 wiki and how the SDN wiki was setup. He told me in the call that the SDN wiki is based on Confluence Wiki from Atlassian. You can say that Confluence is the market leader in the enterprise wiki software. Anyway, I have downloaded the 30-day trial version of the wiki and evaluated it. There are a lot of plugins to extend the already powerful basic functionality of the wiki. After a few days I was convinced that this is also the right wiki for our internal use. The wiki also offers a plugin for a code macro that can be used to post code snippets into wiki pages. This default plugin is delivered by Atlassian and supports a lot of programming languages like C#, C++, PHP, Java and so on, but no support of ABAP. My company FIVE1 is offers consulting for the SAP NetWeaver and Business Objects platform with focusing on Business Intelligence. In this area you need very often ABAP for instance for the implementation of customer exit variables in SAP BW. Anyway, it would be perfect if we could also use the code macro for ABAP. I have asked if they already have something for the SAP Developer Network, but unfortunately there was no solution so far.
A need in the SAP ecosystem
Atlassian offers a SDK in order to develop plugins for Confluence and there is also an interface to extend the code macro plugin for other programming languages like ABAP. I have decided to setup a small internal project team to develop this extension for ABAP. I know from last year’s SAP NetWeaver Development task force meeting of DSAG (German SAP user group) that also some partners and customers asked for enterprise wiki software that supports ABAP syntax highlighting. Also the SDN wiki can benefits from this plugin, therefore I have decided to develop it under the Apache 2 License so that it is free for everybody.
Code Exchange – the best place for a community project
Last year before SAP TechEd Rui Nuigera introduced SAP Code Exchange on the SAP Innovation Weekend in Berlin. With SAP Code Exchange you have the possibility to collaborate on a community project. You can discuss ideas in a project forum, you can share documents and source code is stored in a subversion repository. That’s perfect for our project and I have created a project on Code Exchange.
The first steps and the advantage of the community
Our first step was to get a valid list of the ABAP keywords. For this task we have had great support from SAP Mentors Oliver Kohl and Gregor Wolf who already joined our project team on Code Exchange. I also want to point out the great support of our ABAP Enterprise Geek Thomas Jung. Thank you very much Thomas for your support.
A known issue with the code macro is that keywords are also highlighted within comments if you use the dedicated methods of the SDK. That’s the reason why we have used the default java string processing in order to avoid this issue. The first version is released on the code exchange platform and can be downloaded. The first version supports Confluence version 2.2 to 3.4.9. It can also be downloaded from the plugin site, but I recommend to check the Code Exchange project in order to get the latest release. Oliver Kohl has suggested creating a kind of ABAP dictionary with the ABAP keywords that can be used by others projects for instance ABAP syntax highlighting for other wiki software. Our current version stores the ABAP keywords in an XML file, but we cannot guarantee that it is 100% complete.
Our next steps
On March 17th of 2011 Confluence 3.5 was released by Atlassian, beside some new features the code macro was changed and therefore we have had to adjust or ABAP Syntax Highlighting plugin. With version 1.1 of ABAP Syntax Highlighting Confluence 3.5 and higher will be supported. We are also working on the list of the ABAP keywords in order to support the latest version of ABAP.
We also have a thread in our project forum to discuss additional features like linking to SAP notes. This is already supported by the SDN wiki. Maybe Brian is willing to share this part so that we can add this to the plugin. If you have any idea how we can enhance this plugin for another feature that is SAP related you are welcome to join our Code Exchange project. It would be also great if the SDN team is willing to install this plugin on the SDN wiki.