首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么门‘`isBaseline`’似乎总是假的?

为什么门‘`isBaseline`’似乎总是假的?
EN

Stack Overflow用户
提问于 2018-08-30 16:02:28
回答 2查看 262关注 0票数 0

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

代码语言:javascript
运行
复制
 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代码,以检查我的模块自上一个基线建立以来没有被编辑过内容。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-31 08:37:56

主要问题是,当您的代码获得一个ModuleVersion (第11行)时,它使用了获取该模块当前版本的函数的一种形式。第14行应该调用isBaseline,而不是Baseld,这使得最后两行变得多余。

有关moduleVersion函数的详细信息,请参阅DXL参考手册当前版本(9.6.1)的。

您的代码的最小修改版本得到了我认为您预期的结果,如下所示:

代码语言:javascript
运行
复制
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"  

在下面的版本中,为了清晰起见,我重新命名了变量,重新排序了一些行,并删除了一些不需要的内容:

代码语言:javascript
运行
复制
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)
票数 1
EN

Stack Overflow用户

发布于 2018-08-30 18:15:45

看起来,只有当当前模块视图设置为显示选定的基线,而不是“当前”工作视图时,isBaseline才返回TRUE。“`isBaseline及其伙伴不查看模块内容,因此看不到基线版本与当前工作视图之间的任何潜在差异。

我知道各种DXL工具对内容执行“比较”,因此可以单独处理。正如在这个问题中所指出的,默认的“比较”脚本有增强版本,例如在这门论坛上发布的一个脚本

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52101256

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档