ABAP and CI/CD ? – Part 1 – Tools for Developers

Yes, We – developers – are end users in the context of transport management. We use variety of transactions on the surface, like ADT, SE80, SE09, STMS etc. to push our changes to test and production systems. We not developed that transactions, which manage changes variety of object types in the ABAP,BSP repository, DDIC etc, and their transport.

This post is part of the ABAP CI/CD blog series

After I started using ADT – ABAP Developer Tools – the eclipse plugin – I spent lot of time, to discover the same features of ABAP Editor. Struggling minutes to find a feature, and sometimes switching back and forth to ABAP Editor and Eclipse. After few weeks, the whole stuff become powerful, just ensure, your basis version is at least on 7.4 sp8 or above, to have enough convenient features (so no GUI window is opening, but a native eclipse editor for an object). My coding performance increased a lot. At this point I was looking for the Extended Check / Code Inspector features in Eclipse to execute validation on my code. It is called ABAP Test Cockpit (ATC) in Eclipse. I am pretty sure this was one of your first question finishing your first development in Eclipse, how do I do that without switching back to the GUI :). ATC helps to discover major and minor issues, coming from copy paste or typo errors, or performance bottlenecks.

The ABAP Test Cockpit (ATC)

I wrote a method where I typed the message class/number wrongly. User would face an empty ununderstandable message.

"! <p class="shorttext synchronized" lang="en">ATC Demo Snippet</p>
CLASS zcl_atc_demo DEFINITION
  PUBLIC
  FINAL
  CREATE PUBLIC .

  PUBLIC SECTION.
    "! <p class="shorttext synchronized" lang="en">Thanks ATC</p>
    "!
    "! @parameter r_msgtxt | <p class="shorttext synchronized" lang="en">Message text</p>
    CLASS-METHODS i_failed_again
      RETURNING VALUE(r_msgtxt) TYPE bapi_msg .
  PROTECTED SECTION.
  PRIVATE SECTION.
ENDCLASS.



CLASS zcl_atc_demo IMPLEMENTATION.
  METHOD i_failed_again.
    MESSAGE ID 'DOG' TYPE 'W' NUMBER '001' WITH 'BARKS' INTO r_msgtxt.
  ENDMETHOD.

ENDCLASS.

Just in case I wasn’t clever enough to use ATC before I release my transport.

Look at the bottom right corner, this is how You pull the trigger 🙂

The results are displayed in the bottom pane on the ATC Problems Tab. You can jump from the result list to the problematic source/statement, and You are supported with an explanation about the root cause of the issue.

If You clearly know, that the issue is false positive, or the check does not know something You do (sometimes happens), then You can ignore this statement from the ATC checks using a pragma comment. The appropriate pragma is listed in the explanation. If it has no effect maybe try this syntax for the comment, starting with “#EC, followed by a space and the pragma code 😉

MESSAGE ID 'DOG' TYPE 'W' NUMBER '001' 
  WITH 'BARKS' INTO r_msgtxt. "#EC MG_MISSING

The checks are executed by the DEFAULT Code Inspector variant, which is configured globally by Your ABAP Expert Developer/ Architect or QM Expert. If You are not stated otherwise, this is how You fix things quickly.

If You was given an exact Variant, choose ABAP Test Cockpit With… option, and select it.

So far so good, but this is all manual right ? How can we come to the next level ?

ABAP Continuous Integration Plugin for Eclipse

Doing the exact same operation, okay there should be something which might help, and we do not need to touch the SAP Basis for that, because we have eclipse, and talented ABAP Eclipse plugin developers, who wanted to make life easier.

Open: Help –> Eclipse Markatplace, and look for ABAP Continuous Integration

A new section appears in the preferences box after installation.

Open: Window–> Preferences

Here is the full documentation of the plugin. The main features are the following.

1. Automatic unit test run
2. Automatic ATC run
3. Visualisation of Source code state on UI
4. Automatic source code formatting
5. Shortcut for abapGit
6. Trigger Jenkins from Eclipse (experimental)
7. Plugin development configuration
8. Different coloring for each ABAP project

What as a developer You can do without much efforts, like writing ABAP Unit tests for business critical functions, or using the CDS Double Test framework is to configure some helpful features. My favorites are the automatic ATC runs, the automatic source code formatting and the different coloring for each ABAP Project, which is very helpful.

A little tiny help for the automatic source formatting feature:

“#autoformat  use this syntax for classes
//#autoformat use this syntax for CDS views
*#autoformat use this syntax for function modules

Range of features are wide, just try them out, to discover the possibilities in practice.

The Views for CI Plugins can be found under the views dialog in Eclipse: Window –> Show View–>Other