Episode #277
Introduction
In episode 277 of our SAP on Azure video podcast we talk about ABAP Vibe coding!
I love playing Adventure games. When I was younger, I was playing games from SierraOnline or LucasArts. One of my favorites was (and actually is) Days of the Tentacle. However, the game that probably started it all was Zork, a text-based adventure game. In one of the first interactions in this game it says “ZORK is a game of adventure, danger, and low cunning … No Computer should be without one” So very recently I leared that you can actually play Zork in the SAP GUI. It’s getting even better because our guest today, Alice, has developed it using vibe coding. So to learn more about the game, how vibe coding helped and how it found its way to ABAP, I am glad to have Alice back with us today.
MCP Server for Vibing Steampunk (vsp): https://github.com/oisee/vibing-steampunk
Find all the links mentioned here: https://www.saponazurepodcast.de/episode277
Reach out to us for any feedback / questions:
- Goran Condric: https://www.linkedin.com/in/gorancondric/
- Holger Bruchelt: https://www.linkedin.com/in/holger-bruchelt/
#Microsoft #SAP #Azure #SAPonAzure #VibeCoding #ABAP #SAPADT #ZORK
Summary created by AI
- Development and Integration of Zork in SAP GUI Using Vibe Coding:
- Alice, with contributions from Claude and discussions with Holger and Goran, detailed the process of developing and integrating the classic text-based adventure game Zork into the SAP GUI using vibe coding techniques, leveraging ABAP, ADT, and a custom MCP server to enable advanced development workflows.
- Background and Motivation: Alice explained her long-standing interest in adventure games and described how the concept of text-based games like Zork inspired her to experiment with integrating such games into SAP environments. She highlighted the appeal of using imagination and text commands, and her motivation to apply her tooling for both work and fun.
- Technical Approach and Tools: Alice described the technical journey, starting with the discovery of a JavaScript/TypeScript library for Z-machine emulation, and the decision to re-implement it in Golang for ease of deployment. She collaborated with Claude to quickly produce a working prototype, leveraging ADT for direct access to ABAP code and tables, which facilitated development and testing.
- Implementation Details: The implementation involved creating a Z-machine interpreter in ABAP, allowing Zork and similar games to run within the SAP GUI. Alice referenced Lars’s earlier work on a WebAssembly interpreter in ABAP and explained how the Z-machine’s virtual machine architecture enabled portability across different systems. She also developed emulators for the 6502 and Z80 processors, further demonstrating the flexibility of the approach.
- Demonstration and Testing: Alice showcased Zork running in the SAP GUI, demonstrating basic gameplay and the ability to run other text adventures. She also presented a speedrun test runner and unit tests for the implementation, emphasizing the importance of automated testing to ensure reliability and to facilitate iterative development.
- Vibe Coding Concepts and Workflow in ABAP Development:
- Alice, prompted by Goran and Holger, provided an in-depth explanation of vibe coding, its origins, and its practical application in ABAP development, including the use of AI assistants like Claude and the MCP server to automate code generation, testing, and refactoring within SAP systems.
- Definition and Evolution of Vibe Coding: Alice traced the term ‘vibe coding’ to Andrei Karpati, describing it as a development approach where coding is performed through conversational interaction with AI assistants, rather than manual code editing. She noted the progression from simple code generation via chatbots to more sophisticated workflows enabled by tools like MCP.
- MCP Server and Tool Integration: Alice explained how the MCP server bridges AI assistants (such as Claude) with SAP’s ADT APIs, granting the assistant the ability to read, write, and manage ABAP code, objects, and system metadata. She described the available tools for searching, editing, compiling, and testing code, and how these are exposed to the assistant for seamless automation.
- Development Approaches and Guardrails: Two main approaches were discussed: local file-based development with later synchronization to SAP, and direct in-system development. Alice highlighted challenges with object management in SAP, such as difficulties in modifying or deleting certain objects, and described the implementation of composite tools to reduce complexity for the assistant and enforce guardrails like package whitelisting and read-only modes.
- Testing, Refactoring, and Modernization: Alice emphasized the role of automated unit tests in supporting safe vibe coding, enabling rapid feedback and error correction. She discussed the potential for using these tools to refactor and modernize existing ABAP codebases, generate unit tests, and apply system-wide changes, positioning vibe coding as a powerful enabler for SAP development.
- Live Demonstration of Vibe Coding and Automated Report Generation:
- Holger, Alice, and Goran conducted a live demonstration of vibe coding by generating an ABAP report to analyze standard API usage, showcasing the workflow from requirements gathering to code generation, error handling, and result interpretation within the SAP system.
- Report Generation Workflow: The team initiated the creation of an ABAP report to analyze the most used standard APIs in custom code. Alice described the process of identifying relevant tables, running queries, and instructing the assistant to generate the report within the appropriate package.
- Error Handling and Manual Adjustments: During activation, the generated report encountered errors related to text label assignments. Alice demonstrated how to manually resolve these issues by commenting out problematic lines, highlighting the importance of developer oversight even in automated workflows.
- Result Analysis and Guardrails: The finalized report provided insights into the most frequently used APIs, with Alice explaining how the system’s configuration (e.g., package whitelisting, read-only modes) ensures safe operation. The demonstration illustrated the practical benefits and limitations of vibe coding in real-world SAP development scenarios.
- Emulation of Classic Microprocessors and Microsoft BASIC in ABAP:
- Alice presented her work on emulating the 6502 CPU and running Microsoft BASIC within ABAP, demonstrating the technical feasibility and educational value of implementing low-level CPU emulation in a modern SAP environment.
- 6502 CPU Emulator Implementation: Alice described the architecture of the 6502 CPU emulator, including core classes for CPU logic, bus implementations, ROM loading, and test automation. She outlined the steps for loading and executing ROM binaries, and the use of memory-mapped I/O for program interaction.
- Running Microsoft BASIC: The emulator was used to run Microsoft BASIC (1977), with Alice demonstrating the execution of BASIC programs within the SAP GUI. She highlighted the educational aspect of bridging vintage microprocessor technology with contemporary SAP systems.
- Future Directions and Session Planning for Vibe Coding:
- Holger, Goran, and Alice discussed potential future sessions focused on advanced vibe coding scenarios, such as code refactoring, applying OSS notes, and system modernization, aiming to further explore and demonstrate the capabilities of the MCP server and AI-assisted development.
- Session Planning and Use Cases: The participants proposed organizing dedicated sessions to tackle realistic development scenarios, including refactoring existing code, applying SAP OSS notes, and simplifying or modernizing codebases, to showcase the practical impact of vibe coding in enterprise environments.
- Access and Resources for MCP Server and Vibe Coding Tools:
- Alice and Holger provided information on accessing the MCP server and related vibe coding tools, referencing published resources and instructions to enable others to adopt and experiment with these technologies.
- Resource Sharing and Onboarding: Alice confirmed that the MCP server and vibe coding tools are publicly available, with Holger noting that links and instructions would be included in the show notes to facilitate onboarding for interested developers.
- 0:00 Intro
- 1:40 Introducing Alice
- 2:40 Putting everything in place for ABAP vibe coding
- 13:00 Playing ZORK in SAP GUI
- 16:30 Running Unit Tests and talking about vibe coding
- 20:50 Demo 6502 CPU Emulator Console
- 23:00 Using Claude with MCP connecting to SAP
- 31:30 vibe conding with Alice - top most used standard APIs
- 39:20 Vibing Steampunk
