不止改字段:动作类型还能做哪些事
快速开始只做了"改一个属性",而动作类型(action type)的配置面能表达远不止属性编辑——这一篇逐一认识可用的规则。
https://www.palantir.com/docs/foundry/action-types/explore-action-types/
原始标题:Explore other action types · Action types
一句话速览
不止改字段:动作类型还能做哪些事:快速开始只做了"改一个属性",而动作类型(action type)的配置面能表达远不止属性编辑——这一篇逐一认识可用的规则。
从"改一个属性"到"改变本体"
动作类型能表达的能力,远超一次属性编辑。
快速开始里建的那个动作类型(action type),本质是一条"修改单个对象某个属性"的规则(rule)。但同一个配置面还能让你:创建和删除对象、管理对象之间的链接(link)、用函数(function)跑自定义逻辑、调用外部系统、通知用户、触发构建(build),以及合并场景(scenario)里的暂存编辑。
这一篇用快速开始里的 Demo Ticket 对象类型当例子,方便你接着同一个本体(Ontology)往下做。下面这张表把"想达成的目标"和"该加哪条规则"对应起来。
| 想做的事 | 该加的规则 |
|---|---|
| 创建一个新对象 | Create object |
| 用户没提供对象时也能建 | Create or modify object |
| 删除已有对象 | Delete object |
| 关联 / 解除两个对象 | Create link / Delete link |
| 规则描述不清的逻辑 | Run function |
| 通知有变动的用户 | Notification |
| 应用后重算数据集 | Schedule |
下面动手练:把左边的"目标"点选到右边正确的规则上。
规则加在哪里:向导 vs 详情页
规则(rules)可以从两个地方添加。
新建向导会配置一个新动作类型的第一条规则:在 Action type 步打开 Object 标签、选对象类型,再在 Object actions 下选这个动作要做的改动,并在 Mapping 步挑选包含的属性。
对于一个已经存在的动作类型,则在 Ontology Manager 里打开它,切到 Rules 标签,点 Add new rule 选择需要的规则。本页讲到的每条规则都能在这里加。
创建、修改、删除对象
这几条规则直接增删改本体里的对象。
快速开始改的是"用户选中的对象"。若想改成新建一张工单,就加一条 Create object 规则并选 Demo Ticket 对象类型。对象类型的主键(本例是 Ticket ID)是必填属性,必须填上;再用 Add property 把 Title、Status、Priority 等其它属性加进来。
每加一个属性,系统会自动创建一个同名参数(parameter)并把它映射到该属性。你也可以把属性映射到"对象引用参数的某个属性"、一个用户改不了的静态值(static value),或"当前用户 / 提交时间"。
另两条相关规则:
- Create or modify object:改对象引用参数提供的对象;若没提供,则新建一个(自动生成唯一 ID,或用用户提交的主键)。
- Delete object:删除对象引用参数提供的对象;它不能引用同一个动作里新建的对象。
管理与对象之间的链接
动作既能改属性,也能维护对象间的关系。
该用哪条规则,取决于链接类型(link type)的基数(cardinality):
- 多对多(many-to-many):加 Create link 规则关联两个由对象引用参数提供的对象,或加 Delete link 规则解除关系。
- 一对一 / 一对多:关系存在对象的外键(foreign key)属性上,要用 Modify object 规则去设置或清空那个外键属性,而不是用链接规则。
你还可以在同一个动作里既创建对象又建好它的多对多链接:先配置 Create object 规则(对象类型要带多对多链接类型),再在 Add property 下方点 Add link 选择链接类型并配置。
函数、外部系统与其它能力
当声明式映射不够用时,还有这些规则可用。
Run function(跑自定义逻辑)
规则用"声明式映射"描述编辑,但有时不够——比如要改"用户选中的对象所关联的所有对象"、要从读多个对象的业务逻辑里算出某属性、或要建多种类型的对象并互相链接。这时就加一条 Run function 规则,选已发布的 Ontology edit function(本体编辑函数)及其版本。函数的每个输入都会变成一个参数,可像其它参数一样加约束。注意:它不能和其他 Ontology 规则组合。默认动作停留在你选的版本上,也可开启 auto upgrades 在运行时解析版本区间。
Webhook(调用外部系统)
当某个外部系统才是流程的"真相源"时,webhook 规则会在应用动作时向该系统发请求,并可以把动作参数作为输入传过去。两条规则时机不同:
- Webhook:在对象编辑应用之后发送(Side Effects 组);可有多个;失败不展示给终端用户。
- Writeback Webhook:在任何其它规则评估之前发送(External Request 组);失败则编辑不应用、用户可见失败;只能有一个,其输出参数可供后续规则使用。
Notification / Schedule / Apply scenario / Interface 规则
Notification 规则在动作应用后通知用户(内容用动作前本体状态生成);Schedule 规则(Advanced 组)在动作应用后触发一次构建;Apply scenario 把场景里的暂存编辑作为单笔事务提交(需要持有场景 RID 的 Scenario 参数);实现某个接口(interface)的对象类型,则有专门的 Interface 规则族(Create/Modify/Delete object of interface 等)。
一页带走
延伸阅读 · 相关页面
按主题横向跳转,不必顺着目录一篇篇读。
常见问题速答 · FAQ
关于「不止改字段:动作类型还能做哪些事」,读者最常问的几个问题。