Я пишу какой-то DXL для использования в качестве столбца DXL, который для каждого объекта в модуле, смотрит на ссылки и возвращает имя ссылки. Затем, если имя ссылки начинается с «verif», он получит текст объекта из атрибута «TestResultFloating» в связанном модуле и покажет его в текущем модуле в столбце DXL.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, поэтому, если я делаю что-то совершенно неправильное или я задаю простой вопрос, пожалуйста, простите меня.
Как бы Я использую это в этом случае? Я раньше не использовал функции. Было бы что-то вроде установки строки = probeAttr_ (obj, «TestResultFloating»), а затем проверки, является ли строка пустой или нет? – Gurn64
да, точно так же. – Mike