1 2 3 13 Previous Next

ABAP in Eclipse

187 Posts

Hello,

          My name is Anurag Sinha and I am an ABAP consultant. Recently i have started doing HANA with ABAP. So this is how i get the first essence of AIE .It was really great to see the ABAP integration in eclipse. Though it took me some time to get familiar  with the interface of eclipse now its really exciting took work on eclipse as so many things can be integrated to eclipse .It's a great experience to see ABAP in new look specially the debbuging part.But only thing which i was not able to find was a pretty printer button . Will be grateful if any1 can help me with that. Overall my new experience with AIE is great and looking forward to explore more into it . Thanks for the innovation .

Hi community,

one reason why we picked Eclipse as development tools platform was the huge eclipse community. There are a lot of developers out there building tools for eclipse that we can simply use also for the ABAP development. Things like small helper tools for the source code editor but also tools like UML modeling tools are available mostly for free.


But do you know that this community is nicely integrated in your ABAP development environment?


You find all these additional tools on the eclipse marketplace that you can open via the eclipse menu:


mp1.png


The marketplace opens in an own window:


mp2.png


The marketplace offers search capabilities for you with tool categories and an integrated rating system that might be helpful to find the plugins you are looking for.


Happy searching for new plugins !


Last week Serban Petrescu already proposed some very nice plugins that he uses already in the ABAP editor. You can find them in his Feature Explorer Blog: AiE - Eclipse Feature Explorer


So I had the idea why not use this blog here to share some of the coolest plugins that you find on the eclipse marketplace with the AIE community. 


Kind Regards,

Thomas.




 

Hi guys,

 

I thought I would also share my experience with AiE and also try out the feature explorer. I'm fairly new to ABAP development (compared to some of your around here), but I think I grasped most of the concepts and language features available. I am currently working on an life (re)insurance system project, which mostly involves ABAP with classic dynpro as user-interface. Unfortunately, not all systems I have to interact with support eclipse, so I have to sometimes resort to SAP logon (or NWBC).

 

To be fair, I have used AiE for some time now and I decided to complete this challenge just recently . AiE has great potential and already provides significant improvements over SE80. My favorite features are:

  • F2 and the ability to actually link this with the editor
  • Templates. I just love how many things you can do with them.
  • Ctrl+Shift+A
  • SQL console and data preview
  • Source code refractoring

 

Also, another strong-point in favor of eclipse is the possibility of using pre-existing plug-ins to enhance your list of (already awesome) features. Some good ones that I have been using lately are:

  • AnyEdit (convert lower <-> upper case, sort stuff - like data declarations -, compare with clipboard)
  • PDE tootls (clipboard history)

 

Some things are still missing though, but I am sure that, in time, they will be included as well (e.g. more navigation support for F2 popups, full dictionary support, more debugger stuff from the 'old' debugger, etc).

 

The fact that we can use Eclipse for most of the SAP technologies is also pretty neat. I also sometimes work on the cloud, so I have to develop Java, Hana Native or UI5 apps, and it is very helpful that I only have to switch between perspectives and not IDEs.

 

Best Regards,

Serban

Few words about me

I started to develop ABAP since 2008 within the standard SAP modules (FI, MM, SD, CO etc.). At the moment, I am part of the FS-PM custom development team for an insurance company.


How I started with AiE

I want to be honest and to recognize that I had two tentative to jump from SE80 to AiE. In both cases, I gave up because it was difficult to change my comfort zone, so for example, from an "nice" form-based class builder in SE80 to an source-code based class builder in AiE. Another reason was also the debugger, because I had the false idea that debugging in the old ABAP debugger is easier and faster as in ADT.

After hearing a lot of good opinions from my work colleagues about AiE, I said to myself that I still have to give a chance to AiE and to forget my previous development style, or in other words, to make it "a part of the history"


Like as I said, it was a little bit difficult at the beginning, but now I can say that developing in AiE is 10X more efficient and faster than in SE80, having a lot of features which helps you in the application development. That's why, I try now to convince more and more colleagues to jump to AiE in order to use the fascinating features of AiE.


Favorite Features from AiE

I will enumerate some of my favorite features from AiE:

  1. The magic key combination ALT + U - Delete unused variables (all)
  2. Extract Method - an very useful refactoring feature
  3. Quick Fix (combination key CTRL + 1) - you get appropriate proposal(s) for selected object, i.e. for an new declared method in class declaration part, you can select the method name and trigger the feature Quick Fix in order to automatically create the implementation of the method in the class implementation part.

 

For the ones which want to know the features of AiE, the AiE feature explorer is the best way to do that.

 

In the end, thanks Victor Ionescu for the AiE Feature Explorer challenge and last, but not least, thanks Thomas Fiedler for providing us the AiE.

 

Kind regards,

Catalin

 

Hello fellow developers,

 

Although I have had my first encounter with the AiE IDE almost 2 years ago, it has taken me quite a lot of time to "push" myself to start using Eclipse regularly. However I do not consider myself to be the exception here, but rather part of a majority that has been used to developing ABAP code for multiple years using our beloved workbench, and that is finding it rather hard to let go :-)

 

This is why I was very excited to hear about an initiative such as the AiE Feature Explorer, which really gives any AiE-newcomer a quick demo of the benefits that you can obtain by using the Eclipse IDE. (Catalin Chiuaru, you should give it a try)

There are multiple features that I find very useful which are presented in the Feature Explorer; generally speaking however I am a firm believer that one can greatly speed up the development by using a source-code based view and by taking advantage of the many keyboard shortcuts made available by Eclipse. ( This is why, even before the Feature Explorer, I had glued a list of the most important keyboard shortcuts to my monitor Useful Keyboard Shortcuts for ABAP in Eclipse )

 

What I find even more important is the fact that for the first time the development environment has really opened up and if there really is a feature missing from your IDE, nothing stops you from sitting down and implementing it on your own SAP NetWeaver How-To Guide: SDK for the ABAP Development Tools

 

So to sum it up ... there really isn't any excuse for anyone of us to not start using AiE right away ( except perhaps if one is limited by the AS used in the current project - if I recall correctly AiE is available as of Netweaver 7.31 )

 

Best regards

Victor

Introduction of Myself

I am developing ABAP since 2004 in the FS-PM Standard Development.

Since some years i'm part of the custom development of FS-PM and FS-PM Auto.

 

In my spare time i programm some tools in Visual Studio (C#).

All the years i looked to the Visual Studio and miss some nice features in the SAP World.

(e.g. Extract to Method)

 

AIE is a great way to bring the cool features from a cool IDE to ABAP Developers.

 

 

Pre-Knowledge in Eclipse.

Because my favorite IDE is Visual Studio, i'm not an expert in Eclipse.

I had some experience many years ago, as i tried to develop a mobile app in Jave ME.

This Experience wos not great, but i think this was an problem of Java ME ;).

 

My Experience with ABAP in Eclipse makes much more fun.

 

Onboarding new Developers

My Colleagues told me more and more of AIE, and so i tried it too.

After i installed Eclipse i had many sections. I closed all sections of eclipse which

i didn't need or i didn't know, and experimented a little bit in Eclipse.

 

In the SCN I read about the "AiE Feature Explorer". Then I realized that the "Feature Explorer" is

One of the sections, which I had closed. :-).

But the feature explorer is a really great tool which helps people to switch from se80 to Eclipse.

I show my collegues the feature explorer. And they like it too.

 

Without the Feature Explorer, the people search a feature (e.g. Where-Used List) only, when they really need them,

and that’s is very annoying. This is the reason because I’m a fan of the feature explorer.

 

Favorite Feature

My Favorite Feature is the Quickfix. Nevertheless I think all features are very important to bring the old-school abap developers to eclipse.

 

Additional Features not Part of the Beginners Tour

Some cool features for the feature explorer could be the "Extract Method" Feature or the Debugging Features of Eclipse.

 

 

I wish:

The last days, i experimented with Plug-In Projects for Eclipse.

I want to create an own Plug-In for Debugging.

 

For Example: The SAP ABAP Debugger have an Register card "Script".

It's a nice feature to fetch some informations from the Debugger (Variables, Internal Tables).

match this informations, and give an optical overview of the matched informations (e.g. in a Tree-View)

 

I found some Tutorials about Plug-In Projects, but no example to get informations

from the debugger (value of an variable).

Probably i have to ask the scn community the next days.

 

Conclusion:

The Feature Explorer is a great tool to find a good access to AIE.
Thank you very much.

 

Stefan

Hi community,

this week we launched a new version of the ABAP development tools for eclipse. You can install the version 2.36 from our common update site SAP Development Tools for Eclipse. With this version we now officially support the SAP GUI version 7.40.


Besides a bunch of bug fixes we also have integrated some nice little Santa Claus presents for you as an ABAP developer:



 

 

Reuse of SAP GUI window when running applications


Looks like yet another setting in the long list of preferences of ABAP in Eclipse but it is a nice one. You may know this situation when running an application like a simple report from eclipse. Everytime you press F8 in the report editor a new SAP GUI window comes up to display the result of the report. With the new setting "Reuse SAP GUI window when running applications" you can change the behavior in a way that the already open SAP GUI view is reused:   

 

Ed1.png

 

 

This setting is very nice when having the editor and the SAP GUI view in parallel opened in your eclipse environment. Just change your code, activate, press F8 and you will see immediately the result in the SAP GUI view:

 

ed2.png

 

 

Refactoring: Pull up member

 

This refactoring feature was heavily demanded by our customers. When working in an object oriented way this feature is a must-have. It is now possible to move members of your class to the superclass or to interfaces that are implemented in the class. All the necessary tasks that you have to do manually in order to manage this refactoring are now being done by the editor. And guess what, it is integrated in the good old friend Quick Assist (CTRL-1).


Here you see a typical situation in your daily business. A class with several methods that you want to refactor in order to extract an interface out of the class:

 

ref1.png

 

 

So your task is now: Copy all the method definitions to the interface, rename all method implementations of the class and create aliases for the moved members to not break already existing callers of the methods. With Eclipse these tasks can be done now via the Quick Assist. So just position the cursor on the member that you want to move and press CTRL-1:

 

 

ref2.png

 

Now choose the option 'Pull-Up ....' in the menu to trigger the refactoring. The editor is now doing the necessary steps for you and the class will look like this at the end:


ref3.png



There are several optimizations on-going in our lab in this area like for example moving several members in one step or the extracting of complete interfaces in one step. And also the option to push down members to sub classes will be available with one of the next releases.     

 

Remark: This feature is available since AS ABAP release 7.40 SP08.

 

 

Duplicate ABAP Project

 

Now another very small but interesting feature. Maybe you had this already. You are working in one ABAP project and develop an application in your development client. But for testing purpose you have to choose another client of the system as the test data is only available there. In ABAP in Eclipse you do this by creating a second ABAP project to the same system with different client setting. That's an easy task but a little bit cumbersome as you have to enter a lot of stuff again in the creation wizard and you loose your favorite packages and others project specific settings. Therefore we now offer the possibility to duplicate an ABAP project via the eclipse project explorer:     

 

proj.png

 

The creation wizard for ABAP projects is coming up and you can adapt settings like client number, username or logon language. System connection data, project settings and favorite packages are copied to the newly created projects.     

 

 

DDL Editor: Creation Templates

 

It was often mentioned at Teched this year that it might be helpful to support developers a bit more when starting with the new syntax for dictionary views. It would be cool when the basic stuff of the view definition is already provided by the editor when creating a new source. With ADT version 2.36 we now offer templates in the DDL creation wizard for data dictionary views. We added a new page in the creation wizard where the developer can define which kind of view needs to be created. You will see the code of the template in the wizard with a small explanation of the template:

 

cds.png

 

The editor generates the code in the source and opens the editor for you:


cds2.png 


Hope this feature will help you to learn the new capabilities of the data dictionary views. 

 

 

 

That's it for the news from ADT version 2.36.

Hope you will enjoy these small little features.

 

Have fun and Kind Regards,

Thomas.

Hi community,

do you know this situation? You just saw a presentation about the really cool new ABAP language features and can't wait until you can use them. Fortunately you have a brand new 7.40 system in your landscape and you write you first modern ABAP report. For sure you are using ABAP in Eclipse and you look very proud on your new piece of code like in this example with a bunch of inline declarations:



ci4.png


Woh, that's really nice. But .........DAMN. 

 

You forgot that your product owner told you that you have to deliver your code also for older releases.

[Remark: All the developers in the ABAP in Eclipse team know this situation ]

 

So you can't use the new feature because in older releases the code will not run. But how can you do that?

The syntax check does not tell when you are using statements that are not available in older releases.

You first have to downport your code and do the syntax check there. This is horrible !

 

How cool would be the world if your IDE is doing the following: 



ci5.png      



You can do a remote syntax check in your system by using the code inspector and I will tell you now what you have to do:

 

First you have to define a code inspector variant (or you add the remote check in your existing variant) by using transaction SCI:


ci1.png

 

In the tree of available checks you find under 'Syntax Check/Generation' an item called 'Syntax Check in Remote System'.


ci3.png


Select this check and press the green/yellow icon because you have to enter additional attributes:


ci7.png


On the popup you have to enter the name of the RFC connection that you want to use for the remote check. Additionally you can enter the name of a transport object set. These are the objects that are transported virtually in the remote system before the check is triggered. Via this object set the dependent objects that you need for the check are defined. The object set is defined via an code inspector object set. In my example I just picked the ABAP package of my report:


ci2.png    



That is more or less what you have to. The code inspector variant is ready to go.

 

Very nice is the integration of this feature with ABAP in Eclipse via the ABAP test cockpit. You can use the variant in your eclipse project to do the remote syntax-check directly from your IDE. Just specify in your project properties the name of the code inspector variant under the ATC settings:


ci6.png  


Now you can trigger the check via the eclipse project explorer just by choosing the context menu item RunAs...ABAP Test Cockpit on the object that you want to check.The result will look like the picture above. 


Find more information about the ABAP test cockpit in general in this nice blog from Olga DolinskajaABAP Test Cockpit (ATC) for Developers in Eclipse or watch the video that is linked within that blog.

 

Have fun with the ABAP test cockpit and the remote syntax-check.

 

 

This feature is available on following releases:

7.02 SP14  

7.31 SP09

7.40 SP03


Kind Regards,

Thomas.












About this blog post

The SCN Mission called ABAP in Eclipse Explorer Challenge inspired me to write this blog post about how I discovered ABAP, how I discovered ABAP-in-Eclipse and my experience so far.

 

About me

I started my career as a software developer writing green-screen applications in RPG on IBM AS/400 back in 1998. Even by '98 standards, the green-screen editor was outdated and required a great deal of willpower to master. Mouse? We don't need no mouse: function keys go all the way to F24! And look at our 8 possible colors!

 

So when that company made a move a few years later to build Windows apps in C#/.net 2.0, I was thrilled to use MS Visual Studio 2005. Windows! User-friendly controls! Graphics! Events! Object-oriented language!

 

About a decade later, that same company made the move to SAP and I wrote my first lines of ABAP in 2012.

 

First steps in ABAP

After taking my first ABAP lessons and using SE80, I had mixed feelings. It felt like moving to an old language with an old code editor. ABAP is a language with a lot of history and I saw it as powerful and capable as any modern language, but not as sexy. I could not even test-drive my OpenSQL statement with joins as there was no OpenSQL tool. Even after two years, I never became completely accustomed to SE80 and I always wished I could do ABAP in a modern editor.

 

But I kept on learning and improving with ABAP/SE80: it was still way better than RPG, it's green-screen editor and green-screen world!

 

And here comes ABAP-in-Eclipse

In the beginning of 2014 I found out that ABAP development was now possible with Eclipse! Unfortunately, I had to set this new toy aside when I learned that our NetWeaver version was way behind the requirements. But from now on I knew that a time with a better development environment would come.

 

Fast forward to October 2014: I had the luck and privilege to attend SAP TechEd&&dcode in Las Vegas. One of the lectures got my attention right away: DEV165-Code better with ABAP in Eclipse. (Thank you Thomas Fiedler, Christiaan Edward Swanepoel and Sebastian Wolf!) It was the first time I could use ABAP-in-Eclipse and it felt familiar right away. I was smiling all along. The developer environment I was hoping for was finally here!

 

Meanwhile, a sandbox system at home just got updated to NetWeaver 7.40 and I could try ABAP-in-Eclipse to my heart's content.

 

The Feature Explorer

The first thing you have to do when starting Eclipse is take the Feature Explorer tour. It's useful to everyone, even if you have experience using Eclipse for some other language or a lot of experience in ABAP. There are unique features that you will not be able to live without.

 

My favorite new feature from the tour: Quick Fix! Automatic variable declarations, refactoring aids, and much more! There's no SE24, but Quick Fix helps in providing code generation.

 

My favorite new feature not from the tour: SQL Console! At last, I can type and OpenSQL statement and run it, just like in any other SQL database.

 

My suggestion: Add an Advanced Feature Explorer tour, including the SQL Console and debugging.

 

My favorite things about ABAP-In-Eclipse

  • The ABAP Development Tools are a downloadable and separate plugin, not a bundled/branded version of Eclipse for ABAP.
  • SAP makes it clear that it's the future of SAP development by making new ABAP/HANA features available only in Eclipse. (i.e. HANA database views and procedures), but SE80 is still completely compatible and uses the same code repository and locking system. So if you have coworkers telling you that using Eclipse is like cheating on SE80, you can still choose Eclipse and let them stay with SE80.
  • Some features are not in ADT yet (like SE11), but SAP GUI is integrated and the transaction opens in an Eclipse tab. It's a temporary situation and SAP have plans to improve ADT to include those.

 

My least favorite thing about ABAP-In-Eclipse

There are no plans to make an Eclipse version of the dynpro Screen Painter. That's sad.

 

Don't repeat my mistake: you can try ABAP-In-Eclipse right away

You don't need to wait for a NetWeaver update on-premise like I did.

  1. Get yourself the Developer Edition of NetWeaver 7.40, available as a virtual appliance: Developer & Trial Editions: SAP NetWeaver Application Server ABAP and SAP Business Warehouse powered by SAP HANA
  2. Install Eclipse and ADT by following these instructions : SAP Development Tools for Eclipse
  3. Explore and learn!

In 1999, I started my professional career at a mid-sized German hospital. In 2000, we had succeeded in bringing our at-the-time already ageing patient management and billing system through the Y2K madness that was happening all around without too much effort. Then the news came – although the system was Y2K-proof, it wasn’t built to handle multiple currencies, and the vendor had decided to discontinue the product. Looking for a replacement, we finally ended up using the combination of FI, CO, IS-H for patient management, PM for our building services and maintenance department. A bit later, MM and especially i.s.h.med for the clinical aspects were added as well. At the time, one of my main tasks was to implement various forms and additional reports. I already knew several programming languages at the time and had some experience with Oracle, Interbase and other RDBMS, so taking a dive into ABAP development was a natural choice. This was back in release 4.6D. Since then, I’ve worked for a few years one of the companies that make i.s.h.med and which is nowadays part of the Siemens AG. During that time, I had the chance to learn a lot about ABAP development both in customer projects and for add-on and product development. Since 2009, I’m with one of Germany’s largest inpatient and rehab healthcare providers. Today, I’m responsible for the development team that extends and enhances i.s.h.med and connects it with surrounding systems – but since the team is small and I can’t resist it anyway, I still write quite a bit of ABAP applications.

 

I actually knew quite a bit about Eclipse, even in conjunction with ABAP systems, before ABAP in Eclipse emerged in its current form. For my bachelor’s thesis, I designed and explored a modeling solution to generate “stuff” (a common technical term) in the i.s.h.med system. During that project, I learned a lot about Eclipse and its flexibility and extensibility – not only as an IDE, but also as a starting point to develop your own applications. Sadly, the prototype was never developed into a full project. At the time, I used cheat sheets to guide first-time users through my application. Although simpler and a lot less interactive, cheat sheets and the ADT Feature Explorer follow a similar basic principle that has proven to be very valuable to support new users.

 

Since I’m rather familiar with the “traditional” ABAP development environment, there was no real incentive for me to explore the ADT in its first stages. I use data dictionary objects a lot, and most of our development is still screen-based (dynpros), which are both unsupported. For DDIC objects, that will change, for screens it probably won’t. Combine that with the fact that you were basically cut-off from the existing documentation (descriptions and documentation texts) in the early releases of the ADT, and I think it’s understandable that I decided to concentrate on other issues and give the ADT some time to mature. At this year’s TechEd && d-code in Berlin, I took the opportunity to visit the DEV165 session and familiarize myself with the current state. I’m still not using ADT for my day-to-day development, mostly because nobody else in my team is and we’d lose a lot by splitting up the toolkit right now, especially since a full two-way transfer of the documentation is not yet implemented. However, I will be presenting the ADT during our team meeting tomorrow, including Cristina Jitareanu, Christian Graff and a number of colleagues who unfortunately haven't yet found the time to use all aspects of the SCN. I would also recommend it to Daniel Sonnabend but I know that Daniel actually has had the opportunity to take a look at the ADT earlier than me, due to the fact that we have to support far lower releases.

hi

 

 

i am working as abap developer from r/3 release 2.0 on (so about 20 years), as i am working with hana i am using ADT now and i think it's a must for all abap developers (@Rolf Fricker) after doing the realy nicely done beginners tour i continue to Play around:

 

i created an ALV using ADT and tested the new fiori style design called "Blue Crystal": nice :-)

 

good to see adt is also working with new sapgui 7.40

blue_crystal_adt_fiori.jpg

 

i am also impressed how fast it is, so once eclipse is started i can work with same Performance as in SE80

One of the major reasons of why Eclipse was chosen as a foundation for the new ABAP development environment is its extensibility. Almost every introduction to ADT I’ve seen so far stresses the additional value that can be gained by combining plug-ins from multiple sources. I’ve used Eclipse for some time now (starting with 3.2 or 3.3, I don’t exactly remember when), developed my own Eclipse-based tools and while I’m certainly not an expert, I know about the basics of implementing and extending Eclipse plug-ins.

 

Until now, I have more or less ignored ADT – mostly because our ABAP environments were too outdated to use ADT. This is slowly changing, so I took the opportunity and visited the introductory DEV165 session at this year’s SAP TechEd && d-code in Berlin. Back at home, I wanted to put the claim of extensibility to the test. My aim was to create a plug-in that takes an existing interface and generates a pre-fabricated implementation class according to some rules. The details are not of importance here – I’ll probably write about it later when there is something to be seen.

 

My idea was to extend the Project Explorer view so that you could right-click the interface and start some kind of wizard that creates a class for the interface. Extending the Project Explorer is a frequent task in the Eclipse world, so there are a number of tutorials available. If you want to code along, I’d recommend using this tutorial to get a starting point.

 

The next step would be to place a restriction on the menu extension so that the context menu entry only appears for interfaces. This is fairly easy, you just need to add a condition to the extension. In this case, I figured that an instanceof condition should do the trick, so I used the Plug-in Spy provided by the PDE to find out more about the interface entries in the Project Explorer (select an interface in the project explorer, then press Alt+Shift+F1).

 

PDESpy.png

 

Among other information, you can see that the current selection (which is what matters most here) is a TreeSelection that contains an AbapRepositoryInterfaceNode. Using this information, it is possible to limit the popup menu entry to Interfaces:

 

Extension.png

 

In the command handler, you would usually use the central selection service to find out what objects the command should work on. There’s a basic example in the tutorial I mentioned above; it involves examining the selection and then casting the selected object to a suitable class or interface variable. This is where the trouble really starts…

 

If you try to look up the class AbapRepositoryInterfaceNode in the ADT SDK documentation, you’ll be out of luck – as the fully qualified class name com.sap.adt.oo.ui.internal.interfaces.projectexplorer.AbapRepositoryInterfaceNode suggests, this is an internal implementation class, and most of the object-specific classes aren’t documented anyway. This is not good – while it is still possible to plough on, it makes things a lot harder for wannabe contributors.

 

Using some dirty tricks, it is possible to put together an inheritance tree of AbapRepositoryInterfaceNode. However, it doesn’t look too promising:

 

ARIN-Inheritance-Commented.png

 

Using the documented API, you can find out which project the interface belongs to, and that’s about it. Now for the average Eclipse plug-in that would be annoying, but not too uncommon – there are loads of plug-ins with a similar level of (un)documentation. At this point, you would start to dig into the source code to find out about the structure of AbapRepositoryInterfaceNode and its superclasses and interfaces, other classes that use it, perhaps some service implementations, and usually within a reasonable amount of time, you would have gained an understanding of the inner workings. That’s not possible in this case, simply because the source code is not available publicly. We’ll have to continue guessing, which in this case is easy: A TreeNode has a generic means to attach a value to the node. A quick look with the debugger reveals that this is indeed the way the node keeps track of the object it represents:

 

ARIN-Debugger.png

 

So, a RepositoryObjectListItem, let’s look that up in the SDK – whoops, internal stuff again. This class implements IRepositoryObject, which is undocumented as well, but at least gives you basic information about the selected interface:

 

IRO.png

 

Fine so far, but now you might want to be interested in the contents of the interface. At this point, you would probably use the References in Workspace (Ctrl+Shift+G) function to try and find out where the interface is used and what you might do with it – but again, this only applies to open source projects where you have the source code at your disposal.

 

dangersign.jpg

 

At the moment, this looks like the end of the road – if you want to continue your journey, you have to put on a hard hat, break out the heavy machinery and probably violate a few terms of the licensing agreement in the process.

 

I would have liked to blog about something else today, something a bit closer to an implementation, but that wasn’t to be. A few key takeaways from my point of view:

 

  1. Extensibility doesn’t come automatically with the platform, it has to be considered in the architecture and implementation of each and every aspect of the product. An Eclipse plug-in can be as segregated and hard to extend as any other commercial application.
  2. Extensibility of other products largely comprises of the ability to examine the existing stuff. This applies not only to Eclipse, but likewise to the SAP NetWeaver platform and the applications built on top of it. Imagine having to implement a BAdI without access to the application around it…
  3. Documentation is no substitute for access to the source code unless it is really comprehensive and well-maintained.
  4. Likewise, access to the source code is no real substitute for documentation – it tells you how things are built, but not why.

If you need to connect to any system, you have to create a Project.

 

Project can be created based on the type of implementation Eclipse will be used.

 

In our case, since we are connecting to SAP system , I am going to create an ABAP project.

 

29.png

 

 

30.png

Specify the connection details of the system.

You can either select the details from SAP Logon pad or you can define them manually. You can enable or disable the SNC connection.

31.png

Login to the system with your User ID and Password.

 

32.png

 

33.png

Give a name to project. Since I am connecting to a CRM system, I have given the project name as CRM_<SID>_110

34.png

Since we are creating an ABAP project this will open a ABAP perspective. Perspective gives you an option to work in different areas of Eclipse.

35.png

Say "Yes"

 

36.png

Now you are ready with your project and connected to the CRM system.

 

Take a look into the displayed screen and you will notice all the software packages list on left hand side including the $TEMP package.

 

Click on the $TMP package which will launch SAP screen. In this screen you can enter any transaction you wish to execute.

 

I am using SE38 here since Eclipse will be mainly used for development activities.

37.png

If you just right click on your project , this will open a list of options available for you in Eclipse for your development. Interesting thing if you note, the options are similar to what we have in SE38.

 

38.png

Now, lets create a TEST program and see how it looks in Eclipse and SE38 Editor.

 

 

39.png

I am creating a new request for this TEST program.

 

40.png

Once you click on Finish, this is how you will see it in SE38 Editor.

42.png

 

 

Let's add few more lines in Eclipse and see how it looks again. Note the options marked in blue squares which are for Debugging, Executing etc for the program.

43.png

 

 

44.png

 

There are several other features available in Eclipse which you can explore by going to respective sections.

 

Help options :

45.png

Different Perspectives :

 

46.png

 

 

47.png

 

 

Navigation options :

 

 

48.png

Options for Running and Debugging the programs.

 

49.png

 

 

Options to set your Preferences.

50.png

That's it. Now you can start thinking about Eclipse and be ready to start your developments on Eclipse soon.

Welcome to ABAP Development !!!

 

As we all know that ABAP and SE38 has been a mainstay for SAP's code development and most of the companies run their businesses on SAP solutions written in ABAP. All these years ABAP development and SE38 has continuously evolved into what we see in latest and improved SE38 editor.

 

1990 - First ABAP Editor came

1999 - ABAP Workbench was introduced

2004 - Syntax coloring and Code compilation added

 

Since 2009, SAP has begun to move ABAP tools to the open Eclipse platform. And from 2011, switch to Eclipse changes everything.

 

Eclipse provides a great development experience with the Eclipse Client which is easy to install, use and understand, it can be used as single tool for developing everything (SAP HANA, SAPUI5, Java,....) and it works on major development platforms such as Windows, Linux and Mac, so we can develop everywhere. You can also use it as a central development tool by just connecting to your system from a single place.

 

So let's explore this new world of ABAP Development through Eclipse.

 

Welcome to Eclipse !!!

 

For Eclipse to work, you need either Eclipse Luna or Eclipse Kepler.

 

So starting point for your Eclipse experience is :

 

https://tools.hana.ondemand.com/luna

https://tools.hana.ondemand.com/kepler

 

I have demonstrated this installation with Eclipse Luna, so you can get Eclipse Luna software from :

 

http://eclipse.org/downloads/packages/release/Luna/SR1

 

1.png

 

Download the Eclipse Luna R Package Standard 4.4

 

 

2.png

 

 

3.png

Select 32-bit or 64-bit depending on the operating system you plan to use for installation. The steps mentioned here are for Windows 64-bit.

 

4.png

 

Save it on your local desktop somewhere and extract the zip file. This will create a folder called "eclipse"

 

5.png

 

Eclipse needs a Java Runtime Environment (JRE) installed on your machine. You can download the suitable JRE and install it.

 

6.png

 

 

7.png

 

 

8.png

Copy the above "jre7" folder to your "eclipse" directory and rename it to "jre". If you keep the name as "jre7", the installer won't recognize it.

 

9.png

Click on "eclipse.exe" now to start the installation.

 

 

10.png

Specify the location of workspace which Eclipse will use.

 

 

12.png

Once installation is finished, you are ready to explore the world of Eclipse.

 

13.png

 

 

14.png

 

 

15.png

Ok...now this looks similar to NetWeaver Developer Studio (NWDS) which we use for Java Development. But for doing development using Eclipse we need to install the ABAP Development tools software.

 

Follow the steps given below :

16.png

 

 

17.png

Give a nice Name to Repository and Location as https://tools.hana.ondemand.com/luna

 

18.png

Now click on "Add..."

 

 

19.png

 

 

18.png

 

 

19.png

This will take some time and will populate the list of available software's for install.

 

Select ABAP Development Tools for NetWeaver from the list.

 

20.png

 

 

 

21.png

 

22.png

 

 

23.png

 

24.png

Accepted the license agreement and click "Finish"

 

 

25.png

 

 

 

26.png

 

 

27.png

Say "Yes".

28.png

Now Eclipse Luna is installed and it is ready for connection and your development in any system

 

29.png

 

Please refer my next blog "ABAP Development in Eclipse - Part 2" for further details.

Good news for ABAP Development Tools developers in Eclipse: ABAP Test Cockpit (ATC) is available in Eclipse with ADT 2.31. For those of you, who are not familiar with ABAP Test Cockpit, it is a toolset, which allows you to significantly improve the code quality during development process. With ATC you can detect the quality issues with regard to performance, security, programming conventions by regular executing static and dynamic (ABAP Unit) checks (of course you can reuse your Code Inspector backend check infrastructure). A very good general overview about ATC is given by Christopher Kaestner in the blog ABAP Test Cockpit – an Introduction to SAP’s new ABAP Quality Assurance Tool .

 

The ATC in Eclipse is tightly integrated with ABAP developer tools so that you can run ATC checks during development from the Project Explorer or editor and adjust the quality findings consequently by stepping to the relevant source code lines in the editor and correcting them one by one. You can also check with ATC your transport requests in the Transport Organizer before releasing them. And last but not least you can keep the eye on the central check results from your Q system and correct the reported quality findings.

 

The live demonstration (video) of the ABAP Test Cockpit tools in Eclipse is now on ABAP Channel in YouTube:

 

 

 

Let’s take a look at the brand new ATC tools in Eclipse in detail.

 

 

Check the quality of your source code

 

It’s quite simple. You can run ATC for a single object in the editor or select multiple objects or even packages using context menu
'Run As-> ABAP Test Cockpit'.

 

atc_check.png

 

The tool of choice to analyse the quality issues is the ATC Problems View. It displays the worklist of ATC findings for you as developer to work on. By default the findings are grouped by priority: errors, warnings, information. Clicking on a finding displays its detailed information.The check variant is displayed in the breadcrumb (if required, change the variant in the project properties under ABAP Development).

 

atc_variant.png

 

In the breadcrumb you can filter the findings in the ATC Problems View and in this way restrict the view to the findings you need to focus on for correction. You can concentrate your correction work for example on the findings, belonging to the last check run (‘Last Check Run’ entry), package, transport request, or recheck of result from the central Q system. Every time you run ATC, the breadcrumb gets a new filter entry if required (e.g. if a new package is checked) and the findings will be added to your worklist.

 

atc_filter.png

 

As soon as you correct a finding, it disappears from your worklist after recheck.

 

 

 

atc_recheck.png

 

There might be also such situations where a correction of the finding is not possible or not appropriate (e.g. the hard-corded text message, which is not relevant for translation). In such situations the ABAP Test Cockpit offers the possibility to create exemptions for the affected source code parts so that the findings will be hidden from the results. But you can still display them by using the display option ‚Include Exempted Findings’.

 

 

atc_exempted.png

Create the exemption by right-clicking on the finding. You need to enter your quality expert (use content assist Ctrl + Space), reason for exemption and justification. As soon as your quality expert approves it, the finding will be marked accordingly in ATC results and will not appear in your worklist.

atc_exemption.png

 

You can also customize the view on the findings in ATC Problems View and group the findings by priority, objects or checks for your convenience or configure the columns.

atc_grouping.png

 

Ideally you should run ATC and correct the findings in the ATC Problems View on a regular base during your development process.

 

 

 

Check your transports before release

 

It is recommended to check regular with ATC your transport requests before release to catch erroneous situations and avoid transporting the source code with quality problems into quality and production systems. This can be done in the Transport Organizer View in Eclipse. There you can choose your transport request and run ATC using context menu ‘Run As->ABAP Test Cockpit’.

 

atc_transports.png

 

After execution of ATC checks you will be redirected to the ATC Problems View, where you can focus on the findings, reported for this transport request and get rid of all of them one by one (btw. the new filter entry for the selected transport request will be added to the breadcrumb).

 

 

Access ATC results from the central Q system

 

After your quality expert runs mass (regression) quality checks with the ATC, the results of these checks will be published to the development systems as the current, active ATC result. You as developer can use this central result to eliminate quality problems. You can access the ATC results from the central Q system in the ATC Result Browser (menu 'Window ->Show view->Other...->ATC Result Browser'). You can select the active ATC result on the left and display the findings of the result on the right.

 

atc_qresults.png

 

You can also select the active check run and press 'Show Details' button to display its details.

 

atc_show_details.png

 

You will get the same information as in the ATC Problems View. Of course you can customize the view by configuring the view columns or group the findings as in the ATC Problems View. Before you start to correct findings execute recheck to make sure they still are relevant.You can rerun ATC checks and consequently correct the remaining findings belonging to the check run result in the ATC Problems View (btw. the new filter entry for the result will be added to the breadcrumb) .

 

That’s it. Just try out the new ABAP Test Cockpit tools in Eclipse to increase the quality of your source code during development.

 

For quick and easy try copy & paste this ATC_EXAMPLE report into your system and run ATC for it.

 

REPORT ATC_EXAMPLE.

 

parameters p_selall
type
abap_bool default 'X'.

 

class lcl_atc_example definition.

 

public section.

    methods run.

 

endclass.

 

class lcl_atc_example implementation.

 

method run.

    data:

                lt_spfli    type spfli,

                lv_flight   type sflight.

 

 

" ATC ERROR:           Incompatible parameter in the function call

"                      lt_spfli(type SPFLI) with the function signature

"                      parameter (type SPFLI_TAB)

" PROPOSED CORRECTION: replace in the DATA section TYPE spfli with spfli_tab.

 

if ( p_selall = abap_true ).

   call function 'READ_SPFLI_INTO_TABLE'

exporting

      id = 'AA'

importing

      itab = lt_spfli.

endif.

 

" ATC ERROR:           Strings without text elements are not translated

" PROPOSED CORRECTION: Create text element using Quick Fix Ctrl + 1

 

message 'Display flight information' type 'I'.

 

" ATC ERROR:           Performance check SELECT accesses the non-buffered

"                      table SFLIGHT with WHERE condition,

"                      which doesn’t contain any key fields of the table.

" PROPOSED CORRECTION: SELECT * FROM sflight INTO lv_flight

"                      WHERE carrid = 'AA' AND seatsmax = 10.

 

select * from sflight into lv_flight where seatsmax = 10.

endselect.

 

endmethod.

endclass.

 

start-of-selection.

 

data example type ref to lcl_atc_example.

 

create object example.

     example->run( ).

Actions

Filter Blog

By author:
By date:
By tag: