DOORS Layout DXL报告每个链接两次

时间:2019-02-12 15:06:03

标签: ibm-doors

我正在使用分析向导创建LayoutDXL列,该列应列出当前模块中每个现有的In-link的属性(例如AbsoluteNumber)。在一个特定的DOORS模块中,生成的DXL代码两次将这些属性显示两次。在其他模块中不会发生这种情况。

我确实注意到有问题的模块没有一组定义的LinkModule(如File / ModuleProperties中所示)。会造成某种回环吗?

更新:

我发现DXL代码以某种方式“思考”定义了LinkModule的两个版本,即“ Current”和“ Baseline X”。它们每个都链接到目标DOORS模块中的不同基线编号。我不知道该如何解决。

作为参考,这是使用向导生成的DXL代码。这是DOORS 9.6.1.11

// DXL generated by DOORS traceability wizard on 12 February 2019.
// Wizard version 2.0, DOORS version 9.6.1.11
pragma runLim, 0
string limitModules[1] = {"[serial number redacted]"}
void showIn(Object o, int depth) {
    Link l
    LinkRef lr
    ModName_ otherMod = null
    Module linkMod = null
    ModuleVersion otherVersion = null
    Object othero
    string disp = null
    string s = null
    string plain, plainDisp
    int plainTextLen
    int count
    bool doneOne = false
    string linkModName = "*"
    for lr in all(o<-linkModName) do {
        otherMod = module (sourceVersion lr)
        if (!null otherMod) {
            if ((!isDeleted otherMod) && (null data(sourceVersion lr))) {
                if (!equal(getItem otherMod, (itemFromID limitModules[depth-1]))) continue
                load((sourceVersion lr),false)
            }
        }
    }
    for l in all(o<-linkModName) do {
        otherVersion = sourceVersion l
        otherMod = module(otherVersion)
        if (null otherMod || isDeleted otherMod) continue
        if (!equal(getItem otherMod, (itemFromID limitModules[depth-1]))) continue
        othero = source l
        if (null othero) {
            load(otherVersion,false)
        }
        othero = source l
        if (null othero) continue
        if (isDeleted othero) continue
        doneOne = true
        if (depth == 1) {
            s = probeRichAttr_(othero,"Absolute Number", false)
            if (s == "") 
            displayRich("\\pard " " ")
            else
            displayRich("\\pard " s)
            s = probeRichAttr_(othero,"Object Heading", false)
            if (s == "") 
            displayRich("\\pard " " ")
            else
            displayRich("\\pard " s)
        }
    }
}
showIn(obj,1)

1 个答案:

答案 0 :(得分:0)

我已经看到了对象DID在它们之间具有两个链接的情况,这可以通过不同的链接模块来实现(模块A的对象1满足模块B的对象2和模块A的对象1完善模块B的对象2) 。尽管可能有这种情况,但是大多数情况下,这是由于未正确使用“链接移动”脚本引起的。

您还应该通过显示链接模块的名称(变量linkModName)来扩展代码。也许这表明了您进行观察的原因