为什么 DOORS `isBaseline` 似乎总是 return FALSE?
Why does DOORS `isBaseline` seem to always return FALSE?
我在 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"
所有这些 return FALSE,表示该模块当前未设置基线。自基线化以来,我没有对任何属性进行任何编辑。我已经完成了创建新视图之类的事情。如果我 运行 IBM DXL 宏将最新基线与 "Current" 版本进行比较,它报告差异为零。
所以我的问题是 - 各种 isBaseline
函数查看什么导致它们 return FALSE?或者,我是不是以错误的方式处理这个问题——我真正需要的是 DXL 代码的 Q&D 位来检查自上次基线建立以来我的模块是否没有被内容编辑。
看起来像 isBaseline
returns 仅当当前模块视图设置为显示选定基线时才为 TRUE,而不是 "current" 工作视图。 `isBaseline 及其兄弟不查看模块内容,因此看不到基线版本和当前工作视图之间的任何潜在差异。
我知道对内容执行 'compare' 的各种 DXL 工具,因此可以单独处理。如 , there are enhanced versions of the default "compare" script, such as one posted at this DOORS forum
所述
主要问题是,当您的代码获取 ModuleVersion(第 11 行)时,它使用一种获取模块当前版本的函数形式。第 14 行应该调用 isBaseline,而不是 baseline,使最后两行变得多余。
有关 moduleVersion 函数的完整详细信息,请参阅 DXL 参考手册当前版本 (9.6.1) 的 p310。
获得我认为您期望的结果的代码的最小修改版本如下:
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)
我在 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"
所有这些 return FALSE,表示该模块当前未设置基线。自基线化以来,我没有对任何属性进行任何编辑。我已经完成了创建新视图之类的事情。如果我 运行 IBM DXL 宏将最新基线与 "Current" 版本进行比较,它报告差异为零。
所以我的问题是 - 各种 isBaseline
函数查看什么导致它们 return FALSE?或者,我是不是以错误的方式处理这个问题——我真正需要的是 DXL 代码的 Q&D 位来检查自上次基线建立以来我的模块是否没有被内容编辑。
看起来像 isBaseline
returns 仅当当前模块视图设置为显示选定基线时才为 TRUE,而不是 "current" 工作视图。 `isBaseline 及其兄弟不查看模块内容,因此看不到基线版本和当前工作视图之间的任何潜在差异。
我知道对内容执行 'compare' 的各种 DXL 工具,因此可以单独处理。如
主要问题是,当您的代码获取 ModuleVersion(第 11 行)时,它使用一种获取模块当前版本的函数形式。第 14 行应该调用 isBaseline,而不是 baseline,使最后两行变得多余。
有关 moduleVersion 函数的完整详细信息,请参阅 DXL 参考手册当前版本 (9.6.1) 的 p310。
获得我认为您期望的结果的代码的最小修改版本如下:
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)