You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求编写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ş

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 22:12:24