sap-activate-object
Activates an inactive SAP repository object via SAP GUI Scripting. Routes to the correct transaction by object type: SE38 for…
Makes the suite see SAP forms: SmartForms, SAPscript, and Adobe forms — inventory them with real usage evidence, read a 40-node form as a navigable tree/spec, and feed /sap-cc-* scope decisions with counts instead of anecdotes. inventory enumerates all three form families
Claude Code
$ npx -y skills add sapdev-ai/sap-dev --skill sap-forms --agent claude-code
Codex
$ npx skills add sapdev-ai/sap-dev --skill sap-forms -a codex -y
Cursor
$ npx skills add sapdev-ai/sap-dev --skill sap-forms -a cursor -y
Gemini CLI
$ npx skills add sapdev-ai/sap-dev --skill sap-forms -a gemini-cli -y
GitHub Copilot
$ npx skills add sapdev-ai/sap-dev --skill sap-forms -a github-copilot -y
OpenCode
$ npx skills add sapdev-ai/sap-dev --skill sap-forms -a opencode -y
Windsurf
$ npx skills add sapdev-ai/sap-dev --skill sap-forms -a windsurf -y
name: sap-forms description: | Makes the suite see SAP forms: SmartForms, SAPscript, and Adobe forms — inventory them with real usage evidence, read a 40-node form as a navigable tree/spec, and feed /sap-cc-* scope decisions with counts instead of anecdotes. inventory enumerates all three form families (STXFADM SmartForms, TADIR SAPscript/Adobe) with namespace/package filters, overlays the TNAPR output-determination assignment (output types, channels, driver program, routine) and NAST usage counts in a date window -> forms_inventory.tsv. download smartform exports the XML via the SMARTFORMS Utilities->Download GUI menu (no FM route exists — SSF_DOWNLOAD_FORM is absent on both releases); download sapscript exports ITF via RSTXSCRP (confirm-gated report). inspect adobe reads the readable Adobe metadata (TADIR + TNAPR usage) and is honest that the FP* layout tables are NOT RFC-readable (RAWSTRING columns) so there is no XDP extraction. explain parses a downloaded SmartForm XML into a page/window/text/code/condition node tree (or a SAPscript ITF into windows/formats/elements), with --spec emitting a sap-docs work folder for re-implementation campaigns. test-print delegates to /sap-run-report + /sap-sp02. Read-only except the confirm-gated report executions; no new Z objects. Prerequisites: pinned RFC profile via /sap-login; NCo 3.1 (32-bit); a GUI session for the download modes; /sap-dev-init only for the v1.5 wrapper-FM enrichment. argument-hint: "inventory [--type all|smartforms|sapscript|adobe] [--namespace Z,Y | --all] [--packages ..] [--usage-days N] [--no-usage] | download smartform <N> | download sapscript <N> | inspect adobe <N> | explain <kind> <N> [--spec] | test-print driver <PROG> | test-print nast <KAPPL> <KSCHL> <OBJKY>"
You make forms legible: inventory SmartForms/SAPscript/Adobe with TNAPR+NAST usage evidence, export and parse a form into a node tree/spec, and delegate test-prints. Read-only except confirm-gated report executions; the SmartForm XML round-trip is GUI-menu-only (no FM exists).
Task: $ARGUMENTS
The inventory / Adobe-inspect are RFC scripts; the parse is offline; the SmartForm download is a GUI VBS; **you** narrate the tree and the scope evidence.
---
| File | Token / call | Purpose | |---|---|---| | `<SKILL_DIR>/references/sap_forms_inventory.ps1` | `-Type -Namespace -UsageDays` | Forms inventory + TNAPR/NAST overlay (RFC) | | `<SKILL_DIR>/references/sap_forms_fp_inspect.ps1` | `-Name` | Adobe inspect (TADIR + usage; FP* = COULD_NOT_CHECK) | | `<SKILL_DIR>/references/sap_forms_parse.ps1` | `-Kind smartform\|sapscript -InFile` | Offline form parser (node tree) | | `<SKILL_DIR>/references/sap_forms_sf_download.vbs` | via 32-bit cscript | SmartForm XML download (SMARTFORMS menu) | | `<SKILL_DIR>/references/sap_forms_sf_download.screens.json` | baseline | Golden-screen baseline (NEEDS_RECORDING rails) | | `/sap-run-report` · `/sap-sp02` | sub-skills | `download sapscript` (RSTXSCRP) + `test-print` | | `/sap-login` · `/sap-se16n` | sub-skills | session / RFC-blocked table fallback |
---
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)); Write-Output ('RUN_TEMP=' + (Get-SapRunTemp))"Then `sap_log_helper.ps1 -Action start -StateFile {RUN_TEMP}\sap_forms_run.json`.
`{OUT}` = `Get-SapArtifactDir -ScopeKey SYS_<SID>_<CLIENT> -Skill sap-forms` (from `sap_artifact_lib.ps1`; creates the dir) — the artifact output dir Step 3A writes to and Step 4 registers.
Modes: `inventory` | `download smartform|sapscript` | `inspect adobe` | `explain` | `test-print driver|nast`. RFC modes need the pinned profile; download modes need a GUI session (/sap-login).
`download sapscript` (RSTXSCRP executes) and `test-print *` are confirm-gated (report execution; `test-print nast` with NACHA!=1 -> typed `REPROCESS`). Read modes (inventory/inspect/explain/download smartform) skip.
C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -File "<SKILL_DIR>\references\sap_forms_inventory.ps1" -Type <t> -Namespace "Z,Y" [-Packages ..] [-UsageDays N] [-NoUsage] -OutFile "{OUT}\forms_inventory.tsv" -SharedDir "<SAP_DEV_CORE_SHARED_DIR>"Render the TSV (form_type, name, package, output_types, channels, driver, routine, usage_count, coverage). A usage column that can't be read is COULD_NOT_CHECK / `>=N (capped)`, never "unused".
Pre-arm the security sidecar; substitute `%%SESSION_PATH%%`/`%%ATTACH_LIB_VBS%%`/`%%FORMNAME%%`/ `%%SAVE_PATH%%`/`%%MENU_PATH%%` (the recorded Utilities->Download findById from the baseline) and run `sap_forms_sf_download.vbs` (32-bit cscript). `FORMS: NEEDS_RECORDING` -> record the SMARTFORMS Utilities->Download menu with `/sap-gui-probe --record` for this release, set `%%MENU_PATH%%`, retry. Verify the file exists, is non-empty, and parses as `<SMARTFORM>`-rooted XML.
fetch the export; verify ITF header present.
TNAPR usage; FP* interface/context/layout are COULD_NOT_CHECK — not RFC-readable, SFP GUI/ADT only).
`<name>_form_tree.md` (+ `--spec` sap-docs work folder). Wrapper-FM enrichment (READ_TEXT/ SSF_STATUS_INFO via Z_GENERIC_RFC_WRAPPER_TBL) is best-effort and SKIPs with the /sap-dev-init prompt when the wrapper is absen
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.