关于 sap-transport-overview
sap-transport-overview 面向 SAP Basis 团队和发布经理,用于盘点单个系统中的开放传输请求。它以精简摘要呈现负责人、规模和潜在风险,不获取源代码或差异。
主要功能
- 01盘点系统内开放传输请求
- 02以精简摘要显示对象数量
- 03按负责人分组并统计
- 04标记空请求和本地请求
- 05检查精确 CTS 键重叠
适用场景
- 01查看团队传输工作量
- 02找出待清理的请求
- 03评估导入批次前的风险
MCP 相关
该技能调用 SAPTransport 工具列出并选择性检查传输请求,不获取源代码差异。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ arc-mcp/ arc-1 --skill sap-transport-overview安装后在 Claude Code 中输入/sap-transport-overview确认已加载。
详细介绍
SAP 传输概览(系统范围)
面向基础架构负责人/主管的所有未关闭传输登记表:谁负责什么、每个请求有多大,以及风险在哪里——全程不获取源代码或差异。此技能刻意采用广度优先的方式,且节省令牌,只需一次调用:
SAPTransport(action="list", summary=true, user="*", status="D")— 所有用户的每个可修改请求,省略objects[],保留objectCount。(在繁忙的系统中,包含完整对象信息的列表约需 25K 个令牌;摘要会压缩到几 KB — 参见 ARC-1 PR #448。)
这是 sap-transport-review 的广度补充(后者侧重深度——查看单个传输中各对象的差异)。概览回答“整个系统中有哪些未关闭请求,哪些有风险”;审查回答“这个请求具体改了什么”。不要在这里查看差异。
智能默认值(静默应用,不要询问)
| 设置 | 默认值 | 理由 |
|---|---|---|
| 用户 | 所有用户(user="*") | 基础架构团队关心的是整个系统,而非某一位开发者 |
| 状态 | 可修改(status="D") | 未关闭/未发布的工作;传入 status="R" 查看已发布请求,传入 "*" 查看两者 |
| 内容 | summary=true | 清点只需要计数和请求头信息,绝不需要源代码 — 让包含 100 个请求的列表也能保持轻量 |
| 差异 | 从不 | 这是 sap-transport-review 的工作;本技能只关注广度 |
| 分组 | 按负责人 | 符合基础架构团队的思维模式:“谁有哪些请求、多少个、多大” |
输入
可选的筛选条件 — 如果用户提供则应用,否则默认查看整个系统:
- 负责人/用户 — 某位开发者未关闭的请求。
- 状态 —
D(默认)、R(已发布)、*(全部)。 - 描述/大小/目标筛选条件 — 例如“匹配 ‘migration’”“条目超过 20 个”或“没有目标”。当前传输载荷不包含请求时长或对象包字段,因此若没有单独的权威数据源,不要提供按时长/包筛选的选项。
**范围守则:**系统范围列表可能包含数百个请求。始终从 summary=true 开始。如果结果仍然很大,就进行汇总(按负责人统计数量、按 objectCount 排序取前 N 项),并提供筛选选项 — 切勿未经询问就展开每个请求的对象列表。
步骤 1:登记表(轻量,始终执行)
SAPTransport(action="list", summary=true, user="*", status="D")
每个请求返回一行:id、description、owner、status、target/targetDesc、objectCount(以及每项任务的计数)。仅凭这些信息,就能回答整个系统中“有哪些未关闭请求、规模有多大”。
步骤 2:只展开重要内容(仍不查看差异)
对于用户指定的请求(或步骤 3 中可疑的请求),获取完整对象列表:
SAPTransport(action="get", id="<id>")
此操作会列出 CTS 条目(pgmid、type、name、wbtype、locked)——即请求的内容,而非源代码或包元数据。只对重点关注的少数对象执行 get;不要对整个系统执行 get。
第 3 步:风险 / 健康标记(Basis 值)
概览的用途就在于此。根据已收集的数据推导:
- 已确认的精确重叠——明确展开范围内的请求后,同一个精确 CTS
键(
pgmid、type、name)出现在两个清单中。这可能带来导入顺序风险。原始键交集的判断较为保守:它可能遗漏以R3TR和LIMU/ 语言子对象分别表示的概念性重叠,因此应标记为“精确 CTS 键重叠”,而非全面冲突检测。 - 空请求(
objectCount为 0)——可考虑清理(删除或释放)。 - 明确锁定的对象(
get返回locked: true)——可能阻碍其他开发者。在较旧的版本中,tm:lock_status可能不存在,因此locked: false并不能证明条目未锁定。 - 无目标(
target为空)——无法继续传输的本地请求(通常是原本应当交付的工作被误设为本地请求)。
尽管操作名称沿用旧称,SAPTransport(action="history", type=…, name=…) 表示的是当前分配状态:relatedTransports 最多包含当前锁定请求,而 candidateTransports 是可分配该对象的请求。候选请求并不包含该对象,也不能作为冲突或历史证据。完整的历史成员关系需要访问 E071/E070;此处使用的标准 ADT 端点不提供此信息。
不要根据传输清单推断 $TMP:CTS 条目不会公开包信息,而本地包中的对象通常不属于传输内容。要做出此类判断,应另行查询包信息。
第 4 步:报告
# Open transports — <SID> (<N> requests, <M> objects, <K> owners)
## By owner
| Owner | Requests | Objects | Notable |
|---|---|---|---|
| MARIAN | 6 | 41 | 1 empty, 1 local request |
| ANNA | 2 | 8 | |
## Register
| Request | Owner | Description | Objects | Target | Flags |
|---|---|---|---|---|---|
| A4HK900123 | MARIAN | Sales order RAP | 12 | LOCAL | ⚠ no target — won't ship |
| A4HK900200 | ANNA | Pricing fix | 3 | C11 | ⚠ ZCL_PRICE also in A4HK900123 |
## Needs attention
- ⚠ Exact CTS key R3TR/CLAS/ZCL_PRICE is in 2 expanded requests (A4HK900123, A4HK900200) → possible import-order conflict; sequence or consolidate.
- ⚠ A4HK900155 (MARIAN) is empty → delete or release.
- ⚠ A4HK900123 has no target → local request; confirm it is not intended for downstream import.
只有在用户要求时才写入磁盘;否则直接内联返回。
错误处理
| 错误 | 原因 | 修复方法 |
|---|---|---|
list 返回大量请求 | 系统繁忙 | 保持 summary=true;按负责人汇总,并按大小列出前 N 项;提供筛选选项 |
user="*" 只返回我的请求 | 后端忽略了未筛选的查询 / 范围受限 | 确认 SAP 用户是否可以查看其他人的请求(S_TRANSPRT);某些系统会限制跨用户列表 |
对许多请求执行 get 时速度缓慢 | 展开范围过大 | 只展开标记的请求和重点请求,不要展开整个系统 |
history 返回许多候选项 | 候选项是分配选项,不是包含对象的请求 | 不要将其用作历史 / 重叠证据;应明确展开清单并进行比较 |
| 需要已释放的请求 | 默认只显示 D | 使用 status="R" 或 status="*" 重新运行 list |
何时使用此技能
- Basis / 发布经理:“系统中有哪些未完成事项?导入时有哪些风险?”
- 团队负责人:“大家现在都在做什么?” / 积压和清理审查。
- 导入前 / 上线前:在一轮传输开始前,查找对象重叠和仅限本地的请求。
何时不使用此技能
- 请求中具体更改了什么(源代码差异)→ sap-transport-review。
- 单个对象的完整历史记录(“哪些传输涉及过 ZCL_X”)→ 标准 ADT 历史操作不提供此信息;请使用经授权的 E071/E070 数据工作流或外部 CTS 报告。
- 单个对象当前的锁定 / 分配状态 →
SAPTransport(action="history", type=…, name=…)。 - 跨系统比较(DEV 是否领先于 QAS)→ 不在范围内:ARC-1 每个实例绑定一个系统;请针对每个系统运行 CLI 并进行比较。
后续选项
- “要审查其中一个请求的实际更改吗?” → sap-transport-review。
- “要释放已准备好的请求吗?” →
SAPTransport(action="release")/release_recursive。 - “要清理空请求吗?” →
SAPTransport(action="delete")。