我希望能够更改源模块中所有外链的基线属性。有谁知道一些可用于执行此操作的 DXL 代码?
必须有一种更简单的方法,而不是手动删除以前的外链(即 ModuleVersion BL [1.20] 并重新创建指向特定新基线的外链(即 ModuleVersion BL [1.21])。
对于所有的 outLink (Object srcObject) -> (string linkModName) do { ... targetVersion(outLink) ... }
谢谢你的帮助。
我希望能够更改源模块中所有外链的基线属性。有谁知道一些可用于执行此操作的 DXL 代码?
必须有一种更简单的方法,而不是手动删除以前的外链(即 ModuleVersion BL [1.20] 并重新创建指向特定新基线的外链(即 ModuleVersion BL [1.21])。
对于所有的 outLink (Object srcObject) -> (string linkModName) do { ... targetVersion(outLink) ... }
谢谢你的帮助。
这是 dxl 的方法:
Link ol
Object o
Object othero
Module m = current
string LinkModName = "FULLPATHTOLINKMODULE"
Module tMod
ModName_ tModName
ModuleVersion mv
Baseline b
int tAbs
// Current Version of the Links
string cVersion = "1.20"
// Target Major, Minor and Suffix
int tMajor = 1
int tMinor = 21
string tSuffix = ""
for o in m do
{
for ol in all(o -> LinkModName) do
{
mv = targetVersion(ol)
tModName = target(ol)
tMod = read(fullName(tModName),false)
if(isBaseline(mv))
{
if(versionString(mv) "" == cVersion)
{
if(!isBaseline(tMod))
{
b = baseline(tMajor,tMinor,tSuffix)
if(baselineExists(tMod,b))
{
tMod = load(tMod, b, true)
} else {
ack "Baseline [" tMajor "." tMinor " " tSuffix "] was not found"
halt
}
}
tAbs = targetAbsNo(ol)
othero = object(tAbs,tMod)
if(!null othero)
{
o -> LinkModName -> othero
delete ol
}
}
}
}
}
flushDeletions()
save m
不要忘记插入链接模块的路径,并在必要时更新当前和目标的基线信息。
如果您决定不删除旧链接,则可以省略delete ol
and 。flushDeletions()