请求编写DXL脚本恢复DOORS Session前的3000个属性值
DOORS DXL脚本:恢复当前视图属性至会话修改前状态
以下脚本可批量恢复当前打开视图中所有对象的属性值至本次会话修改前的状态,适用于误操作修改大量属性后的回滚操作(仅支持未保存的会话修改)。
脚本代码
// 恢复当前视图中所有对象的属性至会话修改前状态 void restoreOriginalValues(View v) { Object obj Attribute attr int count = 0 int total = number(v) // 获取视图内对象总数 for obj in v do { count++ // 每处理100个对象打印一次进度,避免无响应假象 if (count % 100 == 0) { print "已处理 " count "/" total " 个对象\n" } // 遍历对象的所有属性 for attr in obj do { // 仅恢复本次会话中被修改过的属性 if (isOriginal(obj, attr)) { obj.attr = original(obj, attr) } } } print "恢复完成!共处理 " count " 个对象\n" } // 主执行逻辑 View currentView = current if (currentView == null) { error "请先打开目标视图再执行脚本!" } else { restoreOriginalValues(currentView) }
使用说明
- 打开DOORS并进入需要恢复的目标视图。
- 打开DXL编辑器(路径:
Tools > Edit DXL)。 - 将上述代码粘贴至编辑器,点击
Run执行。 - 查看DOORS的输出窗口,跟踪处理进度。
注意事项
- 仅对未保存到数据库的会话修改有效;若已保存,需通过DOORS的版本回溯功能恢复。
- 若只需恢复特定属性,可修改脚本中属性遍历的逻辑,添加属性名称判断(例如
if (name(attr) == "需求描述"))。 - 处理3000个对象时,建议关闭其他无关DOORS窗口,提升运行效率。
内容的提问来源于stack exchange,提问作者Dragoş
相关产品推荐
相关产品推荐

