高级自定义 > 服务和基础结构自定义 > 企业层 > 文档抽象
  
文档抽象
wt.doc 包可提供受控文档的标准实现。文档模型的简化如下所示。此简化可显示一些构成 WTDocument 和 WTDocumentMaster 的核心接口。这些对象实际上可实现许多接口来获取其行为。要查看由这两个对象实现的接口的完整范围,请访问 Javadoc 中的 wt.doc.WTDocument 和 wt.doc.WTDocumentMaster。
文档包
基于为 wt.enterprise 包中的修订版本控制对象建立的模式来实现文档类。这些类 WTDocumentMaster 和 WTDocument 可提供可展现 wt.enterprise 中建立的管理特征的具体类,并可添加文档的细节。在 WTDocument 类上指定文档的特性。然后,出于标准化目的,将特性的总和存储在 WTDocumentMaster 上。更具体地说,WTDocument 可实现格式 ContentHolder,以便为其提供一个主要内容项和多个附属内容项。WTDocument 可以创建与其他文档的两种类型的关系。第一个 WTDocumentUsageLink 与 WTPartUsageLink 相似,原因在于该链接也会将 IteratedUsageLink 子类化。该链接没有数量。WTDocumentUsageLink 用于创建文档或文档结构之间的使用关系。如果文档由子文档组成,并且子文档可由其他文档重用,或需要单独控制,则文档应使用该链接。与部件实现类似,WTDocumentService 为导航此关系提供了便捷方法,并且存在可用于筛选结果的 WTDocument ConfigSpec。第二个 WTDocumentDependencyLink 可实现 IteratedDescribeLink,该链接也由 WTPartDescribeLink 实现。这是两个文档之间特定于版本的关系。此关系在客户端中显示为参考。可创建两个文档之间的参考以显示另一个文档的相关性。某个文档可能参考另一个文档中的某些信息,因此在创建或更新期间,会添加对该文档的参考。参考关系具有备注属性,可用于解释参考为什么存在或相关性是什么。WTDocument 服务还具有用于导航 WTDocumentDependencyLink 的便捷方法。
文档包是实现受修订版本控制的业务子类的一个示例。具体文档业务类继承自企业模型中受修订版本控制的业务模型 (主数据和 RevisionControlled) 模板。文档从企业对象 RevisionControlled 继承了其大部分功能。RevisionControlled 汇集了许多即插即用功能接口。要查看接口的完整列表,请访问 javadoc 中的 wt.enterprise.Revisioncontrol。特别是,该列表包括来自内容包的接口。这意味着 WTDocument 是内容载体;即,其可以包含文件或 URL。
属性位于 WTDocumentMaster 或 WTDocument 上。WTDocumentMaster 的属性对于所有版本和小版本具有相同的值。如果在创建多个版本和小版本后主数据的属性发生更改,则更改将反映在所有版本和小版本中。WTDocument 的属性对于每个小版本通常都具有不同的值,因此更改仅影响一个小版本。这就是针对 DocumentIteration 实现内容载体的原因。
特定于 Windchill Foundation & PDM 的属性
在所有小版本和版本中,文档的 docType 属性为通用属性。该属性仅存储在 WTDocument 中,以允许基于文档类型属性进行数据库分区。希望创建新文档类型的客户将向 DocumentType 资源束中添加值。
DocumentType 资源束可定义所有类型的文档。在用户构造文档时,他们可以从枚举列表中选择文档类型。客户可以通过在资源束中放置其他值来将新的文档类型添加到列表中。文档类型的 "$$" 前缀表示其是 Windchill 提供的文档类型。"$$" 前缀不能用于客户类型。
使用 DocumentType 资源束,可以构建用户可从中进行选取的新类型的文档。从管理的角度来看,这具有以下影响:
管理规则不识别新文档类型。因此,从管理的角度来看,所有文档类型都是相同的;这些类型收到相同的访问控制和索引规则。
在视图的工作流点中,docType 特性可用作工作流分支逻辑的活动变量。
要添加可具有不同管理控制的新文档类型,必须扩展 WTDocument 类。如果存在仅某些文档可以参与的特定关联,则 WTDocument 的子类化也是更可取的做法。如果不对 WTDocument 进行子类化,则很难指定这些种类的规则。扩展 WTDocument 时,请使用以下规则:
对于 WTDocument 的每个新子项,必须在 DocumentType 资源束中生成相应的条目。这可确保每个 WTDocument 子项的 WTDocumentMaster 对象均了解其文档版本的类型。
添加新的文档类时,不必扩展 WTDocumentMaster 类,而仅扩展 WTDocument 类。WTDocument 的所有子类都可以共享相同的 WTDocumentMaster 类。
遵循在 WTDocument 中建立的构造函数模式。从 WTDocument 中覆盖相应的初始化方法,调用 super.initialize(),然后执行特定于类的逻辑。具体来说,调用方法初始化 (编号、名称、类型),其中类型会替换为已添加到 DocumentTypeRB.java 的值。
部门以枚举类型属性或有效值列表的形式实现。有效值在 wt.doc.DepartmentListRB.java 文件中进行定义。DepartmentListRB.java 中的值可以更改、编译文件,并在代码库中进行替换。有关详细信息,请参阅枚举类型