Blog
Draft Handling in RAP-Managed Business Objects: What Actually Happens Behind %tky
How the RAP draft lifecycle actually works under the hood — %tky, ETags, and why orphaned drafts happen in the first place.
RAP vs CAP for a New BTP Project, and the One Question That Actually Decides It
Every RAP versus CAP discussion gets framed as picking a winner between two frameworks. They're not competing for the same job. The real question is where your data already lives and who maintains this in three years.
Where CAP's Authorization Annotations Stop Protecting You
@restrict and @requires enforce themselves on the generated CRUD surface automatically. The moment you write a custom handler that calls another service or runs its own transaction, that protection doesn't follow unless you carry it there yourself.
Old ABAP Habits That Don't Survive the Move to Clean Core
Years of classic ABAP muscle memory don't transfer cleanly to RAP and ABAP Cloud. The habits that made you fast in the old model are often the exact ones that get caught in review on the new one.
Most Iflow Exception Subprocesses Don't Actually Handle Anything
Why wrapping your CPI integration flow in a single Exception Subprocess gives you the illusion of error handling without any of the actual behavior, and what differentiating error types buys you in production.
The Currency Field That Looked Fine Until Someone Posted in Kuwaiti Dinar
Two decimal places is a default, not a rule. How a hardcoded assumption about currency precision turned a clean GL mass creation Fiori app into a quietly wrong one.
The BAdI Fired and the Field Was Still Unlocked
A field selection exit that ran exactly when it should have, called the right method, and still produced the wrong result, because the bug wasn't in the logic. It was in one constant.
Status 53 Doesn't Always Mean What You Think It Means
An IDoc marked successfully processed only tells you the function module finished without an unhandled exception. It says nothing about whether the function module decided, on its own, that something was wrong and quietly moved on anyway.