client/media/skills/abap-code-writing/SKILL.md
Structured process for building ABAP solutions. Use BEFORE writing any ABAP code — reports, classes, function modules, enhancements, or full processes. Guides through requirement validation, system exploration, architecture planning, research of existing objects, and detailed design before any code is written.
npx skillsauth add marcellourbani/vscode_abap_remote_fs abap-code-writingInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Follow this process in order whenever building ABAP solutions. Do NOT skip steps. Do NOT start writing code until Step 6.
Ask questions at ANY step if something is unclear — it is always better to clarify early than to rewrite later.
Before anything else, demonstrate that you understand what the user is asking for.
Actions:
Do NOT proceed until the user confirms your understanding is correct.
Example response:
"Here's my understanding: You need a report that reads material master data for a given plant, filters by material type, and outputs an ALV grid with columns [X, Y, Z]. It should support multiple selection for plant and material type. Is this correct? A few questions: (1) Should it include cross-plant materials? (2) Do you need export to Excel? (3) Any authorization checks beyond standard?"
Once requirements are confirmed, understand what you're working with.
Actions:
If standard functionality can be enhanced, recommend that approach. Custom code should be the last resort.
If custom development is needed, plan the architecture BEFORE any code.
Actions:
Present this as a capability breakdown — not specific object names yet. Those come after research.
Example:
Capabilities needed:
- Read sales order data from SAP tables
- Validate order data against business rules
- Calculate pricing (may reuse existing pricing FM/class?)
- Send confirmation email to customer
- Update custom status table
- Log all processing steps for audit
For each sub-task identified in Step 3, search the SAP system for reusable objects.
Actions:
NEVER assume an object exists or guess its parameters. Every object and every parameter must be verified against the live system.
Run searches in parallel when possible — search for multiple sub-tasks simultaneously.
Report findings to the user: "For email sending, I found ZCL_EMAIL_HELPER=>SEND which takes X, Y, Z. For pricing, there's no existing custom object but standard FM PRICING_GET_CONDITIONS exists."
Now — using research results from Step 4 — define the concrete architecture and detailed design.
Actions:
clean-abap skill if not already loaded): descriptive names, snake_case, no Hungarian notation, nouns for classes, verbs for methodsShare this detailed plan with the user for confirmation before writing code.
Only NOW do you write code.
Rules:
If you discover during coding that you need an object you haven't researched, STOP and go back to Step 4 for that object before continuing.
development
Create SAP Data Workbooks (.sapwb) for SAP data analysis. Use when the user asks to analyze SAP data, create data quality checks, build reports, compare tables, profile data, or any multi-step SAP data exploration. Workbooks have ABAP SQL cells (queries against SAP) and JavaScript cells (process results). They save as files and can be re-run.
tools
Investigate SAP ADT REST API endpoints. Use when the user asks about ADT API endpoints, request/response XML formats, content types, or how a specific ADT feature works under the hood. Teaches how to trace from discovery documents → RES_APP classes → handler classes → Simple Transformations → XML schemas. Requires the adt_discovery_export tool output files and standard ABAP tools (get_abap_object_lines, search_abap_objects, search_abap_object_lines).
development
Generate a comprehensive SAP System Personality Report. Analyzes custom code landscape, functional footprint, development activity, health metrics, and package breakdown. Use when a user asks to characterize a system, understand a system, get a system overview, system report, system personality, or "what does this system do?" Collects data via SQL queries and presents results in a structured webview.
data-ai
Navigate and understand SAP Customizing (SPRO/IMG). Use when the user asks about customizing settings, SPRO activities, configuration tables, maintenance views, view clusters, or needs to read/understand any customizing data. This skill teaches how to systematically trace from an SPRO activity to the actual tables where config data is stored, and how to find the SPRO menu path for any activity. Load this skill whenever customizing, SPRO, IMG, configuration, or settings maintenance is involved.