chore: sync skill to v2.2.1

- NW 7.40 E2E-verified compatibility matrix in SKILL.md
- DDIC fixes: include namespace, tabletype exists check, DDIC delete lock Accept
- New commands: clone, enhancement, history, unit-test
- 665 tests, 96% coverage
This commit is contained in:
2026-07-10 19:13:46 +08:00
parent 3a7fba0860
commit 38e99638c5
16 changed files with 951 additions and 16 deletions
+23 -6
View File
@@ -1,7 +1,7 @@
---
name: sap-cli
description: "Use when you need to operate SAP ABAP development objects — syncing code, querying metadata, managing transports, reading tables, or any task involving SAP ADT REST API. Trigger on: ABAP objects, SAP development, transport requests, DDIC types, SE11/SE16N/SE38/SE80 equivalents, 'sync to SAP', 'download from SAP', 'activate ABAP', 'read SAP table'. NOT for developing sap-cli itself."
version: "2.2.0"
version: "2.2.1"
author: WuRangyu
license: MIT
---
@@ -270,7 +270,7 @@ python main.py activate --name ZMY_CLASS --type class --corr_nr DEVK901XXX
2. **禁止修改 SAP 标准对象**`CL_*``SAPL*` 等)— 只允许只读操作
3. **禁止未授权操作系统表**TADIR、E071、SEOCLASS 等)— SELECT 诊断可以
4. **sync 必须带 `--corr_nr`** — 否则触发交互提示
5. **NW 7.40 DDIC Lock 返回 HTTP 406** — 系统限制,报告用户去 SE09
5. **非交互 delete 用管道确认**`echo "yes" | python main.py delete ...`(否则 EOFError
---
@@ -278,19 +278,36 @@ python main.py activate --name ZMY_CLASS --type class --corr_nr DEVK901XXX
| 问题 | 原因 | 解决 |
|------|------|------|
| HTTP 406DDIC Lock | NW 7.40 不支持 DDIC ADT Lock | 报告用户 → SE09 |
| HTTP 406DDIC sync Lock | NW 7.40 DDIC sync 路径 lock 仍 406delete 已修复) | 报告用户 → SE09 手动同步 DDIC |
| HTTP 403Locked | 残留 enqueue lock | 先试 `run-program` 清锁,不行 → SM12 |
| HTTP 400SaveFailure | 类 DEFINITION 与 SAP 不一致 | 对比本地 vs SAP 源码 |
| HTTP 404DDIC download/sync | NW 7.40 无 `/source/main` 端点(7.50+ 特性) | DDIC 对象只能 create/info/delete,不能 download/sync |
| HTTP 423Transport lock | 对象绑定在传输请求中 | 报告用户 → SE09 |
| 激活失败 | NW 7.40 ADT 限制 | sap-cli 内置 double-activate,仍失败 → SE09 |
| `WITH EMPTY KEY` dump | NW 7.40 不支持 | 改用 `WITH NON-UNIQUE KEY` |
| 函数名格式错误 | 缺少 `/` 分隔符 | 使用 `ZGROUP/Z_FUNC` 格式 |
## NW 7.40 兼容性
## NW 7.40 兼容性(真实系统 E2E 验证 — v2.2.1
- **DDIC Lock**HTTP 406,无法通过 ADT 锁定 DDIC 对象
> 完整矩阵见 `docs/NW740-COMPATIBILITY.md`
### 完整可用(download → 编辑 → sync 全闭环)
`report` · `class` · `interface` · `function` · `functiongroup` · `include`
### 仅 CRUD 可用(create/info/delete,无源码编辑)
`domain` · `dataelement` — NW 7.40 的 DDIC 对象以 XML 存储于对象 URI,没有独立的 source/main 端点(7.50+ 特性)。即便 Eclipse ADT 在 7.40 上也无法编辑 DDIC 源码。
### 端点缺失(代码已就位,待更高版本验证)
`table` · `structure` · `tabletype` · `view` · `messageclass` · `searchhelp` · `lockobject` · `cdsview` — NW 7.40 ADT 端点层返回 404/415,请求未到达 XML 解析。
### 其他 NW 7.40 特性
- **DDIC Lock**delete 已修复(专用 Accept 头),sync 路径仍 406
- **激活误报**:首次激活可能报失败但实际成功,sap-cli 已内置 double-activate
- **ABAP 语法限制**:不支持字符串模板 `|...|`、inline 声明 `DATA(...)``WITH EMPTY KEY`
- **ABAP 语法限制**:不支持字符串模板 `\|...\|`、inline 声明 `DATA(...)``WITH EMPTY KEY`
- **CSRF Token**:所有写操作必须携带,sap-cli 自动处理
---