DXL 门:找出模块仍然打开的原因
DXL doors : finding why a module is still open
我在脚本末尾使用这个循环来检测我是否还有打开的模块:
for module_in_database in database do
{
logResult = logResult "INFO: open modules at the end the script are " fullName(module_in_database) "\n"
}
然后在我的(相当复杂的脚本)结束时,我仍然打开了那些模块:
INFO: open modules at the end the script are /spec_fpga/spec_fpga
INFO: open modules at the end the script are /spec produit/spec_produit
INFO: open modules at the end the script are /spec produit/spec_produit
INFO: open modules at the end the script are /spec_fpga/_conf/OBJ_satisfies_OBJ
INFO: open modules at the end the script are /spec_fpga/_conf/OBJ_satisfies_OBJ
我该怎么做才能关闭它们,甚至更好地理解为什么它们仍然打开(确定 linked 给它们的变量名称?)
打开 link 模块是否正常?我不打开这样的 link 模块。它们是否随下游模块自动打开?
也不知道是开放的模块还是模块的基线
我不确定为什么 spec_produit 和 OBJ_satisfies_OBJ 出现两次,spec_produit(正式模块?)之一可能是单独的基线,但对于 link 模块,例如 OBJ_satisfies_OBj,难得有基线。
您可能会通过启动“工具→管理打开的模块”并在脚本运行时查看列表来了解模块何时打开。也许您想为此使用 DXL 调试器。
一般情况下,link个模块会在包含link个正式模块打开时自动打开,但通常在正式模块关闭时它们会自动再次关闭。当正式模块包含 in links 并且打开到该模块的 out link 时,可以打开正式模块。您可能有一个模块带有一个(默认)视图,该视图跟随它的所有 links。或者在执行类似操作的模块中可能存在触发器或 DXL 属性。
您可能需要查看 isBaseline moduleVersion module_in_database
和 versionString moduleVersion module_in_database
以获取更多信息。
要关闭它们,只需使用close module_in_database
。
旁注:在 DXL 中,关闭当前循环的内容绝不是一个好主意,因此您想使用这样的临时跳过列表:
Skip closeMe = create
for module_in_database in database do {
logResult = logResult "INFO: currently open: " (fullName module_in_database) ((isBaseline (moduleVersion module_in_database)) ? " Baseline " (versionString moduleVersion module_in_database) : " (current version)") "\n"
put (closeMe, module_in_database, module_in_database)
}
Module m
for m in closeMe do {
if open (module m) then {
logResult = logResult "INFO: closing " fullName m "\n"
close m
} }
delete closeMe
我在脚本末尾使用这个循环来检测我是否还有打开的模块:
for module_in_database in database do
{
logResult = logResult "INFO: open modules at the end the script are " fullName(module_in_database) "\n"
}
然后在我的(相当复杂的脚本)结束时,我仍然打开了那些模块:
INFO: open modules at the end the script are /spec_fpga/spec_fpga
INFO: open modules at the end the script are /spec produit/spec_produit
INFO: open modules at the end the script are /spec produit/spec_produit
INFO: open modules at the end the script are /spec_fpga/_conf/OBJ_satisfies_OBJ
INFO: open modules at the end the script are /spec_fpga/_conf/OBJ_satisfies_OBJ
我该怎么做才能关闭它们,甚至更好地理解为什么它们仍然打开(确定 linked 给它们的变量名称?) 打开 link 模块是否正常?我不打开这样的 link 模块。它们是否随下游模块自动打开? 也不知道是开放的模块还是模块的基线
我不确定为什么 spec_produit 和 OBJ_satisfies_OBJ 出现两次,spec_produit(正式模块?)之一可能是单独的基线,但对于 link 模块,例如 OBJ_satisfies_OBj,难得有基线。 您可能会通过启动“工具→管理打开的模块”并在脚本运行时查看列表来了解模块何时打开。也许您想为此使用 DXL 调试器。 一般情况下,link个模块会在包含link个正式模块打开时自动打开,但通常在正式模块关闭时它们会自动再次关闭。当正式模块包含 in links 并且打开到该模块的 out link 时,可以打开正式模块。您可能有一个模块带有一个(默认)视图,该视图跟随它的所有 links。或者在执行类似操作的模块中可能存在触发器或 DXL 属性。
您可能需要查看 isBaseline moduleVersion module_in_database
和 versionString moduleVersion module_in_database
以获取更多信息。
要关闭它们,只需使用close module_in_database
。
旁注:在 DXL 中,关闭当前循环的内容绝不是一个好主意,因此您想使用这样的临时跳过列表:
Skip closeMe = create
for module_in_database in database do {
logResult = logResult "INFO: currently open: " (fullName module_in_database) ((isBaseline (moduleVersion module_in_database)) ? " Baseline " (versionString moduleVersion module_in_database) : " (current version)") "\n"
put (closeMe, module_in_database, module_in_database)
}
Module m
for m in closeMe do {
if open (module m) then {
logResult = logResult "INFO: closing " fullName m "\n"
close m
} }
delete closeMe