规则全解:动作类型背后的逻辑引擎
规则(rules)把用户填的参数,翻译成对本体(Ontology)的编辑或平台里的其它效果。这一篇把规则的类型、取值与组合禁忌一次讲清。
https://www.palantir.com/docs/foundry/action-types/rules/
原始标题:Rules · Action types
一句话速览
规则全解:动作类型背后的逻辑引擎:规则(rules)把用户填的参数,翻译成对本体(Ontology)的编辑或平台里的其它效果。这一篇把规则的类型、取值与组合禁忌一次讲清。
规则是什么:两类效果
规则(rules)定义了动作类型的逻辑。
规则(rules)定义了动作类型的逻辑——它把参数(parameters)转换成本体编辑(Ontology edits)或其它效果。规则大致分两类:
- 编辑本体的规则:创建、修改、删除对象与链接;
- 触发其它效果的规则:在 Foundry 里触发别的影响(通知、webhook、构建等)。
对"规则能搭出什么",可回看本系列《动作·浏览》;这一篇聚焦规则本身的语义、取值映射与组合限制。
Ontology 规则清单
编辑本体的规则有哪些,各自做什么。
下面是一组常见的 Ontology 规则(编辑本体的规则):
| 规则 | 作用 |
|---|---|
| Create object | 创建预定义类型的对象(主键必填) |
| Modify object(s) | 修改主键来自对象引用参数的已有对象(不能引用本动作新建的对象) |
| Create or modify object(s) | 有对象就改,没提供就新建(自动 ID 或用户提交主键) |
| Delete object(s) | 删除主键来自对象引用参数的已有对象 |
| Create link(s) / Delete link | 创建/删除多对多链接(外键型要用 Modify object) |
| Function rule | 引用一个 Ontology edit function,输入来自参数;独占,不与其他 Ontology 规则组合 |
| Interface 系列规则 | 针对"实现某接口"的任意对象类型做增改删/链接 |
动手练:把左边的描述点选到右边正确的规则名上。
值映射:属性从哪取值
创建/修改对象与链接时,每个属性都要映射到一个值来源。
当创建或修改对象与链接时,规则需要额外的"值"。修改对象时,规则还定义了改哪些属性;而每个属性又被映射到一个值来源(链接规则只能取对象引用参数):
- From parameter(来自参数):一个与属性同类型的已有参数。默认每个新加的属性都会自动建一个同名参数并映射到它。
- Object parameter property(对象参数属性):某个已有对象引用参数的属性,其类型要与被映射的属性类型匹配。
- Static value(静态值):只存在于动作类型规则部分的固定值,用户在 Workshop、Slate、Object Views 里都改不了。
- Current User / Time(当前用户 / 时间):字符串属性可取"当前用户",时间戳属性可取"提交时间"这类上下文值;和静态值一样,提交时不可交互、也不能在动作其它地方复用。
你还可以在同一次动作里既创建对象又建好多对多链接:先配 Create object 规则(对象类型带多对多链接),再在 Add property 下方点 Add link 选链接类型并配置。而一对多 / 一对一链接,只需改对象上的外键即可。
组合与无效组合
多条规则会被编译成"每对象一次编辑",顺序很重要。
动作类型可以组合多条 Ontology 规则。当定义了多条规则时,动作后端会把它们编译成每个对象一次编辑(如 Add object、Modify object(s)、Delete object(s))。例如:一条规则把某属性更新为 "A",同动作另一条规则把它更新为 "B",最终编辑就只是更新为 "B"——规则顺序影响最终结果。
因此,以下对象编辑组合不被支持:
- 对象不能在"被新增或修之前"就被删除;
- 对象不能在"被新增之前"就被修改;
- 同一表单提交中,对象不能被创建两次。
副作用规则与高级构建
除了编辑本体,还有两类触发"别的效果"的规则。
触发副作用(side effect)的规则
- Notification(通知):发一条关于该动作的通知。可用参数自定义内容与接收人;用户可自行选择接收方式(站内推送、邮件或两者)。通知在所有编辑应用后发送,但内容基于"编辑前"的本体状态生成。
- Webhooks:动作应用后向外部系统发请求,可把动作参数传进去。可配置为在编辑前或编辑后运行(对应 Writeback / 普通 webhook 的时机)。
触发构建(build)的高级规则
- Schedule(计划):触发一次计划构建。动作参数可传进计划,进而传给构建内的参数化转换(parameterized transforms)。Foundry 会在构建开始后应用本体编辑。
一页带走
延伸阅读 · 相关页面
按主题横向跳转,不必顺着目录一篇篇读。
常见问题速答 · FAQ
关于「规则全解:动作类型背后的逻辑引擎」,读者最常问的几个问题。