IBM DOORS删除文件夹移动模块后入链接消失的解决方法咨询
在IBM DOORS中移动模块后恢复入链接的实用方案
一、用DOORS内置工具快速修复(优先推荐)
DOORS自带的链接一致性检查器可以自动识别并修复因模块移动导致的断开链接,无需编写代码:
- 打开DOORS客户端,依次点击顶部菜单栏
工具→链接→检查一致性 - 在弹出的对话框中,勾选查找指向已移动模块的断开链接,然后选择需要检查的范围(比如ModuleX所在的数据库或父项目FolderA/FolderB)
- 点击
检查,工具会自动扫描出所有指向旧路径的入链接,点击修复即可完成路径更新。
二、移动前做设置,从根源避免链接断开
如果提前配置,移动模块时根本不会出现链接丢失的问题:
- 打开要移动的ModuleX,点击
文件→属性 - 在
常规标签页中,勾选保持外部引用的路径(英文版本为Preserve path for external references) - 完成设置后再执行移动操作,所有入链接会自动同步更新模块的新路径,无需后续修复。
三、优化版DXL脚本(内置工具失效时使用)
如果内置工具无法覆盖你的场景,可以用针对性的DXL脚本替代全量遍历,大幅提升效率:
// 配置旧路径和新路径 string oldModulePath = "/FolderA/FolderB/FolderC/ModuleX" string newModulePath = "/FolderA/FolderB/ModuleX" // 获取新位置的模块句柄 Module targetMod = read(fullName(newModulePath), true) if (null targetMod) { print "错误:目标模块不存在\n" return } // 遍历数据库中所有指向旧路径的链接并更新 LinkRef linkRef for linkRef in database do { if (target(linkRef) == oldModulePath) { setTarget(linkRef, targetMod) } } save(targetMod) close(targetMod) print "入链接修复完成\n"
这个脚本直接通过旧路径匹配断开的链接,无需遍历所有模块的内容,比全量扫描快数倍。
内容的提问来源于stack exchange,提问作者Erencan Tekin
相关产品推荐
相关产品推荐

