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…
Enumerates a SAP system's integration surface over pure read-only RFC and correlates it into a named interface register — the "list of all interfaces" every upgrade, S/4 migration, or system takeover needs and no SAP system has. scan reads six confirmable sources (RFC
$ npx -y skills add sapdev-ai/sap-dev --skill sap-interface-inventory --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/sap-interface-inventoryContext preview
The summary Claude sees to decide when to auto-load this skill.
Enumerates a SAP system's integration surface over pure read-only RFC and correlates it into a named interface register — the "list of all interfaces" every upgrade, S/4 migration, or system takeover needs and no SAP system has. scan reads six confirmable sources (RFC
name: sap-interface-inventory description: | Enumerates a SAP system's integration surface over pure read-only RFC and correlates it into a named interface register — the "list of all interfaces" every upgrade, S/4 migration, or system takeover needs and no SAP system has. scan reads six confirmable sources (RFC destinations RFCDES, IDoc/ALE partner profiles EDP13/EDP21/EDIFCT/TBD05, Z/Y RFC-enabled FMs via TFDIR, OData services via the Gateway hub catalog, ABAP proxies SPROXHDR, and interface-relevant batch jobs TBTCO/TBTCP) into per-source TSVs, then Claude clusters them into interface_register.tsv with a hard CONFIRMED-vs-INFERRED rule and a mandatory Gaps section. doc reverse-engineers one interface into a spec (IDoc segment tree via IDOCTYPE_READ_COMPLETE, RFC-FM signature via RPY_FUNCTIONMODULE_READ). Read-only — no writes, no GUI, no Z-object dependency. Release divergence (S/4-only OData hub, proxy framework) is handled by runtime existence probes, never a silently thinner register. Prerequisites: SAP profile via /sap-login (RFC); SAP NCo 3.1 (32-bit) in GAC. argument-hint: "scan [--sources rfc,idoc,zfm,odata,proxy,jobs] [--max-rows N] [--namespace Z,Y] | doc <idoc MESTYP|rfcfm FMNAME|dest RFCDEST> [--format md|docx] | refresh"
You enumerate a system's **interface surface** and correlate it into a register, or reverse-engineer **one interface** into a spec. You are **read-only** — no writes, no report execution, no GUI, no transports.
Task: $ARGUMENTS
The six source reads are deterministic (`references/sap_interface_scan.ps1`); the **correlation into named interfaces is yours** (Claude), under a strict CONFIRMED/INFERRED rule. Per-interface docs come from `references/sap_interface_doc.ps1`.
---
| File | Token / call | Purpose | |---|---|---| | `<SAP_DEV_CORE_SHARED_DIR>/rules/skill_operating_rules.md` | *(rule)* | Read-only operating rules | | `<SKILL_DIR>/references/sap_interface_scan.ps1` | `-Sources -MaxRows -Namespace -SharedDir -SkillDir [-OutputDir]` | Six-source RFC enumerator | | `<SKILL_DIR>/references/sap_interface_doc.ps1` | `-Mode idoc\|rfcfm\|dest -Target <x> -SharedDir` | Per-interface spec extractor | | `<SKILL_DIR>/references/interface_program_map.tsv` | read by the scanner | Batch-job program → technology/direction map (customer-overridable) | | `<SAP_DEV_CORE_SHARED_DIR>/scripts/sap_object_resolver.ps1` | dot-sourced | `Read-SapTableRows`, SID resolution | | `<SAP_DEV_CORE_SHARED_DIR>/scripts/sap_artifact_lib.ps1` | dot-sourced | Scope key, artifact dir, `Register-SapArtifact` | | `/sap-idoc` | sub-skill (soft) | doc-mode IDoc rendering / live example decode when installed | | `/sap-explain-object` | sub-skill | `doc --deep` handler narration; docx render path |
---
powershell -NoProfile -ExecutionPolicy Bypass -Command ". '<SAP_DEV_CORE_SHARED_DIR>\scripts\sap_connection_lib.ps1'; Write-Output ('WORK_DIR=' + (Get-SapWorkDir)); Write-Output ('RUN_TEMP=' + (Get-SapRunTemp))"powershell -ExecutionPolicy Bypass -File "<SAP_DEV_CORE_SHARED_DIR>\scripts\sap_log_helper.ps1" -Action start -StateFile "{RUN_TEMP}\sap_interface_inventory_run.json" -Skill sap-interface-inventory -ParamsJson "{}"---
Mode dispatch (all read-only, no confirm gates):
`--max-rows` (default 5000/source), `--namespace` (default `Z,Y` for source 3), `--profile <name>` (cross-system inventory via the /sap-login second-profile pattern).
`--format md|docx` (default md); `--deep` (chain /sap-explain-object `--spec` on the handler).
A pinned RFC profile is required (`/sap-login`). The readers self-connect from the pinned (or `--profile`) profile. Connect failure → exit 2, `RFC_LOGON_FAILED` — fail loud, never present a partial register as complete. **No GUI session needed.**
---
Run via **32-bit PowerShell**:
C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -File "<SKILL_DIR>\references\sap_interface_scan.ps1" -SharedDir "<SAP_DEV_CORE_SHARED_DIR>" -SkillDir "<SKILL_DIR>"
Append `-Sources ...`, `-MaxRows N`, `-Namespace Z,Y`, `-CustomUrl "{custom_url}"` as applicable. The scanner writes per-source TSVs into a system-scoped artifact dir (`SID_<SID>_<CLIENT>`), registers each, and prints:
SRC: <source> rows=<n|">cap"> coverage=<CHECKED|COULD_NOT_CHECK|NOT_APPLICABLE> file=<tsv> SCOPE_KEY: SID_<SID>_<CLIENT> ARTIFACT_DIR: <dir> STATUS: OK|PARTIAL|RFC_ERROR
**Immediately echo every `COULD_NOT_CHECK` / `NOT_APPLICABLE` source to the user** — these become Gaps rows, not silent omissions. `rows=">N"` means the cap was hit (at least N; raise `--max-rows` for exact). `RFC_ERROR` (exit 2) → stop, `RFC_LOGON_FAILED`.
Read the per-source TSVs from `ARTIFACT_DIR` and cluster them into named logical interfaces. Write `interface_register.tsv` with columns:
IFACE_ID · NAME · TECHNOLOGY(RFC|IDOC|ODATA|PROXY|HTTP|FILE) · DIRECTION(IN|OUT|BIDIR|UNKNOWN) · STATUS(CONFIRMED|INFERRED) · PARTNER_OR_DEST · MESSAGE_OR_SERVICE · HANDLER · JOBNAME · EVIDENCE(source:key;…) · NOTE
**Hard rule — CONFIRMED vs INFERRED:** a row is **CONFIRMED** only when a direct config chain links its evidence (e.g. an `EDP21` inbound row + its `EDIFCT` handler; an `RFCDES` destination row). Any name-similarity or job-heuristic link stays **INFERRED**. Never upgrade past INFERRED without a config chain. Fill `EVIDENCE` with the concrete source rows (e.g
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…