在上下文复制期间处理本地数据
本主题介绍系统如何管理业务对象及其关系从源系统到目标系统的复制,特别是当其中一些对象已存在于本地目标系统中时。此举旨在规避冲突,实现数据的一致性。
本地对象行为
目标系统中的本地对象可以作为源系统中相应对象的占位符,并且可以继续独立扩展。如果此类对象未被标记为复制,这些对象会被视为本地对象。
复制冲突处理
• 先前行为 - 如果上下文复制检测到某些正在复制的业务对象已存在于本地封闭环境 (目标系统) 中,并且未被标记为复制,该复制会引发冲突。此冲突已通过跳过导入这些对象得到解决。
• 当前行为 - 如果上下文复制检测到任何正在复制的关系引用了此类本地对象,系统会在导入期间忽略这些关系来防止引发冲突。
包导出和导入
在复制期间,源系统导出的包中包含所有支持的对象及其业务标识。此包随后由目标系统或本地系统导入。
关系处理逻辑
在此导入操作期间:
• 系统首先尝试根据弱侧对象的 UFID 在目标系统中查找该对象。
• 如果 UFID 不匹配,系统会检查源系统中弱侧对象的业务标识是否与目标系统中的本地对象相匹配。
• 如果找到匹配的对象,将复制链接。
占位符配置
要启用占位符功能,请在源环境和目标环境的 wt.properties 文件中设置 wt.ixb.import.businessIdentityBasedSearchForLinks.placeholderObjectsOnly=true 特性。
|
|
在源系统中,这些对象称为“占位符”;而在目标系统中,这些对象称为“代理”,代表其实际实现。
|
本地对象复制规则
根据业务对象的业务标识在目标系统中发现业务对象时,复制过程将遵循以下规则:
• 条件链接复制:只有在复制强侧对象,且弱侧对象已存在于本地目标系统中并被标记为占位符时,才会复制链接 (关系)。只有在本地弱侧对象的业务标识与源系统提供的标识或收到的交付包中所含标识相匹配时,才会进行此复制。
• 基于锁定状况的链接复制:系统会根据对象的锁定状况确定业务对象是否适合进行链接复制。如果对象被标记为“已锁定用于复制”或“由产品设计包锁定”,将从链接复制过程中排除该对象。但是,如果对象被标记为“传输中”锁定,或被标识为本地对象,将允许该对象参与链接复制。
• 仅复制强侧:如果对象被标识为关系的弱侧,系统会仅复制强侧对象,并建立弱侧对象最新小版本的链接。弱侧对象本身仍为本地对象而不会被复制,并且会被标记为占位符。
• 不复制完全本地对象的链接:如果强侧对象和弱侧对象均存在于目标系统中且均为本地对象,不会复制两者之间的链接。
• 因锁定或待处理复制而导致复制受限:如果强侧对象属于下列其中一种情形,不会导入链接:
◦ 因管理锁定而无法复制,或者
◦ 被标记为复制,但尚未复制
• 部分或缺失业务标识:如果业务标识在导出期间部分可用或在源系统中缺失,仍会在目标系统中复制链接。
• 访问控制注意事项:如果弱侧对象存在于目标系统中,但由于访问限制或权限而无法被发现,系统会忽略此类链接的复制。
• 上下文注意事项:本地对象可以驻留在目标系统的任何上下文 (例如产品或存储库) 中。
• 在复制包中包括占位符:在源系统中,如果用户选择少数对象 (即关系中的弱侧对象) 作为占位符,系统会在导出复制包中仅包括这些选定对象的业务标识。这些标识通过其关联的链接进行传递。
示例
以下面的示例为例:由于源系统中弱侧对象 ChildC1 A.1 的业务标识与目标系统中 ChildC1 A.1 的业务标识相同,会在目标系统中复制强侧对象 PartP1 A.2。
|
源系统
|
目标系统 (复制前)
|
目标系统 (复制后)
|
|
PartP1 A.2
|
ChildC1 A.1 (本地)
|
PartP1 A.2 (复制)
|
|
ChildC1 A.1
|
ChildC1 A.1 (仍为本地)
|
如果弱侧对象在目标系统中的业务标识与其在源系统中的业务标识不匹配,会在目标系统中复制 PartP1 A.2,但不会复制链接。有关业务标识的详情,请参阅
对象的业务标识。
特例
在某些情况下,弱侧对象可能存在于与目标系统中强侧对象不同的上下文中。复制强侧对象时,系统也会复制关联的链接,但前提是弱侧对象在目标系统中的业务标识与其在源系统中的标识信息相匹配,并且弱侧对象在源系统和目标系统中均被标记为占位符。
虽然本主题侧重于常规业务对象复制,但类似的标识匹配原则也适用于变更管理对象。有关详情,请参阅
变更管理的业务标识。
如需了解如何在复制 CAD 文档期间处理本地数据,请参阅“CAD 文档限制”。