sap-activate-object
Activates an inactive SAP repository object via SAP GUI Scripting. Routes to the correct transaction by object type: SE38 for…
SAPconnect outbound-queue triage (SOST/SCOT) over RFC — the step past where application output diagnosis stops. list snapshots the SOST status log filtered by date / transmission method (INT/FAX/PAG) / status (error/wait/sent), and --cluster groups failures by (MSGID,MSGNO) with
Claude Code
$ npx -y skills add sapdev-ai/sap-dev --skill sap-sost --agent claude-code
Codex
$ npx skills add sapdev-ai/sap-dev --skill sap-sost -a codex -y
Cursor
$ npx skills add sapdev-ai/sap-dev --skill sap-sost -a cursor -y
Gemini CLI
$ npx skills add sapdev-ai/sap-dev --skill sap-sost -a gemini-cli -y
GitHub Copilot
$ npx skills add sapdev-ai/sap-dev --skill sap-sost -a github-copilot -y
OpenCode
$ npx skills add sapdev-ai/sap-dev --skill sap-sost -a opencode -y
Windsurf
$ npx skills add sapdev-ai/sap-dev --skill sap-sost -a windsurf -y
name: sap-sost description: | SAPconnect outbound-queue triage (SOST/SCOT) over RFC — the step past where application output diagnosis stops. list snapshots the SOST status log filtered by date / transmission method (INT/FAX/PAG) / status (error/wait/sent), and --cluster groups failures by (MSGID,MSGNO) with the T100 error text into top root causes. trace shows a per-message status timeline (created -> attempts -> final) and returns NOT_IN_SAPCONNECT when nothing matches (pointing back to the app layer / /sap-output-diagnose). config-check validates the SCOT pipe read-only: SAPconnect nodes (SXNODES active), the RSCONN01 send job (TBTCP->TBTCO), and stuck-queue age — rolled up to a GO / GO_WITH_WARNINGS / NO_GO verdict, designed to be pulled into /sap-health-check. resend is a confirm-gated GUI SOST drive (v1.5 — no RFC resend FM exists) verified by an authoritative SOST re-read. Pure RFC_READ_TABLE + the remote-enabled SO_DOCUMENT_READ_API1 (trace --body, v1.5); no wrapper FM, no dev-init, single code path ECC6 + S/4 (SOST is a real table on both; SOST/SOSV/SOSG all run SAPLSBCS_OUT). Prerequisites: pinned /sap-login RFC profile; NCo 3.1 (32-bit). argument-hint: "list [--status error|wait|sent|all] [--type INT|FAX|PAG] [--from YYYYMMDD] [--cluster] | trace --recipient <addr> | config-check"
You triage stuck outbound email/fax: cluster the failures, trace one message's timeline, and check whether the SAPconnect pipe itself (nodes + send job) is healthy — all read-only over RFC.
Task: $ARGUMENTS
---
| File | Token / call | Purpose | |---|---|---| | `<SKILL_DIR>/references/sap_sost_read.ps1` | `-Action list\|trace\|config` | The RFC read backend (all three v1 modes) | | `<SAP_DEV_CORE_SHARED_DIR>/scripts/sap_rfc_lib.ps1` · `sap_connection_lib.ps1` | dot-source | RFC connect | | `<SAP_DEV_CORE_SHARED_DIR>/scripts/sap_finding_lib.ps1` · `sap_artifact_lib.ps1` | dot-source | Findings + evidence | | `/sap-run-report` · `/sap-job` · `/sap-output-diagnose` | sub-skills | RSCONN01 `--kick` (v1.5) / send-job forensics / app-layer handoff |
---
Resolve `work_dir` + `{RUN_TEMP}` (canonical one-liner — `sap_connection_lib.ps1` is dot-sourced there — with `Write-Output ('RUN_TEMP=' + (Get-SapRunTemp))` appended). `{RUN_TEMP}` = the per-run scratch dir holding the log state file; mint it once here and reuse (re-minting breaks the `-Action end` state-file lookup). Start logging (`sap_log_helper.ps1`, state `{RUN_TEMP}\sap_sost_run.json`). Pinned RFC profile via `/sap-login`.
`list` (default `--status error`, last 7 days) | `trace` | `config-check`. All read-only in v1.
... sap_sost_read.ps1 -Action list [-Status error|wait|sent|all] [-Type INT|FAX|PAG] [-FromDate ..] [-Cluster] -OutDir "{RUN_TEMP}\sost"`SOST:` lines (date/type/msgty/message/node/object) -> `queue_snapshot.tsv`; with `--cluster`, `SOSTCLUSTER:` top (MSGID,MSGNO) root causes with T100 text -> `error_clusters.tsv`. Present the top clusters as the headline ("N messages failed with <text>").
... sap_sost_read.ps1 -Action trace --recipient <addr> (or --sender U) [-FromDate ..]
`SOSTTRACE:` per-object attempt timeline. Zero matches -> `NOT_IN_SAPCONNECT` verdict: tell the user the message never reached SAPconnect and point at `/sap-output-diagnose`. (`--body` via `SO_DOCUMENT_READ_API1` is v1.5.)
... sap_sost_read.ps1 -Action config [-Type INT] [-StuckHours 4] -OutDir "{RUN_TEMP}\sost"`SOSTCHECK:` for nodes (SXNODES active) / send job (RSCONN01 in TBTCP->TBTCO) / stuck queue, each a tri-state result -> `config_check.tsv` + overall `GO`/`GO_WITH_WARNINGS`/`NO_GO`. Map each to `New-SapCheckResult` (a table that fails to read is COULD_NOT_CHECK, never a silent pass); `Get-SapVerdict`. A missing RSCONN01 send job with a stuck queue is the classic "node up, nothing sends" pattern — surface it explicitly.
No RFC resend FM exists (probed). resend drives transaction SOST via a to-be-recorded VBS (`sap_sost_resend.vbs` — not yet shipped: emit `NEEDS_RECORDING` and capture it once with `/sap-gui-probe --record`) behind a confirm gate (typed confirmation for >25 messages or a production client), then an authoritative SOST re-read verifies the status flip; `--kick` submits RSCONN01 via /sap-run-report (its own gate).
`Register-SapArtifact` (scope `SYS_<SID>`; kinds `queue_snapshot` / `error_clusters` / `msg_trace` / `config_check`; coverage + verdict) for `/sap-evidence-pack`.
Log end (`SUCCESS`/`FAILED`/`SKIPPED` + error_class). Error classes: `SOST_SELECTION_EMPTY`, `SOST_RESEND_FAILED`, `NEEDS_RECORDING`; reused `RFC_LOGON_FAILED` / `RFC_ERROR` / `GUI_TIMEOUT`.
---
failures into one root cause — "Message cannot be transferred to node & due to connection error (final)" (T100). `config-check` returned a coherent NO_GO: SMTP node active, **no RSCONN01 send job scheduled** (steps=0), 17 error/wait messages stuck — the textbook "node up, nothing sends" diagnosis. EC2 (ECC 6) was probed in-plan (identical SO*/SX* table set, SAPLSBCS_OUT on both) but unreachable at build time; the read backend is release-agnostic.
is one send-attempt status carrying MSGID/MSGTY/MSGNO/MSGV1-4. Status maps to MSGTY (E,A=error, W=wait, S,I=sent). `trace` groups by the SOST object id; recipient matching is best-effort on the MSGV variables (the exact recipient address lives in SOOS/address objects — a v1.5 join).
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.