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.
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
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 :