用 Action 改数据
填参数,先只校验再提交,读懂失败信息;每一次改动都进 Action Log。

本课目标
读完这一课,你将能够
- 在 /semantic 里执行一个 Action:填参数、先只校验、再提交
- 读懂提交条件的失败信息,在 Action Log 里找到自己的那一次
- 说出为什么数据只能通过 Action 改
为什么不能直接改格子
Object Explorer 看起来像一张表格,但格子不能直接改。原因有三条:
- 数据源只读:ERP、MES、OA 里来的数据,Semantic 只读,永远不回写。
- 数据源 ⊕ 改动:一个对象的当前值 = 数据源的值,加上语义层里的改动。改动单独存放,数据源下一次同步冲不掉它。
- 留痕:每一次改动都要答得出谁、什么时候、改了什么、为什么。Action 把参数、规则、提交条件和记录放在一起,缺一样都不行。
表格用来看,Action 用来改。
填参数,先只校验,再提交
左栏 Actions 列出本组织的全部 Action。点开一个,就是它的参数表单;参数是对象的,用下拉选对象。从 Object View 里点 Action,那个对象已经替你填好。
- 01选 Action例如「更新健康度」
- 02填参数组织、健康度、一句原因
- 03只校验逐项检查,什么都不写
- 04提交一个事务:要么全改成,要么都不改
- 05留记录进 Action Log 和编辑历史
「只校验」对应 API 里的 VALIDATE_ONLY:每个参数、每条提交条件都给出结果,但一个字也不写。没问题再点「提交」。命令行和智能体也是同一个 Action、同样的两步:
aidc semantic apply set-organization-health --param organization=cell-demo --param health=关注 --param note="试点范围还没定" --validate-only
aidc semantic apply set-organization-health --param organization=cell-demo --param health=关注 --param note="试点范围还没定"
失败信息与 Action Log
不通过有两种,都不会写入任何东西:
| 参数不合格 | 提交条件不满足 | |
|---|---|---|
| 例子 | 健康度填了「一般」,不在「良好、关注、风险」里 | 把已经是「试点」的组织调整为「试点」 |
| 谁在查 | 参数的类型、必填和值类型的约束 | 提交条件:拿参数和对象的当前值比 |
| 你看到什么 | 哪一个参数、哪里不对 | 写 Action 的人事先写好的那句话,例如「已经是这个阶段了」 |
开了 Action Log 的 Action,每成功提交一次,就在同一个事务里多记一条:哪个 Action、谁、什么时候、参数是什么、改了哪些对象。Action 页下方就是这份记录;它本身也是对象,可以查询、计数。
要点
- 数据源只读;当前值 = 数据源 ⊕ 语义层的改动,同步冲不掉改动。
- 改数据只走 Action:填参数,先只校验,再提交。
- 提交是一个事务:要么全改成,要么都不改。
- 失败有两种:参数不合格、提交条件不满足;后者显示事先写好的那句话。
- 每次成功提交都进 Action Log:谁、什么时候、参数、改了哪些对象。
练一练
执行一次 Action
在你有权限的组织里做;只校验不会写入任何东西,可以放心试。
打开一个 Action,故意填一个不合格的参数,点「只校验」:提示指向哪一个参数?
找一个带提交条件的 Action,填一组会让条件不满足的参数:你看到的失败信息是哪一句?
有权限提交时,提交一次,再到 Action Log 和那个对象的编辑历史里各找到这一次。
小测
选一个答案,马上看解析。
Q1人用 Action 改了一家组织的客户阶段,第二天数据源又同步了一次,这个改动会怎样?
当前值 = 数据源 ⊕ 语义层的改动。数据源只读、永不回写,同步也不会动语义层里的改动。
Q2点了「只校验」,所有项都通过了,数据改了吗?
只校验(VALIDATE_ONLY)一个字也不写;提交才在一个事务里写入。
Q3「已经是这个阶段了」这句话是从哪里来的?
提交条件不满足时,显示的是定义 Action 时写好的那句话,所以界面、命令行和智能体看到的都一样。