← ClaudeAtlas

sap-check-abaplisted

Validates ABAP source code quality before deployment. Checks: (1) Variable naming conventions against shared rules file, (2) Data type validity via SAP Dictionary (DDIF_FIELDINFO_GET / DDIF_DTEL_GET), (3) Unused variable detection, (4) SQL field validation — checks SELECT/UPDATE/DELETE field names against table definitions. Writes a tab-delimited result file with fix advice for each issue. SAP connection is optional — offline mode skips type and SQL field validation. Prerequisites: SAP GUI installed (provides SAP.Functions 32-bit COM object).
sapdev-ai/sap-dev · ★ 4 · Data & Documents · score 77
Install: claude install-skill sapdev-ai/sap-dev
# SAP Check ABAP Skill You validate ABAP source code quality before deployment. You check variable naming conventions against a shared rules file, validate data types against the SAP Dictionary, detect unused variables, and verify SQL field references against table definitions. Results are written to a tab-delimited file with fix advice. Task: $ARGUMENTS --- ## Step 0 — Resolve Work Directory **Settings reads/writes follow `<SAP_DEV_CORE_SHARED_DIR>/rules/settings_lookup.md`** — merge `settings.local.json` over `settings.json` per-key on the `.value` field; writes always go to `settings.local.json`. Resolve cross-plugin paths: 3 levels up from `<SKILL_DIR>`, then into `sap-dev-core\settings.json` and (if present) `sap-dev-core\settings.local.json`. Read `work_dir`, `custom_url`. | Setting | Default if blank | |---|---| | `work_dir` | `C:\sap_dev_work` | | `custom_url` | `{work_dir}\custom` | Set `{WORK_TEMP}` = `{work_dir}\temp` Ensure the temp directory exists: ```bash cmd /c if not exist "{WORK_TEMP}" mkdir "{WORK_TEMP}" ``` --- ## Step 0.5 — Start Logging Start a structured log run. State file: `{WORK_TEMP}\sap_check_abap_run.json`. Best-effort. ```bash powershell -ExecutionPolicy Bypass -File "<SAP_DEV_CORE_SHARED_DIR>\scripts\sap_log_helper.ps1" -Action start -StateFile "{WORK_TEMP}\sap_check_abap_run.json" -Skill sap-check-abap -ParamsJson "{\"abap_file\":\"<ABAP_FILE>\"}" ``` --- ## Step 1 — Parse Arguments Extract from `$ARGUMENTS`: - **ABAP source file