Wer in der SAP-Entwicklung arbeitet, weiß: Kaum hat man ein neues Framework verstanden, wartet schon das nächste. Besonders mit S/4HANA, ABAP in Eclipse und RAP verändert sich nicht nur die Technologie sondern auch unsere Art zu entwickeln und zu denken.
Was vor ein paar Jahren noch genügte, um sauberen ABAP-Code zu schreiben, reicht heute nicht mehr. Neues Verständnis ist gefragt für RESTful Anwendungen, Annotations, CDS-Views, Fiori-Integration oder Cloud Ready Development. Und während KI-Tools immer stärker in unseren Alltag einziehen, wird klar: Automatisierung ersetzt uns nicht – sie fordert uns heraus, besser zu verstehen, wie Systeme lernen, denken und reagieren.
Lernen hört nie auf und das ist gut so
Weiterbildung ist in der Entwicklung kein einmaliges Ereignis. Sie ist Teil unseres Alltags. Aber: Wie bleibt man wirklich am Ball, ohne sich in der Informationsflut zu verlieren?
Wir haben für uns ein paar Wege gefunden, die gut funktionieren:
Online-Lernen & Selbststudium: Ideal, um sich schnell in neue Themen einzuhören, mit der Community zu vernetzen und nebenbei ein paar „Aha-Momente“ mitzunehmen.
Workshops & Austausch: Wir merken immer wieder, dass praxisnahe Workshops den größten Unterschied machen – wenn man Code wirklich schreibt, Fragen stellt und gemeinsam Lösungen erarbeitet. Genau dieser direkte Austausch unter Entwickler bringt oft mehr Erkenntnis als zehn Stunden YouTube.
Community, Blogs & kontinuierliches Informieren: Blogs liefern regelmäßig neue Perspektiven, Tipps und Denkanstöße – gerade zu Themen wie ABAP Cloud, Fiori Elements oder RAP.
Weil sich die Rolle als Entwickler verändert. Wir sind längst nicht mehr „nur“ Coder, wir gestalten Prozesse, beraten Fachbereiche und entwickeln Lösungen, die ganze Unternehmen beeinflussen. Und um das zu können, müssen wir verstehen, wohin sich SAP und die Technologie im Ganzen bewegen.
Unser Fazit
Weiterbildung ist kein Pflichtprogramm, sondern eine Haltung. Sie heißt: neugierig bleiben, Altes hinterfragen, Neues ausprobieren. Ob online, im Austausch mit anderen oder in einem Workshop – entscheidend ist, dass man dranbleibt.
Denn in einer Welt, in der sich Technologien rasant weiterentwickeln, gilt für uns Entwickler nur eines: Wer stehen bleibt, verliert den Anschluss – wer lernt, gestaltet die Zukunft.
In the world of SAP, runtime errors (also called short-dumps, or simply dumps) are typically viewed as a source of dread and something you should avoid altogether.
The prevailing wisdom is clear:
Catch every exception, log it quietly, and keep the system running without alarming users or halting processes. After all, who wants a production system grinding to a halt over an unhandled issue? But what if this zero-tolerance policy toward dumps is a little too overzealous? What if, in certain scenarios, letting a dump occur isn’t just acceptable but preferable?
In this short article, we’ll explore the nuanced role of dumps in ABAP development, challenging their notoriously bad reputation and shining a light on their often overlooked usefulness and explain why dumps aren’t always the villains they’re made out to be, but actually sometimes they’re the heroes forcing us to confront critical problems as they occur.
Understanding ABAP Short Dumps: The Basics
To appreciate the debate, let’s start with what a short dump actually is. In ABAP, a short dump is essentially a detailed report generated when a runtime error occurs, such as an uncaught exception, an exit message, or a failed assertion.
These runtime errors interrupt the program’s execution and provide a snapshot of the system’s state at the moment of failure. This includes:
Error type and message
Source code context
Call stack
Variable values at the moment of failure
User and session information
System context
Hints for resolution
In short, a forensic toolkit for debugging.
A primary trigger for such dumps are unhandled exceptions. ABAP offers robust tools like TRY…CATCH blocks to handle exceptions gracefully, allowing developers to log errors, recover where possible, and continue processing.
So, why not always catch and log? As we will see shortly, the answer lies in the context of the error and the value of the information a dump provides.
Why Dumps Have a Bad Reputation
It’s easy to understand why dumps are so disliked:
User Impact – A dump interrupts a business user’s process with an abrupt error screen. To the end-user, it’s disruptive, confusing, and often frustrating.
Support Pressure – Dumps are visible in ST22 and usually end up as tickets for the support team. This adds to the operational load and makes it look like the system is unstable.
Bad Coding Practices – Frequent or poorly handled dumps can be a symptom of sloppy development, where edge cases aren’t accounted for and error handling was an afterthought.
It’s no secret that short dumps carry a stigma in the SAP world. In a culture that values seamless user experiences, dumps are seen as unprofessional.
As one SAP expert on LinkedIn put it, encountering a dump often prompts reactions like, „Who developed this?“—implying incompetence rather than deliberate choice. This knee-jerk negative response overlooks the dump’s strengths, painting it as an outright enemy rather than a tool with situational utility.
The Case For Dumps
Yet, dumps are not inherently bad. In fact, they can be highly useful in certain contexts:
Maximum Transparency – A dump provides a full context: the exact source code line, the variable values at the time, and a structured call stack. It’s far richer in detail than a simple log entry, which may or may not contain enough clues for debugging.
Forcing Attention – A log can be ignored. A dump cannot. If a critical piece of logic fails — say, the calculation of pricing, or the assignment of a delivery to a transportation unit — it might actually be better for the system to stop dead in its tracks. That way, the issue is surfaced immediately and with full information, rather than silently creating corrupted or incomplete data.
Better Than a Silent Failure – Consider the alternative: catching every exception and writing to a log. If no one ever checks that log, the system could keep producing faulty data while the underlying issue goes unnoticed for weeks. A dump, by contrast, guarantees visibility.
Dumps aren’t just errors, they’re information goldmines. Unlike a logged exception, which might be buried in a sea of log files and overlooked during routine monitoring, a dump demands attention. It halts execution of the affected runtime process (not the entire system), alerting users that something has gone fundamentally wrong.
When to Dump, When not to Dump
The art lies in knowing when a dump is acceptable and when it’s not. Here are some guidelines:
Dump if the failure makes the process result invalid or dangerous to continue. (e.g., missing essential configuration, corrupted master data, or critical calculation failure).
Log if the error is recoverable, non-essential, or something that the business can still proceed with, perhaps with a warning (e.g., missing optional fields, unrecognized input values that can be skipped).
Both, if necessary — log details for long-term analysis, but still dump when business-critical integrity is at stake.
This isn’t a call to abandon exception handling. For recoverable errors, like network timeouts or user input issues, TRY…CATCH with logging is ideal, as demonstrated in examples where it prevents unnecessary dumps.
The key is discernment: use dumps strategically for unrecoverable, high-impact failures where the cost of interruption is outweighed by the risk of proceeding.
Conclusion
The blanket statement that “all dumps are bad and should be avoided” misses the purpose and power of dumps.
They are disruptive, yes, but they are also one of the most informative and unambiguous signals a system can give. They enforce accountability on the development side by surfacing issues that must be fixed rather than swept under the rug.
As with most tools, the key lies in balance. Overusing dumps for trivial issues is careless; eliminating them entirely in favor of silent logs is just as risky. Sometimes you need a loud crash to fix what’s broken – and that’s what dumps are good for.
The smartest ABAP developers know when a dump is a safeguard and not a failure and strategically implement them for this purpose.
In today’s SAP development landscape, performance and responsiveness are critical for a great user experience. Users expect applications to deliver results quickly, even when the backend is doing heavy lifting like complex data processing or background validations.
This is where the Background Processing Framework (bgPF) comes in — a modern tool that enables asynchronous execution of tasks, improving user experience without compromising system integrity.
In this article, we’ll explore bgPF with a focus on the uncontrolled flow — a lightweight and pragmatic approach for non-RAP scenarios.
For complete documentation, refer to the official SAP ABAP documentation:
Imagine a customer places an order in your online shop. As soon as the customer confirms the purchase, the system starts checking product availability across multiple warehouses, calculates delivery options, and triggers invoicing — all in the background. Meanwhile, the customer is instantly redirected to a confirmation page with their order summary and estimated delivery.
Instead of waiting for all background steps to complete, bgPF decouples these operations, ensuring a smooth, fast shopping experience.
What Is the Background Processing Framework?
The bgPF is built on top of bgRFC (Background Remote Function Call). It is the successor to tRFC and qRFC, supporting reliable, asynchronous execution.
Core Features:
Based on inbound processing — same system, different session
Two processing types:
Transactional (unordered)
Queued (exact order)
Integrated with ABAP RAP for transactional control
Provides monitoring and recovery tools
Why Use the Uncontrolled Flow?
In cases where RAP isn’t used — for example, in classical applications or standalone service classes — the uncontrolled mode of bgPF offers a straightforward way to run logic in the background.
Advantages:
Quick to implement
Ideal for simple, independent tasks
Still asynchronous and reliable
Trade-offs:
No transactional separation (i.e., no modify/save phases)
Data consistency must be handled manually
Implementation: Uncontrolled Background Process
A common use case for uncontrolled bgPF is writing change history in the background — e.g., logging changes to customer or partner master data without delaying user interaction.
To implement this, define an operation class that implements IF_BGMC_OP_SINGLE_TX_UNCONTR. Your logic resides in the ~execute method.
Operation Class
1
The logic is simple and linear — no need for a transactional buffer.
Starting the Background Process
To trigger the background process, you create a dedicated static method in a starter (or scheduler) class. Inside this method, you instantiate your operation class, pass it to the bgPF process factory, and schedule it for execution. This design keeps your application logic clean, modular, and testable, while clearly separating background orchestration from business functionality.
1
Without COMMIT WORK, the background process won’t start!
Good to Know
Avoid global variables unless they implement IF_SERIALIZABLE_OBJECT
The constructor is not called again in the async session
COMMIT WORK is required, unless you’re inside a RAP-managed LUW
Monitoring bgPF
Use transaction SBGRFCMON to track background tasks:
Open SBGRFCMON
Go to: Inbound → BGPF → Transactional Units
View running, waiting, or failed processes
Right-click to delete or restart errored entries
Tip: Use ABAP Cross Trace or SAP Application Interface Framework for deeper analysis and debugging.
When to Use Uncontrolled Flow
Use uncontrolled bgPF when:
You’re not inside a RAP-managed LUW
You need fast, decoupled execution
You can manage consistency on your own
Avoid it if:
You require rollback consistency across background and foreground logic
You need to control the execution order of background steps → Use queued bgPF instead
Conclusion
The uncontrolled flow in bgPF is a powerful yet simple way to offload tasks into the background — even in traditional ABAP environments.
It avoids the overhead of RAP but still delivers the core benefit: a responsive and scalable user experience. If you’re working on reports, historization, migration logic, or other decoupled updates — this is a great tool to consider.
Two days full of exciting sessions, inspiring discussions, hands-on insights, and valuable networking – ABAPConf 2025 delivered on every level!
This year marked the 6th edition of ABAPConf – and besides the livestream, the event expanded into multiple in-person locations: Hamburg, Dresden, Mannheim, and Vienna. Since it’s impossible to be in every city at once, we’ve put together a quick recap of the Vienna location for everyone who couldn’t be there with us in person.
A Sunny Start in Vienna
Vienna hosted around 50 in-person participants, while more than 1.000 people joined the livestream online.
The venue was located in the vibrant 7th district of Vienna. After check-in, attendees were welcomed in the main hall with snacks and refreshments. Each day began with a cozy breakfast and coffee session before diving into the content. The left wing featured the main stage with live sessions, while the right side was set up to stream sessions from Mannheim – so no one missed a beat.
Thanks to the beautiful sunny weather, many participants took the opportunity to relax and network on the spacious terrace.
Highlights from Day One
The day kicked off with a keynote livestreamed from Mannheim, followed by the local opening keynote in Vienna: „Die SAP Wolke ruft – wir folgen?“ presented by Florian Kopp and Patrick Thaler. Their talk addressed the real-life decisions developers and customers face when navigating the SAP Cloud transition. The engaging talk sparked a lively Q&A session, leading seamlessly into a delicious lunch of chili con or sin carne.
The afternoon program began with Christian Punz, who stepped in last-minute (huge thanks!) with a strong session on ABAP Cloud – bringing clarity to the principles and tooling behind SAP’s cloud-ready ABAP development environment.
Following that, Katharina Altrichter and Matthias Herchenröther gave a standout session: „CDS-only Data Modeling – Harnessing New ABAP CDS Object Types for Modern RAP Applications“. They explained how CDS Table Entities, CDS Aspects, Scalar Functions, Buffers and more can be orchestrated within the RAP model to build scalable and clean applications.
A special highlight: George Drakos, who traveled all the way from Athens, shared his inspiring talk: „Smart ABAP: Design Patterns for Real-World Scenarios“. From MVC and factory patterns to clean architecture examples, George shared not just code, but the thinking behind it — and it clearly resonated with the crowd.
The day wrapped up with cold beers, great conversations, and even better connections.
The second day was kicked off by location sponsors dox42 and Cadaxo with a joint session: „A Time Travel Through Documents“ where Christian Bauer and Oliver Wahrstötter explored the evolving role of documents – past, present, and future.
In the afternoon, Jelena Perfiljeva led a captivating session titled „The Magical World of SAP EWM for ABAPers“. She took the audience on a journey through the complex yet fascinating architecture of SAP EWM, revealing how it blends legacy elements with cutting-edge technologies. Her message was clear: EWM is not „just ABAP“ – and developers should be ready for a unique experience.
Following that, Simone Gaffurini presented „Effortless ABAP Dependency Management with TRM“. This session demonstrated how the TRM tool automates the resolution and installation of required libraries, making dependency handling smoother than ever. Simone walked attendees through real-world examples of how TRM supports development and deployment processes across systems.
After a short coffee break and some relaxed networking on the sunny terrace, the day concluded with a session by Martin Muttenthaler and Johann Fößleitner: „RAP Events – Local and External Consumption“. The pair provided an in-depth look at how RAP events can be consumed both locally and through external channels such as (Advanced) Event Mesh – offering practical insights into event-driven architecture within modern ABAP environments.
Rally Fun & Great Prizes
Vienna attendees also had the chance to take part in our rally, hosted by dox42 and Cadaxo. Participants simply had to answer a few questions to enter the draw.
The lucky winners took home some fantastic prizes:
A UGears Mechanical Aquarium,
C-3PO LEGO Set
ABAP books sponsored by SAP Press!
See You in 2026?
ABAPConf 2025 was more than just an event – it was a celebration of the ABAP community. Whether onsite or online, we were thrilled to be part of it. A big thank you to all the speakers, organizers, partners, and participants who made it unforgettable.
Mit dem ABAP Release 7.50 führte SAP die SQL Host Expressions ein. Damit ist es möglich, direkt im SQL Statement ABAP Ausdrücke bzw. ABAP Coding zu verwenden.
SELECT … @( HOST-EXPRESSION ) …
Verwendung
Host Expressions können überall im SQL Statement verwendet werden, wo auch Host Variablen verwendet werden können. Und damit ist auch der primäre Nutzen klar: Wir können Variablendeklarationen einsparen und damit kompakteren Code schreiben.
Aufgelöst werden die Host Expressions von links beginnend. Bei dem SELECT würden die Methoden in dieser Reihenfolge ausgeführt:
get_table_name
get_partner
get_upto
ABAP
1
2
3
4
5
6
7
SELECTFROMI_BusinessPartner
FIELDSBusinessPartner,
BusinessPartnerName,
@(get_table_name())ASTableName
WHEREBusinessPartner=@(get_partner())
INTOTABLE@DATA(partners)
UP TO@(get_upto())ROWS.
Performance
Da die Expressions bzw. das ABAP Coding ausgeführt werden muss und die Werte auch, wie bei Hostvariablen, an die Datenbank übertragen werden müssen, ergeben sich keine relevanten Laufzeitunterschiede.
Security
Da die Host Expressions zusammen mit dem SQL Befehl ausgeführt werden, sind sie nur bedingt „debuggbar“ und ein ändern der Werte im Debugger wird erschwert.
Ein super Beispiel, wie wir die Sicherheit unserer Codings durch Host Expressions verbessern können, sehen wir in diesem SELECT:
ABAP
1
2
3
4
5
SELECTFROMI_BusinessPartner
FIELDSBusinessPartner,
BusinessPartnerName
WHERECreatedByUser=@sy-uname
INTOTABLE@DATA(my_partners).
Mit den entsprechenden Berechtigungen kann der Benutzer den Wert von SY-UNAME im Debugger ändern und Einträge anderer Benutzer selektieren. Mit einer Hostexpression und der passenden Methode, ist das nicht mehr möglich:
Host Expressions revolutionieren jetzt nicht die Verwendung von SQL im ABAP Coding. Sie sind aber ein nettes Feature und richtig eingesetzt, machen sie unser Coding kompakter und sicherer!
I am excited to announce that Cadaxo Managed Data Services (MDS) is now available as an open-source project! This strategic move aims to collaboration within the SAP development community.
If you’re interested in contributing or learning more about the project, please write me at mds@cadaxo.com.
It is a great opportunity to work with ABAP, Fiori, CDS Views… and learn from each other.
What was our motivation in the first place? What is MDS all about? Check out our presentation from ABAPConf 2024 on Youtube:
„Verloren im CDS Dschungel?“
1
What is Cadaxo Managed Data Services?
Cadaxo MDS is a Fiori suite of tools designed to streamline the management and visualization of development objects in SAP S/4HANA®. On Frontend it contains three Fiori Apps:
Dashboard: Provides an overview of SAP objects and custom developments across the system, offering clear displays for quick access to essential information.
List Report (Search App): Features a user-friendly interface with integrated filter options, allowing users to search for specific CDS views and access detailed information, including descriptions, fields, annotations, and parameters.
Graph App: Enables graphical analysis of relationships between CDS views and other objects, facilitating a deeper understanding of complex data structures.
Additionally, Cadaxo MDS includes an API and OData Service
Why Open Source?
By open-sourcing MDS, we aim to:
Encourage Community Collaboration: Invite developers worldwide to contribute, share insights, and enhance the toolset collectively.
Promote Transparency and Flexibility: Allow users to customize and adapt MDS to their specific needs, fostering innovation and efficiency.
Accelerate Development: Leverage the collective expertise of the community to rapidly evolve and improve MDS functionalities.
Join the Development Community
We welcome developers, SAP professionals, and enthusiasts to join our open-source initiative. If you’re interested in contributing or learning more about the project, please contact us at mds@cadaxo.com.
Thanks for reading!
Don’t want to miss any more ABAP tips and tricks?
Then follow us on LinkedIn or subscribe to our newsletter to stay up to date with the latest developments in ABAP.