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脚本,极具参考性,感兴趣的同学不妨研究研究~~