我在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"
所有这些返回FALSE,指示模块当前没有基线。自基线化以来,我没有对任何属性做过任何编辑。我做过一些事情,比如创建新的视图。如果我运行IBM宏来比较最新的基线和“当前”版本,它会报告没有任何差异。
所以我的问题是-各种isBaseline
函数看什么导致它们返回FALSE?或者,我是不是走错了路-我真正需要的是一个Q&D的DXL代码,以检查我的模块自上一个基线建立以来没有被编辑过内容。
发布于 2018-08-31 08:37:56
主要问题是,当您的代码获得一个ModuleVersion (第11行)时,它使用了获取该模块当前版本的函数的一种形式。第14行应该调用isBaseline,而不是Baseld,这使得最后两行变得多余。
有关moduleVersion函数的详细信息,请参阅DXL参考手册当前版本(9.6.1)的。
您的代码的最小修改版本得到了我认为您预期的结果,如下所示:
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)
https://stackoverflow.com/questions/52101256
复制相似问题