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

如何修改DOORS中分析向导生成的DXL代码?

问题根因

分析向导自动生成的追踪列属于DOORS内置的受保护列,默认锁死DXL编辑入口,所以打开列属性浏览DXL时所有选项灰化、无法选中Current、看不到生成源码是默认机制,不是操作错误或者软件故障。

可落地实现方案
  • 方案1:新建自定义DXL列替代原受保护列(推荐,无后续覆盖风险)
    不需要强行修改原锁死的向导列,直接新建一个同位置的DXL类型列,复现原列的多层链接追踪逻辑,同时嵌入skip list去重逻辑即可。核心去重代码可直接复用:
// 初始化去重skip列表,用字符串key存储已处理对象的唯一标识
Skip processedObjs = createString()
Object currentObj, linkTgt
string uniqueKey

// 替换成你实际的多层链接遍历逻辑,比如递归遍历入链/出链
for currentObj in <你的多层链接遍历范围> do {
    uniqueKey = fullName(currentObj) // 用对象全路径当唯一标识,跨模块不会重名
    if (find(processedObjs, uniqueKey, linkTgt)) continue // 已处理过的对象直接跳过,避免重复展示
    put(processedObjs, uniqueKey, currentObj) // 新对象加入已处理列表

    // 此处写原列的内容输出逻辑,比如输出对象编号、标题、链接属性等
    displayRich(number(currentObj) " " text(currentObj) "\n")
}

// 列渲染完成后销毁skip列表,释放内存避免泄漏
delete(processedObjs)

代码调试完成后,把列宽、显示样式调整到和原向导列一致,隐藏或删除原灰化的受保护列即可,后续需要调整逻辑可以直接打开列属性修改,不会被系统自动覆盖。

  • 方案2:临时解锁原列编辑权限(不推荐,有修改丢失风险)
    打开原向导列的属性窗口时,按住Ctrl+Shift组合键再点击DXL浏览按钮,原本灰化的选项会临时解锁可编辑,可以直接插入skip list去重逻辑。注意:分析向导后续重跑、列刷新时会自动覆盖所有自定义修改,临时改的代码会丢失,仅适合临时验证逻辑用。
去重逻辑注意事项
  • skip列表的key不要只用对象编号,跨模块场景下会出现编号重复导致误判,优先用fullName(o)或者identifier(o)作为唯一key。
  • 如果用递归方式遍历多层嵌套链接,skip列表要定义在递归函数的外层,不要在递归逻辑里重复新建,否则无法实现跨层级去重。
  • 每次列渲染完成后必须手动删除创建的skip列表,长时间打开模块会出现内存占用持续升高的问题。

内容的提问来源于stack exchange,提问作者Kyle Stewart

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 16:27:40