【发布时间】:2016-12-05 16:08:43
【问题描述】:
我正在编写一些 DXL 用作 DXL 列,该列针对模块中的每个对象,查看内链接并返回链接名称。然后如果链接名称以“verif”开头,它将从链接模块中的属性“TestResultFloating”中获取对象文本,并将其显示在当前模块的DXL列中。
当我在整个数据库(目前我只是使用沙箱)上使用它时,我会遇到的问题是,通过“verif”链接模块链接的某些模块将不包含“TestResultFloating”属性。对于这些,我想抑制“未知对象属性(TestResultFloating)”错误,而是在当前模块中为该对象显示类似 N/A 的内容。
下面是我的代码,只要链接模块中存在“TestResultFloating”属性,当前就可以工作,但如果该属性不存在,则会抛出错误。
ModName_ mSrc
Object o = current
Object nObject
Object oSrc, oDest
LinkRef lr = null
Link l = null
string linkname = ""
string attrbName = "TestResultFloating"
for mSrc in (obj <- "*") do {
if (!open(mSrc)) {
read(fullName(mSrc), true)
}
}
for l in (obj <- "*") do {
oSrc = source(l)
linkname = name(module(l))
string linkmodname = upper(linkname[0:4])
if(linkmodname == "VERIF") {
string objText = oSrc."TestResultFloating"
display(objText)
}
}
我尝试了从 dxl 参考手册中获得的一种方法,即检查属性是否存在,然后进行操作。这是我添加的,但它似乎不起作用,我仍然收到相同的错误“未知对象属性(TestResultFloating)” 我尝试的如下所示:
if(linkmodname == "VERIF") {
if(exists attribute "TestResultFloating"){
string objText = oSrc."TestResultFloating"
display(objText)
}
else {
display("N/A")
}
}
还请注意,我对 DOORS 和 DXL 很陌生,所以如果我做错了什么或者我问的是一个简单的问题,请原谅我。
【问题讨论】:
标签: ibm-doors