How It Works
Three deterministic stages — from legacy ABAP to cloud-compliant architecture. Transparent, verifiable coverage — honest limitations.
The pipeline uses deterministic AST parsing to extract table references and function module calls, maps them to official successors via SAP's Cloudification Repository (auto-synced weekly) layered with curated field-level entries, and generates target code in your chosen architecture (ABAP Cloud RAP or BTP CAP). The LLM handles only semantic tasks like documentation and naming — never the critical table-to-API mappings.
The Transformation Pipeline
Three deterministic stages — from legacy ABAP to cloud-compliant architecture.
Parse
Legacy ABAP code is parsed into an Abstract Syntax Tree (AST). Direct database reads, function module calls, and class dependencies are extracted and classified.
Map
Extracted table references (e.g., VBAK, BSEG, LIKP) are resolved against a layered catalog: SAP's official Cloudification Repository (32,103 objects, auto-synced weekly) provides authoritative coverage, while hand-curated entries add field-level mapping precision. Every finding carries its source layer and the catalog version for audit traceability.
Generate
Target code is compiled in the user's selected architecture: ABAP Cloud RAP (CDS Views + Behavior Definitions) or Side-by-Side BTP CAP (Node.js services + schema definitions). ABAP-Unit test classes are generated alongside.
Deterministic Rules vs. LLM Generation
Deterministic (Rule-Based)
- Table-to-API mapping
- AST parsing
- CDS view structure
- abapGit packaging
- Compliance scoring
LLM-Assisted (Google Gemini)
- Business logic interpretation
- Documentation generation
- Test scenario description
- Code comments and naming
Coverage Matrix
What works today, what needs help, and what we don't support yet. This matrix is the single source the transformation engine flags against — it is always current.
| Construct | Support Level | Notes |
|---|---|---|
| Direct SELECT on standard tables | ✅ Fully Supported | Deterministic mapping to released CDS views / APIs. |
| Simple wrapper classes / reports | ✅ Fully Supported | Full AST decomposition and target generation. |
| Static CALL FUNCTION | ✅ Fully Supported | Resolved to equivalent API calls. |
| Complex SQL Joins (3+ tables) | ⚠️ Partial | Generated with review flags; architect sign-off recommended. |
| BAdI / Enhancement Implementations | ⚠️ Partial | Wiring generated; method body logic requires manual review. |
| Dynamic CALL FUNCTION / PERFORM | ⚠️ Partial | Flagged with low-confidence warning; cannot resolve at parse time. |
| SAP GUI Dynpro screens (MODULE POOL) | ❌ Not Supported | UI layer requires manual Fiori/UI5 redesign; backend logic extracted separately. |
| Kernel calls (ABAP system internals) | ❌ Not Supported | No public API equivalent exists; must be re-architected or removed. |
| ABAP OO with inheritance chains | ✅ Fully Supported | Fully resolved when all ancestor sources are provided; missing ancestors are requested explicitly. |
| RTTI / dynamic type resolution | ⚠️ Partial | Runtime-dependent; cannot be resolved statically. Manual verification required. |
| Missing source dependency | ⚠️ Partial | A referenced class/interface source was not provided. Upload it to complete resolution. |
Direct SELECT on standard tables
Deterministic mapping to released CDS views / APIs.
Simple wrapper classes / reports
Full AST decomposition and target generation.
Static CALL FUNCTION
Resolved to equivalent API calls.
Complex SQL Joins (3+ tables)
Generated with review flags; architect sign-off recommended.
BAdI / Enhancement Implementations
Wiring generated; method body logic requires manual review.
Dynamic CALL FUNCTION / PERFORM
Flagged with low-confidence warning; cannot resolve at parse time.
SAP GUI Dynpro screens (MODULE POOL)
UI layer requires manual Fiori/UI5 redesign; backend logic extracted separately.
Kernel calls (ABAP system internals)
No public API equivalent exists; must be re-architected or removed.
ABAP OO with inheritance chains
Fully resolved when all ancestor sources are provided; missing ancestors are requested explicitly.
RTTI / dynamic type resolution
Runtime-dependent; cannot be resolved statically. Manual verification required.
Missing source dependency
A referenced class/interface source was not provided. Upload it to complete resolution.
Frequently Asked Questions (FAQ)
Which ABAP constructs are automatically transformed?
Direct database reads (SELECT on standard SAP tables like VBAK, BSEG, LIKP), simple wrapper classes, and function module calls with static targets are fully supported. Complex SQL joins, BAdI implementations, and enhancement spots are partially supported with manual review flags.
What role does the LLM play in the transformation?
The LLM (Google Gemini) handles semantic understanding of business logic context, generates human-readable documentation, and produces the final target code. All table-to-API mappings are deterministic lookups against SAP's official Cloudification Repository (the same data source behind SAP ATC checks), layered with curated field-level entries — never LLM guesses.
Can I verify the generated code yourself?
Yes. Every transformation produces an importable abapGit package (src/ directory + abapgit.xml) with generated ABAP-Unit test classes. Import into your Eclipse ADT, compile, and run the tests locally.