From f4210b06dbc16d2843ec58975944f23cc2bd3fa1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=B4=E8=AE=A9=E5=AE=87?= Date: Thu, 10 Sep 2026 23:10:47 +0800 Subject: [PATCH] =?UTF-8?q?docs(sap-cli):=20=E8=A1=A5=20DDIC=20=E7=BB=93?= =?UTF-8?q?=E6=9E=84/=E8=A1=A8=E7=B1=BB=E5=9E=8B=E8=90=BD=E5=9C=B0?= =?UTF-8?q?=E8=B7=AF=E5=BE=84=EF=BC=88run-program=20+=20DDIF=5F*=5FPUT/ACT?= =?UTF-8?q?IVATE=EF=BC=89=E4=B8=8E=E8=B8=A9=E5=9D=91=EF=BC=9B=E8=84=9A?= =?UTF-8?q?=E6=89=8B=E6=9E=B6=E6=B8=85=E7=90=86=E7=94=A8=20delete=20?= =?UTF-8?q?=E7=AE=A1=E9=81=93=E7=A1=AE=E8=AE=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SKILL.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/SKILL.md b/SKILL.md index 98361b6..f90e256 100644 --- a/SKILL.md +++ b/SKILL.md @@ -237,3 +237,17 @@ NW 7.40 specifics: - **Open SQL @ 转义一致性** — NW 7.40 要求一处用 `@` 则全 SQL 必须一致(`WHERE field = @lv_var` → `INTO TABLE @lt_data`),混用导致语法检查 2 错误。详见 `log/adt-nw740-open-sql-consistency.md`。 - **set_source HTTP 500(传输请求无对象)** — Lock 成功但写入 500,根因:Lock API 创建锁句柄但未绑定对象到传输请求。NW 7.40 需 SE09 手动添加对象。详见 `log/adt-set-source-500.md`。 - **CSRF token** — all writes require it; sap-cli handles automatically. + +### DDIC 结构/表类型落地方案(NW 7.40 无 ADT 端点时) + +`create --type structure|tabletype` 在 NW 7.40 报 404/415(端点缺失)。可用落地路径:自研落地报表 + `run-program`: + +1. `upload` 一个工具报表到 `$TMP`,内部调 `DDIF_TABL_PUT`(结构)/ `DDIF_TTYP_PUT`(表类型)写 DDIC,再调 `DDIF_TABL_ACTIVATE` / `DDIF_TTYP_ACTIVATE` 激活 +2. `run-program --name <工具报表>` +3. `read-table DD02L`(结构)/ `DD40L`(表类型)实查确认 `AS4LOCAL = 'A'` + +踩坑(S4T 实测): +- **`DD_OBJ_ACTIVATOR` 会转储** — 必须用 `DDIF_TABL_ACTIVATE` / `DDIF_TTYP_ACTIVATE` +- **`run-program` 端点不稳定** — 一次性批量生成全部结构的工具会反复 500/转储;**逐个落**才稳态 +- **结构不写 TADIR** — 落地后的结构在 DD02L/DD40L 可见但 TADIR 查不到,清点必须查字典表,不能用 TADIR 代替 +- **清理脚手架用 `delete`** — 需 `echo "yes" \|` 管道确认(见约束 5);删完用 TADIR/DD02L 独立复核,不采信 delete 回显