动作·结构体(Actions on Structs)
结构体(struct)属性把多个字段打包成一个值。这一篇讲怎么用结构体参数(struct parameter) 来创建和修改带 struct 属性的对象,以及它的映射、默认值与约束规则。
https://www.palantir.com/docs/foundry/action-types/actions-on-structs/
原始标题:Action types · Actions on structs
一句话速览
动作·结构体(Actions on Structs):结构体(struct)属性把多个字段打包成一个值。这一篇讲怎么用结构体参数(struct parameter)来创建和修改带 struct 属性的对象,以及它的映射、默认值与约束规…
一句话:用 struct 参数喂给 struct 属性
结构体属性的值,只能通过结构体参数来提供。
结构体属性(struct property)的值,可以通过动作来创建和修改——值由动作里的一个 结构体参数(struct parameter)提供。
也就是说:一个 STRUCT 类型的参数,内部可以嵌套多个字段(如 summary、resolutionTime、owner),
分别有自己的基础类型。它专门用来给一个 struct 属性"整体供货"。
BOOLEAN、DATE、DOUBLE、GEOPOINT、
INTEGER、LONG、STRING、TIMESTAMP。
定义作用于 struct 属性的动作
要把 struct 参数的每个字段,映射(map)到 struct 属性的对应字段。
用带 struct 参数的动作,你可以创建和修改带 struct 属性的对象类型。struct 属性的值在一个映射到该属性的 struct 参数里提交; struct 属性的每个字段都要映射到 struct 参数的某个具体字段。
如果 struct 属性类型发生破坏性变更(新增字段、删除字段、改字段基础类型),相关的动作类型也必须跟着改,否则会出问题。
表单呈现与默认值
字段在表单里成组出现;默认值可取自某对象的同类属性。
在动作表单(action form)里,struct 参数和别的参数一样能填,只是它的字段会成组渲染,而不是散开成独立字段。
默认值(default values)是逐字段定义的:每个参数字段映射到某个指定对象类型 struct 属性的字段。
必须给参数字段的所有字段都定义默认值,且都映射到同一对象类型 struct 属性的字段。
充当默认值的对象由动作里一个 ObjectReference 参数指定——提交时提供的那个对象,其 struct 属性字段值会自动填进对应的参数字段。
字段级约束
每个字段可单独设约束;整组必须全过才有效。
约束(constraints)可以像普通参数一样,逐字段配置在 struct 参数字段上。
例如给字符串字段加一个"长度在 10 到 500 之间"的约束,那么 summary 字段就至少要 10 个字符、最多 500 个字符。
summary)不达标,用户就无法提交整个 struct 参数值。
局限:记住这四条
struct 属性的进出通道相当受限。
- struct 属性值只能通过 struct 参数创建或修改;静态值、引用对象属性等方式都不支持。
- 一个 struct 属性只能通过单个 struct 参数创建或修改,动作里不能有多个参数映射到同一 struct 属性。
- struct 参数只能用来创建/修改 struct 属性;其字段不能单独拿去创建/修改非 struct 属性。
- 只有单一对象类型的 struct 属性字段能作默认值,静态值等不被支持。
动手:关于 struct 参数,哪句对?
逐个判断。点选项看解析。
一页带走
延伸阅读 · 相关页面
按主题横向跳转,不必顺着目录一篇篇读。
常见问题速答 · FAQ
关于「动作·结构体(Actions on Structs)」,读者最常问的几个问题。