Application Development and Automation Blog Posts
Learn and share on deeper, cross technology development topics such as integration and connectivity, automation, cloud extensibility, developing at scale, and security.
cancel
Showing results for 
Search instead for 
Did you mean: 
phidoe
Explorer
30,815

 


The Challenge: I Can't Achieve the Same AI-Assisted Flow in ABAP as in Other Languages

When I tested tools like SAP Joule, Amazon Q, Github CoPilot and others, I encountered what seemed to be two main limitations:

  1. Easy access to the ABAP platform file system or IDE workspace â€“ In my testing, most AI assistants couldn't easily connect to the ABAP platform file system to work with actual source code. At least not as effortlessly and comprehensively as if these tools work with the local file system.
  2. Lack of understanding of SAP standards – I found that LLMs often struggled with ABAP-specific syntax and (internal) standard APIs.

The result in my case: broken code, unclear suggestions, wrong use of standard components leading to short dumps.


The Goal: Enable a Seamless, Productive AI Workflow for ABAP

Inspired by a full stack AWS CDK & React project I was recently working on, I tried transferring some of the workflows and framework conditions to my ABAP development practice. The result is an experimental set up that - so far - seems very promising to achieve a comparable development flow and seamless integration of AI coding assistants as I experienced in projects outside of the ABAP universe.

The set up utilizes existing open source and community based tools and combines them to help the AI coding assistant to work as intended. 


My Setup for Agentic ABAP Development

1. abapGit in the SAP backend

Crucial to sync ABAP code between the SAP dev system and a remote Git repository. I use the background option the keep the SAP system in sync with my local changes. The background option can be activated in the repo settings. Once activated, you can schedule a batch job of abapGit, which will then run the configured actions on the repo(s). In my case I configured the background auto pull function the keep the developments objects in the SAP dev system in sync with the changes I make locally & push to the remote.
Like this, the SAP dev system becomes more of a stage in a pipeline than a development environment.

auto pull option in abapGit repoauto pull option in abapGit repo 

2. A Remote Git Repository

It acts as the bridge between the SAP system and my local development environment. I only do changes in my local environment (see 3) and push them to the remote repo. The background configuration (see 1) ensures that the SAP system stays in sync with the remote. Currently there is nothing more happening here, but I'd like to enhance the set up with some actions once changes are pushed/ merged in the remote. Maybe only trigger the sync in (1) only when a pipeline successfully executes.

3. A Local Development Environment Powered by AI

On my local machine, I use Visual Studio Code enhanced by these key tools:

  • An AI coding assistant 
  • abaplint – The static code analysis tool by Lars Hvam to validate syntax and ensure code quality. This acts as a filter between AI output and real-world SAP code. The coding assistant can respond to the hints, warnings, errors given by the linter and therefore gets feedback whether it produces valid ABAP code, without the need for an actual ABAP platform underneath.
  • ADT MCP Server – A MCP server by Mario Andreschak that runs locally on my machine. It exposes SAP standard components to the AI engine. With this in place, LLMs can understand ABAP interfaces, function modules, and class signatures, etc. - making their suggestions much more relevant. I advise the LLM to use the first two parts of the Workflow ('searchObject' and 'getObjectSource') mentioned in the MCP repository to understand how it can get information about SAP standard objects.

Set Up OverviewSet Up Overview

 

 


What I've observed so far

My experience with this set up so far is really great. I mainly used it in a OO greenfield development, helping me to focus on software architecture and object composition and avoiding to deal with boilerplate code. I try writing to the AI assistant as with a development colleague, questioning my ideas and current problem solving approach. 
I also let the assistant implement complete parts of the solution after creating and evaluating a detailed development plan upfront. It works really well as long as the current 'feature scope' is not too large and the implementation plan is well described. 

This approach has given me what feels like a more tailored and extensible development experience compared to exclusively using the assistants mentioned at the beginning of this article without changing the complete set up.

--------------------------
This post was written with the help of GenAI.
Want to share your experiences with AI assisted coding? Get in touch! 

3 Comments
SadiqManji
Product and Topic Expert
Product and Topic Expert

This is really interesting, thanks for sharing the details about your setup!

I'm intrigued to know which AI coding assistants you used and if one performed better than another?

Also, have you compared this with Joule for Developers by SAP? It works in the ABAP Development Tools and I'd be curious to know how you like it. Of course, it's Eclipse and not VS Code, but requires very little setup:

https://community.sap.com/t5/technology-blog-posts-by-sap/joule-speaks-abap/bc-p/14059725

Stephan_Heinberg
Participant

@SadiqManji: Joule for Developers is not an option, because SAP does not plan to release it for S/4HANA onPrem. 

phidoe
Explorer

Hi @SadiqManji ,

thank you for your comment. I mainly use Github CoPilot at work and achieved the best results so far with Claude Sonnet 4. 
I will try other assistants soon, e.g. claude code & aws kiro in private projects.

I do not have Joule available at work, but did a few things with it at the 2025 DSAG ABAP development days in Wiesloch. 
tbh - I did not like it at all. For me it is too tailored in pre-defined scenarios and I do not like that I need to click on objects in the workspace, go to context menu, choose Joule, choose the action I want to perform. 
For me, the most benefits come from free interaction with the assistant and the assistant should be able to do/ change whatever I advise it to - not just preconfigured actions.

But that might just be my personal preference.