0

DOORS8.3の[OpenModulesの管理]ダイアログには、開いているすべてのモジュール、それらのモード(表示されている場合)など、および参照の数が一覧表示されます。その参照カウントを使用して、スクリプトがモジュールを安全に閉じることができるかどうかを判断し、現在使用中の場合は閉じないようにします。「参照」列が正確に何を表示しているかわかりません。ヘルプやインターネット上の対応する情報でその説明を見つけられませんでした。その情報へのアクセスを可能にする文書化されていないDXLAPIがあるかどうか誰かが知っていますか?

編集:refcount_整数を返す関数を見つけました。しかし、戻り値が何を意味するのかわかりません。

4

2 に答える 2

1

参照は、現在そのモジュールを参照している開いているモジュールの数を指しているようです。例:リンクのあるモジュールを開くと、DOORSはリンクが使用するすべてのリンクモジュールもバックグラウンドで開きます。したがって、LINKMOD_Aを介したリンクがあるドキュメントを開くと、LINKMOD_Aには1つの参照が表示されます。次に、同じLINKMOD_Aを介したリンクを持つ別のドキュメントを開くと、参照の数が2に増えます。正式なモジュールで1を超える参照の数は表示されません。一部のモジュールでこれを試して、リンクモジュールで複数の参照を取得するタイミングを確認してから、refcount_そのリンクモジュールに対して関数を実行し、同じ番号を取得するかどうかを確認してください。それがあなたが探している機能であるかどうかはわかりませんが、それは確かに可能です。幸運を!

于 2013-02-01T16:20:45.030 に答える
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)
于 2013-05-06T07:41:43.233 に答える