sap-activate-object
Activates an inactive SAP repository object via SAP GUI Scripting. Routes to the correct transaction by object type: SE38 for reports/programs/function- group…
Deploys ABAP class/interface source to a SAP system via SE24 (SAP GUI Scripting) — creates or updates classes: existence check, source upload (full CLASS DEFINITION … IMPLEMENTATION … ENDCLASS via the source-code view), save, activate. Also three secondary modes on an existing
$ npx -y skills add sapdev-ai/sap-dev --skill sap-se24 --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/sap-se24Context preview
The summary Claude sees to decide when to auto-load this skill.
Deploys ABAP class/interface source to a SAP system via SE24 (SAP GUI Scripting) — creates or updates classes: existence check, source upload (full CLASS DEFINITION … IMPLEMENTATION … ENDCLASS via the source-code view), save, activate. Also three secondary modes on an existing
name: sap-se24
description: |
Deploys ABAP class/interface source to a SAP system via SE24 (SAP GUI Scripting)
— creates or updates classes: existence check, source upload (full CLASS
DEFINITION … IMPLEMENTATION … ENDCLASS via the source-code view), save, activate.
Also three secondary modes on an existing class: check-and-fix ("fix Class" /
"check and fix Class" with no source — syntax-check, download, fix, re-upload,
activate); change-properties (Description / Program Status / Category via Goto →
Properties, then Save + Activate; normalises a form-based Class Builder to
source-based for the edit); delete ("delete class/interface <X>" — irreversible,
asks for explicit confirmation, verifies removal). Handles the original-language
+ Workbench-request popups per /sap-transport-request.
Prerequisites: active SAP GUI session (/sap-login first).
argument-hint: "<class-name> [path-to-source]"You deploy ABAP class source code to a live SAP system via SE24 using SAP GUI Scripting. The skill checks if the class exists, then creates or updates it.
> **Pre-deploy quality (recommended).** A global class is a *class pool* — a raw > `CLASS…ENDCLASS` source does not fully compile standalone (it needs the generated > pool framework). Run `/sap-check-abap <file>` first for the offline + `fm` > dimensions; its `syntax` dimension now also gives a **best-effort pre-insert body > check** (Strategy A `-Wrap`: the class is checked as a local class in a dummy > program so method-body errors — undeclared fields, typos — are caught before any > GUI upload, findings line-mapped to the original file), degrading to > `SYNTAX_COULD_NOT_CHECK` only when it can't be modelled. That pre-check does **not** > replace the authoritative gate: the full **compiler syntax check happens > in-context** here, via the Ctrl+F2 that runs after the class source is uploaded > and saved (below).
Task: $ARGUMENTS
| File | Purpose | |---|---| | `<SAP_DEV_CORE_SHARED_DIR>/rules/safety_policy.md` | **Rule 0 (highest priority)** — environment guard; enforced by Step 0.6 via `sap_safety_gate.ps1` | | `<SAP_DEV_CORE_SHARED_DIR>/rules/skill_operating_rules.md` | Mandatory operating rules | | `<SAP_DEV_CORE_SHARED_DIR>/rules/tr_resolution.md` | TR resolution flow — this skill delegates to `/sap-transport-request` (Step 1b) | | `<SAP_DEV_CORE_SHARED_DIR>/rules/language_independence_rules.md` | GUI-scripting language independence — identify by component ID + DDIC field name, status-bar checks via `MessageType` codes (S/W/E/I/A), VKey instead of menu-text, no branching on `.Text`/`.Tooltip`/window titles | | `<SAP_DEV_CORE_SHARED_DIR>/rules/abap_code_quality_rules.md` | ABAP code-quality rules — deployed class/interface source must follow modern syntax, exception-class conventions, no literal MESSAGE strings. Run `/sap-check-abap` before deploy when the source isn't generator-emitted. | | `<SAP_DEV_CORE_SHARED_DIR>/scripts/sap_rfc_syntax_check.ps1` | Headless compiler syntax **pre-check** (Step 4.6) — runs `EDITOR_SYNTAX_CHECK` via the dev-init wrapper `Z_GENERIC_RFC_WRAPPER_TBL` before the GUI deploy. Class pools use `-Subc K -Wrap` (Strategy A) for a best-effort **body** check pre-upload (checked as a local class), findings line-mapped to the original file; degrades to COULD_NOT_CHECK (never blocks) when it can't be modelled or RFC/wrapper is unavailable. The in-context Ctrl+F2 (Step 5a/5b) stays authoritative. | | `<SAP_DEV_CORE_SHARED_DIR>/scripts/sap_error_hints.ps1` | frequently_errors recorder. The Final step feeds deploy syntax/activation errors (`-Action record -Source SE24 -RawOutputFile ...`) so FM/METHOD-related failures are captured to the team store. Best-effort; never changes the verdict. | | `<SAP_DEV_CORE_SHARED_DIR>/rules/sap_gui_security_handling.md` | SAP GUI Security dialog handling — the **source upload** (Step 5a, via Utilities > Upload), the **test-class upload** (Step 5f), and the check-and-fix **class source download** (Step A) are all SAP-GUI-side file IO, so any of them can raise the modal "SAP GUI Security" dialog (which suspends the Scripting API and hangs cscript). Pre-check + OS-level watcher wrap each of those file-IO steps. | | `<SAP_DEV_CORE_SHARED_DIR>/scripts/sap_gui_security_precheck.ps1` | Read-only allow-list pre-check (`saprules.xml`) — `ALLOWED` (exit 0) / `NOT_COVERED` (exit 1). Used by Step A before the source download. | | `<SAP_DEV_CORE_SHARED_DIR>/scripts/sap_gui_security_sidecar.ps1` | OS-level (Win32) watcher that auto-dismisses the SAP GUI Security dialog (ticks Remember + clicks Allow). Launched as a background process before the Step A download. | | `<SKILL_DIR>/references/sap_se24_rfc_install.ps1` | **RFC deploy fallback (Step 4.7)** — installs class source headlessly via the installer FM `Z_CLASS_SOURCE_INSTALL` (create/update, idempotent), preferred over the GUI upload. Self-healing (deploys the installer into `ZFGDEVAI` via `sap-se37/references/sap_rfc_fm_insert.ps1` when absent) + capability-gated on `CL_OO_FACTORY` (present on NW 7.31 EhP6+, incl. ECC6 EhP6 — verified EC2/ERP). Exit 3 = degrade to GUI. Sets every `IV_*` explicitly (ABAP DEFAULTs don't apply over RFC). 32-bit PS. | | `<SKILL_DIR>/references/Z_CLASS_SOURCE_INSTALL.abap` | Installer FM source (KEEPER in `ZFGDEVAI`) deployed on-demand by the caller above: headless global-class SOURCE install — `SEO_CLASS_CREATE_COMPLETE` shell → `CL_OO_FACTORY`→`IF_OO_CLIF_SOURCE` set-source → `RS_WORKING_OBJECTS_ACTIVATE` (DWINACTIV worklist) → verify `SEOCLASSDF version='1'`; MODE `CREATE`/`DELETE`. Smoke-verified **S4D 7.54 AND EC2/ERP 7.31 EhP6 (ECC6)** — the factory API works on 7.31 EhP6, so no `CL_OO_SOURCE` fallback is needed; the capability gate only excludes genuinely pre-7.31 stacks. |
---
**Resolve `work_dir` via the env-aware helper** — do NOT take `work_dir` from a direct `settings.json` read (that i
SAP development automation skills for AI coding assistants. Windows-only — the skills drive SAP GUI for Windows via GUI Scripting (plus optional RFC via SAP NCo); there is no macOS/Linux path.
Repo: sapdev-ai/sap-dev
Activates an inactive SAP repository object via SAP GUI Scripting. Routes to the correct transaction by object type: SE38 for reports/programs/function- group…
Natural-language SAP API discovery over RFC (no GUI): turn a goal like "create a sales order" or "post a goods movement" into a ranked, trap-annotated,…
Runs the SAP ABAP Test Cockpit (ATC) end-to-end as a quality gate: builds an SCI Object Set scoped to the target object(s), creates an ATC Run Series bound to…
Executes BDC (Batch Data Communication) sessions in SAP via RFC. Reads SHDB recording files from the bdc/ folder, connects via SAP NCo 3.1, calls…
Changes the package (TADIR-DEVCLASS) assignment of an SAP repository object via the "Object Directory Entry" dialog (Goto > Object Directory Entry). Routes by…
Validates ABAP source (report / program / FM / class / include) before deployment — one skill, dimension-dispatched: naming (variable conventions), type (DDIC…