高级自定义 > 业务逻辑自定义 > 包自定义 > 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 移动到另一个上下文。
创建复制包
源对象
缺失对象
更改通告
Part2
更改任务
Part2
如果有多个链接到相同更改通告和更改请求的可更改项 (部件) 关联,则可更改项 (部件 2) 将被记录为更改活动和更改请求的缺失对象。
情况
结果
CR - C (部件 1)
 
CR - CN - CA - C (部件 2)
对于 CN 和 CA,C (部件 2) 被记录为缺失。
用例 6
更改任务和可更改项 (部件) 的更改通告缺失
创建部件 1 和部件 2。
创建此部件 1 的更改请求。
创建更改请求的更改通告。
转至更改任务并将部件 2 添加为受影响对象
创建更改通告的 missingchangeuser 和绝对拒绝读取权限。
使用 missingchangeuser 创建复制包
源对象
缺失对象
Part2
更改通告
更改任务
更改通告
如果有多个链接到相同更改通告和更改请求的可更改项 (部件) 关联,则更改通知将被记录为更改活动和可更改项 (部件 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
全局替换部件链接缺失对象处理
用例 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 建立的)。