Chapter 9 Accessing objects using VBScript
PowerDesigner lets you access the workspace feature via VBScript using the ActiveWorkspace As BaseObject global property.
It allows you to retrieve the application current workspace
The Workspace object corresponds to the workspace root in the Browser.
The main actions you can perform with the Workspace are the following:
To load a workspace:
Use the following | Description |
---|---|
Load (ByVal filename As String = "") As Boolean | Loads the workspace from the given location |
To save a workspace:
Use the following | Description |
---|---|
Save (ByVal filename As String = "") As Boolean | Saves the workspace at the given location |
To close a workspace:
Use the following | Description |
---|---|
Close () | Closes the active workspace |
You can also manipulate the contents of a workspace using the following items:
You can use the AddDocument(ByVal filename As String, ByVal position As Long = -1) As BaseObject method on the WorkspaceFolder to add documents to the workspace.
Example of a workspace manipulation:
Option Explicit ' Close existing workspace and save it to Temp Dim workspace, curentFolder Set workspace = ActiveWorkspace workspace.Load "%_EXAMPLES%\mywsp.sws" Output "Saving current workspace to ""Example directory : "+EvaluateNamedPath("%_EXAMPLES%\temp.sws") workspace.Save "%_EXAMPLES%\Temp.SWS" workspace.Close workspace.Name = "VBS WSP" workspace.FileName = "VBSWSP.SWS" workspace.Load "%_EXAMPLES%\Temp.SWS" dim Item, subitem for each Item in workspace.children If item.IsKindOf(PdWsp.cls_WorkspaceFolder) Then ShowFolder (item) renameFolder item,"FolderToRename", "RenamedFolder" deleteFolder item,"FolderToDelete" curentFolder = item ElsIf item.IsKindOf(PdWsp.cls_WorkspaceModel) Then ElsIf item.IsKindOf(PdWsp.cls_WorkspaceFile) Then End if next Dim subfolder 'insert folder in root Set subfolder = workspace.Children.CreateNew(PdWsp.cls_WorkspaceFolder) subfolder.name = "Newfolder(VBS)" 'insert folder in root at pos 6 Set subfolder = workspace.Children.CreateNewAt(5, PdWsp.cls_WorkspaceFolder) subfolder.name = "Newfolder(VBS)insertedAtPos5"' ' add a new folder in this folder Set subfolder = subfolder.Children.CreateNew(PdWsp.cls_WorkspaceFolder) subfolder.name = "NewSubFolder(VBS)" subfolder.AddDocument EvaluateNamedPath("%_EXAMPLES%\pdmrep.rtf") subfolder.AddDocument EvaluateNamedPath("%_EXAMPLES%\cdmrep.rtf") subfolder.AddDocument EvaluateNamedPath("%_EXAMPLES%\project.pdm") subfolder.AddDocument EvaluateNamedPath("%_EXAMPLES%\demo.oom") dim lastmodel set lastmodel = subfolder.AddDocument (EvaluateNamedPath("%_EXAMPLES%\Ordinateurs.fem")) lastmodel.open lastmodel.name = "Computers" lastmodel.close 'detaching model from workspace lastmodel.delete workspace.Save "%_EXAMPLES%\Final.SWS"
Copyright (C) 2005. Sybase Inc. All rights reserved. |