How It Works
Three deterministic stages — from legacy ABAP to cloud-compliant architecture. Transparent, verifiable coverage — honest limitations.
How does Clean-Core.io transform legacy ABAP code?
The pipeline uses deterministic AST parsing to extract table references and function module calls, maps them to official SAP API Business Hub entries via rule-based lookups, 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 the SAP API Business Hub catalog using deterministic rule-based lookups. Each mapping links to the official API documentation.
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 rule-based lookups against the SAP API Business Hub catalog — not 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.