PowerAMC est fourni avec un jeu d'exemples de script, que vous pouvez utiliser comme base pour créer vos propres scripts, et qui sont situés dans le dossier VB Scripts du répertoire d'installation de PowerAMC. Ces scripts sont destinés à vous montrer la variété des tâches que vous pouvez réaliser sur des modèles PowerAMC en utilisant VBScript.
Le script suivant parcourt n'importe quel modèle, en bouclant sur les packages et répertoriant les objets qu'ils contiennent :
Option Explicit ' Force la déclaration de chaque variable 'avant affectation InteractiveMode = im_Batch ' Supprime l'affichage de boîtes de dialogue ' Identifie le modèle actif courant Dim diag Set diag = ActiveDiagram ' le diagramme courant If (diag Is Nothing) Then MsgBox "Il n'y a pas de diagramme actif" Else Dim fldr Set Fldr = diag.Parent ListObjects(fldr) End If ' Sous-procédures pour parcourir le package courant et imprimer ' des infos sur les objets du package courant et rappeler ' la même sous-procédure sur tous les packages enfant Private Sub ListObjects(fldr) output "Balayage de " & fldr.code Dim obj ' objet concerné For Each obj In fldr.children ' Appel de sous-procédure pour imprimer des infos sur l'objet DescribeObject obj Next ' parcourir les sous-packages Dim f ' dossier concerné For Each f In fldr.Packages 'Appel de sous-procédure pour parcourir le package enfant ListObjects f Next End Sub ' Sous-procédure pour imprimer des infos sur l'objet courant Private Sub DescribeObject(CurrentObject) if CurrentObject.ClassName ="Association-Class link" then exit sub 'output "Trouvé "+CurrentObject.ClassName output "Trouvé "+CurrentObject.ClassName+" """+CurrentObject.Name+""", Créé par "+CurrentObject.Creator+" le "+Cstr(CurrentObject.CreationDate) End Sub
Le script suivant crée un nouveau MOO, puis crée une classe avec des attributs et des opérations :
ValidationMode = True 'Force PowerAMC à valider des
' actions et renvoyer des erreurs en cas d'action interdite
InteractiveMode = im_Batch ' Supprime des boîtes de dialogue PowerAMC
' Fonction princpale
' Crée un MOO avec un diagramme de classes
Dim Model
Set model = CreateModel(PdOOM.cls_Model, "|Diagram=ClassDiagram")
model.Name = "Gestion clients"
model.Code = "GestionClients"
' Récupère de la diagramme de classes
Dim diagram
Set diagram = model.ClassDiagrams.Item(0)
' Crée les classes
CreateClasses model, diagram
' Fonction de création des classes
Function CreateClasses(model, diagram)
' Crée une classe
Dim cls
Set cls = model.CreateObject(PdOOM.cls_Class)
cls.Name = "Client"
cls.Code = "Client"
cls.Comment = "Classe client"
cls.Stereotype = "Class"
cls.Description = "La classe client définit les attributs et comportements d'un client."
' Création des attributs
CreateAttributes cls
' Création des méthodes
CreateOperations cls
' Création d'un symbole pour la classe
Dim sym
Set sym = diagram.AttachObject(cls)
CreateClasses = True
End Function
' Fonction de création d'attributs
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 = "Nom"
attr.Code = "Nom"
attr.DataType = "String"
attr.Persistent = True
attr.PersistentCode = "NOM"
attr.PersistentDataType = "A30"
Set attr = cls.CreateObject(PdOOM.cls_Attribute)
attr.Name = "Téléphone"
attr.Code = "Telephone"
attr.DataType = "String"
attr.Persistent = True
attr.PersistentCode = "TELEPHONE"
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
' Fonction de création des opérations
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 = "nouvNom"
param.Code = "nouvNom"
param.DataType = "String"
body = "{" + vbCrLf
body = body + " Name = nouvNom;" + vbCrLf
body = body + "}"
oper.Body = body
CreateOperations = True
End Function