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

求助:使用DOORS DXL统计模块中无外向链接的需求数量

解决DOORS DXL脚本统计缺外向链接需求的问题

嘿,我来帮你搞定这个DOORS DXL脚本的问题!看起来你卡在条件判断和链接检查的环节了,我先给你一个能正常运行的脚本,再拆解关键细节帮你理解哪里可能出了问题。

完整可运行的DXL脚本

// 确保当前打开的是正式模块
Module current = currentModule()
if (current == null || isBaseline(current)) {
    print "请打开一个正式模块后再运行脚本!\n"
    exit
}

int missingOutLinksCount = 0
Object obj

// 遍历模块中的每个对象
for obj in current do {
    // 只关注类型为"Req"或"Obj"的对象
    string objType = obj."Object Type"
    if (objType == "Req" || objType == "Obj") {
        // 检查该对象是否有外向链接
        LinkSet outLinks = links(obj, outgoing)
        if (null outLinks || size(outLinks) == 0) {
            missingOutLinksCount++
            // 可选:打印缺少链接的对象信息,方便定位
            print "缺少外向链接的需求:ID=" obj."Absolute Number" ", 文本=" obj."Object Text" "\n"
        }
    }
}

print "\n统计结果:共有 " missingOutLinksCount " 个Req/Obj类型的需求缺少外向链接\n"

关键细节与常见错误排查

我猜你之前的条件判断失效,大概率是以下几个原因之一:

  • 对象类型判断的属性名错误:DOORS中对象类型的标准属性是"Object Type",如果拼写错误(比如写成ObjectType或者大小写不对),判断就会失效。一定要确保属性名和模块中的定义完全一致。
  • 链接检查的方式不对:很多新手会误用outgoing(obj),但正确获取外向链接集合的方式是links(obj, outgoing),然后通过size(outLinks)判断是否为空集合。
  • 大小写不匹配:DOORS的属性值是区分大小写的,如果你的模块中对象类型是req而不是Req,那判断条件也要对应调整,必须和实际值完全一致。
  • 没有过滤正式模块:如果不小心在基线模块或者非正式模块运行脚本,也可能出现异常结果,脚本开头的判断就是为了避免这种情况。

如果运行脚本后还是有问题,可以先打印出每个对象的类型值,确认判断逻辑是否正确,比如在循环里加一行print "当前对象类型:" obj."Object Type" "\n",这样就能快速定位是不是类型判断的问题。

内容的提问来源于stack exchange,提问作者Chris Freund

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 08:07:38