动作类型详解

参数默认值(default value)

默认值用来"预先填好"动作表单里的参数。这一篇讲它有什么用、值从哪里来,以及当应用已经传了变量时,谁优先。

原文 Palantir Foundry · Action types
本文来源 · Source 内容整理自 Palantir Foundry 官方文档:
https://www.palantir.com/docs/foundry/action-types/parameters-default-value/
原始标题:Set parameter default value

一句话速览

参数默认值(default value):默认值用来"预先填好"动作表单里的参数。这一篇讲它有什么用、值从哪里来,以及当应用已经传了变量时,谁优先。

1 默认值有什么用
动作的默认值(default value)用来在动作表单里预先填好(prefill)某个参数
2 默认值的三种来源
文档把默认值的来源分成几类,点击分层卡展开看
3 局部变量优先于全局默认
文档明确了一条优先级规则:局部默认值总是优先于全局默认值
4 默认值还是必填
很多初学者会混淆"给默认值"和"设为必填"
1

默认值有什么用

一句话:在表单里预填参数,让多个应用共用同一套逻辑。

动作的默认值(default value)用来在动作表单里预先填好(prefill)某个参数。它是在参数级别配置的,在 Workshop、Object Explorer、Object Views、Quiver、Slate 里都生效。

最大的好处是"一次配置,处处生效"。文档说:把默认值部署到动作上,就能在多个使用方应用之间统一动作逻辑,不必在每个应用里各自再写一遍默认值。

They can be deployed to standardize action logic across multiple consuming applications…可以把它们部署到多个使用方应用之间,统一动作逻辑……
对比一下:没有默认值的话,表单要填什么得在每个应用里分别配置;想改成别的行为(比如从 A320 改成 A380),可能要手动改好几个应用。有了默认值,只改动作一处即可。
2

默认值的三种来源

默认值可以是一个固定值、所选对象的某个属性,或特殊类型类生成的值。

文档把默认值的来源分成几类,点击分层卡展开看:

固定静态默认值(static default value)
参数永远预填同一个写死的值。
例如一个修改飞机 Type 属性的动作,把 Type 参数设成静态默认值 A320。点进该参数、添加静态默认值即可,用户打开表单就看到已填好。
属性对象属性默认值(object property default)
预填"当前所选对象的某个属性值"。
例如动作 Change Airplane Details:把每个参数预填为"当前选中飞机对象的当前属性值",用户只想改一项、其余保持原样。注意——只有排在输入列表该参数上方的对象引用参数,才能被用作默认值来源。
类型类类型类预填(type class prefill)
自动生成 UUID、当前用户 ID 等特殊值。
给参数标注"类型类(type class)"就能注入特殊值,如自动生成的 UUID 或当前用户 ID。这类值通常把参数可见性设为 hidden,避免用户手改。
3

局部变量优先于全局默认

一句话:应用传进来的变量,会盖过动作上的全局默认值。

文档明确了一条优先级规则:局部默认值总是优先于全局默认值。当任何 Workshop 变量带默认值传给动作时,表单会用 Workshop 变量的值来预填;Object Views 的环境变量、Slate 的默认值也是同样的道理——每次动作实例里提供的默认值优先

Local default values (for example, Workshop variables) always take precedence over global default values.局部默认值(例如 Workshop 变量)总是优先于全局默认值。
迁移提醒:文档指出,凡是迁移到"用默认值"的方案,都要先移除各应用里的局部覆盖,否则那些局部值会继续盖过你在动作上设的全局默认。

下面这个小实验让你看到这条优先级:

默认值优先级小实验

全局默认值设的是"当前用户",但如果 Workshop 已经传了一个变量值,表单实际会预填哪个?

全局默认值(参数级)
当前用户
配置在动作上
表单实际预填
点击上面按钮试一试。
4

默认值还是必填?

默认值不是必填的替代品,二者要解决不同的问题。

很多初学者会混淆"给默认值"和"设为必填"。简单说:默认值是"帮用户先填一个",用户仍可改或不改;必填是"用户不填就不能提交"。下面三道判断,点选项看解析:

一页带走

① 预填表单
默认值在参数级配置,跨应用统一逻辑。
② 三种来源
固定值、对象属性、类型类特殊值。
③ 局部盖全局
应用传的变量优先于动作上的全局默认。
④ 默认≠必填
默认值帮填,必填卡提交,作用不同。

延伸阅读 · 相关页面

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

常见问题速答 · FAQ

关于「参数默认值(default value)」,读者最常问的几个问题。

默认值有什么用?
动作的默认值(default value)用来在动作表单里预先填好(prefill)某个参数。它是在参数级别配置的,在 Workshop、Object Explorer、Object Views、Quiver、Slate 里都生效。
默认值的三种来源是什么?
文档把默认值的来源分成几类,点击分层卡展开看。
局部变量优先于全局默认是什么?
文档明确了一条优先级规则:局部默认值总是优先于全局默认值。当任何 Workshop 变量带默认值传给动作时,表单会用 Workshop 变量的值来预填;Object Views 的环境变量、Slate 的默认值也是同样的道理——每次动作实例里提供的默认值优先。
默认值还是必填?是什么?
很多初学者会混淆"给默认值"和"设为必填"。简单说:默认值是"帮用户先填一个",用户仍可改或不改;必填是"用户不填就不能提交"。下面三道判断,点选项看解析。