Skip to content
Development
Skill

/sap-forms

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

From plugin
sap-dev
8123 skills3 agents
Install
$ npx -y skills add sapdev-ai/sap-dev --skill sap-forms --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/sap-forms

Context preview

The summary Claude sees to decide when to auto-load this skill.

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

SKILL.md

sap-forms.SKILL.md
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>"

SAP Forms Skill

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.

---

Shared Resources

| 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 |

---

Step 0 — Resolve Work Directory + Logging

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.

Step 1 — Parse Args + Backend

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).

Step 2.5 — CONFIRM gate

`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.

Step 3A — inventory

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".

Step 3B — download smartform (GUI)

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.

Step 3C — download sapscript / 3D — inspect adobe / 3E — explain

  • `download sapscript`: confirm -> delegate `/sap-run-report RSTXSCRP` (object class FORM, EXPORT) ->

fetch the export; verify ITF header present.

  • `inspect adobe`: `sap_forms_fp_inspect.ps1 -Name <N>` -> dossier (TADIR existence/package/author +

TNAPR usage; FP* interface/context/layout are COULD_NOT_CHECK — not RFC-readable, SFP GUI/ADT only).

  • `explain`: ensure a fresh download/inspect, then `sap_forms_parse.ps1 -Kind <k> -InFile <file>` ->

`<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

Read more
Ships withsap-dev

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.

Get the whole plugin

Other skills on sap-dev.