用 Action 改数据

第 3 课 · 共 6 课 约 6 分钟

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

本课目标

读完这一课,你将能够

  • 在 /semantic 里执行一个 Action:填参数、先只校验、再提交
  • 读懂提交条件的失败信息,在 Action Log 里找到自己的那一次
  • 说出为什么数据只能通过 Action 改

为什么不能直接改格子

Object Explorer 看起来像一张表格,但格子不能直接改。原因有三条:

  • 数据源只读:ERP、MES、OA 里来的数据,Semantic 只读,永远不回写。
  • 数据源 ⊕ 改动:一个对象的当前值 = 数据源的值,加上语义层里的改动。改动单独存放,数据源下一次同步冲不掉它。
  • 留痕:每一次改动都要答得出谁、什么时候、改了什么、为什么。Action 把参数、规则、提交条件和记录放在一起,缺一样都不行。

表格用来看,Action 用来改。

填参数,先只校验,再提交

左栏 Actions 列出本组织的全部 Action。点开一个,就是它的参数表单;参数是对象的,用下拉选对象。从 Object View 里点 Action,那个对象已经替你填好。

  1. 01选 Action例如「更新健康度」
  2. 02填参数组织、健康度、一句原因
  3. 03只校验逐项检查,什么都不写
  4. 04提交一个事务:要么全改成,要么都不改
  5. 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,故意填一个不合格的参数,点「只校验」:提示指向哪一个参数?

小测

选一个答案,马上看解析。

Q1人用 Action 改了一家组织的客户阶段,第二天数据源又同步了一次,这个改动会怎样?

Q2点了「只校验」,所有项都通过了,数据改了吗?

Q3「已经是这个阶段了」这句话是从哪里来的?

延伸阅读