Building modular ALM and SRE tools around SAP with Python and open technologies.
This article is provided solely as a professional case study of the engineering approaches, architecture patterns, technologies, and lessons learned through this work. Only information appropriate for public disclosure is presented, including publicly available, open-source, generalized, or otherwise authorized material. No proprietary source code, credentials, confidential business information, internal system details, or other restricted information is included.
The notes below focus on the problems that led to each application, some of the implementation choices made along the way, and components that may be useful in other projects. SAP product names identify the systems and APIs involved; the application logic, workflows, analysis, visualization, and automation described here were developed around those integration points.
One implementation of the modular approach: WebFlow Studio combines browser recording, reusable workflow objects, execution controls, local runtime support, and contextual guidance in a single focused application.
FROM OPERATIONAL PROBLEMS TO RUNNING SOFTWARE
Applications that grew from day-to-day engineering challenges.
Most of these applications started fairly simply: a review that took too long, useful data spread across systems, a repetitive browser process, analysis that required a lot of manual interpretation, or an enterprise API that exposed information without necessarily providing the workflow a team needed around it. I’ve had the opportunity to work through those challenges over time, and several of the resulting utilities have grown into applications that now support day-to-day enterprise workflows.
Change governance & CAB readiness
The ChaRM and CAB tooling grew from the need to make change records, approval state, system context, risk signals, implementation dates, and review information easier to work with in one place. Much of the challenge was simply making information already available in enterprise systems more practical to scan, filter, export, and use during review.
Risk, BPCA & impact interpretation
BPCA Summary Writer, Relative Impact Map, NAVI-related analysis, and pre/post-import review tools came from recurring questions around change impact and regression evidence. They bring together dependency relationships, object-focused analysis, comparison logic, and reporting so that technical evidence can be easier for a reviewer to interpret while leaving the actual decision with the people responsible for it.
Relative Impact Map: BPCA relationship data is transformed into a searchable transport/object graph so shared objects and connected change context can be explored visually.
Cloud ALM operational views
Working with SAP Cloud ALM also created opportunities to build smaller views around its authenticated APIs. These applications keep Cloud ALM as the authoritative source while presenting project, feature, task, release, and status information in forms that are a little easier to use for particular operational workflows.
Diagnostics & guided analysis
Short-dump assistance and related diagnostic utilities started as ways to reduce some of the repetitive context gathering that happens before analysis can really begin. They organize technical evidence and surface useful signals, while keeping the engineer or reviewer responsible for interpreting the result.
Controlled Python application delivery
Python App Studio, PythonTestCockpit, and the related deployment tooling grew from experimenting with how small Python utilities could remain easy to create while still having a reasonable path through checking, review, packaging, and installation. The goal has been to add enough structure for enterprise use without taking away the lightweight nature that makes these utilities useful.
Python BTP deployment review in practice: the guided procedure walks through project ZIP authorization, PythonTestCockpit review, MTAR generation, validation, and download readiness.
Web automation
WebFlow Studio grew from exploring a simpler way to build and maintain repeatable browser processes. It is now a functioning automation workbench with recording, reusable objects, variables and data, replay, execution, diagnostics, and a hybrid local runtime, while still keeping individual workflows understandable and editable.
Contextual assistance & guided workflows
Engenie and the guided-tour framework came from looking for better ways to provide help inside the applications themselves. The current implementation can use loaded operational data as authoritative context, walk users through application functions, and connect to richer AI assistance while keeping operational facts grounded in the underlying systems.
Deployment & enterprise integration
Several of these applications have progressed from small utilities into deployed tools supporting day-to-day workflows. Getting them there has provided useful experience with Cloud Foundry deployment, routing and authentication, destinations, connectivity services, APIs, persistence, role-aware behavior, local fallbacks where appropriate, and the environment-specific configuration that comes with enterprise operation.
Architecture
A lightweight application layer around enterprise systems.
The overall pattern is a Python/Flask control and analysis layer, a browser-facing UI, and governed adapters to SAP services. Each subtool can remain small and focused while sharing authentication, navigation, persistence, export, and deployment patterns.
Browser / AppRouterStatic UI, Flask pages, session entry point, XSUAA-backed authentication and route forwarding.
Python servicesFlask routes and domain modules keep parsing, scoring, analysis, export, and workflow logic separated.
Data adaptersSAP Cloud ALM APIs, OData, RFC or uploaded files depending on what the target system exposes.
Persistence & artifactsObject Store/S3-compatible persistence where needed; in-memory handling for transient review workflows.
DeploymentCloud Foundry applications packaged as MTAs, with service bindings and controlled transport across environments.
Why this shape works well: an individual utility can start with a file upload or local data source, then later switch to a governed API or destination without replacing the user-facing workflow.
Subapplications
Focused tools with reusable implementation patterns.
These are examples of the inner applications and the kinds of functions they contain. Several can run independently; the shared shell simply gives them a common navigation and deployment surface.
ChaRM CAB Dashboard
Loads change-governance data through OData or structured file fallbacks, normalizes fields, supports browser-side review and exports CSV/XLSX.
A controlled single-file Python workspace with run/test, managed files, review workflow, restricted execution, notebook-style practice, and approved data services.
Python App Studio: a governed workspace for creating lightweight file-to-report applications, testing them against approved constraints, and moving them through review without requiring a full development environment.
Python Deployment Cockpit
Guides approved Python packages through deployment checks and SAP BTP packaging expectations before creating a deployable artifact.
Web-focused automation built around recording, object repositories, replay, data-driven execution, scheduling, audit, and an outbound-only local Chromium client.
For Cloud Foundry deployment, the useful pattern is to keep runtime configuration in SAP BTP services rather than source code. A typical setup combines a Python backend, SAP Application Router, XSUAA, Destination service, Connectivity service when on-premise access is needed, and Object Store where persistence is required.
Application Router + XSUAA
Use the router as the browser entry point, authenticate the user, and forward the authenticated request to the backend. Role checks should also be enforced server-side.
Destination + Connectivity
Keep backend endpoints and connection metadata in governed destinations. For private-network SAP systems, pair an OnPremise destination with SAP Connectivity service and Cloud Connector.
MTA packaging
Describe modules, resources, bindings, and dependencies in mta.yaml, then build a repeatable MTAR instead of hand-configuring each deployment.
Cloud ALM APIs
Consume published APIs through a narrow adapter layer so application code works with logical objects rather than embedding tenant-specific details throughout the UI.
Object persistence
Use shared object storage for durable state and keep transient uploads in memory where there is no reason to retain them.
Hybrid automation
Keep browser execution on an approved local client when the target application is inside a private network. Pair the client outbound-only and exchange signed task envelopes rather than creating a generic tunnel.
Official SAP references
Setup material worth keeping beside the code.
These SAP Help Portal references cover the platform pieces used by this architecture. They are preferable to copying environment-specific setup values into project documentation.
For smaller Python utilities and older experiments, the public workbench contains examples of SAP automation, RFC data access, reporting, and operational tooling. Think Like Python covers the progression from ABAP-oriented thinking into Python, Flask, SAP APIs and cloud deployment.