Skip to content

Extended Classification 与 xProperties

Extended Classification 用于给既有 ItemType 增加可复用、按分类出现的属性。 它适合“同一业务对象有大量分类专属参数”或“一个对象需要同时属于多个分类”的模型, 但不应被描述成替代所有普通 Property 的新数据库结构。

适用版本

本文以 Aras Innovator 12、2023、2024 与 2025 Release 的 Extended Classification 官方指南为基线。 Release 37 仍有与 polysource 重命名相关的已知修复记录;升级或改名后必须重测分类树。 菜单和表单呈现以目标 Release 为准。


1. 什么时候使用扩展分类

先按数据语义选择模型:

需求推荐模型
每个 Item 都存在、参与核心业务规则的字段普通 Property
单一路径、主要用于传统表单或搜索分组ItemType Class Structure
按 xClass 动态出现、可跨 ItemType 复用的参数xProperty + xClassification Tree
独立生命周期、权限、版本和关系的数据独立 ItemType

扩展分类不应仅用于“少建几个数据库列”。先判断字段是否具有独立业务语义、是否需要关系、版本或专属权限。


2. 核心对象

2.1 xProperty

xProperty 是扩展属性定义。它可以:

  • 显式关联到 ItemType。
  • 通过 xClass 分配给 Item。
  • 在不同 ItemType 或分类树中复用。
  • 配置数据类型、默认值等定义信息。

2.2 xClassification Tree 与 xClass

xClassification Tree 是层次结构;其中每个节点是 xClass。 一个 xClass 可以分配多个 xProperty,子节点会看到从父节点继承的 xProperty。

2.3 标准、显式与扩展属性

官方搜索界面区分:

  • Standard:普通 Property,以及显式定义在 ItemType 上的 xProperty。
  • Extended:通过 xClassification Tree 分配的 xProperty。
  • All:以上两组的合并视图。

“显式 xProperty”不是后台自动推导出来的属性;它是管理员明确关联到 ItemType 的扩展属性。


3. 分类树的两个选择开关

创建树时应先决定选择规则。

Restrict Selection To Only Leaf Classes

启用后,用户只能选择没有子节点的叶子 xClass。 适合要求最终分类必须足够具体的物料目录。

Restrict Selection To A Single Class

启用后,同一 Item 在该树中只能选择一个 xClass。 关闭后,可以为同一 Item 分配多个 xClass,并获得这些分类提供的 xProperties。

多分类不是默认设计答案

多分类会增加必填冲突、同名属性、搜索条件和权限组合的复杂度。 只有业务确实需要“同时属于多个类别”时才关闭单分类限制。


4. 创建步骤

4.1 定义 xProperties

  1. 进入 Extended Classification 管理区域。
  2. 创建语义稳定的 xProperty,例如 xp-capacitance
  3. 选择数据类型,并设置标签、默认值、Required、Read Only 等基础值。
  4. 若属性需要在没有分类时也存在,再评估是否显式关联 ItemType。

4.2 建立分类树

  1. 创建 xClassification Tree。
  2. 设置是否只允许叶子、是否只允许单一分类。
  3. 在树编辑器中建立 xClass 层次。
  4. 选中节点并分配 xProperties。
  5. 调整显示顺序。

从父节点继承的属性与当前节点直接分配的属性在编辑器中有不同视觉提示。

4.3 按分类覆盖显示规则

同一 xProperty 分配到某个 xClass 时,可以按分类覆盖:

  • Label。
  • Default Value。
  • Required。
  • Read Only。

这些是分类上下文中的覆盖,不应通过复制多个同义 xProperty 来模拟。

4.4 关联 ItemType

在分类树的 Item Types 关系中选择可使用该树的 ItemType。 完成后,以普通业务用户打开对象,确认分类选择器和 xProperties 实际显示。


5. 三类扩展权限

Extended Classification 的权限不是一个总开关。

权限控制内容
xProperty Value Permission对 xProperty 值的 Get、Update、Can Change 等访问
Item Classification Permission谁能对 Item 分类或取消分类
Explicit Permission谁能显式定义/取消定义 xProperty,以及查询显式属性

普通 Item Permission 仍然存在。用户看不到 Item 时,不能因为拥有 xProperty 权限就绕过 Item 权限。

不要用“隐藏字段”代替安全

表单不显示某个 xProperty 只是 UI 行为。敏感数据必须由 Item Permission 和扩展权限共同保护, 并使用低权限账号通过 AML/REST 再验证一次。


6. 搜索行为

官方网格允许在 Properties 与 Classifications 两列中组合条件。

  • 选择 AllStandardExtended 控制可选属性范围。
  • xClass 可使用 AND 或 OR 组合。
  • 可选择某个 xClass,或把其子类一起纳入。
  • 可以搜索“有任意分类”或“没有分类”的 Item。
  • Extended Property Search 可跨 ItemType 查找带 xProperties 的 Item。

同名 xProperty、多个 xClass 与多 ItemType 查询可能产生歧义。项目应为 xProperty 建立命名规范,并按官方 AML 指南处理 defined_as 等限定能力。


7. 可复现实验:电容分类

在隔离环境准备测试 ItemType z_Test_Component

7.1 配置

  1. 创建 xProperty:xp-capacitancexp-voltagexp-package
  2. 创建树 z_Component_Class
  3. 建立 Electronics / Capacitor / Ceramic 三层 xClass。
  4. Capacitor 分配前两个属性,在 Ceramic 分配 xp-package
  5. 将树关联到测试 ItemType。

7.2 验证继承与覆盖

  1. 创建一个测试 Item 并选择 Ceramic
  2. 确认能看到三个属性。
  3. Ceramic 上覆盖 xp-voltage 的 Label 或 Required。
  4. 重新打开 Item,确认覆盖仅在该分类上下文生效。

7.3 验证多分类

  1. 关闭 Restrict Selection To A Single Class。
  2. 添加另一个独立 xClass 与专属 xProperty。
  3. 将同一 Item 同时归入两个 xClass。
  4. 确认两组属性可见,并用 AND/OR 搜索验证结果集。

7.4 验证权限

  1. 创建“可分类但不可改值”和“可改值但不可分类”两个测试 Identity。
  2. 分别登录并执行分类、取消分类、读取和更新。
  3. 再通过 AML 或 REST 复测,不只看表单是否置灰。
  4. 保存请求、响应和用户 Identity 作为证据。

8. 常见错误

宣称 xProperty 是“独立的物理列”

官方建模语义比底层表结构更稳定。不要依赖或教学直接操作内部存储。

把隐式属性解释为系统自动计算

官方主要区分普通 Property、显式定义的 xProperty、以及通过分类树获得的 extended xProperty。 不要增加没有文档依据的“自动计算继承”概念。

忘记树的单分类开关

能否多选由 Restrict Selection To A Single Class 决定,不是所有扩展分类天然多选。

只测试管理员账号

管理员无法暴露真实权限问题。必须使用业务 Identity 测试分类与值权限。

直接改 SQL

分类关系、值与权限应通过受支持的 UI、AML 或 API 管理,避免破坏平台维护的模型。


9. 官方依据

文档最后核验:2026-08-13。

本站内容仅供学习与参考