动作类型详解

参数(parameter)总览

参数是动作(action)的输入口,连接规则(rules)与 Workshop、Object Views 等界面。这一篇带你认识参数的本质、常见形态,以及它在提交时如何把值交给规则。

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

一句话速览

参数(parameter)总览:参数是动作(action)的输入口,连接规则(rules)与 Workshop、Object Views 等界面。

1 参数是动作的输入口
在 Foundry 里,动作类型(action type)定义的是"能做什么",而不是"对哪条数据做"
2 参数有哪些形态
官方文档没有给出一份"全部参数类型清单",但在讲解中多次出现以下形态
3 参数如何在动作里流动
文档用"修改工单状态"举了个完整例子:一个 Ticket 对象参数让用户选中要处理的工单,一个 Status 字符串参数承载期望的新…
4 每个参数都能单独配置
文档强调:每个参数都可以单独配置
1

参数是动作的输入口

一句话:动作本身不含数据,真正的数据来自参数。

在 Foundry 里,动作类型(action type)定义的是"能做什么",而不是"对哪条数据做"。真正要在提交时处理的数据,由参数(parameter)带进来。文档开篇就点明了这一点:

Parameters are the inputs of an action type.参数是动作类型的输入。

可以把参数理解成装"外部值"的变量。它的值来自三种地方:用户在表单里填写的内容、上游应用(如 Workshop)传进来的变量,或所选对象(object)的某些属性。参数是动作类型与 Foundry 其它应用(Workshop、Slate、Object Views)之间的接口

关键直觉:参数不是写死在规则里的常量,而是在每次提交时被"带入"规则的值。换不同的参数值,同一个动作就能作用在不同的对象或状态上。
2

参数有哪些形态

文档没有固定枚举,但反复出现这几种常见形态。

官方文档没有给出一份"全部参数类型清单",但在讲解中多次出现以下形态。下面用可展开的分层卡帮你建立印象,点击每一层看说明:

对象对象类型 / 对象引用参数
让用户选择一个对象,参数值 = 被选中的那个对象。
例如一个 Ticket 对象参数,提交时取值为"用户当前选中的那张工单"。它可以是"单个对象引用",也可以配置成允许选择多个对象。
基础基础类型参数(string / number / boolean 等)
用户输入一段文字、一个数字,或从下拉里挑一个值。
例如 Status 参数定义为字符串,承载"工单期望变成的状态"。这类参数常被做成单选 / 多选下拉。
隐藏隐藏参数(hidden parameter)
不在表单里暴露给用户,专门用来携带上下文。
例如用 Previous Status 隐藏参数保存"改动前的状态",规则就能对比改动前后,而用户既看不到也不会误改它。

另外,参数还能接收来自宿主应用的局部变量(local variable),比如 Workshop 里的变量。文档还提到,你可以用值类型(value type)去约束动作参数,从而把同一套校验规则在 Foundry 内复用。

别硬记清单:记不住形态没关系,关键是想清楚"这个参数要装什么值、值从哪来"——下面几篇会逐个讲默认值、过滤、隐藏与覆盖。
3

参数如何在动作里流动

从"用户选择"到"规则执行",参数负责搬运值。

文档用"修改工单状态"举了个完整例子:一个 Ticket 对象参数让用户选中要处理的工单,一个 Status 字符串参数承载期望的新状态。提交动作时,这两个参数的值一起被交给规则(rules),规则据此去改对象。

进阶一点的玩法:用隐藏参数 Previous Status 保存"改动前的状态"。这样规则既能拿到新状态,也能对比旧状态,例如记录"谁把工单从 A 改成了 B"。

Parameters transport values across the action type and can be referenced in rules…参数在动作类型之间搬运值,并且可以被规则引用……

也就是说,参数的值可以在这些地方被引用:传给规则去改对象 / 链接 / 副作用、写进提交条件(submission criteria)判断动作能否提交、在覆盖(override)里改变后续参数的配置。下面的小实验让你直观感受"参数 → 规则"这条链路:

参数流向小实验

选择一张工单和目标状态,观察动作提交时参数如何把值交给规则。

Ticket 参数(对象)
提交时传给规则的对象
Status 参数(字符串)
动作执行后的新状态
规则(rules)拿到这两个参数后,会把工单 的状态更新为选中的新状态。
4

每个参数都能单独配置

同一个动作里的不同参数,可以走完全不同的配置。

文档强调:每个参数都可以单独配置。常见的几个开关是——

  • 是否暴露在表单里(exposed in form):暴露才让用户看到;不暴露就成隐藏参数。
  • 是否允许用户修改(changeable by user):可改由用户填,不可改就是只读 / 由系统带值。
  • 是否必填(required):必填则用户不填就不能提交。

下面用三道判断题练手(点选项看解析):

一页带走

① 参数是输入口
动作不含数据,参数在提交时把值带入规则。
② 形态看"装什么"
对象 / 基础类型 / 隐藏参数,区别在值从哪来、用户看不看得到。
③ 参数会流动
值可被规则、提交条件、覆盖引用,串起整个动作。
④ 逐参数配置
暴露、可改、必填三个开关各自独立,按需开关。

延伸阅读 · 相关页面

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

常见问题速答 · FAQ

关于「参数(parameter)总览」,读者最常问的几个问题。

参数是动作的输入口是什么?
在 Foundry 里,动作类型(action type)定义的是"能做什么",而不是"对哪条数据做"。真正要在提交时处理的数据,由参数(parameter)带进来。文档开篇就点明了这一点。
参数有哪些形态?
官方文档没有给出一份"全部参数类型清单",但在讲解中多次出现以下形态。下面用可展开的分层卡帮你建立印象,点击每一层看说明。
参数如何在动作里流动?
文档用"修改工单状态"举了个完整例子:一个 Ticket 对象参数让用户选中要处理的工单,一个 Status 字符串参数承载期望的新状态。提交动作时,这两个参数的值一起被交给规则(rules),规则据此去改对象。
每个参数都能单独配置是什么?
文档强调:每个参数都可以单独配置。常见的几个开关是——。