PowerDesigner中通過VBS指令碼修改模型資訊

junsansi發表於2010-11-10

PowerDesigner擁有強大的建模功能,同時,它也對指令碼語言提供了支援。選單Tools -> Execute Commands -> Edit/Run Script開啟的視窗中,可以執行使用者編寫的VBS指令碼,某些情況下,這可以節省大量的重複性工作,達到提高效率的目的。

近期三思遇到一例,某個歷史工程在開發之初未應用PD類工作建模,後期維護人員也很多,物件建立混亂,通過PowerDesigner反向工程生成了pdm,但物件描述沒有,這個東西如果逐個維護的話,工作量還是非常可觀的~~

不過,檢視錶結構時發現物件的comments相對比較全面,因此後來通過VBS指令碼,自動將備註資訊寫向表列的NAME,極短的時間內就對全部物件做了處理!

具體執行指令碼如下:


 Option Explicit
 ValidationMode = True
 InteractiveMode = im_Abort
 
 
 Dim mdl ' 定義當前的模型
 
 '通過全域性引數獲得當前的模型
 Set mdl = ActiveModel
 If (mdl Is Nothing) Then
    MsgBox "沒有選擇模型,請選擇一個模型並開啟."
 ElseIf Not mdl.IsKindOf(PdPDM.cls_Model) Then
    MsgBox "當前選擇的不是一個物理模型(PDM)."
 Else
    ProcessFolder mdl
 End If
 
 
 '--------------------------------------------------------------------------------
 '功能函式
 '--------------------------------------------------------------------------------
 Private Sub ProcessFolder(folder)
    Dim Tab '定義資料表物件
    for each Tab in folder.tables
       if not tab.isShortcut then
          if tab.comment <> "" then tab.name = tab.comment '進行判斷並賦值
          Dim col '定義列物件
          for each col in tab.columns
             if col.comment <> "" then col.name = col.comment '進行判斷並賦值
          next
       end if
    next
   
    '對子包進行遞迴,如果不使用遞迴只能取到第一個模型圖內的表
    dim subfolder
    for each subfolder in folder.Packages
       ProcessFolder subfolder
    next
 
End Sub

事實上,在PD安裝目錄下,擁有一個VB Scripts目錄,其中包含PD自帶的很多VBS指令碼,極具參考性,感興趣的同學不妨研究研究~~

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7607759/viewspace-677900/,如需轉載,請註明出處,否則將追究法律責任。

相關文章