Artificial Intelligence Blogs Posts
cancel
Showing results for 
Search instead for 
Did you mean: 

This Blog post has taken on a life of its own and is now a series of Blogs in the Comments section. It's to avoid spamming the front page with more and more Blog posts. The most recent stuff is always at the end.

 

Original article:

---------------------

In my previous blog posts (1) and (2) I described vibe coding in ABAP with Claude Code and OpenAI Codex by means of Node.js-based MCP Servers. In today's blog I'll use an MCP Server built by Alice Vinogradova: https://github.com/oisee/vibing-steampunk?trk=article-ssr-frontend-pulse_little-text-block.

Alice's solution is different in that:

  1. It installs as a single binary,
  2. it is more clever: It tries to unburden the AI by taking care of certain routine operations (such as locking / unlocking of Objects for changes), so that AI can concentrate on the stuff that matters.

Here is Alice's oft-quoted article in which she explains her approach better than I ever could.

Spoiler: I cannot confirm with 100% certainty that Alice's solution improves AI capabilities, but I saw strong empirical evidence to that effect.

As usual, I asked an Agent in Antigravity to carry out the installation. Then I used Claude Code CLI to do various changes to an SALV Report I had previously created with Codex (the simplest of Reports with some travel data from a DB Table I had created time ago for the RAP100 course). In particular, I asked Claude to:

  • Add Customer Name, Agency Name and Status Description to the Report. For this, Claude had to figure out additional data sources.
  • Add a select "box" column to the ALV.
  • Enable selection on an individual cell level in the ALV.
  • Display Trip Prices > 10.000 of any Currency in red.
  • Add ALV Layout to the Selection Screen. If no Layout selected, then display the results totalled and subtotalled in a certain way.
  • Transform the SELECT Statement in the Report into a CDS View, then use that CDS View.

All requirements were fulfilled to my satisfaction. Here are some conversation examples:

k1000_0-1773127586719.png

k1000_1-1773127609270.png

k1000_2-1772969432807.png

You will notice that Claude went above and beyond by also adding F4 Help to the Layout Field in the Selection Screen.

A keen eye might also notice that I switched to the lesser Sonnet (4.6) model so as not to keep running into rate limits all the time. I didn't observe any degradation of performance, which might at least in part be attributed to Alice's very excellent work on reducing the model's mental load by what she calls "composite tools" (again: read the article).

k1000_0-1772969745779.png

k1000_1-1772969800517.png

You see that I kept my prompting deliberately vague. "Use the same Package and Transport Request for the CDS View." Like, the same one as the Program uses, or what? None of this threw Claude off.

 

One of the use cases Alice mentions for her MCP Server is data analysis, and I wanted to test it. I asked Claude questions like "How many trips more expensive than 10000 EUR are there?", without specifying any tool or Program or data source to use. He derived these things from the context of our conversation and responded correctly.

k1000_0-1773127768050.png

Then I asked "How many of these are holidays, how many business trips?" 

See what I did there? Used the word "holidays" when the table entries are described as "Vacation", "Sightseeing in Frankfurt", or "Visiting Pierre".

k1000_0-1773067880430.png

Claude categorised the trips correctly, even though in the end he used a rather simplistic (though perfectly reasonable) approach: Everything starting with "Business" is a business trip, everything else is holidays.

k1000_0-1773128517919.png

To make Claude's life more difficult, I changed descriptions of 3 trips from "Business Trip" to: "Client visit", "IT conference" and "Visiting company Branch in Tulsa". This tripped him up - he simply applied the logic that had served him so well previously, and mis-categorised these 3 Trips as leisure. I pointed out the mistake and asked him to look closely at the descriptions. Then he got it right.

k1000_1-1772988276829.png

k1000_2-1772988363996.png

So much for some very simple examples of data analysis.

Next I wanted to come back to the RAP / Fiori app topic. I asked Claude to scaffold a RAP Demo using the Northwind Traders Database model originally from Microsoft - the simplified version. He searched the web for info and then created the following artefacts. All by his lonesome, in about 30 minutes.

k1000_0-1772989344082.png

I have yet to look at them, but I do know one thing for sure: The RAP Application does not work. I suspect the reason might be that Claude forgot to include in the underlying Database Tables the Fields which are vital for the locking mechanism in RAP Managed scenarios:

  • LOCAL_LAST_CHANGED_BY,
  • LOCAL_LAST_CHANGED_AT,
  • LAST_CHANGED_AT.

Or it could be something else entirely. In any case, this is a typical bit of knowledge that would go into a Claude Skill. Another thing that would go into a Skill would be an instruction to always create CDS View Entities (you may have noticed above that he created an old-style DDIC-based CDS View). Or the fact that ORDER is a reserved word in the Data Dictionary (this tripped him up so badly when trying to activate one of the RAP artefacts that he couldn't recover).

Except I wouldn't know where to put such a Skill. They are filesystem-based. No filesystem here. This would be especially problematic if we wanted to use Progressive Discovery, e.g. only invoke the CDS Skill when you are about to create a CDS artefact. Some clever engineering would be called for here. I'm sure people who have built virtual filesystems, like Marcello Urbani, would have a few ideas.

Speaking of Skills, I hear they are much improved in their Version 2 which just came out couple of days ago - apparently, they are now testable, and you can pretty much guarantee that they will be invoked.

It seems Skills are misunderstood in the same way as MCPs were a year ago (if you hear someone say that MCP is like the USB-C port but for AI, you are now legally allowed to punch them in the face, did you know that?)  What is especially misunderstood about Skills is precisely their Progressive Discovery feature - people write 1000-line Skill files and then wonder why their model got dumber. We ABAPers wouldn't do that, because we know about proper modularisation and architecture, amiright? Except those few who still write God Classes with 13000 lines of code. But they are not here - they don't read technology blogs.

So what do you guys think, is Claude / Codex via MCP just a poor man's Joule, or might it aspire to fill the large Joule-shaped hole in our lives to at least some extent?

 

P.S.: No AI was involved in writing the texts of these Blog posts. If it had been, you wouldn't know it, because I would have found the Wikipedia page on AI-sounding writing, fed it to the AI and instructed it to avoid those patterns. But I didn't 😊 

 

Or didn't I.

I guess we'll never know.

27 Comments
Labels in this area