代码之家  ›  专栏  ›  技术社区  ›  Carl Witthoft

为什么DOORS'isBaseline'总是返回FALSE?

  •  0
  • Carl Witthoft  · 技术社区  · 6 年前

    我在DOORS模块中创建了一个新的主基线,然后运行了一个包含行的小DXL脚本

     Module mp = current
    Baseline bp = getMostRecentBaseline(mp)
    int majorVersion = major(bp)
    int minorVersion = minor(bp)
    print "major " majorVersion " minor " minorVersion "\n"
    string suff = suffix(bp)
    print "suffix " suff "\n"
    bool bstat
    bstat = isBaseline(mp)
    print "bstat " bstat "\n"
    ModuleVersion mv = moduleVersion(mp)
    string basind = baselineIndex(mp)
    print "baseline index " basind "\n"
    bool otherbstat = baseline(mp)
    print "otherstat " otherbstat "\n"
    bool basv = isBaseline(mv)
    print "version base " basv "\n"  
    

    所以我的问题是-不同的 isBaseline

    2 回复  |  直到 6 年前
        1
  •  1
  •   Richard Hesketh    6 年前

    主要的问题是,当代码获得ModuleVersion(第11行)时,它使用函数的一种形式来获取模块的当前版本。第14行应该调用 isBaseline公司 基线 ,使最后两行多余。

    请参阅DXL参考手册当前版本(9.6.1)的第310页,以获取有关 模数转换 功能。

    Module mp = current
    Baseline bp = getMostRecentBaseline(mp)
    int majorVersion = major(bp)
    int minorVersion = minor(bp)
    print "major " majorVersion " minor " minorVersion "\n"
    string suff = suffix(bp)
    print "suffix " suff "\n"
    bool bstat
    bstat = isBaseline(mp)
    print "bstat " bstat "\n"
    ModuleVersion mv = moduleVersion(uniqueID(mp), bp)
    string basind = baselineIndex(mp)
    print "baseline index " basind "\n"
    bool otherbstat = isBaseline(mv)
    print "otherstat " otherbstat "\n"
    bool basv = isBaseline(mv)
    print "version base " basv "\n"  
    

    Module modCurrent   = current
    Baseline blLatest   = getMostRecentBaseline(modCurrent)
    
    int iMajorVersion   = major(blLatest)
    int iMinorVersion   = minor(blLatest)
    
    string sBLSuffix    = suffix(blLatest)
    
    print "last baseline: major " iMajorVersion " minor " iMinorVersion " suffix " sBLSuffix "\n"
    
    bool bIsBaseline = isBaseline(modCurrent)
    
    print "bIsBaseline = " bIsBaseline "\n"
    
    ModuleVersion mv    = moduleVersion(uniqueID(modCurrent), blLatest)
    Module modBaselined = load(mv, false)
    
    string basind = baselineIndex(modBaselined)
    
    print "baseline index = " basind "\n"
    
    bIsBaseline = isBaseline(modBaselined)
    
    print "bIsBaseline = " bIsBaseline "\n"
    
    close(modBaselined)
    
        2
  •  0
  •   Carl Witthoft    6 年前

    看起来像 isBaseline 仅当当前模块视图设置为显示选定的基线(与“当前”工作视图相反)时,才返回TRUE。`isBaseline及其同类产品不查看模块内容,因此看不到基线版本和当前工作视图之间的任何潜在差异。

    我知道各种DXL工具对内容执行“比较”,因此可以单独处理。正如在 this question ,有默认“compare”脚本的增强版本,例如发布在 this DOORS forum