Welcome!

I am glad that you read this page, it means that you are interested in modern ABAP programming.

In my first blog “ABAP in eclipse vs SE80 comparison – why eclipse wins?” I desribed why to use eclipse. After few years I still recommend eclipse for SAP development. In this article I would like to describe in details one of benefits: tasks with context and sharing them to the team.

Please fasten your seatbelt and enjoy the ride.

1. Mylyn tasks in eclipse

When you install eclipse and ABAP tools you should get Mylyn tasks plugin by default. If not you can install it additionally.

What it offers is:

  • Tasks creation
    • List of items with description about what needs to be done.
    • Tasks can be used to organize your development work.
    • Some additional attributes like labels, milestone, estimation, delivery time etc.
  • Context of work
    • List of objects that you work on within a task.
    • Objects are automatically loaded to editor when you activate task, they are closed when you deactivate task.
    • You can easily switch from one task to another and load corresponding development objects.
  • Sharing tasks with other developers.
    • A good way to synchronize comments and work progress between developers.
    • List of tasks can be stored on shared repository.
    • Sharing the context is imited with ABAP in eclipse.

2. Local tasks for own development

2.1. Create a simple task

Let us try to create a simple local task.

There is a special tab called “Tasks repositories” in eclipse. You can always open it from Window -> Show View -> Task Repositories. By default there is a “Local” task repository which stores tasks on your PC.

Choose right click and “New Task” option:

01_AIE_Tasks_create.png

Then fill in some details, as in example below:

02_AIE_Tasks_Edit.PNG

Then save it.

That is the first part: we can define local tasks with description of work to be done. The magic comes with task context.

2.2. Activate task and build context

So far we have only task with description and some attributes. Let us try to build the context now.

  • Open any development object in your project (CTRL + SHIFT + A).
  • Object must be of type which is supported by eclipse editor (class, program, function module etc.).
  • SAP GUI objects like structure / table are not added to context (as per today).

I have opened 2 classes, 1 report and one table (SAP GUI), so far nothing is in the context:

03_AIE_Tasks_create_context.PNG

To bind objects to context we need to:

  • Activate the task
    • There is a small dot near the task name which you can press to activate the task.
    • You can also do it from right click menu on task.
  • After task is activated the task I click once again on all opened objects
    • This will automatically register objects to the context.
    • In general any touched / opened object will be added to the context when it is activated.
    • If you do not want to attach object to context (like you do research in other reports) just deactivate the context for a while.

See how it looks like now – elements are in Invisible Elements section:

  • So far I see that AiE offers only binding to Invisible section which keeps them only on local PC (context cannot be shared with others).
  • We see that RESB table opened in SAP GUI is not bound to context – only “eclipse enabled” objects can be bound:

03_AIE_Tasks_bind_context.PNG

Hints:

  • In my eclipse version (eclipse Neon, ADT 2.64.3) keeping tasks activated and opening new objects may hang the eclipse – it becomes irresponsive.
  • This is probably due to many packages which are loaded to the hierarchy tree of project.
  • As a workaround solution I deactivate “Link with Editor” and “Focus on Active Task” options in Project Explorer, see below.

05_AIE_Tasks_disable_sync.PNG

[Update from 16.08.2016]:

I found a solution for “suspending eclipse” problem while task activation: switch off default settings for navigator and tree synchronization. This can be easily done by deselecting first 2 options in eclipse Mylyn configuration. Having these options deselected there is no issue while switching between active tasks and it works much better. Finally it makes my life easier!

13_AIE_Mylyn_Disable_Navigation_Sync.PNG

It is also worth to mention that from context menu you can copy it easily to another task.

2.3. Close and restore context

When we have the context bound see what happens when we deactivate the task.

  • I press deactivate button and all the classes which I had opened will be closed, editor is empty.
  • Now I can select another task and activate it.
  • The task list can be found in “Task list” view (next to “Task repositories”).
  • This is useful if we work on few tasks in parallel – it is so easy to switch context between them.
  • As I have created only one task for demo I am activating the same.
  • The most important thing: my 2 classes and 1 program are loaded back automatically, bingo!
  • Once again the hint: it may hang up your eclipse when you activate task, therefore switch off quickly “Focus on Active Task” option while the packages are loading. By the way I would expect this to be fixed from AiE team, it is so anoying.

As you see local tasks can be used to coordinate your development work in such a way that you keep list of tasks to do and keep the context to get objects automatically loaded to editor. You can get even more benefits if you decide to share tasks with your collegues.

3. Share the task with team

When we know how to create and use tasks it is time to share them with others. Why not?

  • Sharing the task through remote repository allows sending the list to others and collaborate by comments.
  • It is a great way to delegate subtasks to other person while doing own development.
  • Unfortunately ABAP objects are kept only as the Private Elements in the context which makes it not possible to share the list with others.
  • As a workaround we can write objects in comments of the task so that others can load objects locally to own context.
  • Actually this may be also a positive feature – everyone need to load own customized context. Although I would prefer to get common list of objects that we work on to solve the task.
  • You actually share the task description, comments and properties, not the task contents itself (no development objects content, no context).

To share the task with others we need to configure remote repository which is available somewhere in the internet. There are different servers supported, for simpification I give only one example: GitHub.

3.1. GitHub repository configuration

In the “Task Repostiory view” right click allows you to create a new repository: Add task Repository option:

06_AIE_Tasks_Add_Repository.PNG

Select GitHub Issues type:

06B_AIE_Tasks_Github.PNG

Then configure it with your GitHub account:

07_AIE_Tasks_Edit_Repository.PNG

About the settings:

  • URL for the server you get from your private GitHubaccount which you must create first: creating github repository.
    • GitHub is not related to SAP in general, it is open source and allows you to keep version history and track issue list.
    • By default GitHub offers public repositories for free. If your tasks with description and comments contain internal only information consider creating a private repository which is paid option.
    • Please note that we are not using GitHub to share code from SAP (this is done internally in SAP environment) but we will use it to enable Issues sharing as tasks in eclipse. Therefore only tasks description and comments will be available in repository, not the code itself.
  • Label is your local name of repository in eclipse.
  • User ID and password is from your GitHub repository.
    • I tried to use 2 factor authenticaion in GitHub account, but unfortunatelly GitHub Mylyn plugin does not support it in eclipse yet.
    • Therefore normal user and password authentication is required.

Then you press “Validate Settings” and if everything is fine (user and password matches) then you press Finish. Your remote tasks repository is now configured.

3.2. Sharing tasks with others

Now it is time to create the task and share it with others. We begin in the same way as before but we run “New task” from our repository menu:

08_AIE_Tasks_Repository_Task_Create.PNG

The task editor is simmilar but in addition we get editable sections:

  • Actions with category for grouping (you can define own categories and group tasks related to same development together).
  • People with assignee (myself or other GitHub user).
  • When task is subbmited to the server also Comments section will be shown.


When task is saved it will land in category “Unsubmitted”.

09_AIE_Tasks_Repository_Task_Edit.PNG

When I am ready I will press Submit to transfer task to GitHub account.

This remote task has context as well. You can use it for local objects binding. As already mentioned ABAP objects are kept as Private Elements therefore code will not go to GitHub repository, only the issue with description and attributes.

3.3. Getting list of tasks from repository

Ok we managed to create and send new task to GitHub account. We can see it directly on our GitHub account:

09B_AIE_Tasks_Task_in_GitHub.PNG

But how to see the task in the eclipse task list? Last step is needed: Query.

  • Query is the view that filters tasks you want to see locally.
  • From default settings we can see all tasks but if you want you can filter by category or other properties (Active / Closed).
  • To create a query go to repository menu and select New Query.

10_AIE_Tasks_New_Query.PNG

Fill in details of query:

  • Select repository name once again,
  • Enter title
  • Select which status you want to see (Open, Closed)
  • Select other attributes optionally.
  • Adding just title and leaving other fields as default will result in all tasks shown through query.
  • When ready press Finish.

11_AIE_Tasks_Edit_Query.PNG

There you go!

In the “Task List” you can see all shared tasks from that repository:

12_AIE_Tasks_List_From_Repository.PNG

When you open task again you see that new section “Comments” is added which allows you sharing comments with others.

You can play with more advanced settings like applying different categories to tasks and then filter them through different queries. This will allow you to group features tasks in one development project and tasks per feature will be categorized in different queries.

4. Summary

What:

  • Abap in eclipse offers tasks through Mylyn plugin.
  • You can use tasks locally to organize your work and benefit from automatically loaded classes needed for task development.
  • You can use tasks with repository to share the work description with others, update comments and still keep context of your work locally.

Why:

  • List of developer’s tasks integrated into development environment.
  • Quick access to objects that you work with to complete the task.
  • Team work and collaboration in development environment, close to the code.

Issues:

  • Eclipse is suspending when binding class to the left site of Project Explorer (too many packages?). @SAP: Any plans to fix this?
  • The list of objects from context cannot be sent to repository so everyone must build own private context for shared tasks. @SAP: Any plans here?
  • No 2 factor authentication support with GitHub Mylyn plugin.

Thank you for watching this, please share your comments. Anyone is using tasks already or will start soon?

Cheers!

Adam

To report this post you need to login first.

25 Comments

You must be Logged on to comment or reply to a post.

  1. Suhas Saha

    Hi Adam,

    Nice to see you blogging again.

    I use the Task list to basically separate the development objects of different sub-projects(e.g., interfaces, correspondence). Since i’m the only one who’s using Eclipse, so i’ve not used the task-sharing functionality yet!

    I like the task context to be precise & clean. So i use the option “Remove from Context” (Ctrl + Alt + Shift + Down) to remove the unwanted objects 🙂

    Remove_Context.jpg

    BR,

    Suhas

    (0) 
  2. Tobias Schnur

    Hi,

    I am used to work with task management in JAVA projects and loved it.

    I gave it a try in ABAP developement tools and I have to say that it’s quite useless with the issues you mentioned above. As soon as I activate the task the button to “unlink” the project tree becomes greyed out. That seems to be standard behaviour and is documentd in the mylin documention. this causes my eclipse to crash regularly when working with tasks since it apparenlty tries to load to many package informations in parallel.

    In addition, sharing tasks (including context) would be crucial for a real use to me. Writing the development objects into the text is an arduous job if you have many small tasks.

    Regards

    Tobias

    (0) 
    1. Adam Krawczyk Post author

      Hi Tobias Schnur,

      I agree with your comments: for me SAP seems to be few years behind modern development techniques and is quite isolated environment. Therefore development will not be so easy like with Java for example.

      However there are positive improvements since few years back. When I switched from eclipse Java development to SE80 that was a shock!

      In fact eclipse hangs often with Mylyn tasks and I would address it as priority 1 issue be fixed. I do some workarounds, try to switch off tree sync quickly and I noticed that it usually “loads everything” once. When hanging becomes too annoying I deactivate task and use tasks list just for work description.

      Anyhow for me it is a good enough tool to keep work organized in development environment, with my local context and tasks comments from colleagues.

      Regards,

      Adam

      (0) 
      1. Tobias Schnur

        Hi Adam,

        I am really happy how ABAP development has evolved in the past 2 years. I love ABAP in Eclipse for many reasons and I also love the expression driven new ABAP operators along with inline declaration. It’s a giant leap compared to ABAP development in SE80 when I started 6 years ago.

        The annoying thing about Mylyn tasks is that you cannot deactivate the “focus on active task”before you have activated a task and it’s context. The activiation of the task/context is what sometimes crashes my eclipse. The best workaround imo when working with tasks is to close the project explorer completly until you have finished working with a task. Nevertheless, some good team sharing functionality would be so important in my opinion.

        Regards

        Tobias

        (0) 
        1. Adam Krawczyk Post author

          Hi Tobias Schnur

          Once again thank you for your valuable comments. I tried your trick with closing the project explorer and it works fine. A good workaround that I never tried before!

          Then I checked settings and there it is: disable Mylyn context settings to not synchronize navigator and tree will make your eclipse run like a newborn! 😉 I updated this in blog as it seems to be important findings initiated by you. Thanks.

          Regards,

          Adam

          (0) 
  3. Johannes Faber

    Hi Adam,

    Many thanks for this article!

    I’d love to work with the task context more frequently, and I’m very happy that my eclipse seems to be a little more stable with enabled context since eclipse neon. But it’s a pity that the context only seems to work for keeping buffers related to tasks organized. It’s one of my higher-priority feature requests to have a working context for the project explorer as well.

    Thomas Fiedler, how are the chances that the mylyn/context issues are solved in the near future?

    Cheers,

    Johannes

    (0) 
    1. Adam Krawczyk Post author

      Hi Johannes Faber,

      For me eclipse was still suspending many times with context even if I use latest neon version. Finally I disabled Mylyn settings to not synchronize tree and navigator then it works much better. I synchronize object to navigator tree manually only when I need to play around the same package.

      Cheers!

      (0) 
    2. Thomas Fiedler

      Hi Johannes,

      unfortunately the mylyn framework heavily counts on the fact that the resources that are managed by mylyn are locally stored on the file system. In ABAP this is not the case. That means there are a lot of places where mylyn just reads all files from the project explorer view to filter it out. In ABAP this leads to dramatic performance issues because all the files have to be selected from the database and transferred to eclipse. That’s the reason why most of the powerful features form mylyn are not working properly for ABAP.

      Regards,

      Thomas.

      (0) 
  4. Timo John

    I just set up a connection to a local GitLab in our company. Looks fine. Next great step would be to bring the “Normal Changes” from SAP Solution Manager into this Task Lists for the developers … When is x-mas? …

    (0) 
    1. Thomas Fiedler

      Hi Timo,

      the mylyn interface in eclipse is an open framework. So the integration with SolMan change documents in eclipse is in principal possible.

      –> Why not start a community development project out of it?

      I can check for the necessary interfaces on SolMan side.

      Regards,

      Thomas.

      (0) 
      1. Timo John

        Hello Thomas, nice idea. I will ask my trainee to start that soon. Can you also check if there are options to do status change to SOLMAN Tickets vie Fuba / Webservice etc:SolmanintegrationGIT.jpg

        That could speed up my team if they can work only in eclipse an do here the confirmations etc…

        (0) 
  5. Thomas Fiedler

    Hi Adam,

    many thanks for this very nice and informative blog about mylyn.

    A must read for every AIE developer.

    Especially the part about the GitHub integration sounds interesting.

    I never tried this on my own so far. But the next TGIF is coming soon 🙂

    Regards,

    Thomas.

    (0) 
    1. Adam Krawczyk Post author

      Hi Martin Fischer,

      I have not tried Jira before but I feel it may be good as well or even better / with more features. Jira in general is for project tracking and issues management so I guess tasks can be integrated with working methodology (progress board).

      Github account is mainly for code versioning system, but it works good enough as an eclipse task repository.. I like it for simplicity but I think I will try Jira once to feel the difference.

      Regards,

      Adam

      (0) 
      1. Martin Fischer

        Hi Adam,

        yes, you are what regarding the difference between GitHub and Jira.

        If the team uses Jira e.g. as the tool for working agile I prefer to have one single point of truth for the tasks. So even if tasks were not planed up-front I create smaller Jira tasks. So the whole team can see what I’m working on. As you can even assign the ADT context to a task, Eclipse opens the development objects you should work on when you open the task again. That’s a very useful feature!

        Cheers,

        Martin

        (0) 
    2. Johannes Faber

      Hi Martin,

      Which version of Eclipse are you using? For me the atlassian connector is not working anymore, unfortunately. (On Neon, but I think it was the same on Mars.)

      It was really helpful, when it was still working. My team mainly works with SAPGui and Jira in Browser, and I’d love to be able to smoothly work with an eclipse environment for most of the daily routine tasks.

      Cheers,

      Johannes

      (0) 
      1. Martin Fischer

        Hi Johannes,

        ahrgg, it seems the plug-in is not working anymore with Mars or higher releases. There seem to be some third party plug-ins which I didn’t try yet. Sorry for adding outdated information here.

        Cheers,

        Martin

        (0) 

Leave a Reply