sap-activate-object
Activates an inactive SAP repository object via SAP GUI Scripting. Routes to the correct transaction by object type: SE38 for…
Pre-change / pre-release impact analysis — answers "if I change this object, what else might break?" from SAP's system-maintained cross-reference index (not by parsing source, which is blocked, nor by driving the slow GUI where-used). Resolves the object, then gathers reverse
Claude Code
$ npx -y skills add sapdev-ai/sap-dev --skill sap-impact-analysis --agent claude-code
Codex
$ npx skills add sapdev-ai/sap-dev --skill sap-impact-analysis -a codex -y
Cursor
$ npx skills add sapdev-ai/sap-dev --skill sap-impact-analysis -a cursor -y
Gemini CLI
$ npx skills add sapdev-ai/sap-dev --skill sap-impact-analysis -a gemini-cli -y
GitHub Copilot
$ npx skills add sapdev-ai/sap-dev --skill sap-impact-analysis -a github-copilot -y
OpenCode
$ npx skills add sapdev-ai/sap-dev --skill sap-impact-analysis -a opencode -y
Windsurf
$ npx skills add sapdev-ai/sap-dev --skill sap-impact-analysis -a windsurf -y
name: sap-impact-analysis description: | Pre-change / pre-release impact analysis — answers "if I change this object, what else might break?" from SAP's system-maintained cross-reference index (not by parsing source, which is blocked, nor by driving the slow GUI where-used). Resolves the object, then gathers reverse dependencies (where-used), forward dependencies (what it uses), runtime entry points (tcodes, jobs, variants, RFC-enabled flag), and transport history. Computes a transparent LOW/MEDIUM/HIGH risk band from where-used fan-out + standard-object flag, writes a markdown report + per-dimension TSVs + risk findings, and registers them for /sap-evidence-pack. Discloses the dynamic-dispatch blind spot and reports COULD_NOT_CHECK rather than guessing on read failures. Inputs: program / class / FM / table / data element / domain / tcode (and TR / package by expansion). Read-only. Prerequisites: SAP profile via /sap-login (RFC); SAP NCo 3.1 (32-bit) in GAC. argument-hint: "<TYPE> <NAME> | <NAME> | TCODE <t> | TABLE <t> [--depth 1] [--output <dir>] [--high-fanout 50]"
You answer "**what does changing this object affect?**" using SAP's own cross-reference index — fast, RFC-only, both directions. You are read-only.
Task: $ARGUMENTS
This is the second delivery-assurance skill, built on the Phase-0 primitives and the cross-reference-index data-source strategy: read the index tables, never the source, never the GUI where-used.
---
| File | Call | Purpose | |---|---|---| | `<SAP_DEV_CORE_SHARED_DIR>/rules/skill_operating_rules.md` | *(rule)* | Mandatory operating rules — read-only here | | `<SKILL_DIR>/references/sap_impact_analysis.ps1` | `-Token -SharedDir [-TypeHint] [-HighFanout] [-MedFanout] [-OutputDir]` | The cross-reference impact engine | | `<SAP_DEV_CORE_SHARED_DIR>/scripts/sap_object_resolver.ps1` | dot-sourced by the engine | Object resolution + `Read-SapTableRows` | | `<SAP_DEV_CORE_SHARED_DIR>/scripts/sap_finding_lib.ps1` | dot-sourced by the engine | Risk findings + severity ranks | | `<SAP_DEV_CORE_SHARED_DIR>/scripts/sap_artifact_lib.ps1` | dot-sourced by the engine | Registers outputs for `/sap-evidence-pack` |
---
powershell -NoProfile -ExecutionPolicy Bypass -Command ". '<SAP_DEV_CORE_SHARED_DIR>\scripts\sap_settings_lib.ps1'; . '<SAP_DEV_CORE_SHARED_DIR>\scripts\sap_connection_lib.ps1'; Write-Output ('WORK_DIR=' + (Get-SapWorkDir))"cmd /c if not exist "{WORK_TEMP}" mkdir "{WORK_TEMP}"(`{WORK_TEMP}` = `{work_dir}\temp`.)
Set `{RUN_TEMP}` = the per-run scratch dir (`Get-SapRunTemp` mints + creates `{work_dir}\temp\run_<id>`):
powershell -NoProfile -ExecutionPolicy Bypass -Command ". '<SAP_DEV_CORE_SHARED_DIR>\scripts\sap_connection_lib.ps1'; Write-Output ('RUN_TEMP=' + (Get-SapRunTemp))"Per the CLAUDE.md "Two-bucket temp model" write this skill's `_run.json` log state under `{RUN_TEMP}`.
---
powershell -ExecutionPolicy Bypass -File "<SAP_DEV_CORE_SHARED_DIR>\scripts\sap_log_helper.ps1" -Action start -StateFile "{RUN_TEMP}\sap_impact_analysis_run.json" -Skill sap-impact-analysis -ParamsJson "{}"---
`FM Z_MM_POST`, `DOMAIN ZDOM`) → pass `-Token "<TYPE> <NAME>"`. Best signal — use it when you know the type.
TADIR. If it returns AMBIGUOUS, re-run with a `-TypeHint`.
inventory first (the object resolver's `-Expand`), then run the engine **once per object** (cap at a sensible number — e.g. 25 — and `log()` what you skipped; never silently truncate). Aggregate the per-object risk bands in your summary. For a large package, advise the user to scope to specific objects.
Flags: `--depth N` (MVP computes depth 1 — direct deps; transitive is Phase 2), `--output <dir>`, `--high-fanout <n>` / `--med-fanout <n>` (risk band thresholds).
---
Run via **32-bit PowerShell** (NCo 3.1 in `GAC_32`):
C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -File "<SKILL_DIR>\references\sap_impact_analysis.ps1" -Token "TABLE ZMM_ORDER" -SharedDir "<SAP_DEV_CORE_SHARED_DIR>"
Append `-TypeHint`, `-HighFanout`, `-MedFanout`, `-OutputDir` as needed. Creds resolve from the pinned profile automatically.
Engine output:
IMPACT: object=<O:N> risk=<LOW|MEDIUM|HIGH> reverse=<n> forward=<n> runtime=<n> trs=<n> PARTIAL: could_not_check=<tables> (only if some reads were denied) REPORT_MD / REVERSE_TSV / FORWARD_TSV / RUNTIME_TSV / TRANSPORT_TSV / RISK_TSV / RISK_JSON: <path>
Exit: `0` ok · `1` object not found / ambiguous · `2` RFC failure.
---
Read the `IMPACT:` line, then `REPORT_MD`. Present:
1. **Risk band** (LOW / MEDIUM / HIGH) and the headline counts: reverse (where-used), forward (uses), runtime entry points, transports. 2. **Reverse dependencies** — the programs/objects that would be affected. This is the core answer to "what might break." 3. **Runtime entry points** — tcodes / jobs / variants / RFC-enabled. These are how the object is reached at runtime. 4. **Two mandatory caveats** (never omit — honesty contract):
/ RFC). The analysis does NOT certify those clean.
check for `CALL FUNCTION lv_name`, dynamic `SELECT`, `SUBMIT (rep)`. 5. The risk band is a **transparent heuristic** (fan-out bands + standard-object flag), not a gua
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.
Activates an inactive SAP repository object via SAP GUI Scripting. Routes to the correct transaction by object type: SE38 for…
Natural-language SAP API discovery over RFC (no GUI): turn a goal like "create a sales order" or "post a goods movement" into a…
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),…
Executes BDC (Batch Data Communication) sessions in SAP via RFC. Reads SHDB recording files from the bdc/ folder, connects via…
Changes the package (TADIR-DEVCLASS) assignment of an SAP repository object via the "Object Directory Entry" dialog (Goto >…
Validates ABAP source (report / program / FM / class / include) before deployment — one skill, dimension-dispatched: naming…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.