モジュール内の各オブジェクトに対して、リンク内を調べてリンク名を返す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にはとても新しいので、もし私が何か劇的に間違ってやっているのなら、私は簡単な質問をしています。私を許してください。
この場合、私はそれを使用しますか?私は以前はその機能を使っていませんでした。それは、string = probeAttr_(obj、 "TestResultFloating")を設定し、文字列が空であるかどうかをチェックするようなものでしょうか? – Gurn64
はい、まさにこのようです。 – Mike