Property 属性
属性(Property)是 ItemType 的数据载体,每一个 Property 对应物理数据表中的一列。Aras 区分三种属性来源:系统自动创建的 System Properties、管理员手动添加的 Custom Properties,以及跨 ItemType 共享的 Extended Properties。
系统属性
每当新建一个 ItemType 并保存后,Aras 会自动为其创建 23 个系统属性。这些属性由平台内部管理,不应删除或修改其功能语义。
| 属性名 | 类型 | 说明 |
|---|---|---|
id | String | 32 位全企业唯一 GUID,记录的物理主键 |
config_id | String | 跨版本共享的配置标识,所有 Generation 记录保持一致 |
created_by_id | Item | 创建该记录的 User ID |
created_on | Date | 创建时间 |
modified_by_id | Item | 最后修改该记录的 User ID |
modified_on | Date | 最后修改时间 |
current_state | Item | 当前 Lifecycle State 的 ID |
state | String | 当前状态名称(文本) |
is_current | Boolean | 是否为最新版本 |
is_released | Boolean | 是否处于已发布状态 |
generation | Integer | 版本代次,每次编辑并保存后自动递增 |
major_rev | String | 主修订版本号(如 A、B、C) |
minor_rev | String | 次修订版本号(保留字段,默认未使用) |
keyed_name | String | 键名,用于界面显示的友好标识 |
permission_id | Item | 当前生效的权限包 ID |
locked_by_id | Item | 锁定该记录的 User ID(Edit 状态时设置) |
owned_by_id | Item | 拥有者身份 ID,对应 Owner 动态身份 |
managed_by_id | Item | 管理者身份 ID,对应 Manager 动态身份 |
team_id | Item | 当前关联的 Team ID |
not_lockable | Boolean | 是否允许被锁定编辑(Lifecycle 状态控制) |
new_version | Boolean | 标记该版本是否为新版本 |
classification | String | 扩展分类路径 |
css | String | 级联样式表标识 |
自定义属性
管理员为特定 ItemType 创建的业务字段。建议在自定义属性名前加下划线前缀(如 _title、_cost),便于与系统属性区分。
数据类型一览
| 数据类型 | 存储方式 | 说明 |
|---|---|---|
| String | nchar(n) | 固定长度字符串,需指定 Length |
| Text | nvarchar(max) | 可变长度字符串,最大长度由数据库决定 |
| Integer | int | 整数 |
| Decimal | decimal(p,s) | 定点数,需配置 Precision(总位数)和 Scale(小数位数) |
| Float | float | 浮点数 |
| Boolean | bit | 真/假,界面显示为复选框 |
| Date | datetime | 日期与时间,支持日历选择控件和多种格式掩码 |
| Image | Vault 引用 | 图片文件,存储在 Vault 中,数据库记录文件 ID |
| List | nchar(n) | 下拉列表,关联一个预定义的 List 元数据 |
| Filter List | nchar(n) | 级联过滤列表,列表项受另一个属性值约束 |
| Color List | nchar(n) | 彩色下拉列表,每项显示不同背景色,存储十六进制颜色值 |
| Multi Value List | nchar(n) | 多选列表,选中值以逗号分隔存储 |
| Item | GUID | 外键关联,指向另一个 ItemType 的具体记录 |
| Foreign | 计算字段 | 联动属性,通过 Item 类型属性拉取关联记录的其他字段值,不在物理表中存储 |
| Federated | 无存储 | 联合字段,数值在运行时由 Server Method 从外部系统获取,不在数据库中存储 |
| Sequence | nchar(n) | 自动编号,基于 Sequence 模板每次创建时递增 |
| MD5 | nchar(32) | 密码散列字段,存储 32 位十六进制 MD5 值 |
| Formatted Text | nvarchar(max) | 富文本,支持 HTML 格式化编辑 |
| Multilingual String | 多语言存储 | 多语言字符串,每种已安装语言可存储独立值 |
属性配置项
属性的各项配置项在 ItemType 的 Properties 标签页中设置:
基本设置
| 配置项 | 说明 |
|---|---|
| Length | String 类型的最大字符长度 |
| Precision | Decimal 类型的总有效位数 |
| Scale | Decimal 类型的小数位数 |
| Required | 是否必填。设为 true 时,保存前会强制校验字段不为空 |
| Unique | 是否唯一。对多个属性同时设为 Unique,表示这些属性的组合值必须唯一 |
| Indexed | 是否在该列上创建数据库索引,提升查询性能 |
| Default Value | 新建记录时的默认值,必须与数据类型匹配 |
网格显示设置
| 配置项 | 说明 |
|---|---|
| Hidden | 是否在主搜索网格中隐藏该列 |
| Hidden2 | 是否在关系网格中隐藏该列 |
| Alignment | 网格中的对齐方式:Left / Right / Center |
| Width | 列宽(像素) |
| Sort Order | 列的显示顺序,数值小的靠左 |
| Order By | 排序优先级,数值小的先排序 |
Keyed Name(键名)
键名决定了 Item 在快速搜索、标签标题、外键引用等场景下的显示文本。没有配置键名时,默认显示 GUID。
通过为属性设置 Keyed Name Order(整数值),可以将多个属性拼接为键名,数值表示拼接顺序:
例:User 的
last_name设为 1,first_name设为 2,键名显示为Smith Peter。
特殊配置说明
Pattern(格式掩码)
针对 Date 类型和 String 类型,Pattern 提供格式约束:
Date 类型支持的内置格式:
| 格式名称 | 示例 |
|---|---|
| Short Date | mm/dd/yyyy |
| Short Date and Time | mm/dd/yyyy hh:mm:ss AM/PM |
| Long Date | DayOfWeek, Month dd, yyyy |
| Long Date and Time | DayOfWeek, Month dd, yyyy hh:mm:ss AM/PM |
String 类型 支持正则表达式约束,例如要求输入电话号码格式:
[0-9]{3}-[0-9]{3}-[0-9]{4}$Foreign Property(联动属性)
当一个属性的数据类型为 Item 时,可以再创建一个 Foreign 类型属性,通过 Foreign Property 字段指定要拉取关联 Item 的哪个属性值。
示例:在采购单中关联了 Vendor(Item 类型),再添加一个 Foreign 属性拉取 Vendor 的电话号码,实现数据联动展示。
Item Behavior(版本行为)
当 Item 类型属性的目标 ItemType 开启了版本控制时,需要设置关联行为:
| 行为 | 说明 |
|---|---|
| Fixed | 固定关联到添加时的那个版本,不会随目标记录升版而变化 |
| Float | 始终指向目标记录的最新版本 |
Extended Properties(扩展属性)
扩展属性由 Classification Administrator 在全局范围内创建,通常用于存储跨 ItemType 共享的通用信息(如型号、尺寸、颜色、重量等)。
扩展属性可以组织成树形分类结构(Extended Classification),在 Item 上通过 classification 字段选择分类路径,系统自动关联对应的扩展属性集。
扩展属性 vs 自定义属性
如果某个属性只属于一个 ItemType,用 Custom Property。如果需要在多个 ItemType 之间共享同一组属性定义,用 Extended Property。
