DOORS 8.3的“管理开放模块”对话框列出了所有打开的模块,它们的模式,如果可见等,以及参考数量。我想使用该引用计数来确定我的脚本是否可以安全地关闭模块,并避免在当前正在使用时关闭。我不确定“参考”列的确切显示。我没有在互联网上的帮助或相应信息中找到它的描述。有没有人知道是否有一些未记录的DXL API可以访问该信息?
编辑:我发现函数refcount_
返回一个整数。但我不知道返回值意味着什么。
答案 0 :(得分:1)
看起来像References指的是当前引用该模块的开放模块的数量。例如:当您打开具有链接的模块时,DOORS还会在后台打开链接使用的所有链接模块。因此,如果我打开通过LINKMOD_A链接的文档,LINKMOD_A将显示1个引用。如果我然后打开另一个通过相同LINKMOD_A链接的文档,引用的数量将增加到2.我没有看到正式模块上的引用数量高于1。在你的一些模块上尝试这个,看看你何时在链接模块上获得多个引用,然后针对该链接模块运行refcount_
函数,看看你是否得到相同的数字。我不确定这是否是你正在寻找的功能,但它肯定是可能的。祝你好运!
答案 1 :(得分:0)
我假设您的脚本正在打开模块,所以您需要做的就是检查它是否已经先打开。
string sModuleFullName = "/Some/Module/Path"
Module oModule = module(sModuleFullName)
bool bClose = null(oModule)
if(null(oModule)) {
oModule = read(sModuleFullName, true,true)
}
// do stuff
if(bClose) {
close(oModule)
}
编辑: 关闭由触发器,属性或布局dxl打开的模块的替代方法
// Save currently open Modules to a Skip
Skip oOpenModulesSkip = createString()
Module oModule
for oModule in database do {
put(oOpenModulesSkip, fullName(oModule), fullName(oModule))
}
// do stuff
// Close Modules not in the Skip
for oModule in database do {
if(!find(oOpenModulesSkip, fullName(oModule))) {
close(oModule, false)
}
}
delete(oOpenModulesSkip)