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