扩展分类机制 (Extended Classification) 与 xProperties
在传统的 PLM 建模中,如果一个对象类(如零件 Part)有许多子类(如“电阻”、“螺钉”、“显示屏”),我们通常会在 ItemType 中定义单叉树式的 Class Structure。然而,当子类数量庞大且每个子类都有大量专属的技术参数时,传统建模会面临两个痛点:
- 数据库表膨胀:所有子类的专有属性都物理保存在同一张主表(如
[innovator].[PART])中,导致物理列超限或出现大量空值列。 - 多重分类困难:一个对象如果同时属于多个门类,传统的单层分类结构无法支持。
为了彻底解决上述问题,Aras 引入了 扩展分类机制 (Extended Classification)。
1. 核心概念对比
| 特性 | 传统单叉树分类 (Class Structure) | 扩展分类机制 (Extended Classification) |
|---|---|---|
| 层级关系 | 简单的树形分类,只支持单路径。 | 支持复杂的分类网络,可进行继承与挂载。 |
| 属性定义 | 属性必须在主 ItemType 上统一定义,通过“表单字段根据 Classification 条件显示隐藏”来模拟。 | 属性可以直接挂载在分类节点(xClass)上,只有被归类为该节点的 Item 才会动态绑定这些属性。 |
| 底层存储 | 所有属性物理保存在同一物理表中。 | 采用主表 + 扩展值表映射存储,大幅降低主表字段负担。 |
| 权限控制 | 无法对特定分类下的专属属性进行独立的权限划分。 | 支持针对特定分类和特定属性值配置精细化权限。 |
2. 扩展分类的核心元数据
- xProperty (扩展属性):独立于 ItemType 定义的物理属性。它可以复用在多个不同的分类树中。
- xClass (扩展分类):分类树中的一个节点,代表一个分类实体(如“陶瓷电容”)。它可以继承父节点的 xProperties,也可以定义自己独有的 xProperties。
- xClassification Tree (分类树):一个完整的分类层次体系。
- xClassPath (分类路径):对象分类的完整路径,例如
/Electronics/Capacitor/Ceramic。
3. 属性挂载与权限设计
在扩展分类中,属性值与分类操作的安全控制非常严密,这得益于双层权限机制:
3.1 分类修改权限 (Item Classification Permission)
控制哪些用户有权将某个 Item(如某个零件)归入特定的 xClass 节点,或者将其从该节点移出(Unclassify)。这防止了普通工程师随意修改器件的物料分类大类。
3.2 属性值权限 (xProperty Value Permission)
控制哪些用户能够读取、编辑挂载在特定分类上的 xProperty 的值。例如,即使所有用户都能看到某个“保密零件”的常规属性(如编码、名称),但只有特定安全级别的工程师能查看挂载在其 xClass 下的扩展涉密属性(如“芯片核心算法代码包物理路径”)。
4. 配置扩展分类的步骤
步骤一:创建扩展属性 (xProperties)
- 进入管理端 -> xProperties,新建所需的属性。
- 配置方式与常规 Property 类似(定义类型为 String, Float, List 等),但它们是不属于任何 ItemType 的游离属性。
步骤二:构建分类树 (xClassification Tree)
- 进入管理端 -> xClassification Trees,创建一个新分类树。
- 在 Tree Layout 选项卡中,右键新增子类节点(xClass),绘制企业分类大纲。
- 分配属性:选择特定的 xClass 节点,在 Properties 栏中,将刚才创建的
xProperties添加进去。子节点会自动继承所有来自父节点的属性。
步骤三:绑定到主对象类 (ItemType)
- 进入目标 ItemType(如
Part)。 - 在 xClassification Trees 关系页中,添加刚才创建的分类树。
- 这意味着该 ItemType 的所有实例均可以通过该树进行分类。
步骤四:改造表单界面 (xClass Control)
- 打开
Part的 Form 编辑器。 - 往表单中拖入一个特殊的控件:xClass Control(扩展分类控件)。
- 保存表单。用户在新建
Part时,可以在表单上通过该树形控件选择其归属的分类,一旦选中,表单会动态弹出一块专属区域,供用户填报该分类专有的 xProperties 参数。
5. 隐式与显式扩展属性 (Implicit vs. Explicit)
在关联底层数据时,扩展属性的表现形式有两种:
- 显式扩展属性 (Explicit xProperties):物理上明确地被绑定到了分类节点上,用户只有手动选择了对应的 xClass 后,才能输入并查看这些属性的值。
- 隐式扩展属性 (Implicit xProperties):在后台由系统自动关联或基于特定数据模型的继承规则计算得出,不需要工程师在前端手动选择分类便自动加载。
