动作类型详解
函数动作·总览(Function-backed Actions)
简单规则搞不定的复杂改动,可以让一个函数(function)来定义编辑逻辑。这一篇讲清 什么是函数动作、什么时候该用它、以及它的能力边界。
本文来源 · Source
内容整理自 Palantir Foundry 官方文档:
https://www.palantir.com/docs/foundry/action-types/function-actions-overview/
原始标题:Action types · Function-backed actions · Overview
https://www.palantir.com/docs/foundry/action-types/function-actions-overview/
原始标题:Action types · Function-backed actions · Overview
★
一句话速览
函数动作·总览(Function-backed Actions):简单规则搞不定的复杂改动,可以让一个函数(function)来定义编辑逻辑。这一篇讲清 什么是函数动作、什么时候该用它、以及它的能力边界。
1 让一个函数来决定"怎么改"
在动作类型里,规则(rules)定义了"动作被应用时对象该如何变化"
2 灵活也要守规矩
函数动作虽然灵活,但仍然受双重约束
1
一句话:让一个函数来决定"怎么改"
函数动作 = 用函数承载动作类型的编辑逻辑。
在动作类型里,规则(rules)定义了"动作被应用时对象该如何变化"。很多动作类型用简单规则就能搞定 (创建/修改/删除对象,或创建/删除对象间链接)。
action types can be configured to call a function that defines the logic of how objects should be modified. These action types are often referred to as function-backed actions.
动作类型可以被配置为调用一个函数,由它定义"对象该如何被修改"的逻辑。这类动作类型常被称为"函数动作"。
但当简单规则不够用时,你可以把动作类型配置成调用一个函数来定义编辑逻辑——这就是 函数动作(function-backed action)。借助函数,你可以构造任意复杂度的动作:读取任意数量的对象、按需修改对象。
2
什么时候该用函数动作?
简单规则表达不了的改动,就交给函数。
改一组关联对象
例如把某
Incident 的状态置为 Closed,同时把所有关联 Alert 的状态置为 Resolved。复杂计算后写回
基于较复杂的业务逻辑(读多个对象的数据)算出一个值,再写回某对象属性。
批量建多种对象
一次性创建多种不同类型的对象,并在它们之间建立链接。
任意复杂度
只要逻辑写得出,函数就能承载——这是它相对简单规则的最大优势。
3
函数动作 vs 简单规则
不是替代,而是互补。
× 只用简单规则
局限
· 只能表达"创建/修改/删除对象"或"建/删链接"
· 跨多个关联对象、复杂读取与计算的改动难表达
· 一次创建多类对象并互连较繁琐
→
✓ 上函数动作
获得
· 任意复杂逻辑:读任意多对象、按需改
· 把"计算 + 改对象"打包进一次动作
· 适合批量、跨对象、条件复杂的场景
选择原则:能用简单规则清楚表达的,就别上函数;当"改什么"依赖复杂读取/计算、或要跨多个关联对象时,再选函数动作。
4
限制:灵活也要守规矩
受动作类型上限与函数执行上限双重约束。
函数动作虽然灵活,但仍然受双重约束:
- 动作类型上限(action type limits):动作类型本身的规模/数量等限制仍然适用。
- 函数执行上限(function execution limits):函数运行的时间、资源等限制同样适用。
设计提示:因为函数动作背后是真实的函数执行,写函数时要留意执行上限——尤其批量或跨大量对象时,
必要时考虑后面的"批量执行"篇来优化。
5
上手路径
从"函数入门"到"接到动作"。
第 1 步学函数基础
先按函数文档入门,建一个基础函数仓库并发布一个函数。
参考 Functions 的 Getting started 与 Functions on objects 教程。
第 2 步写 Ontology 编辑函数
用 Ontology edits 参考,写一个带 @OntologyEditFunction() 标注的编辑函数。
注意:用于动作的函数要用 @OntologyEditFunction() 而非 @Function()。
第 3 步接到动作类型
在动作类型的 Rules 里加一条 Function 规则,把函数接上。
详见下一篇《函数动作·开始》。
提示:点击每条可展开更多细节。
6
动手:这个场景该用函数动作吗?
逐个判断。点选项看解析。
一页带走
① 函数动作 = 函数承载编辑
把"怎么改"的逻辑交给一个函数定义。
② 何时用
跨关联对象、复杂计算写回、批量建多类对象并互连。
③ 与简单规则互补
简单规则能表达的就别上函数;表达不了再用。
④ 双重限制
同时受动作类型上限与函数执行上限约束。
延伸阅读 · 相关页面
按主题横向跳转,不必顺着目录一篇篇读。
常见问题速答 · FAQ
关于「函数动作·总览(Function-backed Actions)」,读者最常问的几个问题。
一句话速览是什么?
函数动作·总览(Function-backed Actions):简单规则搞不定的复杂改动,可以让一个函数(function)来定义编辑逻辑。这一篇讲清 什么是函数动作、什么时候该用它、以及它的能力边界。
一句话:让一个函数来决定"怎么改"?
在动作类型里,规则(rules)定义了"动作被应用时对象该如何变化"。很多动作类型用简单规则就能搞定 (创建/修改/删除对象,或创建/删除对象间链接)。