内联编辑(Inline edits):在表格里逐格改值
内联编辑让你不用打开完整表单,直接在表格/列表里改对象的单个属性。它和普通动作"先填全再提交"不同:每个参数都可省略、默认取对象现有值。但批量提交的机制,也带来了独特的坑。
https://www.palantir.com/docs/foundry/action-types/inline-edits/
原始标题:Inline edits
一句话速览
内联编辑(Inline edits):在表格里逐格改值:内联编辑让你不用打开完整表单,直接在表格/列表里改对象的单个属性。它和普通动作"先填全再提交"不同:每个参数都可省略、默认取对象现有值。但批量提交的机制,也带来了独特的坑。
什么是 action-backed inline edit
和普通动作校验/提交方式都不同。
普通动作需要设置多个参数才算有效;而 action-backed inline edit(动作支撑的内联编辑)相反:每个参数都是可选的(optional),并默认取对象的现有值(existing value)。于是用户可以一次只改一个属性。
内联编辑在 Workshop 与 Object Explorer 里都可用;它的具体配置取决于动作在哪里被使用。
在 Object Explorer 里配置内联编辑
从对象的 Interaction(交互)标签页下手。
要设置内联编辑动作,进入对象类型的 Properties(属性)标签页,再到 Ontology Manager 的 Interaction(交互)标签页。选中一个属性,在侧栏找到 Inline edit,从下拉里选一个可用动作类型,或新建一个(会触发动作类型创建流程)。
要点:每个属性只能有一个内联编辑动作类型。你可以把同一个动作类型复用作多个属性的内联编辑,也可以为不同属性分别建不同动作。
内联编辑对动作类型的要求
不是任何动作都能当内联编辑用。
一个动作要被接受为内联编辑动作,必须满足:
- 只能修改单个对象类型里的单个对象;
- 必须启用默认值(default values);
- 默认值必须来自定义该内联动作的对象引用参数(object reference parameter)——因此正在被改的属性,不能映射到静态值或"当前用户/当前时间"这类特殊值;
- 可以设置可见性状态与覆盖,但在 Object Explorer / Object Views 里会被忽略;
- 不能启用副作用 webhook 或副作用通知。
Workshop 中的内联编辑
无需额外配置,但并非都合适。
在 Workshop 里把某个动作类型用作内联编辑,不需要额外配置。但要注意:并非所有动作都适合"单元格级"的编辑。
正因为是批量(bulk)提交,一些动作可能失败或产生意外结果,例如:试图读取"另一动作可能已写入的数据",或两个不同的动作试图写入同一个对象。
批量提交与冲突:哪些会报错
这是内联编辑最容易踩的坑。
普通动作逐个(顺序)校验与提交;内联编辑则是批量校验与提交。因此"有效内联动作"必须提交互不冲突(non-conflicting)的编辑。实践中,同一表格编辑组件里配置的多个动作不能:
- 写入同一个对象;
- 创建同一个链接;
- 试图维持聚合值(aggregate)一致。
若内联编辑两次编辑同一对象,会直接返回错误;增删连接表链接(join table links)也不被支持,会报错。提交条件(submission criteria)会对每次编辑求值,但因批量提交,依赖共享/关联对象的累积式条件可能失效。
一页带走
延伸阅读 · 相关页面
按主题横向跳转,不必顺着目录一篇篇读。
常见问题速答 · FAQ
关于「内联编辑(Inline edits):在表格里逐格改值」,读者最常问的几个问题。