2013-02-26 51 views
2

我希望能夠更改來自源模塊的所有outlink的Baseline屬性。有誰知道一些可用於執行此操作的DXL代碼?DOORS DXL用於將版本化鏈接更改爲特定目標基線

必須有一個更簡單的方法,而不是手動刪除以前的出站鏈接(即的ModuleVersion BL [1.20],並重建出站鏈接到一個特定的新基準(即的ModuleVersion BL [1.21])。在所有

爲outLink(對象。srcObject) - >(字符串linkModName)做{ ... targetVersion(outLink)... }

感謝所有幫助

+0

是的,這可以用DXL完成,但我很好奇你爲什麼要刪除鏈接到以前的基準。你不希望他們被維護,只是創建新的鏈接到1.21基線? – 2013-02-27 12:31:10

回答

1

這裏是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 olflushDeletions()