In this issue:
Hoarders: SAP Edition
Every SAP consultant can, in good conscience, advise their clients to “use standard,” leave old customizations behind when migrating to S/4HANA, and so on. And that advice is about as helpful as telling someone to just “live a healthy lifestyle.” Easier said than done. But what if I told you there is a practical solution that can actually set you on the path to a healthier life… err… SAP environment.
I’m sure everyone is familiar with the concept of “an ounce of prevention is worth a pound of cure” (or whatever the equivalent is in the metric system). But when it comes to the ERP system, for some reason, this is rarely even considered. Enhancements, user exits, interfaces just keep getting added and added over the years. Sooner or later, your SAP system turns into a hoarder’s den. At some point, even if you want to remove something, you can’t - because there’s a Jenga tower of more stuff piled on top of it. What other blocks might fall if you take out that 10-year-old user exit at the bottom? Who knows. And no one wants to find out in production and then be responsible for the collapse.
Years of dealing with my husband’s hoarding tendencies taught me one thing: you need to get ahead of it, or it will spiral out of control. Therefore, our house is now declared full, and the only way something other than food can be brought in is if something goes out. A complete moratorium on enhancements obviously wouldn’t be realistic for an enterprise. But if you’re after that coveted “Clean Core” you’ve heard so much about, everything that goes into your SAP system needs to have a strategy to possibly go out. For example, set a specific review period for the enhancements. Laws and processes change, but when a BAdI is implemented, it just stays there forever.
There isn’t a nice and easy solution to a pile of random changes that’s been accumulating for many years. But what you can start right now is simply not building another pile. Whoever is doing the next migration to T/5HANA BTP Build Business Suite, AI Edition will thank you. JP
CAP Meets Reality
In SAP-land, modern custom application development boils down to two frameworks: RAP (ABAP RESTful Application Programming Model) and CAP (Cloud Application Programming Model). CAP vs RAP isn’t a binary, zero-sum choice. There are compelling cases on both sides, and both frameworks can serve purposes in the same landscape.
There are some good reasons to think about CAP. In my limited use, I’ve appreciated:
CDS is a sane and powerful way to expose data to your application
Everyone sorta does JavaScript these days, and there’s a Node flavor of CAP
The development flow is strongly influenced by modern web development, which - in theory - should enable adoption by folks with fewer deep old-school SAP skills
But when I feel out the vibes lately, RAP seems to be on the rise (on the RISE?) and CAP - while climbing - isn’t on a rocket of growth. I’m thinking that a TON of work in the next few years will be porting old ABAP code over to S/4. And when you get to S/4, teams will still be accustomed to delivering ABAP-shaped things.
On sheer person-hours of SAP community developer effort, this will keep the scales tipped toward RAP. The framework choice isn’t zero-sum, but developer person-hours are. The pile of things to do in the ABAP space will probably keep RAP in the center for years to come. PM
Developer Laziness
Laziness is an interesting trait for developers. Opinions online vary from “it is good” to “it is bad” with everything in between.
I consider myself a lazy developer but in a good way: I hate doing the same boring stuff, which means I’d rather spend time on creating something efficient and reusable. DRY principle is the core value of The Lazy Dev Wizard Club. Experienced lazy developers also tend to proactively create features that we know someone eventually will ask for. (Sort of opposite of YAGNI but in a good way.) “Hey, nice program but can we get an execution log for it? – Here you go, way ahead of you.”
But there are also The Dark Wizards of Bad Lazy. You can thank those bast… err… folks for the vague error messages, copy-pasted code, bad documentation, ugly forms, inconvenient UI.
It is hard to resist the temptation of the dark side with its cookies and other baked goods. But resist we must. The best way to avoid giving in to Bad Lazy is to code like you are the user. For example, in SAP a material ID can be created generally (in MARA table) but also extended to be used in certain companies or warehouses. If your program checks whether material ID is available for company X, invest just a few seconds to check whether material ID exists at all. And offer different error messages based on that: material doesn’t exist vs material is not available for company X. Sometimes we just need to take one [minute] for the team to make life easier for many other people (which users are, surprisingly). Be a Good Lazy, not a Bad one. JP
Faster Than Joule
I 1000% agree with Dirk Roeckmann’s post, the gist of which is that intelligence and speed in (this case) Gemini 2.5 Pro are probably more valuable than a “slow and expensive roll-out of a proprietary Joule offer”. Slow rollout of AI features just won't cut it.
Many commenters mention SAP Joule's advantage in ABAP, by having millions of lines of code to fine-tune product features that are aimed at specific use cases and scenarios.
I would SO MUCH rather have AI that is more generally intelligent than AI that can get 5% better scores on ABAP syntax benchmarks. Claude is an absolute beast at generating code, and if you hook those capabilities into multi-agent/reflective chains, you will quickly see how much power you're missing if you only index on "it couldn't one-shot my nit-picky edge case". (Gemini 2.5 Pro and o3 are similarly intelligent.)
More general intelligence means that models can go down rabbit holes with you. They can make better guesses at what you're trying to accomplish. They can combine web search with other tools that you create on the fly.
SAP techie friends, don't just assume that Joule is the answer to every AI question. *Of course* there will be places where it's a better fit! But you are missing a huge forest for one tree if you just default into Joule-land. PM
ABAP Archaeology
I love monkeying around with ABAP as a human language, creating non-programming artifacts. (Longtime readers have scrolled past three separate ABAP poetry posts!) I got curious and had some AI agents do a little spelunking for me, trying to find some super old ABAP programs - and came across something I love even more: the COMPUTE keyword. The documentation says: “The keyword COMPUTE is a relic”. Perfect!
The documentation is a bit hard to parse, because it reads like “every time you could use COMPUTE, just don’t do it and you’ll get the same result”, and then goes on to list specific instances where COMPUTE will work like an up/down cast of objects or assignment of data objects. But again, if you leave off COMPUTE you’ll get the same result. So it’s truly a relic of a past world that needed it.
I love the prosaic nature of ABAP, which makes reading ABAP a uniquely literary exercise, but this keyword produces a funny mental stutter for me. The docs say “the keyword COMPUTE does not produce a calculation”. But…what else do programs do?
In the year 3247, ABAP-bots F243-Prime and B783-Theta will uncover disk drives that contain COMPUTE statements. They’ll shake their cyber-heads and cyber-laugh at the folly of 20th century meatbag programmers. PM
Your Keynote Sucks
YouTube must be reading my emails (or mind?) as the suggestion for The problem with tech presentations TEDx Talk video suspiciously coincided with registration opening for SAP TechEd.
I’m looking forward to another year of watching a Tech Man On Big Stage™ wearing “conference sneakers”, doing their best rendition of “my product is Jesus” while gesturing robotically. Coming to your screen November 4th. JP
Have you checked out our grand-opened and reimagined website? No? You should! It’s all there: link to the merch store, bios, stuff we do, and a complaint form. Invite a friend!
While there is no Nerdletter Talk this time, check out the biggest hits on our YouTube channel: amazing SAP Advanced Mesh Show&Tell, insightful What on Earth is SAP BTP? and controversial Paul and Jelena Answer Reddit SAP Questions.
This newsletter is written by humans for humans. Support the Boringverse by buying us a cup or two. Well, there are two of us, so maybe two cups? Thank you for your readership and support!
RAP is favoured over CAP as it’s basically free in comparison with CAP, due to the way that BTP is licensed. Not ideal, but that’s the reality
CAP is easy to start, harder to manage when deployed to production. Great explanation here -> https://secondphase.com.au/3-survival-patterns-cap-schema-changes/