Utilisation des fichiers d'exemple VBScript

PowerAMC est livré avec des exemples de script que vous pouvez utiliser comme base pour écrire vos propres scripts. Il sont regroupés dans le répertoire d'installation VB Scripts de PowerAMC.

Ces scripts sont destinés à vous montrer une partie de l'étendue des types d'actions que vous pouvez effectuer sur les objets de PowerAMC à l'aide de VBScript. Ils sont également destinés à vous faciliter la rédaction de votre code dans vos propres scripts puisque vous pouvez aisément copier puis coller des parties de code du script d'exemple dans votre propre script.

Il est recommandé de conserver intacts les fichiers d'exemple de scripts et de n'utiliser que des copies.

Exemple de balayage d'un modèle

L'exemple suivant illustre un script doté d'une boucle qui balaye un modèle et ses sous-packages pour renvoyer des informations :

' Scan CDM Model and display objects information
' going down each package
Option Explicit
ValidationMode = True
InteractiveMode = im_Batch
' get the current active model
Dim mdl ' the current model
Set mdl = ActiveModel
If (mdl Is Nothing) Then
   MsgBox "There is no Active Model"
Else
   Dim fldr
   Set Fldr = ActiveDiagram.Parent
   ListObjects(fldr)
End If
' Sub procedure to scan current package and print information on objects from current package
' and call again the same sub procedure on all children package 
' of the current package
Private Sub ListObjects(fldr)
   output "Scanning " & fldr.code
   Dim obj ' running object
   For Each obj In fldr.children
      ' Calling sub procedure to print out information on the object
      DescribeObject obj
   Next
   ' go into the sub-packages
   Dim f ' running folder
   For Each f In fldr.Packages
      'calling sub procedure to scan children package
      ListObjects f
   Next
End Sub
' Sub procedure to print information on current object in output
Private Sub DescribeObject(CurrentObject)
   if CurrentObject.ClassName ="Association-Class link" then exit sub
   'output "Found "+CurrentObject.ClassName
   output "Found "+CurrentObject.ClassName+" """+CurrentObject.Name+""", Created by "+CurrentObject.Creator+" On "+Cstr(CurrentObject.CreationDate)   
End Sub

Exemple de création d'un modèle

L'exemple suivant illustre un script qui crée un nouveau MOO :

Option Explicit
' Initialization
' Set interactive mode to Batch
InteractiveMode = im_Batch
' Main function
' Create an OOM model with a class diagram
Dim Model
Set model = CreateModel(PdOOM.cls_Model, "|Diagram=ClassDiagram")
model.Name = "Customer Management"
model.Code = "CustomerManagement"
' Get the class diagram
Dim diagram
Set diagram = model.ClassDiagrams.Item(0)
' Create classes
CreateClasses model, diagram
' Create classes function
Function CreateClasses(model, diagram)
   ' Create a class
   Dim cls
   Set cls = model.CreateObject(PdOOM.cls_Class)
   cls.Name = "Customer"
   cls.Code = "Customer"
   cls.Comment = "Customer class"
   cls.Stereotype = "Class"
   cls.Description = "The customer class defines the attributes and behaviors of a customer."
   ' Create attributes
   CreateAttributes cls
   ' Create methods
   CreateOperations cls
   ' Create a symbol for the class
   Dim sym
   Set sym = diagram.AttachObject(cls)
   CreateClasses = True
End Function
' Create attributes function
Function CreateAttributes(cls)
   Dim attr
   Set attr = cls.CreateObject(PdOOM.cls_Attribute)
   attr.Name = "ID"
   attr.Code = "ID"
   attr.DataType = "int"
   attr.Persistent = True
   attr.PersistentCode = "ID"
   attr.PersistentDataType = "I"
   attr.PrimaryIdentifier = True
   Set attr = cls.CreateObject(PdOOM.cls_Attribute)
   attr.Name = "Name"
   attr.Code = "Name"
   attr.DataType = "String"
   attr.Persistent = True
   attr.PersistentCode = "NAME"
   attr.PersistentDataType = "A30"
   Set attr = cls.CreateObject(PdOOM.cls_Attribute)
   attr.Name = "Phone"
   attr.Code = "Phone"
   attr.DataType = "String"
   attr.Persistent = True
   attr.PersistentCode = "PHONE"
   attr.PersistentDataType = "A20"
   Set attr = cls.CreateObject(PdOOM.cls_Attribute)
   attr.Name = "Email"
   attr.Code = "Email"
   attr.DataType = "String"
   attr.Persistent = True
   attr.PersistentCode = "EMAIL"
   attr.PersistentDataType = "A30"
   CreateAttributes = True
End Function
' Create operations function
Function CreateOperations(cls)
   Dim oper
   Set oper = cls.CreateObject(PdOOM.cls_Operation)
   oper.Name = "GetName"
   oper.Code = "GetName"
   oper.ReturnType = "String"
   Dim body
   body = "{" + vbCrLf
   body = body + "   return Name;" + vbCrLf
   body = body + "}"
   oper.Body = body
   Set oper = cls.CreateObject(PdOOM.cls_Operation)
   oper.Name = "SetName"
   oper.Code = "SetName"
   oper.ReturnType = "void"
   Dim param
   Set param = oper.CreateObject(PdOOM.cls_Parameter)
   param.Name = "newName"
   param.Code = "newName"
   param.DataType = "String"
   body = "{" + vbCrLf
   body = body + "   Name = newName;" + vbCrLf
   body = body + "}"
   oper.Body = body
   CreateOperations = True
End Function

Le script précédent produit le résultat suivant dans l'interface :




Created October 8, 2009. Send feedback on this help topic to Sybase Technical Publications: pubs@sybase.com