动作类型详解

内联编辑(Inline edits):在表格里逐格改值

内联编辑让你不用打开完整表单,直接在表格/列表里改对象的单个属性。它和普通动作"先填全再提交"不同:每个参数都可省略、默认取对象现有值。但批量提交的机制,也带来了独特的坑。

原文 Palantir Foundry · Action types 预计阅读 11 分钟 互动演示 + 5 道测验
本文来源 · Source 内容整理自 Palantir Foundry 官方文档:
https://www.palantir.com/docs/foundry/action-types/inline-edits/
原始标题:Inline edits

一句话速览

内联编辑(Inline edits):在表格里逐格改值:内联编辑让你不用打开完整表单,直接在表格/列表里改对象的单个属性。它和普通动作"先填全再提交"不同:每个参数都可省略、默认取对象现有值。但批量提交的机制,也带来了独特的坑。

1 action-backed inline edit
普通动作需要设置多个参数才算有效;而 action-backed inline edit(动作支撑的内联编辑)相反:每个参数都是可选…
2 在 Object Explorer 里配置内联编辑
要设置内联编辑动作,进入对象类型的 Properties(属性)标签页,再到 Ontology Manager 的 Interact…
3 内联编辑对动作类型的要求
一个动作要被接受为内联编辑动作,必须满足
4 Workshop 中的内联编辑
在 Workshop 里把某个动作类型用作内联编辑,不需要额外配置
1

什么是 action-backed inline edit

和普通动作校验/提交方式都不同。

普通动作需要设置多个参数才算有效;而 action-backed inline edit(动作支撑的内联编辑)相反:每个参数都是可选的(optional),并默认取对象的现有值(existing value)。于是用户可以一次只改一个属性

内联编辑在 WorkshopObject Explorer 里都可用;它的具体配置取决于动作在哪里被使用。

2

在 Object Explorer 里配置内联编辑

从对象的 Interaction(交互)标签页下手。

要设置内联编辑动作,进入对象类型的 Properties(属性)标签页,再到 Ontology Manager 的 Interaction(交互)标签页。选中一个属性,在侧栏找到 Inline edit,从下拉里选一个可用动作类型,或新建一个(会触发动作类型创建流程)。

要点:每个属性只能有一个内联编辑动作类型。你可以把同一个动作类型复用作多个属性的内联编辑,也可以为不同属性分别建不同动作。

3

内联编辑对动作类型的要求

不是任何动作都能当内联编辑用。

一个动作要被接受为内联编辑动作,必须满足:

  • 只能修改单个对象类型里的单个对象
  • 必须启用默认值(default values)
  • 默认值必须来自定义该内联动作的对象引用参数(object reference parameter)——因此正在被改的属性,不能映射到静态值或"当前用户/当前时间"这类特殊值;
  • 可以设置可见性状态与覆盖,但在 Object Explorer / Object Views 里会被忽略
  • 不能启用副作用 webhook 或副作用通知。
4

Workshop 中的内联编辑

无需额外配置,但并非都合适。

在 Workshop 里把某个动作类型用作内联编辑,不需要额外配置。但要注意:并非所有动作都适合"单元格级"的编辑。

"Inline edits are validated and submitted in bulk."内联编辑是批量校验与提交的。

正因为是批量(bulk)提交,一些动作可能失败或产生意外结果,例如:试图读取"另一动作可能已写入的数据",或两个不同的动作试图写入同一个对象

5

批量提交与冲突:哪些会报错

这是内联编辑最容易踩的坑。

普通动作逐个(顺序)校验与提交;内联编辑则是批量校验与提交。因此"有效内联动作"必须提交互不冲突(non-conflicting)的编辑。实践中,同一表格编辑组件里配置的多个动作不能:

  • 写入同一个对象
  • 创建同一个链接
  • 试图维持聚合值(aggregate)一致。

若内联编辑两次编辑同一对象,会直接返回错误;增删连接表链接(join table links)也不被支持,会报错。提交条件(submission criteria)会对每次编辑求值,但因批量提交,依赖共享/关联对象的累积式条件可能失效。

动手试:这个动作适合做内联编辑吗?
有效
互不冲突
多个动作分别改不同对象的独立属性,不写同对象、不建同链接、不维护聚合。
无效
会报错
两次编辑同一对象,或增删 join table links,都会触发用户可见的错误。
内联编辑的提交方式是?点击揭晓。

一页带走

① 逐格改值
每个参数可选、默认取现有值;在 Workshop 与 Object Explorer 可用。
② 动作有硬要求
仅改单对象类型的单对象、启用默认值、禁用副作用 webhook/通知。
③ 批量提交
内联编辑批量校验提交;因此累积式提交条件可能不像逐个跑那样有效。
④ 别冲突
不写同对象、不建同链接、不维护聚合;二次改同对象会报错。

延伸阅读 · 相关页面

按主题横向跳转,不必顺着目录一篇篇读。

常见问题速答 · FAQ

关于「内联编辑(Inline edits):在表格里逐格改值」,读者最常问的几个问题。

内联编辑对动作类型的要求是什么?
一个动作要被接受为内联编辑动作,必须满足。
Workshop 中的内联编辑是什么?
在 Workshop 里把某个动作类型用作内联编辑,不需要额外配置。但要注意:并非所有动作都适合"单元格级"的编辑。
批量提交与冲突:哪些会报错?
普通动作逐个(顺序)校验与提交;内联编辑则是批量校验与提交。因此"有效内联动作"必须提交互不冲突(non-conflicting)的编辑。实践中,同一表格编辑组件里配置的多个动作不能。