高级自定义 > 业务逻辑自定义 > 包自定义 > Windchill 复制 - 超出上下文的集合与缺失的对象
Windchill 复制 - 超出上下文的集合与缺失的对象
使用 Windchill 上下文同步复制时,如果对象与对象之间的关系不能从正在同步复制的上下文交叉到其他上下文中的对象,则高度结构化数据可能会出现问题。在这种情况下,默认行为是在上下文边界处截断关系,以便仅将上下文中的对象包括在要同步复制的包中。
可将上下文同步复制的行为更改为追踪交叉上下文关系,并通过使用以下特性在同步复制包中包括其他已收集的对象:
名称
说明
默认值
com.ptc.windchill.wp.rep.enableOutOfContextCollection
控制同步复制的上下文之外的链接对象集合。
false
com.ptc.windchill.wp.enableMissingObjectTrackingSource
控制源系统上的缺失对象跟踪。
false
com.ptc.windchill.wp.enableMissingObjectTrackingTarget
控制目标系统上的缺失对象跟踪。
false
特性 enableOutOfContextCollection - 逻辑
如果为对象启用了 com.ptc.windchill.wp.rep.enableOutOfContextCollection 特性,并且上下文中的部件或 CAD 文档具有除上下文以外的链接,则使用以下集合逻辑:
对于同步复制上下文中的每个部件版本,集合会收集以下内容:
所有 (使用) 部件依存对象 (使用配置规范 LATEST) 的子项。
与种子对象或其依存对象相关的所有文档。
与种子对象或其依存对象相关的所有变更对象。
与种子对象或其依存对象相关的所有替换部件。
对于同步复制上下文中的每个 CAD 文档版本,集合会收集以下内容:
所有 (使用) CAD 文档依存对象 (使用配置规范 LATEST) 的子项。
与种子对象或其依存对象相关的所有变更对象。
所有绘图、族表、类属和已发布的内容。
* 
对于不是部件或 CAD 文档的复制包成员,将不会收集任何内容。
对于所收集的依存对象,集合中将包括每个已发布修订版本的最新小版本以及任何未发布修订版本的最新小版本。例如,假设部件具有以下版本:
A.1 (已发布)
B.1 (正在工作)
C.1 (已发布)
D.1 (正在工作)
D.2 (正在工作)
E.1 (正在工作)
E.2 (正在工作)
收集了以下版本:
A.1 (已发布)
B.1 (正在工作)
C.1 (已发布)
D.2 (正在工作)
E.2 (正在工作)
* 
其他相关对象 (非子对象) 仅从通过初始配置规范 (LATEST) 选择的对象收集。而不会从后续收集的版本收集。
例如,如果通过配置规范 LATEST 选择了子部件的部件 B 修订版本 2,则收集器会收集与部件 B 修订版本 2 相关的变更对象和文档。如果部件的部件 A 修订版本 2 已发布,则该修订版本将包括在包中,但其相关对象 (变更对象、文档等) 不包括在包中。
在收集过程中应用了标准访问控制,以便仅收集执行刷新的人员可访问的对象。
集合逻辑示例
示例 1:
REL - 已发布,IW - 正在工作
收集的结果如下:
对象
收集的版本
缺失对象
备注
部件 1
A
种子对象
部件 2
C
通过 LATEST 配置规范包括
部件 2
B
将包括但不收集先前发布的版本
部件 2
A
将包括但不收集先前发布的版本
部件 3
Y
不会从部件 2 修订版本 A 收集
部件 4
Y
不会从部件 2 修订版本 B 收集
部件 5
A
通过 LATEST 配置规范包括
部件 6
A
通过 LATEST 配置规范包括
部件 7
不收集,因为父项未包括在内
部件 8
不收集,因为父项未包括在内
部件 9
不收集,因为父项未包括在内
部件 10
不收集,因为父项未包括在内
如果使用了 LATEST 配置规范,则收集部件 2 修订版本 C 以及部件 5 和部件 6 。还包括部件 2 的先前发布修订版本 (但不会从中收集)。部件 3 在部件 2 修订版本 A 下标记为缺失,部件 4 在部件 2 修订版本 B 下标记为缺失。
如果使用 LATEST RELEASED 配置规范,则会收集部件 2 修订版本 B、部件 4 修订版本 A 和部件 9。还包括其更高的未发行修订版本 (但不会从中收集)。部件 3 在部件 2 修订版本 A 下标记为缺失,部件 5 和部件 6 在部件 2 修订版本 C 下标记为缺失,部件 10 在部件 4 修订版本 A 下标记为缺失。
在上述任一情况下,部件 7 和部件 8 是从未遇到的第二级关联 (包括或标记为缺失)。
示例 2:
收集的结果如下:
对象
已包括
缺失对象
备注
部件 1
Y
包括在同步复制的上下文中
部件 2
Y
通过配置规范包括
部件 3
Y
通过配置规范包括
部件 4
Y
通过配置规范包括
文档 1
Y
与部件 2 相关
文档 2
N
Y
不会追踪文档与文档之间的关系
文档 3
Y
与部件 3 相关
文档 4
N
Y
仅在上下文中追踪部件与 CAD 关系
变更请求 1
Y
与部件 1 相关
变更请求 2
N
Y
不会追踪文档与更改之间的关系
变更请求 3
Y
包括在同步复制的上下文中
示例 3:
收集的结果如下:
对象
已包括
缺失对象
备注
部件 1
Y
部件 2
Y
部件 3
Y
部件 4
N
Y
部件 5
Y
文档 0
N
N
文档 1
N
Y
文档 2
Y
文档 3
Y
文档 4
N
N
变更请求 1
Y
Y
变更请求 2
N
Y
特性 enableMissingObjectTrackingSource - 详细信息
启用 com.ptc.windchill.wp.enableMissingObjectTrackingSource 特性后,系统将计算复制包交付的缺失对象,将其包括在交付 zip 中,并进行存储以供稍后检索。
需要记住以下几点:
对于导出并包含在 zip 中的可复制对象,缺失对象信息将包含在 zip 中。
在增量交付的情况下,不会包括未导出对象的缺失对象信息。如果对象在之前已复制,或者对象无法访问以进行复制,则不会包括它们。
缺失对象信息适用于满足以下条件的可复制对象:未进行复制且会链接到将被复制并包含在 zip 中的对象。
“缺失对象”表格中的“缺失对象链接名称”“缺失对象角色名称”列提供了有关缺失对象与包中所含源对象之间关系的信息。
缺失对象功能支持以下关联:
链接名称
角色 A (父项)
角色 B (子项)
FormalizedBy
在 Fox 中已避免使用
已避免使用
AddressedBy2
TheMarkUpTheViewable
Representation
WTDocumentDependencyLink
说明
说明方
WTDocumentUsageLink
使用方
使用
EPMBuildRule
构建源
构建目标
WTPartUsageLink
使用方
使用
WTPartReferenceLink
参考方
参考
WTPartDescribeLink
说明
说明方
ReportedAgainst
变更事项
可变更项 2
AffectedActivityData
变更活动 2
可变更项 2
RelevantRequestData2
变更请求 2
可变更项 2
ChangeRecord2
变更活动 2
可变更项 2
SubjectProduct
WTPart 主数据
变更请求 2
ProblemProduct
WTPart 主数据
变更事项
WTPartAlternateLink
WTPart 主数据
WTPart 主数据
SubstituteLinkDependencyProcessor
WTPart 主数据
WTPart 使用关系链接
HangingChangeLink
变更活动
可变更项
FlexibleChangeLinkDependencyProcessor
EPMMemberLink
EPMReferenceLink
NoteHolderNoteLink
ConfigurableDescribeLink
说明方
说明
ConfigurableMastersLink
追踪方
追踪
ConfigurableReferenceLink
参考方
参考
ConfigurableRevisionLinkCustomProcessor
链接自
链接到
变更活动-可变更项关联的缺失对象处理
对于变更活动 (CA)、变更请求 (CR) 和可变更项 (C) 关联,会考虑通过关联可变更项对变更通告 (CN) 和变更活动进行缺失对象处理。
用例 1
变更通告和可变更项 (部件) 缺少一个变更活动
创建部件 1 和部件 2。
创建此部件 1 的变更请求
创建变更请求的变更通告。
变更任务 >> 添加部件 2 作为受影响对象。
变更通告 >> 实现计划 >> 添加变更任务 2 并将部件 2 添加为受影响对象。
将变更任务 2 生命周期状态设置为“正在审阅”。
针对变更任务创建 missingchangeuser 和绝对拒绝读取权限,状态为“正在审阅”。
使用 missingchangeuser 创建复制包
结果:
源对象
缺失对象
变更通告
变更任务 2
部件
变更任务 2
如果有多个将相同可变更项链接到相同变更通告的可变更项关联,则不会将可变更项/变更通告记录为第二个变更活动的缺失对象。仅会将变更活动记录为缺失对象。
情况
结果
CR - C (部件 1)
CR - CN - CA1 - C (部件 2)
CR - CN - CA2 - C (部件 2)
对于 CN 和 C,CA2 均被记录为缺失。
用例 2
可变更项 (部件) 缺少变更通告和变更任务
创建部件。
创建此部件的变更请求。
创建变更请求的变更通告。
转至变更任务并将部件添加为受影响对象
将变更通告移至其他上下文。变更任务也将移动到其他上下文。
创建复制包
源对象
缺失对象
部件
变更通告
部件
变更任务
当为可变更项 (部件) 创建变更任务和变更通告时,如果将变更通告移动到其他上下文,则变更任务也会移动到其他上下文。此处,会将变更通告和变更任务记录为部件的缺失对象。
情况
结果
CR - CN - CA - C
CR - CN - CA - C
对于 C,CA 和 CN 均被记录为缺失
用例 3
可变更项 (部件) 和变更通告的变更任务缺失
创建部件。
创建此部件的变更请求。
创建变更请求的变更通告。
转至变更任务并将部件添加为受影响对象。
创建变更任务的 missingchangeuser 和绝对拒绝读取权限。
使用 missingchangeuser 创建复制包
源对象
缺失对象
变更通告
变更任务
部件
变更任务
当变更任务链接至可变更项 (部件) 和变更通告时,但对于变更任务的读取权限被拒绝,则会通过同步复制将变更任务以及变更通告记录为部件的缺失对象。
情况
结果
CR - CN - CA - C
CR - CN - CA - C
对于 C 和 CN,CA 将被记录为缺失
用例 4
变更通告的变更任务和可变更项 (部件) 缺失
创建部件 1 和部件 2。
创建此部件 1 的变更请求
创建变更请求的变更通告。
转至变更任务并将部件 2 添加为受影响对象
将部件 2 移动到另一个上下文
创建复制包
源对象
缺失对象
变更通告
部件
变更通告
变更任务
如果有多个链接到相同变更通告和变更请求的可变更项 (部件) 关联,则会将可变更项和变更请求记录为变更通告的缺失对象。
情况
结果
CR - C (部件 1)
CR - CN - CA - C (部件 2)
对于 CN,CA 和 C (部件 2) 均被记录为缺失。
用例 5
变更通告和变更任务的可变更项 (部件) 缺失
创建部件 1 和部件 2。
创建此部件 1 的变更请求。
创建变更请求的变更通告。
转至变更任务并将部件 2 添加为受影响对象
将部件 2 移动到另一个上下文。
创建复制包
源对象
缺失对象
变更通告
部件 2
变更任务
部件 2
如果有多个链接到相同变更通告和变更请求的可变更项 (部件) 关联,则可变更项 (部件 2) 将被记录为变更活动和变更请求的缺失对象。
情况
结果
CR - C (部件 1)
CR - CN - CA - C (部件 2)
对于 CN 和 CA,C (部件 2) 被记录为缺失。
用例 6
变更任务和可变更项 (部件) 的变更通告缺失
创建部件 1 和部件 2。
创建此部件 1 的变更请求。
创建变更请求的变更通告。
转至变更任务并将部件 2 添加为受影响对象
创建变更通告的 missingchangeuser 和绝对拒绝读取权限。
使用 missingchangeuser 创建复制包
源对象
缺失对象
部件 2
变更通告
变更任务
变更通告
如果有多个链接到相同变更通告和变更请求的可变更项 (部件) 关联,则变更通告将被记录为变更活动和可变更项 (部件 2) 的缺失对象。
情况
结果
CR - C (部件 1)
CR - CN - CA - C (部件 2)
对于 CN 和 C (部件 2),CN 将被记录为缺失。
* 
要执行用例 1 和 3,请在 WPTypeBasedPropertyLoader 中启用复制包的 DisableAccessControlOnLinkExport
替换链接的缺失对象处理
用例 1
在上下文 A 中创建部件 1。
在上下文 B 中创建两个部件 (部件 2 和部件 3)。
在上下文 A 中,添加部件 2 作为部件 1 的子项,并创建部件 3 作为部件 2 的全局替代部件。
根据需要检入部件。
创建上下文 A 的复制包。
上下文 A 的“缺失对象”选项卡将显示部件 1 与 部件 2 之间的关系。(此关系是由 WTPartUsageLink 建立的)。
创建上下文 B 的复制包。
上下文 B 的缺失对象将不会显示任何缺失对象。
用例 2
在上下文 A 中创建两个部件 (部件 1 和部件 2)。
在上下文 B 中创建部件 3。
在上下文 A 中,添加部件 2 作为部件 1 的子项,并创建部件 3 作为部件 2 的全局替代部件。
根据需要检入部件。
创建上下文 A 的复制包。
上下文 A 的“缺失对象”选项卡将显示部件 2 与 部件 3 之间的关系。(此关系是由 WTPartSubstituteLink 建立的)。
创建上下文 B 的复制包。
上下文 B 的缺失对象将不会显示任何缺失对象。
* 
以下链接是仅子项链接,因此,仅当这些链接的子项位于另一个上下文中且已在父上下文中创建复制包时,才会报告缺失对象。
WTPartUsageLink
WTDocumentUsageLink
EPMMemberLink
* 
当源服务器上缺失与父项部件具有使用关系的特定替换部件时,“缺失对象”表格以下列格式显示缺失对象的角色名称:
源服务器:特定替换部件 -> 父项部件的标识
目标服务器:特定替换部件 -> 子项部件的标识
部件的标识包括部件编号、部件名称、组织、版本和视图。
请看以下示例:
父项 A.1
子项 A.1 特定替换部件 A.1
“缺失对象”表中的“缺失对象角色名称”列显示以下详细信息:
源服务器:特定替换部件 > 000002,父项,演示组织,A.1 (设计)
目标服务器:特定替换部件 > 000005,子项,演示组织,A.1 (设计)
全局替换部件链接缺失对象处理
用例 1
在上下文 A 中创建部件 1。
在上下文 B 中创建两个部件 (部件 2 和部件 3)。
在上下文 A 中,添加部件 2 作为部件 1 的子项,然后创建部件 3 作为部件 2 的全局替换部件。
根据需要检入部件。
创建上下文 A 的复制包。
上下文 A 的“缺失对象”选项卡将显示部件 1 与 部件 2 之间的关系。(此关系是由 WTPartUsageLink 建立的)。
创建上下文 B 的复制包。
上下文 B 的缺失对象将不会显示任何缺失对象。
用例 2
在上下文 A 中创建两个部件 (部件 1 和部件 2)。
在上下文 B 中创建部件 3。
在上下文 A 中,添加部件 2 作为部件 1 的子项,并创建部件 3 作为部件 B 的全局替换部件。
根据需要检入部件。
创建上下文 A 的复制包。
上下文 A 的缺失对象选项卡将显示部件 2 与 部件 3 之间的关系。(此关系是由 WTPartAlternateLink 建立的)。
创建上下文 B 的复制包。
上下文 A 的“缺失对象”选项卡将显示部件 3 与 部件 2 之间的关系。(此关系是由 WTPartAlternateLink 建立的)。
这对您有帮助吗?